Detecção e correção de falhas em OSDs

Conteúdo da documentação

Abrir tabela de conteúdo

Detecção e correção de falhas em OSDs

Por vezes, os OSDs da infraestrutura podem apresentar falhas, sendo necessário restituí-los, seja através da reinicialização do OSD ou da troca de um disco físico. Para tal, o procedimento a ser executado nesse cenário é:

1- Inicialmente, deve-se verificar a saúde do cluster com o comando:
root@client-1: # ceph health
Caso haja algum erro em algum OSD, uma saída semelhante a essa será exibida:

HEALTH_WARN mons are allowing insecure global_id reclaim; 1 osds down; 1 host (1 osds) down;
Degraded data redundancy: 1761/7833 objects degraded (22.482%), 50 pgs degraded; 1 pool(s) do not have an application enabled

2- Para encontrar qual OSD está com falha, basta executar o comando:

root@client-1:~# ceph osd tree
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 0.97649 root default
-3 0.19530 host dp1
2 hdd 0.19530 osd.2 up 1.00000 1.00000
-9 0.19530 host dp2
0 hdd 0.19530 osd.0 up 1.00000 1.00000
-7 0.19530 host dp3
1 hdd 0.19530 osd.1 up 1.00000 1.00000
-5 0.19530 host dp4
3 hdd 0.19530 osd.3 up 1.00000 1.00000
-11 0.19530 host dp5
4 hdd 0.19530 osd.4 down 1.00000 1.00000

E identificar qual host está com falha.

3- Em seguida, é necessário acessar tal host para verificar o estado do serviço ceph-OSD. Caso o serviço esteja parado, basta iniciá-lo com o comando:
root@dp5: # systemctl start ceph-osd@id.service
E, após o mesmo ser automaticamente reintroduzido no cluster, repetir o passo 1.

4- Caso a falha do OSD tenha sido causada por uma falha no disco físico, o procedimento a ser realizado é:

  • Verifique se é seguro destruir esse OSD:
    while ! ceph osd safe-to-destroy osd.id ; do sleep 10 ; done
  • Destrua esse OSD:
    ceph osd destroy id –yes-i-really-mean-it
  • Adicione um novo disco no host físico e, em seguida, o formate para ser identificado como um OSD no Ceph:
    ceph-volume lvm zap /dev/sdX
  • Adicione esse novo OSD no Ceph com o id do antigo:
    ceph-volume lvm prepare –osd-id id –data /dev/sdX
  • Por fim, ative esse OSD:
    ceph-volume lvm activate id fsid