Neste post será apresentado como realizar a trocar de um disco com problemas no Ceph em ambiente Filestore e Bluestore .

1)Requisitos


Em nosso cenário foi utilizado o laboratório do site.

https://cephbrasil.com/laboratorio-do-site/

https://cephbrasil.com/configurando-o-cliente-rbd/



2) Criando o cenário de falha 


Vamos parar a vm osd3

vagrant halt osd3


Remover o disco 3 na vm osd3


Vamos iniciar a vm via console do VirtualBox , pois se tentarmos subir pelo Vagrant irá gerar erros.


Após a vm ser reiniciada podemos ver abaixo o ouput do health do Ceph e a listagem de OSDs com uma OSD DOWN.



Para que o algoritmo CRUSH não faça rebalance no cluster, vamos colocar o cluster em manutenção.

# sudo ceph osd set noout


Após verificarmos o estado do cluster iremos executar power off na vm osd3 e adicionar outro disco startando a vm via console do VirtualBox logo em seguida.



3) Trocando o disco na versão Filestore


Iremos formatar a partição de journaling , pois no momento que o disco entrou em “falha” ele perdeu a associação com a OSD.

[ceph@osd3 ~]$ sudo ceph-volume lvm list /dev/sdb2

No valid Ceph devices found


Podemos ver no /dev/sdb1 a relação do journal com a partição


Removendo a partição de journaling.

[ceph@osd3 ~]$ sudo parted /dev/sdb rm 2


Recriando a partição de journaling

[ceph@osd3 ~]$ parted --script /dev/sdb mkpart primary 2421MB 4842MB 
[ceph@osd3 ~]$ sudo parted --script /dev/sdb mkpart primary 2421MB 4842MB 
[ceph@osd3 ~]$ sudo sgdisk --zap-all --clear --mbrtogpt -g -- /dev/sdb2


Recrie a OSD a partir da vm controller

[ceph@controller ceph]$ su - ceph
[ceph@controller ceph]$ cd <DEPLOY DIRECTORY>
[ceph@controller ceph]$  ceph-deploy osd create --filestore --fs-type xfs --data /dev/sdd --journal /dev/sdb2 osd3



4) Trocando o disco na versão Bluestore


Preparando o disco

[ceph@controller ceph]$ su - ceph 
[ceph@controller ceph]$ cd <DEPLOY DIRECTORY> 
[ceph@controller ceph]$ ceph-deploy disk zap osd3 /dev/sdd


Recriando a OSD

[ceph@controller ceph]$ ceph-deploy osd create --data /dev/sdd osd3


5) Validando o Cluster


Podemos observar que agora temos 3 OSDs no output do ceph -s


Vamos remover a osd5 que é a osd fora do cluster .

[ceph@mon1 ~]$ sudo ceph osd out 5
...
osd.5 is already out. 

[ceph@mon1 ~]$ sudo ceph osd rm 5
...
removed osd.5


Tirar a flag que para o rebalance do CrushMap no cluster.

[ceph@mon1 ~]$ sudo ceph osd unset noout
..
noout is unset

Após reabilitar o “rebalancer” o cluster irá entrar se rebalancear e o tempo de recovery será de acordo as configurações  de replica e disponibilidade do ambiente (rede e tipo de disco).

Translate »