Hasta hace unos años los sistemas eran máquinas que compartían espacio de almacenamiento en una cabina de disco, bien fuera la de los fabricantes al uso como Synology o Qnap, o bien a los de las cabinas Enterprise como HP, Dell, Netapp, etc.
Con la llegada de la virtualización, los sistemas evolucionaron posibilitando que en lugar de un servidor, fuera el hipervisor el que se conectaba al almacenamiento usando las mismas tecnologías de antaño (NFS, CIFS, iSCSI, etc.).
Esto podríamos contemplarlo como un “legacy” de los sistemas basados en máquinas físicas, pero con el tiempo, las empresas pioneras en la virtualización, han visto que esto era un eslabón débil en la fiabilidad, ya que un fallo en la cabina de almacenamiento podría dejar “tumbado” todo el sistema de virtualización.
Los pioneros a los que me refiero son VMware con su VSAN, Nutanix con su solución de almacenamiento y Proxmox con Ceph.
¿Pero que solución es esta?
Básicamente la solución consiste en usar discos de los nodos que componen los hipervisores de la solución de virtualización como un sistema de almacenamiento replicado a lo largo de todos ellos.
De esta forma si tenemos la suficiente redundancia, han de caerse dos o más nodos para tener un problema de almacenamiento, lo cual es bastante improbable (siempre y cuando hagamos las cosas medianamente bien en nuestra infraestructura).
Las soluciones de VMware y Nutanix son propietarias, y por lo tanto hay que ceñirse a adquirir la licencia del sistema de virtualización (que no es barata), y en el caso de VMware, la licencia de VSAN (que además encarece el precio de la solución bastante).
Por eso, hago hincapié en que Ceph que está basado en código abierto, y que es usado «por mi querido Proxmox», además de Red Hat e IBM entre otras, parece ser la solución.
Y no solo por estas empresas, hay soluciones Ceph sin usar el sistema de virtualización, es decir como un sistema de almacenamiento “standalone”, que puedes montar usando sus repositorios, o bien soluciones con asistentes de instalación como PetaSAN o Croit. Aunque desde luego, la instalación de Ceph desde los repositorios es muy simple, siempre hay gente que tiene miedo a la “pantalla negra”.
Proxmox ha hecho que la instalación de Ceph sea muy sencilla, aunque está integrada con el sistema de hipervisores y clusters de Proxmox. Pero vamos a ver un poco más en profundidad Ceph.
¿Qué es Ceph?
Ceph es un sistema de almacenamiento distribuido de código abierto diseñado para manejar petabytes de datos de manera eficiente y confiable. Está diseñado para el uso con gran cantidad de datos, muy enfocado para el uso con Big Data. Ceph se basa en una arquitectura descentralizada que utiliza clusters de nodos para almacenar y gestionar datos de forma distribuida. Este modo de almacenar los datos de forma distribuida permite a Ceph ser un sistema robusto sin ningún punto único de fallo. Los datos tienen replicación libre de errores, haciéndolo, por tanto, tolerante a fallos.
La arquitectura distribuida de Ceph garantiza una alta disponibilidad y redundancia, haciéndolo un sistema muy fiable para el almacenamiento. Los datos se replican automáticamente a través de múltiples nodos en el cluster, lo que protege contra la pérdida de datos en caso de fallos de hardware o de red. Además, Ceph utiliza algoritmos avanzados de recuperación de errores para detectar y corregir posibles problemas de manera proactiva, minimizando así el riesgo de pérdida de datos. Normalmente Ceph se configura en clusters de, al menos, tres nodos, cinco o siete (siempre impares).
Pero además de seguridad y disponibilidad, ¿Qué más me ofrece Ceph?
Escalabilidad y flexibilidad
Una de las principales ventajas de Ceph es su capacidad para escalar de manera horizontal sin interrupciones ni tiempos de inactividad.
En Ceph, puedes agregar discos (OSD) o incluso quitarlos, aumentando o disminuyendo la capacidad de almacenamiento, todo ello sin apagar ni un solo nodo del cluster.
Además de esto, también es posible agregar más nodos al cluster, todo ello sin parar en ningún momento el almacenamiento. Todo esto garantiza que los sistemas puedan adaptarse rápidamente a las crecientes demandas de datos o bien disminuirlas si fuera preciso.
Ceph ofrece una gran flexibilidad en términos de configuración y soporte para una variedad de interfaces de almacenamiento, incluyendo bloques, archivos y objetos. Esto permite elegir la configuración que mejor se adapta a tus necesidades específicas y aprovechar las ventajas de diferentes tipos de almacenamiento según sea necesario
Ceph es el sistema utilizado en una amplia variedad de casos de uso, desde el almacenamiento de archivos mediante CephFS, la virtualización e incluso las copias de seguridad.
Los componentes clave de Ceph
Object Storage Daemon (OSD):
Los OSDs son el componente fundamental de Ceph. Cada OSD es responsable de almacenar datos, manejar operaciones de lectura/escritura y replicar datos según sea necesario para garantizar la integridad y la disponibilidad. Los OSDs son escalables horizontalmente y pueden distribuirse en diferentes nodos físicos en el clúster. Utilizan un sistema de archivos propio llamado BlueStore para la gestión eficiente de datos en disco.
Monitor (MON)
Los Monitores son los encargados de mantener la información de estado y configuración del cluster. Mantienen mapas de distribución de objetos y administran la información de autenticación y autorización para garantizar la seguridad de los datos y el acceso adecuado al clúster. Los Monitores también son escalables y tolerantes a fallos, ya que se pueden ejecutar en varios nodos para evitar puntos únicos de fallo. No es recomendable implantar más de tres en una configuración estándar, independientemente del número de nodos del Cluster.
Cluster Manager (Manager)
Este gestor es el encargado de monitorizar y gestionar el estado del clúster en su conjunto. Proporciona información sobre el rendimiento, la utilización de recursos y la salud del clúster, lo que permite a los administradores realizar un seguimiento de su funcionamiento y tomar decisiones sobre el estado, la capacidad y la escalabilidad del mismo.
Componentes opcionales
Metadata Server (MDS)
Este componente es el que se utiliza en entornos que requieren almacenamiento de archivos. Proporciona un espacio de nombres unificado y maneja las operaciones relacionadas con la gestión de archivos, como la creación, eliminación, renombrado y búsqueda de archivos al igual que lo hace cualquier gestor de ficheros convencional como puede ser NTFS, FAT, ext4, etc.
Rados Gateway (RGW)
Este componente permite el acceso a los datos almacenados en Ceph a través de interfaces de almacenamiento de objetos compatibles con S3, NFS, Samba y otros protocolos.
Funcionamiento de Ceph
Cuando se envía un dato para ser almacenado en Ceph, el cliente lo divide en fragmentos más pequeños llamados objetos.
Estos objetos se distribuyen entre los OSDs disponibles en el clúster. Ceph utiliza un algoritmo de distribución de datos para garantizar que los objetos se coloquen de manera equitativa y eficiente en los nodos y en función del tamaño de los OSD (que es recomendable que sean iguales, pero pueden tener tamaños diferentes).
Los OSDs replican los objetos según la política de replicación configurada para garantizar la disponibilidad y la tolerancia a fallos. Normalmente, cada objeto tiene múltiples réplicas distribuidas en diferentes nodos.
Por lo general, la política de réplica es de mantener tres copias de cada dato para garantizar la fiabilidad de la información almacenada.
Si se produce un fallo en uno de los OSDs o en un disco, Ceph activa automáticamente un proceso de reparación para reemplazar la réplica perdida. Este proceso puede incluir la creación de una nueva réplica en otro OSD para restaurar la redundancia y mantener la integridad de los datos.
Como podemos ver en la imagen, el proceso de replicación copia los datos en el primer disco y a su vez, los datos se replican en otros 2 OSD (Réplica 3), cuando el dato se ha comprobado, la operación se da por finalizada correctamente.
Deja una respuesta