Primeros pasos con CEPH
Transcripción
Primeros pasos con CEPH
Primeros pasos con CEPH Julio Lozano Bahilo Instituto de Física Corpuscular U.A.M., Madrid, 17 Octubre 2016 1. Características ● ● CEPH es un sistema de almacenamiento distribuido ... – escalable. Cualquier componente tiene que ser fácilmente redimensionado – sin puntos débiles únicos. Todo componente crítico tiene que sobreponerse a fallos – basado en software, abierto y adaptable – operativo con hardware usual – fácil de administrar y gestionar (en lo posible) CEPH es un sistema basado en objetos ® independiente de arquitectura y hardware; permite alcanzar el exabyte de almacenamiento ● CEPH ofrece una solución unificada: – servidor de objetos – almacenamiento en bloques – sistema de ficheros Madrid, 17-Octubre-2016 Julio Lozano Bahilo 2 2. Configuración básica ● ● CEPH requiere de: – Monitor: mantiene un mapa de la estructura del cluster en cada momento – Nodos OSD: albergan los Object Storage Daemons que almacenan los datos, efectúan su replica, su recuperación y el balanceo de carga entre OSDs, etc … Se ejecutan en los servidores de almacenamiento. – MDS: MetaData Server que se ocupa de los metadatos para el CEPH Filesystem. – RADOSGW: Gateway que facilita conexiones externas a la red local CEPH implementa: – CRUSH (Controlled Replication Under Scalable Hashing): algoritmo que calcula donde y qué OSD debe almacenar un objeto. Gracias a este algoritmo CEPH puede reescalarse, balancearse y recuperar datos de forma dinámica. – RADOS (Reliable Autonomic Distributed Object Store) Block Device (RBD) protocol para acceder a discos distribuidos desde clientes Linux. – CEPH FS: sistema de fichero POSIX que admite cuotas, pero con algunas limitaciones. – API (librados, librbd, libcephfs, librgw): en diversos lenguajes de programación para acceder a CEPH desde clientes (c, c++, python, ...). También una API RESTful compatible con S3 (Amazon) y Swift (OpenStack) Madrid, 17-Octubre-2016 Julio Lozano Bahilo 3 3.a Instalación 1. En un sistema Linux instalamos el paquete ceph-deploy y en un directorio creado para alojar los ficheros de configuración designamos a esta máquina como monitor $ ceph-deploy new monserver0 2. Instalamos el sistema operativo incluyendo ssh en una serie de servidores de disco que incluiremos en una misma red local. Habilitamos la conexión por ssh sin pwd. 3. Transferimos el software necesario para poder activar cada nodo OSD y el monitor: $ ceph-deploy install monserver0 osdserver0 osdserver1 4. Habilitamos el monitor $ ceph-deploy mon create-initial Madrid, 17-Octubre-2016 Julio Lozano Bahilo 4 3.b Instalación 5. Creamos los OSDs $ ceph-deploy disk zap osdserver0:sdb $ ceph-deploy osd prepare osdserver0:sdb $ ceph-deploy osd activate osdserver0:sdb 6. Creamos • bien un pool de réplica con un número adecuado de Placement Groups (facilitan la localización de los objetos) $ ceph osd pool create replicatedpool0 200 200 replicated • bien un erasure coded pool que es más eficiente en cuanto a consumo de espacio en disco pero requiere más computo $ ceph osd set erasure-code-profile erasurecodeprofile0 ruleset k=2 m=1 –force $ ceph osd pool create erasurecodedpool 256 256 erasure erasurecodeprofile0 porción de datos porción de recuperación Madrid, 17-Octubre-2016 Julio Lozano Bahilo 5 3.c Instalación • bien creamos un dispositivo de bloques (block device) $ ceph osd pool create iscsipool 200 200 replicated $ rbd -p iscsipool create myimage -size 10240 Creamos con rbd un dispositivo de 10GB. Ahora podemos crear particiones en el nuevo dispositivo de bloques y un sistema de ficheros. Podremos escribir en él tras asignarlo a un punto de montaje. Madrid, 17-Octubre-2016 Julio Lozano Bahilo 6 4. Primeras impresiones ➢ Instalación sencilla ➢ Versatilidad en cuanto a las posibles opciones de almacenamiento ➢ Facilidad para el cliente a la hora de manejar datos (API y otras opciones) ➢ Réplica de ficheros es costosa en términos de espacio; habría que evaluar la opción erasure coded pool en términos de eficiencia de operación. ➢ CEPH FS es una opción que solo ha adquirido el grado de madurez en la última versión de CEPH y parece todavía algo limitado ➢ RADOSGW implementa un servicio de acceso remoto con una API compatible con S3 y Swift Madrid, 17-Octubre-2016 Julio Lozano Bahilo 7