Ceph: The Storage System of the Future
-
Upload
datio-big-data -
Category
Engineering
-
view
318 -
download
4
Transcript of Ceph: The Storage System of the Future
123
1. RAID y sus diferentes niveles
“RAID: Redundant Array of Independent Disks
RAID Y SUS NIVELES
○ Tradicionalmente se ha utilizado RAID como solución de almacenamiento
RAID Y SUS NIVELES
○ RAID utiliza diferentes niveles para obtener redundancia y/o rendimiento
○ RAID 0, 1, 5, 6...
RAID Y SUS NIVELES
○ RAID NO ESCALA
● Los tiempos de reconstrucción crecen cada vez más
● Las probabilidades de fallo aumentan drásticamente
RAID Y SUS NIVELES
Fuente: ActualTech
http://www.actualtech.io/really-outgrown-raid/
RAID Y SUS NIVELES
Fuente: ActualTech
http://www.actualtech.io/really-outgrown-raid/
RAID Y SUS NIVELES
○ ¿Qué alternativas tengo?
● Sistemas de ficheros distribuidos
● “Appliances” de diferentes fabricantes
● Ceph
2. ¡Escalando hacia el exabyte!
“¡CEPH NO ES UN SISTEMA DE
FICHEROS!
“¡CEPH ES UN SISTEMA DE
ALMACENAMIENTO DE OBJETOS!
Ceph: ¡Escalando hacia el exabyte!
Ceph: ¡Escalando hacia el exabyte!
Ceph: ¡Escalando hacia el exabyte!
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)
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)
Ceph: ¡Escalando hacia el exabyte!
Ceph: ¡Escalando hacia el exabyte!
Clientes Ceph: Se comunican directamente con los OSD’s.
Ceph utiliza CRUSH para decidir dónde colocar los datos.
Ceph: ¡Escalando hacia el exabyte!
Ceph: ¡Escalando hacia el exabyte!
○ Estructura básica: Monitores y OSD’s
Ceph: ¡Escalando hacia el exabyte!
○ Monitores: Contienen una copia maestra del mapa del cluster
○ OSD’s: Actúan como dispositivos de almacenamiento
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
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
Ceph: ¡Escalando hacia el exabyte!
Ceph: ¡Escalando hacia el exabyte!
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.
Ceph: ¡Escalando hacia el exabyte!
El cliente escribe un objeto en el OSD primario y es el OSD el que lo replica
Ceph: ¡Escalando hacia el exabyte!
Ceph soporta el concepto de “pools” particiones lógicas para almacenar los objetos
Ceph: ¡Escalando hacia el exabyte!
Ceph “mapea” cada escritura a un placement group (PG) y cada PG a un OSD
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))
Ceph: ¡Escalando hacia el exabyte!
Cuando se añade un nuevo OSD, el mapa del cluster cambia y Ceph PG’s
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”
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
Ceph: ¡Escalando hacia el exabyte!
Aún con todo, Ceph no es perfecto. Cada escritura implica dos escrituras.
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.
Ceph: ¡Escalando el exabyte!
Ceph: ¡Escalando hacia el exabyte!
Casos de uso
Ceph: ¡Escalando hacia el exabyte!
Ceph integrado en Atlantis (Cinder)
Reducción de costes de almacenamiento y mayor rendimiento
Ceph: ¡Escalando hacia el exabyte!
Totalmente integrado en OpenStack: VM’s, bloques, objetos y CephFS
Ceph: ¡Escalando hacia el exabyte!
Ceph: ¡Escalando hacia el exabyte!
Opciones de monitorización:
○ Calamari○ InkScope○ Grafana
Ceph: ¡Escalando hacia el exabyte!
Ceph: ¡Escalando hacia el exabyte!
Ceph: ¡Escalando hacia el exabyte!And now...
3. Pequeño tutorial sobre Ceph
Ceph: Tutorial
Primeros pasos:○ Instalar Vagrant y VirtualBox○ Instalar Git (https://goo.gl/Xoj9FF)○ Instalar los plugins de Vagrant:
● Vagrant-cachier● Vagrant-hostmanager