GlusterFS vs. Ceph: los dos sistemas de almacenamiento cara a cara
Los sistemas de almacenamiento distribuido son la solución para almacenar y gestionar datos que no caben en un servidor convencional. En este sentido, el tamaño no es el único problema, sino que los sistemas de archivos clásicos, con su estructura en carpetas, tampoco son compatibles con datos sin estructurar.
Guardar grandes conjuntos de datos: GlusterFS y Ceph lo hacen posible
Cuando hablamos de macrodatos o big data, la cantidad de datos que se tendrá que gestionar no se conoce al principio del proyecto. Por lo tanto, los sistemas deben poder ampliarse fácilmente, sin dejar de funcionar, con servidores adicionales que puedan integrarse sin obstáculos en el sistema de almacenamiento dado. El llamado Distributed File System (sistema de archivos distribuido) se muestra al usuario como una sencilla carpeta de un sistema de archivos tradicional, de manera que dicha persona no intuye que los datos sueltos o, incluso, partes de ellos, pueden estar ubicados en servidores diferentes que, quizá, se encuentren en puntos geográficos alejados entre sí. Puesto que tanto GlusterFS como Ceph son ya capas de software en sistemas operativos Linux, no requieren características adicionales en el hardware. Linux funciona en cualquier servidor estándar y es compatible con todos los discos duros habituales en el mercado.
La alta disponibilidad es clave
El alto nivel de disponibilidad es una cuestión importante en las soluciones de almacenamiento distribuido: han de evitarse las averías del hardware tanto como sea posible y la ejecución del software que hace funcionar el sistema no debe interrumpirse ni cuando se añadan nuevos componentes, ni cuando sea necesario realizar trabajos de mantenimiento. Los metadatos importantes no pueden estar guardados en una sola ubicación central, sino que se debe poder acceder a ellos de forma descentralizada y no debe quedar ningún elemento sin redundancia. En caso de una avería del servidor, el conjunto del sistema nunca ha de estar en peligro. GlusterFS y Ceph son sistemas para albergar datos de proyectos de big data en un mismo sistema y poder filtrarlos desde allí. Ambos pueden ampliarse prácticamente tanto como se quiera, pero se basan en planteamientos distintos.
El término big data (macrodatos, datos masivos) alude a cantidades, más bien masas de datos muy grandes, complejas y sin apenas estructura, como las que se recogen en ciertos sensores con fines científicos (los satélites de GPS, por ejemplo) o en sistemas meteorológicos o estadísticos. En el ámbito de los big data, además del almacenamiento, la eficiencia en la búsqueda y la organización sistemática de los datos tienen un papel clave.
Breve presentación de GlusterFS
GlusterFS es un sistema de archivos distribuido con una estructura modular, en el cual varios servidores se conectan entre sí mediante una red TCP/IP. Puesto que se trata de un sistema compatible con POSIX (Portable Operating System Interface), GlusterFS se puede integrar fácilmente en entornos de servidor Linux, al igual que FreeBSD, OpenSolaris y macOS, que también son compatibles con POSIX. La integración en entornos Windows, sin embargo, por ahora solo es posible por vía indirecta mediante un servidor Linux que haga de gateway.
¿Cómo funciona GlusterFS?
GlusterFS empezó siendo un sistema de almacenamiento clásico, basado en archivos. Más tarde pasó a ser orientado a objetos y al hacer el cambio se le dio una especial importancia a que pudiese integrarse adecuadamente en la conocida solución de código abierto OpenStack. En un segundo plano, GlusterFS sigue trabajando con archivos: a cada archivo se le asigna un objeto y la conexión entre ellos se establece mediante hardlinks en el sistema de archivos. De cara al usuario, no se muestra ningún servidor dedicado, sino que él o ella dispone de sus propias interfaces para guardar sus datos en GlusterFS, que se presenta como un único sistema.
Ventajas | Inconvenientes |
---|---|
Fácil de integrar en sistemas Linux | Integración en sistemas Windows solo por vía indirecta |
Compatible con POSIX | |
Compatible con FUSE (File System in User Space) |
Breve presentación de Ceph
La solución open source de almacenamiento distribuido Ceph es una memoria orientada a objetos basada en objetos binarios y que, por lo tanto, evita las rígidas estructuras en bloque de los soportes de datos convencionales. En términos de hardware, Ceph también utiliza discos duros, pero un algoritmo se encarga de gestionar los objetos binarios, que están divididos en numerosas partes y repartidos entre muchos servidores, pero vuelven luego a unificarse.
¿Cómo funciona Ceph?
Todos los componentes funcionan de manera descentralizada. Todos los OSD (Object Based Storage Device, es decir, los dispositivos de almacenamiento de objetos) tienen los mismos derechos. De esta forma, se pueden conectar entre sí tantos servidores como se quiera, con sus diferentes discos duros, para formar un sistema de almacenamiento unificado. A través de tres interfaces importantes, Ceph ofrece diferentes posibilidades para integrarlo en el entorno de sistema del que se disponga: CephFS como controlador del sistema de archivos de Linux, RADOS Block Devices (RBD) como dispositivo Linux, que puede integrarse directamente; y RADOS Gateway, compatible con Swift y Amazon S3.
Ventajas | Inconvenientes |
---|---|
Fácil de integrar en todos los sistemas, al margen del sistema operativo | Menor calidad de las funciones de sistema de archivos |
Dispositivo orientado a bloques para Linux | Mayor esfuerzo de familiarización con las estructuras de almacenamiento, que son totalmente nuevas |
Sistema de archivos CephFS para Linux | |
Interfaz de Amazon S3 | |
Perfecta integración con la autenticación de Keystone | |
Módulo FUSE (File System in User Space) para que sea compatible con sistemas sin cliente CephFS |
Comparación: GlusterFS vs. Ceph
Puesto que hay varias diferencias técnicas entre GlusterFS y Ceph, no hay un claro ganador. En principio, Ceph es un sistema de almacenamiento basado en objetos para datos no estructurados, mientras que GlusterFS utiliza sistemas de archivo en forma de árbol en dispositivos basados en bloques. GlusterFS tiene su origen en un sistema de almacenamiento altamente eficiente y basado en archivos, pero que se va desarrollando cada vez más orientándose a objetos. Ceph, en cambio, se desarrolló originalmente como dispositivo de almacenamiento de objetos (object storage) binario, no como un sistema de archivos clásico. Esto puede dar lugar a puntos débiles en las operaciones típicas de los sistemas de archivo tradicionales.
GlusterFS | Ceph |
---|---|
Mejor en sistemas de archivos | Mejor en el almacenamiento de objetos |
Algoritmo de almacenamiento más rápido | Mejor rendimiento en hardware sencillo |
No requiere un servidor central de metadatos | Fácil de integrar en todos los sistemas, al margen del sistema operativo |
Menor complejidad | Dispositivo orientado a bloques para Linux |
Más adecuado para almacenar datos de gran tamaño (a partir de unos 4 MB por archivo) | Adaptaciones más sencillas a las necesidades del cliente |
Más adecuado para archivos con acceso secuencial | Compatible con RADOS |
¿Cuándo conviene utilizar cada sistema?
Ceph, gracias a sus variadas interfaces, funciona bien en redes heterogéneas, en las que no solo se utiliza Linux, sino también otros sistemas operativos. El punto fuerte de GlusterFS, en cambio, es el almacenamiento de grandes cantidades de datos en formato tradicional, así como de datos de gran tamaño. Puesto que Ceph se desarrolló desde un primer momento como solución open source, en el pasado resultaba más fácil utilizarlo en muchos casos, hasta que GlusterFS también pasó a ser de código abierto. Un ámbito de aplicación muy relevante para los sistemas de almacenamiento distribuido son los servicios en la nube. En este sentido, OpenStack es uno de los proyectos de software más importantes que ofrecen arquitecturas para computación en la nube. Ambos, GlusterFS y Ceph, funcionan igual de bien con OpenStack.