Dispositivo de bloques

Esta funcionalidad permite que Ceph cree un espacio de almacenamiento que es presentado al cliente como un dispositivo de bloques (disco) al que se puede particionar, dar formato, clonar, realizar snapshots (instantáneas) y obviamente montar y usar como un disco cualquiera.

El siguiente esquema muestra cómo es un dispositivo de bloques generado en Ceph:

Block Device

rbd es el comando necesario para administrar dispositivos de bloques en el cluster.

Pedimos al cluster la creación de un dispositivo de bloques de 256MB.

# rbd create client1-rbd1 --size 256

Listamos los dispositivos de bloques disponibles

# rbd ls
ceph-client1-rbd1

Consultamos la información del dispositivo que creamos

# rbd --image client1-rbd1 info
rbd image 'client1-rbd1':
     size 256 MB in 64 objects
     order 22 (4096 kB objects)
     block_name_prefix: rb.0.1452.74b0dc51
     format: 1

Hacemos que el kernel Linux de nuestro cliente genere un dispositivo (/dev) que respresente el dispositivo en el cluster. Esta opción de mapeo requiere del módulo rbd cargado (modprobe rbd)

# rbd map --image client1-rbd1
/dev/rbd1

Podemos consultar los dispositivos que tenemos mapeados en nuestro cliente:

# rbd showmapped
id pool image             snap device
1  rbd  client1-rbd1   -    /dev/rbd1

Ahora tenemos un disco /dev/rbd1 que podemos utilizar de forma normal como cualquier disco:

# mkfs.ext2 /dev/rbd1

# mkdir /mnt/ceph-vol1

# mount /dev/rbd1 /mnt/ceph-vol1

Una vez montado podemos verificar con el comando mount o df -h la presencia y espacio del nuevo disco.

Y utilizarlo copiando datos dentro de él:

# cp -a /etc/* /mnt/ceph-vol1/