Ceph – Una práctica solución de almacenamiento para empresas de cualquier tamaño

Ceph es una completa solución de almacenamiento que dispone de un sistema de archivos propio, el Ceph File System (CephFS). Con Ceph pueden almacenarse datos distribuidos en diversos componentes de la propia red. Además, los datos pueden guardarse en diferentes soportes físicos de almacenamiento. Ceph garantiza una gran flexibilidad en la elección del soporte de almacenamiento, así como una gran escalabilidad.

Qué hay que saber sobre Ceph y sus principales características

El concepto de Ceph fue idea de Sage A. Weil, que lo desarrolló en el marco de su proyecto de doctorado y lo publicó en 2006. Más adelante, él mismo siguió dirigiendo el proyecto con su compañía, Intank Storage. En 2014, la empresa fue adquirida por RedHat, pero Weil sigue gestionando la arquitectura de sistemas y sigue siendo, por lo tanto, el principal responsable del desarrollo del concepto.

Ceph solo funciona en sistemas Linux y es compatible, por ejemplo, con CentOS, Debian, Fedora, RedHat/RHEL, OpenSUSE y Ubuntu. No es posible acceder a Ceph de forma directa desde sistemas Windows, pero sí mediante un iSCSI (Internet Small Computer System Interface). Por ello, Ceph se presta especialmente a ser utilizado en centros computacionales que ponen su espacio de almacenamiento a disposición de los usuarios a través de servidores, así como en todo tipo de soluciones cloud que usen un software para gestionar las opciones de almacenamiento.

A continuación, resumimos las características más importantes de Ceph:

Cómo funciona Ceph

Ceph requiere que varios ordenadores estén conectados entre ellos en lo que se denomina un cluster (literalmente grupo o montón, es decir, un conjunto de varios ordenadores). Cada ordenador conectado se llama node o nodo.

En un cluster existen diferentes tipos de nodos, según las tareas que realicen:

  • Monitor nodes: Gestionan el estado de cada uno de los nodos en el cluster y vigilan en especial los componentes manager service, object storage service y metadata server (MDS). Para poder asegurar cierta seguridad, se recomienda disponer de al menos tres monitor nodes.
  • Manager: Gestionan el estado de la utilización del espacio, de la carga del sistema y del nivel de utilización de los nodos.
  • Ceph OSDs (Object Storage Devices): Son los servicios de fondo que realmente se encargan de gestionar los archivos: son responsables del almacenamiento, el duplicado y la restauración de los datos. Se recomienda tener al menos tres OSD en el cluster.
  • Metadata server (MDSs): Se encargan de almacenar metadatos como, por ejemplo, rutas de almacenamiento, sellos de tiempo y nombres de los archivos guardados en CephFS, por motivos de rendimiento. Están creados siguiendo el estándar POSIX y pueden solicitarse mediante líneas de comando de Unix, como ls, find y like.

El componente clave del almacenamiento de datos es un algoritmo llamado CRUSH (Controlled Replication Under Scalable Hashing, es decir, replicación controlada bajo hashing escalable). Este algoritmo es capaz de encontrar un OSD con el archivo solicitado gracias a una tabla de asignaciones.

La distribución de los archivos en Ceph se realiza de forma pseudoaleatoria, es decir, de forma que pudiera parecer que se ubican de cualquier manera. En realidad, sin embargo, CRUSH calcula el lugar más adecuado para almacenarlos basándose en criterios definidos por el administrador de la red. Al hacerlo, además, se duplican los archivos y se almacenan en soportes físicos separados.

Los archivos se distribuyen en los llamados placement groups (grupos de ubicación), procesando el nombre de archivo como valor hash. Otra característica en la que se basa la ubicación es, por ejemplo, el número de duplicados del archivo.

Nota

El valor hashes una secuencia de caracteres que resulta de procesar una entrada de datos mediante operaciones computacionales. Una representación sencilla del proceso sería, por ejemplo, sumar las cifras que componen los datos primarios. En realidad, naturalmente, se usan algoritmos altamente complejos que generan una huella digital inequívoca a partir de largas secuencias de datos. El resultado tiene siempre la misma longitud compacta y no contiene caracteres no deseados, por lo que también sirve para procesar nombres de archivo.

Para garantizar la seguridad de los datos, al nivel del OSD se utiliza un journaling. Allí se guardan temporalmente los archivos que se pretende almacenar mientras se espera a que se ubiquen correctamente en todos los OSD previstos.

Acceso a los datos guardados

La base del almacenamiento de datos en Ceph se llama RADOS (a reliable, distributed object store comprised of self-healing, self-mapping, intelligent storage nodes), es decir, una memoria fiable y distribuida compuesta por nodos de almacenamiento inteligentes que se autorregeneran y se autoorganizan.

Se puede acceder a los archivos guardados usando diferentes métodos:

  • librados: Se puede acceder a ellos de forma nativa usando la biblioteca librados a través de las interfaces de programación (API) con lenguajes de programación y de script como C/C++, Python, Java o PHP.
  • radosgw: Por esta gateway se pueden leer o escribir datos usando el protocolo de Internet HTTP.
  • CephFS: Se trata del sistema de archivos propio de Ceph, que se ajusta al estándar POSIX, ofrece un módulo de núcleo para los ordenadores que accedan y es compatible con FUSE (complemento al sistema de archivos, sin derechos de administrador).
  • RADOS Block Device: Se integra como memoria orientada a bloques a través de módulos de núcleo o sistemas virtuales como QEMU/KVM.

Alternativas a Ceph

La alternativa más conocida es GlusterFS, que también pertenece al distribuidor de Linux RedHat/RHEL y está disponible de forma gratuita. Gluster tiene un enfoque similar: unifica también las memorias distribuidas en un espacio de almacenamiento en la red. Como es de esperar, tanto una como la otra, GlusterFS y Ceph tienen sus ventajas e inconvenientes.

También existen otras alternativas gratuitas como, por ejemplo, XtremFS y BeeGfs. Para servidores Windows, Microsoft ofrece soluciones de almacenamiento comerciales basadas en software, entre las que se encuentra Storage Spaces Direct (S2D).

Ventajas e inconvenientes de Ceph

Si bien Ceph es la mejor opción en muchas situaciones, este método de almacenamiento no solo trae ventajas consigo.

Ventajas de Ceph

Ceph es gratuito y ya es una opción consolidada, a pesar de ser un proyecto relativamente joven. En la red se pueden encontrar, por lo tanto, numerosos manuales sobre cómo realizar las tareas de instalación y mantenimiento y, además, Ceph cuenta con muy buenas instrucciones de fabricante. La adquisición del proyecto por parte de RedHat indica que probablemente se seguirá desarrollando durante cierto tiempo. La escalabilidad y la redundancia integrada garantizan la seguridad de los datos y la flexibilidad en la red. Además, el algoritmo CRUSH asegura la disponibilidad de los datos.

Nota

Redundancia significa, en este contexto, exceso. En el ámbito de la informática son redundantes los datos guardados de más, repetidos. Se suele generar redundancia a propósito con el fin de garantizar la supervivencia de los datos en caso de avería, lo cual se puede conseguir tanto a nivel de software como de hardware: por un lado, pueden guardarse en la memoria datos o información relevante para la restauración de forma reiterada; por otro, se puede disponer de varios soportes físicos de almacenamiento para compensar la posible avería de uno de los ordenadores.

Inconvenientes de Ceph

Debido a la gran variedad de componentes que incluye, se requiere una amplia red para poder aprovechar los puntos fuertes de Ceph. Además, su instalación es relativamente costosa y de cara al usuario no siempre queda claro dónde se están guardando los datos exactamente.


Porque la unión hace la fuerza. En IONOS
#estamoscontigo
y por eso que queremos ayudarte a seguir impulsando
tu negocio. Diseña la tienda de tus sueños con:

eCommerce
Gratis durante los primeros 3 meses.