Introducción a Ceph

Ceph se instala como cualquier servicio en un sistema que corre Linux e involucra varios componentes (daemons) que gestionan el cluster, como muestra el siguiente diagrama:

Cluster Ceph

Basicamente computadores con hardware estándar sera un nodo que formará un cluster.

Para guardar y mantener los datos, Ceph se encargará de crear varias copia y balancearlas entre todos los nodos. Como todo hardware, los nodos pueden fallar, o ser desafectados del cluster, y Ceph recuperará los datos de las copias disponibles manteniendo siempre una dispersión homogenea de las copias en varios nodos del cluster. Asimismo, se pueden agregar nuevos nodos al cluster y Cepth los utilizará inmediatamente para ampliar el espacio y re-balancear la replicación de datos.

El cluster Ceph puede estar disperso en una red amplia que puede involucrar varios centros de datos (datacenters), varias salas de un edificio, distintos racks de computadoras o varios hosts de un mismo rack.

Los clientes verán al cluster como una única entidad y podrán utilizar sus servicios de archivos en forma coherente y transparente a la arquitectura real o la mobilidad de servidores que dados de baja o alta en el cluster.

Cada cliente podrá tener discos (block storage) guardados en el cluster que serán mapeados por el kenrel como dispositivos (semejante a cómo se inicia una LUM en un storage iSCSI).

También los clientes, posiblemente aplicaciones, podrán guardar archivos cómo objetos en espacios llamados pool. Para esto, existen varios programas que pueden ser utilizados, desde una utilitario de comandos (CLI), hasta una interfaz REST.

Por último, podemos disponer de un espacio para guardar archivos en forma jerárquica estándar, montando el cluster como si fuera un espacio de disco compartido por red (NAS).

En forma más íntima, Ceph se compone de estos elementos (existen más elementos, pero los descriptos son los principales)

Ceph en Particular

  • Reliable Autonomic Distributed Object Store (RADOS) es el servicio de los objetos (archivos) del núcleo de Ceph y como todo en Ceph se guarda como objetos, RADOS es parte integral del cluster, responsable por la consistencia de los datos, su replicación y la disponibilidad de los mismos.
  • Object storage daemons (OSD) es la aplicación encargada de lectura/escritura de los datos a disco.
  • Monitors (MON) mantienen el mapa del cluster, son concientes de la presencia o ausencia de los nodos del cluster. Ante cambios del cluster, notificarán a RADOS para que mantenga los datos. Los monitors (en un claster de producción son un mínimo de tres) informarán la salud de nuestro cluster, formaran cuorum y las demás tareas de control general.
  • Metadata Server (MDS) es el comonente que mantiene los metadatos cuando se guardan archivos mediante uso como disco de red (NAS o CephFS). Los archivos tienen dueño, fechas, permisos, etc., esos metadatos son replicados y mantenidos en los MDS.