¿Qué es CephFS y cómo funciona?

11min

Si en tu empresa necesitas un servicio de almacenamiento masivo que ofrezca flexibilidad, seguridad y escalabilidad posiblemente te interese conocer CephFS. En este post te vamos a explicar en qué consiste y cómo funciona, sus características principales, requisitos de implementación y los beneficios que lo convierten en una alternativa muy deseable frente a otros sistemas de archivos tradicionales.

Índice

¿Qué es CephFS?

CephFS es básicamente un sistema de almacenamiento de archivos distribuido que ofrece características avanzadas en lo que respecta a flexibilidad y robustez.

Forma parte del ecosistema de Ceph, una conocida plataforma de almacenamiento distribuido. CephFS está diseñado para ofrecer acceso a datos de manera eficiente, segura y con alta disponibilidad, gracias a su tolerancia a fallos. Una de sus características principales es que permite que múltiples clientes utilicen un mismo espacio de almacenamiento como si fuera un sistema de archivos tradicional, aunque con todas las ventajas que nos ofrece contar con una infraestructura distribuida.

¿Cuál es la diferencia entre CEPH y CephFS?

Quizás te preguntes ¿Qué tienen de diferente CEPH y CephFS? En realidad Ceph es la plataforma de almacenamiento distribuido y CephFS es la interfaz para el acceso a los datos.

En CEPH existen además otras interfaces de almacenamiento como RADOS o RBD que tienen distintas características y usos, siendo CephFS una interfaz que sirve para montar Ceph como si fuera un sistema de archivos tradicional.

Características principales de CephFS

Ahora, para entender un poco mejor qué es CephFS, vamos a repasar sus características principales.

Arquitectura distribuida y sin punto único de fallo

La plataforma distribuida indica que los datos y metadatos se distribuyen entre múltiples nodos del clúster. Esto es ideal porque elimina la dependencia de un servidor central y además aumenta la robustez del sistema.

Por otra parte, sin punto único de fallo implica que, si un nodo o un disco se cae, el sistema sigue trabajando sin que se caiga todo el servicio. Eso se consigue porque el sistema no depende de un único componente para funcionar, gracias a que los datos y procesos están distribuidos y replicados.

Escalabilidad horizontal prácticamente ilimitada

La ventaja de CephFS es que podemos aumentar el sistema todo lo que queramos. Para ello solo hay que añadir más nodos de almacenamiento y metadatos, consiguiendo una escalabilidad progresiva que nos permite adaptarnos al crecimiento de las necesidades de la empresa.

Consistencia fuerte y alta disponibilidad de datos

El sistema de CephFS también nos asegura que los cambios realizados por un cliente estén disponibles de inmediato para el resto de los clientes. Esta replicación es automática y capaz de recuperarse ante fallos.

Soporte para múltiples clientes y sistemas operativos

Puedes usar CephFS en toda una gama de sistemas operativos. En Linux es nativo pero además puedes usarlo desde Windows o MacOS con las correspondientes tecnologías de acceso a sistemas de archivos de Linux como Samba o NFS. Además puedes usar otras plataformas como Docker para montar los sistemas de almacenamiento en diferentes entornos.

Integración con herramientas de monitorización y gestión

CephFS tiene la posibilidad de integrar el ecosistema de herramientas que funcionan en Ceph, para poder hacer la monitorización y la gestión de los recursos y clusters.

Seguridad mediante control de acceso y cifrado

La seguridad también es un punto muy cuidado en CephFS. El sistema soporta autenticación mediante CephX, que es un protocolo que permite el cifrado de datos en tránsito y el control de permisos de los datos almacenados.

¿Cómo funciona CephFS?

Sin necesidad de introducirse en demasiados aspectos técnicos, vamos ahora a explicar los puntos clave que necesitas conocer para entender el modo de operación de CephFS.

Arquitectura general de Ceph

Ceph se basa en el clúster RADOS que es el responsable de implementar el sistema distribuido de objetos de datos. Está formado por los componentes OSD (Object Storage Daemons) que son los procesos que se encargan de almacenar los datos en los discos y de manejar todas las operaciones relacionadas con esos datos.

Además, para asegurar la coherencia de los datos almacenados en el sistema tenemos los  Monitores que son los procesos que se encargan de mantener la visión global clúster.

Papel de los metadatos (MDS) y los datos en CephFS

Para poder funcionar como si fuera un sistema de archivos tradicional en CephFS se usan unos metadatos que mantienen la información sobre directorios, permisos y otras informaciones. Estos metadatos se gestionan mediante servidores especializados llamados MDS (Metadata Servers), que son independientes de los datos en sí, que son mantenidos por los OSD.

Comunicación entre clientes y el clúster Ceph

La comunicación entre clientes y el clúster de Ceph se realiza en dos etapas. Primero los clientes de CephFS acceden a los servidores MDS para saber dónde están los objetos y luego el cliente se comunica finalmente con los OSD para recuperar los datos que necesita obtener.

Este modelo de comunicación está optimizado para evitar cuellos de botella y mejorar el rendimiento y la tolerancia a fallos.

Beneficios de usar CephFS

Como hemos comentado anteriormente, existen varias ventajas de usar CephFS, como la escalabilidad y la tolerancia a fallos, a la vez que permite una razonable sencillez para los clientes. Entre sus muchas ventajas, estos son los puntos más importantes:

Escalabilidad y rendimiento

El sistema es completamente escalable, tal como habíamos mencionado ya. Pero además, al estar distribuido la carga se reparte entre los distintos clúster, lo que mantiene el rendimiento del sistema general.

Alta disponibilidad y tolerancia a fallos

También hemos mencionado ya la alta disponibilidad y la tolerancia a fallos que ofrece el sistema, gracias a la replicación y a la ausencia de un único punto de fallo.

Integración con almacenamiento en la nube y entornos híbridos

CephFS es muy flexible, ya que se adapta a numerosos tipos de infraestructuras y entornos. Funciona además en el cloud, en nubes privadas y entornos híbridos.

Flexibilidad para distintos tipos de aplicaciones

La flexibilidad del sistema también se encuentra en las numerosas aplicaciones disponibles e integraciones dentro de entornos empresariales tradicionales.

Requisitos para implementar CephFS

Para implementar CephFS debes comenzar por asegurarte de cubrir los siguientes requisitos:

Sistemas operativos compatibles

Aunque puede integrarse en muchos sistemas a través de librerías como cliente, para implementar los nodos de CephFS de manera natural necesitas tener servidores en Linux, sin importar las distribuciones.

Requisitos de hardware y red

Con respecto a los requisitos de las máquinas es bastante variable dependiendo de la tarea que se asigne al servidor. Es decir, no todos los servidores del sistema requieren los mismos requisitos, por ejemplo los servidores de metadatos corren en una única CPU, si están dedicados exclusivamente a esa tarea. Sin embargo, para correr RADOS en un nodo OSD ya es ideal contar con servidores de 5 a 6 cores. Por otra parte, los dedicados a monitorización podrían funcionar con máquinas más modestas.

Con respecto a RAM, cuanta más siempre es mejor. De todos modos, al menos necesitaríamos 4 GB para los OSD.

Para almacenamiento hay que contar también con discos rápidos, preferiblemente en base a tecnología SSD.

Por último se recomienda también contar con una red de datos de alta velocidad, que sea de 10 Gb o superior para minimizar la latencia en operaciones de entrada y salida de datos.

Configuración mínima recomendada del clúster

Sin embargo, todos los valores anteriores hay que llevarlos en consideración en el contexto de instalaciones de clústeres donde en total necesitaríamos bastante más potencia, repartida entre los servidores. En sumatorio podrás empezar con unos 16 cores y unos 64 GB de RAM para una instalación modesta, repartidos en:

  • 2 o 3 nodos de monitor.
  • Al menos 3 nodos OSD para asegurar replicación de datos.
  • Al menos 1 servidor MDS para la gestión de metadatos.

Instalación y configuración básica de CephFS

Realizar una instalación de CephFS puede ser bastante variable dependiendo de las necesidades, pero en términos generales necesitaremos hacer los siguientes pasos.

1. Preparar el entorno de Ceph

Antes de todo debemos instalar y configurar el clúster Ceph con sus componentes principales, que son servidores como los que hemos mencionado antes:

  • OSD, los Object Storage Daemon que almacenan los datos del sistema.
  • MDS, que son los servidores de metadatos.
  • MON, los servidores que mantienen el mapa del cluster de CephFS.
  • MGR, que puedes usar como complemento a los MON para implementar servicios adicionales de monitorización.

Consulta la documentación sobre CephFS para información más detallada.

2. Crear y montar un sistema de archivos CephFS

Una vez creado el clúster Ceph puedes realizar un pool de datos y un pool de metadatos. Para ello ya los comandos son sencillos.

ceph fs volume create myfs

Con este comando habrás creado el sistema de archivos, que luego podrás verificar con el siguiente comando:

ceph fs ls

Por último, podrás montar el CephFS en un cliente, paso que ya depende del tipo de cliente, pero en un servidor de Linux lo podrías hacer con este comando:

mount -t ceph {mon-ip}:{mon-ip},...:/ /mnt/cephfs -o name=usuario,secret=clave

3. Gestión de permisos y usuarios

Además de todo lo anterior, necesitarás usar el sistema de autenticación CephX, que implementa CephFS.

Esto te permitirá añadir un usuario con permisos específicos para poder acceder al sistema de archivos:

ceph auth get-or-create client.usuario mon 'allow r' osd 'allow rw pool=datos' mds 'allow'

Casos de uso de CephFS

Aunque ya te podrás hacer una idea, vamos a ver algunos casos de uso donde podrías sacarle especial partido a CephFS.

Almacenamiento de datos empresariales

El caso más típico sería utilizar CephFS como un sistema de almacenamiento para los datos de la empresa, que podría beneficiarse de las características de seguridad y tolerancia a fallos antes mencionadas.

Entornos de virtualización y contenedores (Kubernetes, OpenStack)

CephFS funciona de manera nativa en Linux, plataformas donde podemos utilizar también entornos de virtualización y contenedores. Gracias a CephFS podemos almacenar los datos de manera externa, lo que nos aporta mucha más flexibilidad y escalabilidad en las instalaciones.

Big Data y análisis de alto rendimiento

Otro marco ideal para CephFS es el uso en Big Data, Machine Learning y otras aplicaciones de IA. Gracias a su arquitectura distribuida puedes garantizar la escalabilidad de los sistemas y altas tasas de lectura / escritura, así como acceso concurrente.

Errores comunes y cómo solucionarlos

Mantener un clúster de CephFS requiere bastantes conocimientos técnicos sobre la plataforma Ceph y la administración de sistemas Linux. Si te dedicas a ello es posible que encuentres algunos problemas como los siguientes.

Problemas de conexión con los metadatos (MDS)

Si el servicio MDS no está activo o no tiene suficientes réplicas podrías verte con problemas de conexión con los metadatos. Si ocurre esto verifica el sistema de metadatos con este comando:

ceph mds stat

Si fuera necesario reinicia el servicio para comenzar desde cero.

Inconsistencias de datos o rendimiento bajo

Si tienes un pool de datos mal configurado o usas discos lentos podrías tener inconsistencias de datos o bajadas de rendimiento no deseables. También podría ocurrir en el caso que tengas cuellos de botella en las redes.

Revisa distribución de objetos de tu cluster y si fuera necesario añade nodos OSD, asegurando que tengan discos rápidos. También analiza la red para optimizarla si fuera necesario.

Soluciones de monitorización y logging

El propio Ceph proporciona un dashboard que puedes usar para adquirir métricas en tiempo real con las que acompañar tu instalación y su rendimiento. Pero además puedes integrarlo con otros sistemas de monitorización como Prometheus o Grafana, que te pueden aportar nuevas utilidades en lo que respecta a la visualización de los datos y la configuración de alertas.

Fernando Fuentes

Productos relacionados: