Currently viewing the category: "Storage"

Hoy vamos a ver como usar un sistema de archivos (File system) en un clúster de storage distribuido con Ceph. Ya vimos anteriormente los procedimientos para su instalación. También vimos como usar un dispositivo por bloques RBD en Ceph.

Tal como vimos en el procedimiento de instalación, para usar este sistema se requiere un servidor de Metadatos instalado.

Ahora ya podemos crear un nuevo File system. Dependiendo de los OSD indicaremos un valor u otro de pg_num (Placement group), en nuestros ejemplos tenemos 4 OSD, con lo cual usaremos el valor 128.

Ahora ya tenemos un File system creado y nos queda montarlo desde una instancia cliente cualquiera para guardar los datos. Debemos obtener el usuario y clave para autenticarnos.

Ahora ya tenemos un recurso File system de Ceph por red. Seria parecido a un servidor NFS que exporta un directorio. Solo nos queda llenarlo con nuestros archivos y los tendremos almacenados en nuestro clúster de storage distribuido Ceph.

Hoy vamos a ver como usar un dispositivo por bloques (Block device) en un clúster de storage distribuido con Ceph. Ya vimos anteriormente los procedimientos para su instalación.

Para entenderlo fácilmente, un dispositivo por bloques es un disco duro. Pero en este caso vamos a usar un dispositivo por bloques del clúster Ceph distribuido. Todo ello lo haremos desde la instancia cliente preparada a tal efecto, cephcli que vinos en entradas anteriores.

Ya tenemos el dispositivo mapeado en /dev/rbd0.

Podemos ver mejor como es el mapeo por nombres aquí:

Ahora ya podemos formatear y montar el dispositivo por bloques, como si fuera una partición de un disco duro de toda la vida en Linux.

Ahora ya podemos empezar a usar nuestro dispositivo por bloques en el clúster Ceph. Por ejemplo añadiremos un archivo de 1G y vamos a ver qué información podemos ver fácilmente.

Tenemos muchas posibilidades con los dispositivos por bloques RBD. Para mas ayuda utilizar el «man rbd» del comando y «rbd -h«.

Otro ejemplo sencillo seria desmontar el dispositivo por bloques RBD y desmapearlo de la instancia cephcli, veamos como.

Recuerda que también puedes usar el recurso Ceph File system para almacenar datos sin usar un dispositivo por bloques.

Seguimos con la serie de entradas dedicadas al clúster Ceph. Anteriormente vimos una pequeña introducción para preparar el entorno de instalación.

Es importante tener los requisitos de la anterior entrada correctos para realizar una instalación satisfactoria y sin problemas. Empezamos la instalación con el ceph-deploy desde el nodo cephadm.

Ahora ya tenemos los paquetes de Ceph instalados en todos los nodos y el monitorizador preparado. Seguidamente vamos a añadir los discos extras (/dev/sdb) de cada nodo OSD al clúster.

Primero analizaremos los discos que hay en el nodo ceph1 donde veremos que el /dev/sda está particionado y corresponde al sistema operativo y /dev/sdb no contiene particiones y es el disco que vamos a utilizar para el clúster Ceph.

Ya podemos preparar y añadir los discos al clúster de Ceph. Lo haremos desde el nodo cephadm.

Seguimos, vamos a copiar los archivos de configuración en todos los nodos y poner los permisos correctos a la clave privada.

Solo si vamos a usar Ceph Filesystem necesitamos un servidor de Metadatos, para ello lo instalaremos en el mismo servidor de monitorización cephadm.

Solo si vamos a usar Ceph Object Gateway necesitamos un RGW (Radow Geteway), para ello lo instalaremos en el mismo servidor de monitorización cephadm.

Ahora ya podemos ver desde el nodo monitorizador cephadm el estado del clúster.

Por último y en caso de reiniciarse un nodo OSD, añadimos los puntos de montaje en sus /etc/fstab para que al arrancar se vuelvan a conectar el clúster Ceph.

Ya tenemos el clúster de Ceph instalado y preparado para empezar a utilizarse. Veremos en la próxima entrada como empezar a trabajar con los datos del clúster.

Vamos a ver como instalar un clúster de storage distribuido con Ceph. Se trata de una guía para pruebas, jugar con él, familiarizarse y perder el miedo. No pretende ser una guía para sitios en producción de alto rendimiento.

Ceph permite trabajar con tres formatos de storage.

  • Block device: dispositivo por bloques, como tener un disco duro asignado pero distribuido
  • File system: disponer de un punto de montaje como si fuera un recurso NFS
  • Object Storage: almacenamiento de objectos como AWS S3

Vamos a utilizar las siguientes instancias.

cephadm 192.168.8.100 Nodo para hacer el deploy y ser el monitorizador del clúster
ceph1 192.168.8.101 Nodo de datos 1, llamado OSD
ceph2 192.168.8.102 Nodo de datos 2, llamado OSD
ceph3 192.168.8.103 Nodo de datos 3, llamado OSD
ceph4 192.168.8.104 Nodo de datos 4, llamado OSD
cephcli 192.168.8.105 Nodo cliente para acceder al storage proporcionado por el clúste

Destacar que cada nodo OSD, aparte de tener su disco para el sistema operativo, tienen un disco extra que vamos a dedicar al contenido de los datos distribuidos del clúster.

Para empezar, hay que añadir a todos los /etc/hosts de cada nodo la lista de hostnames e IPs para trabajar mas cómodamente. Eso en caso de no tener un servidor DNS interno.

Un detalle muy importante, el hostname del /etc/hosts que vamos a utilizar para realizar el ceph-deploy debe corresponder al hostname real de la instancia. De no ser así vamos a tener problemas con la instalación del clúster Ceph.

Ahora podemos empezar a preparar el entorno para el ceph-deploy. Lo vamos ha realizar en el nodo cephadm.

Seguimos la preparación añadiendo un usuario el cual utilizará el ceph-ceploy para conectarse a los otros nodos y realizar la instalación del clúster Ceph.

Otro detalle muy importante, no vamos a crear el usuario ceph, ya que entraría en conflicto con la instalación y volveríamos a tener problemas.

Vamos a realizar lo mismos pasos en todos los nodos.

Seguimos preparando el entorno para conectarnos remotamente con el ceph-deploy a través de SSH y con permisos de sudo en todos los nodos.

Los siguientes comandos únicamente los añadimos al nodo cephadm.

Ahora para evitar especificar el usuario cephadm en las conexiones SSH del ceph-deploy añadimos lo siguiente en el nodo cephadm.

Ya tenemos todos los nodos preparados y listos para empezar a instalar el clúster Ceph con la herramienta ceph-deploy. Veremos en la próxima entrada como realizar el procedimiento de instalación.