ceph: the storage system of the future

Post on 22-Jan-2018

318 Views

Category:

Engineering

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related