El documento describe las características y capacidades de Ceph, un sistema de almacenamiento de objetos distribuido de código abierto. Ceph puede escalar horizontalmente hasta el exabyte, no tiene puntos únicos de fallo, y funciona en hardware estándar. Utiliza un diseño descentralizado basado en objetos que puede exponer almacenamiento en forma de objetos, archivos o bloques.
17. Ceph: ¡Escalando hacia el exabyte!
○ Objetos, bloques y ficheros
○ Escala horizontalmente
○ No tiene un punto único de fallo
(SPOF)
○ Funciona en “commodity hardware”
○ Autogestionado
○ Open source (LGPL)
18. Ceph: ¡Escalando hacia el exabyte!
○ Objetos, ficheros y bloques. Ceph puede
exponer todo ellos al exterior
○ Todo esto se consigue gracias a: “Reliable
Autonomic Distributed Object Store
(RADOS)
20. Ceph: ¡Escalando hacia el exabyte!
Clientes Ceph: Se comunican directamente
con los OSD’s.
Ceph utiliza CRUSH para decidir dónde
colocar los datos.
23. Ceph: ¡Escalando hacia el exabyte!
○ Monitores: Contienen una copia maestra
del mapa del cluster
○ OSD’s: Actúan como dispositivos de
almacenamiento
24. Ceph: ¡Escalando hacia el exabyte!
El mapa del cluster contiene:
○ Mapa de los monitores
○ Mapa de los OSD’s
○ Mapa de los PG’s
○ Mapa CRUSH
○ Mapa MDS
25. Ceph: ¡Escalando hacia el exabyte!
CephX como mecanismo de autenticación:
○ Similar a Kerberos
○ Sin punto único de fallo. Cada monitor
puede crear y distribuir claves
28. Ceph: ¡Escalando hacia el exabyte!
Los clientes y los OSD’s
del cluster tienen
conocimiento de la
estructura del cluster
Los clientes pueden
hablar directamente
con los OSD’s
Los OSD’s pueden
utilizar sus recursos,
RAM y CPU, para
realizar las réplicas y
otras tareas.
29. Ceph: ¡Escalando hacia el exabyte!
El cliente escribe un
objeto en el OSD
primario y es el OSD el
que lo replica
30. Ceph: ¡Escalando hacia el exabyte!
Ceph soporta el
concepto de “pools”
particiones lógicas para
almacenar los objetos
31. Ceph: ¡Escalando hacia el exabyte!
Ceph “mapea” cada
escritura a un
placement group (PG) y
cada PG a un OSD
32. Ceph: ¡Escalando hacia el exabyte!
Para calcular a que PG tiene que ir un
objeto:
○ ID de la Pool y el objeto
○ hash(id_objeto)
○ modulo(hash(id_objeto))
○ ID Pool.modulo(hash(id_objeto))
33. Ceph: ¡Escalando hacia el exabyte!
Cuando se añade un
nuevo OSD, el mapa
del cluster cambia y
Ceph PG’s
34. Ceph: ¡Escalando hacia el exabyte!
Ceph soporta
igualmente “Erasure
Coding” donde cada
objeto se guarda en “K”
trozos de datos y “M”
trozos de paridad”
35. Ceph: ¡Escalando hacia el exabyte!
Utilizar la técnica del
“erasure coding”
permite utilizar de
forma más eficiente el
almacenamiento a
costa del rendimiento
Ejemplo:
○ N = k + m
○ 5 = 3 + 2
○ Encoding Rate “R” =
3 / 5 = 0.6
○ Almacenamiento
requerido = 1 / r =
1.6
36. Ceph: ¡Escalando hacia el exabyte!
Aún con todo, Ceph no
es perfecto. Cada
escritura implica dos
escrituras.
37. Ceph: ¡Escalando hacia el exabyte!
Para mejorar el
rendimiento han
desarrollado BlueStore
Utilizando una
pequeña partición para
metadatos, permite
utilizar el resto del
dispositivo sin un
sistema de ficheros
(RAW)
Mejorará el
rendimiento de forma
sustancial.