Ir para o conteúdo principal

ATUALIZAÇÃO CEPH STORAGE

Data: 15/12/22

Autores:
1.João Batista da Silva Junior (Assessor)
2.Michel Farias Ferreira (Assessor)

__________________________________________________________________________________________________________________________________________

1. OBJETIVO


Esse documento tem o intuito de explicar como pode ser realizada a atualização do Ceph Storage da SETIC.


2. INTRODUÇÃO

Fez-se necessário realizar o estudo para entender como será o procedimento de atualização do Ceph Storage,  pois hoje é necessário abrigar uma arquitetura multi-tenancy na SETIC nos sistemas e ferramentas que hoje são utilizados pela SETIC e serão disponibilizados para outras Secretarias.


3. DESENVOLVIMENTO

Conforme a necessidade, precisamos entender como pode ser realizada a atualização do Ceph Storage.


3.1 PROCEDIMENTO GERAL DE UPGRADE

Considere os seguintes itens antes de iniciar o procedimento de upgrade:

Ordem do upgrade

Antes de fazer o upgrade do cluster do Ceph, você precisa registrar corretamente o SUSE Linux Enterprise Server e o SUSE Enterprise Storage subjacentes no SCC ou na SMT. Você poderá fazer upgrade dos daemons no cluster enquanto ele estiver online e em execução. Alguns tipos de daemons dependem de outros. Por exemplo, os Ceph Object Gateways dependem dos daemons Ceph Monitors e Ceph OSD. Recomendamos o upgrade nesta ordem:

  1. Ceph Monitors

  2. Ceph Managers

  3. Ceph OSDs

  4. Servidores de Metadados

  5. Object Gateways

  6. iSCSI Gateways

  7. NFS Ganesha

Apagar instantâneos desnecessários do sistema operacional

Remova os instantâneos de sistema de arquivos que não são necessários das partições de nós do sistema operacional. Esse procedimento garante espaço livre suficiente no disco durante o upgrade.

Verificar a saúde do cluster

É recomendável verificar a saúde do cluster antes de iniciar o procedimento de upgrade.

Fazer upgrade individualmente

Recomendamos fazer upgrade de todos os daemons de determinado tipo (por exemplo, todos os daemons monitor ou OSD) um de cada vez para garantir que todos sejam da mesma versão. Recomendamos também fazer upgrade de todos os daemons no cluster antes de você tentar usar uma nova funcionalidade em uma versão.

Após o upgrade de todos os daemons de um tipo específico, verifique o status deles.

Verifique se cada monitor reingressou no quorum após o upgrade de todos os monitores:

root # ceph mon stat

COPY

Verifique se cada daemon Ceph OSD reingressou no cluster após o upgrade de todos os OSDs:

root # ceph osd stat

,

COPY

Definir o flag require-osd-release luminous

Quando é feito o upgrade do último OSD para o SUSE Enterprise Storage 5, os nós do monitor detectam que todos os OSDs estão executando a versão “luminous” do Ceph e podem reclamar que o flag require-osd-release luminous do osdmap não está definido. Nesse caso, você precisa definir esse flag manualmente para confirmar que, agora que o upgrade do cluster foi feito para “luminous”, não é possível revertê-lo para a versão menos eficiente “jewel” do Ceph. Defina o flag executando o seguinte comando:

root@minion > sudo ceph osd require-osd-release luminous

COPY

Após a conclusão do comando, o aviso desaparecerá.

Nas novas instalações do SUSE Enterprise Storage 5, este flag é definido automaticamente quando os Ceph Monitors criam o osdmap inicial. Dessa forma, nenhuma ação do usuário final é necessária.

3.2 Criptografando OSDs durante o upgrade 

Desde o SUSE Enterprise Storage 5, por padrão, os OSDs são implantados usando o BlueStore em vez do FileStore. Embora o BlueStore suporte criptografia, os Ceph OSDs são implantados sem criptografia, por padrão. O procedimento a seguir descreve as etapas para criptografar os OSDs durante o processo de upgrade. Vamos supor que ambos os discos de dados e WAL/BD que serão usados para implantação do OSD estejam limpos, sem partições. Se os discos já foram usados, limpe-os seguindo o procedimento descrito na Etapa 13.


Importante: Um OSD de cada vez

Você precisa implantar os OSDs criptografados um por um, não ao mesmo tempo. O motivo disso é que os dados do OSD são esvaziados, e o cluster passa por várias iterações de redistribuição.

Determine os valores bluestore block db size e bluestore block wal size da sua implantação e adicione-os ao arquivo /srv/salt/ceph/configuration/files/ceph.conf.d/global.conf no master Salt. Os valores precisam ser especificados em bytes.
[global]

bluestore block db size = 48318382080

  1. bluestore block wal size = 2147483648

  2. COPY

  3. Para obter mais informações sobre como personalizar o arquivo ceph.conf, consulte o Seção 1.11, “Arquivo ceph.conf personalizado”.

  4. Execute a Fase 3 do DeepSea para distribuir as mudanças:
    root@master # salt-run state.orch ceph.stage.3

  5. COPY

  6. Verifique se o arquivo ceph.conf está atualizado nos nós relevantes do OSD:
    root@minion > cat /etc/ceph/ceph.conf

  7. COPY

  8. Edite os arquivos *.yml no diretório /srv/pillar/ceph/proposals/profile-default/stack/default/ceph/minions relevantes aos OSDs que você está criptografando. Compare o caminho deles com o que foi definido no arquivo /srv/pillar/ceph/proposals/policy.cfg para garantir que você modifique os arquivos *.yml corretos.

Ao identificar discos OSD nos arquivos /srv/pillar/ceph/proposals/profile-default/stack/default/ceph/minions/*.yml, use os identificadores de disco longo.
Veja a seguir um exemplo de configuração de OSD. Como a criptografia é necessária, as opções db_size e wal_size foram removidas:
ceph:

 storage:

   osds:

     /dev/disk/by-id/scsi-SDELL_PERC_H730_Mini_007027b1065faa972100d34d7aa06d86:

       format: bluestore

       encryption: dmcrypt

       db: /dev/disk/by-id/nvme-INTEL_SSDPEDMD020T4D_HHHL_NVMe_2000GB_PHFT642400HV2P0EGN

       wal: /dev/disk/by-id/nvme-INTEL_SSDPEDMD020T4D_HHHL_NVMe_2000GB_PHFT642400HV2P0EGN

     /dev/disk/by-id/scsi-SDELL_PERC_H730_Mini_00d146b1065faa972100d34d7aa06d86:

       format: bluestore

       encryption: dmcrypt

       db: /dev/disk/by-id/nvme-INTEL_SSDPEDMD020T4D_HHHL_NVMe_2000GB_PHFT642400HV2P0EGN

  1.        wal: /dev/disk/by-id/nvme-INTEL_SSDPEDMD020T4D_HHHL_NVMe_2000GB_PHFT642400HV2P0EGN

  2. COPY

Implante os novos OSDs de Armazenamento em Blocos com criptografia executando as Fases 2 e 3 do DeepSea:
root@master # salt-run state.orch ceph.stage.2

  1. root@master # salt-run state.orch ceph.stage.3

  2. COPY

  3. Você poderá observar o andamento com ceph -s ou ceph osd tree. É essencial permitir que o cluster seja redistribuído antes de repetir o processo no próximo nó do OSD.



4. CONCLUSÃO

Este documento teve o intuito de auxiliar na atualização do Storage Ceph que será realizada na próxima sprint pelo time. Algumas dúvidas sobre o procedimento a ser realizado foram esclarecidas e as ações serão realizadas seguindo o passo a passo.