Podcast de Redes de Eduardo Collado
Introducción a Ceph
Ya hemos dedicado dos capítulos a temas relacionados con Ceph, por un lado Alta disponibilidad en Cluster de Proxmox con Ceph y por otro lado Ceph en Proxmox, pero no habíamos dedicado ningún capítulo específico para hacer de una Introducción a Ceph.
¿Qué es Ceph?
Lo primero será decir que Ceph es un sistema unificado que ofrece almacenamiento por bloques, por ficheros y por objetos.
* Almacenamiento por bloques con RBD (RADOS Block Device).* Almacenamiento por ficheros con CephFS.* Almacenamiento por objetos con RADOS Gateway (Compatible con S3).
RADOS significa Reliable Autonomous Distributed Object Store.
Los clientes establecerán las conexiones con los OSDs, lo cual también elimina cualquier punto único de cuello de botella.
* OSD: Object Storage Daemons
Y la distribución de la información se realiza mediante CRUSH que es un algoritmo para almacenar la información en el cluster, es decir, la información se almacena de forma ordenada gracias a este algoritmo, es totalmente predecible.
* CRUSH: Controlled Replication Under Scalable Hashing.
Es importante comentar que Ceph es un sistema SDS (Software Defined Storage)
¿Cómo funciona Ceph?
El punto central de Ceph es RADOS (Reliable Autonomous Distributed Object Store) y el nivel de RADOS consiste en el número de OSDs (Object Storage Daemons).
Cada OSD normalmente está mapeado a un único disco. Cada OSD es totalmente independiente y forma relaciones peer-to-peer para formar un cluster con otros OSDs.
Otro componente en un cluster de Ceph son los monitores, los cuales son los encargados de formar el consenso o quorum del cluster a través del uso de Paxos.
* Paxos es un algoritmo para el consenso distribuido, para formar el quorum.
Los monitores no están involucrados en la decisión de por donde va a ir la información y no tienen los mismos requisitos de rendimiento que los OSDs.
Los cluster maps se utilizan por los componentes del cluster de ceph para describir la topología del cluster.
Por último tenemos al manager que es el responsable de la configuración y las estadísticas.
Como ya hemos comentado el algoritmo encargado de situar los grupos dentro de los OSDs es CRUSH.
En último lugar tenemos a librados que es una librería de ceph que puede ser utilizada para construir aplicaciones que interactúen directamente con el cluster de RADOS para almacenar y recuperar objetos.
Discos
Hay que tener en cuenta que la elección de los discos adecuados es una decisión muy importante dentro de Ceph y no todos los discos son iguales.
Hay gente que considera que poner SSDs es suficiente, pero puede ser hasta contraproducente poner según qué discos SSD.
Por poner un ejemplo en discos SSD el bloque de flash normalmente es de 128k y aunque sólo queramos escribir 4 k en ellos el bloque entero tiene que ser leído y luego escrito, esto lleva mucho tiempo.
Los discos buenos tienen una memoria y un firmware que se encarga de estas tareas, por tanto nos podemos desentender, sin embargo los discos SSD de consumo domestico no hacen esto y es el procesador el que tiene que encargarse de esto, con lo que el rendimiento se viene abajo.