Configurando o Cliente RBD

Neste será apresentado como configurar o cliente em uma vm para acesso ao block storage do Ceph via RBD Client.



Desenhando apenas em um fluxograma simples o processo será realizado da seguinte forma :

Observando de uma forma mais técnica , a imagem abaixo apresenta melhor o processo dentro da infraestrutura do Ceph :

1. Ambiente

Será utilizado o ambiente de laboratório do site para este documento, segue os links :

Link do Laboratório
Deploy do Ceph

No laboratório será realizado deploy da vm client via Vagrant para instalação e testes do client RBD.

vagrant up client

2. Configuração do Client

Configure o usuário do Ceph

useradd -d /home/ceph -m ceph
echo "ceph" | passwd --stdin ceph
echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph
chmod 0440 /etc/sudoers.d/ceph
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
chown -R ceph.ceph /home/ceph
chmod -R 600 /home/ceph/.ssh/config

Copie as chaves ssh do ceph a partir da vm controller

[ceph@controller ~]$ ssh-copy-id client
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/ceph/.ssh/id_rsa.pub"
The authenticity of host 'client (192.168.0.10)' can't be established.
ECDSA key fingerprint is SHA256:YfqKEeU3TMMAsw10UBn3vKzDksYwnWkhhTDAEBOeEaI.
ECDSA key fingerprint is MD5:4a:d5:17:23:aa:df:9f:72:03:7d:58:9a:e1:fa:dc:41.
Are you sure you want to continue connecting (yes/no)? yes
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
ceph@client's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'client'"
and check to make sure that only the key(s) you wanted were added.

Realize deploy do client a partir da vm controller

ceph-deploy install <VM CLIENT>
ceph-deploy admin <VM CLIENT>

Pacotes instalados durante o processo :

[root@client]# rpm -qa | grep ceph
python-cephfs-13.2.1-0.el7.x86_64
ceph-common-13.2.1-0.el7.x86_64
ceph-mds-13.2.1-0.el7.x86_64
ceph-13.2.1-0.el7.x86_64
libcephfs2-13.2.1-0.el7.x86_64
ceph-base-13.2.1-0.el7.x86_64
ceph-osd-13.2.1-0.el7.x86_64
ceph-mon-13.2.1-0.el7.x86_64
ceph-mgr-13.2.1-0.el7.x86_64
ceph-radosgw-13.2.1-0.el7.x86_64
ceph-selinux-13.2.1-0.el7.x86_64
ceph-release-1-1.el7.noarch

3. Configuração de recursos no Ceph

Criando a chave de acesso da vm client

# ceph auth get-or-create client.rbd mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=rbd'

Confirme a chave listando com o comando abaixo

# ceph auth list 
...
client.rbd
	key: AQAMDoZbvtuDABAAEVIfmXGNTr5SOSNymM7L8g==
	caps: [mon] allow r
	caps: [osd] allow class-read object_prefix rbd_children, allow rwx pool=rbd
...

Copie a chave gerada para a vm client.

[root@mon1 ceph]# ceph auth get-or-create client.rbd | ssh root@client tee /etc/ceph/ceph.client.rbd.keyring 

4. Criando imagem no pool e montando

Na vm client vamos criar uma imagem de 1 Gb .

[root@client]# rbd create rbd1 --size 1024 --name client.rbd

Vamos listar  e pegar as informações da imagem criada no pool RBD

[root@client]# rbd ls -p rbd --name client.rbd
...
rbd1
...



[root@client]# rbd --image rbd1 info --name client.rbd
...
rbd image 'rbd1':
	size 1 GiB in 256 objects
	order 22 (4 MiB objects)
	id: 5e4a6b8b4567
	block_name_prefix: rbd_data.5e4a6b8b4567
	format: 2
	features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
	op_features: 
	flags: 
	create_timestamp: Wed Aug 29 09:30:43 2018
...

Antes de mapearmos vamos desabilitar algumas features da imagem para que não haja erros .

[root@client]# rbd feature disable rbd1 object-map fast-diff deep-flatten

Vamos mapear a imagem :

[root@client]# rbd map --image rbd1 --name client.rbd

...
/dev/rbd0
...

Validando a imagem entregue para o SO com fdisk :

[root@client]# fdisk -l /dev/rbd0

Disk /dev/rbd0: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4194304 bytes / 4194304 bytes

[root@client log]# 

Montando a imagem

mkfs.xfs /dev/rbd0
mkdir /opt/labrbd
mount /dev/rbd0 /opt/labrbd

Imagem montada no Sistema Operacional :

Montando de forma persistente a imagem

[root@client]# vi  /etc/ceph/rbdmap 
...

rbd map rbd/rbd1 --id admin --keyring /etc/ceph/ceph.client.rbd.keyring

Ajuste o arquivo /etc/fstab

[root@client]# vi  /etc/fstab
...

/dev/rbd0 /opt/labrbd xfs noauto 0 0

Habilite o serviço no boot

systemctl enable rbdmap.service

Para desmontar a imagem do SO , desmonte o mapeamento e a imagem

umount /opt/lab/rbd
rbdmap unmap

Após desmontar remova as entradas no /etc/fstab e /etc/ceph/rbdmap

Translate »