O Ceph é um sistema de ar­ma­ze­na­mento dis­tri­buído que se integra muito bem ao Proxmox e oferece uma solução altamente dis­po­ní­vel e tolerante a falhas. Neste guia, você vai aprender, passo a passo, como instalar um cluster Ceph no seu servidor Proxmox.

Passo 1: verificar os pré-re­qui­si­tos

Antes de iniciar a ins­ta­la­ção do Ceph no Proxmox, verifique se o seu ambiente atende aos re­qui­si­tos básicos. O Ceph funciona re­pli­cando dados entre vários ser­vi­do­res. Para que essa re­dun­dân­cia funcione de forma confiável, é ne­ces­sá­rio ter pelo menos três nós Proxmox. Dessa forma, o sistema continua fun­ci­o­nando mesmo se um nó falhar.

Além disso, verifique se a ins­ta­la­ção bare metal do Proxmox está concluída em todos os ser­vi­do­res e se o sistema está atu­a­li­zado. Cada nó deve ter um disco rígido próprio e não utilizado, dedicado ex­clu­si­va­mente aos OSDs do Ceph. Esses discos formam a base de ar­ma­ze­na­mento do cluster. Uma conexão de rede rápida e estável entre os nós também é essencial para manter a latência baixa. Você também precisa de acesso root em todos os hosts, já que a ins­ta­la­ção faz al­te­ra­ções diretas no sistema.

Verifique com o comando abaixo qual versão do Proxmox está instalada no sistema:

pveversion
bash

Compare as versões em todos os nós. Se houver di­fe­ren­ças ou se o sistema não estiver atu­a­li­zado, faça uma atu­a­li­za­ção para deixar todos os nós na mesma versão.

apt update && apt full-upgrade -y
reboot
bash

Assim que todos os nós estiverem atu­a­li­za­dos e aces­sí­veis, o ambiente estará pronto para instalar o Ceph.

Dedicated Servers
Per­for­mance through in­no­va­tion

O encontro do hardware com a nuvem: servidor dedicado com nuvem integrada e cobrança por minuto, incluindo as­sis­tente pessoal!

  • Dedicated en­ter­prise hardware
  • Con­fi­gu­ra­ble hardware equipment
  • ISO-certified data centers

Passo 2: ativar o re­po­si­tó­rio do Ceph

Para instalar o Ceph com mais fa­ci­li­dade usando o ge­ren­ci­a­dor de pacotes, primeiro você precisa ativar o re­po­si­tó­rio adequado em cada nó Proxmox. Esse re­po­si­tó­rio contém todos os pacotes do Ceph ne­ces­sá­rios para ins­ta­la­ção e operação no Proxmox, adaptados e testados es­pe­ci­fi­ca­mente para esse ambiente. Faça login como root em cada host e execute o comando abaixo:

pveceph install
bash

Esse comando configura au­to­ma­ti­ca­mente o re­po­si­tó­rio oficial do Ceph no Proxmox e instala os com­po­nen­tes básicos. Em seguida, atualize a lista de pacotes para ativar as novas fontes:

apt update
bash

Passo 3: ini­ci­a­li­zar o Ceph no primeiro nó

No terceiro passo, você prepara o cluster Ceph no primeiro nó Proxmox. Aqui, você define a rede usada para a co­mu­ni­ca­ção do cluster e configura o primeiro monitor. O monitor é um dos com­po­nen­tes mais im­por­tan­tes do Ceph: ele acompanha o estado do cluster, gerencia os nós par­ti­ci­pan­tes e garante que todos os com­po­nen­tes tenham in­for­ma­ções con­sis­ten­tes.

Inicie a con­fi­gu­ra­ção no primeiro host Proxmox com o comando:

pveceph init --network 10.0.0.0/24
bash

A sub-rede 10.0.0.0/24 é apenas um exemplo. Use a rede interna pela qual os nós Proxmox se comunicam di­re­ta­mente. O comando pveceph init cria a con­fi­gu­ra­ção básica do Ceph no seu primeiro nó. Durante esse processo, o Proxmox gera, entre outras coisas, o arquivo central de con­fi­gu­ra­ção do cluster, o keyring do Ceph para au­ten­ti­ca­ção dentro do cluster e os di­re­tó­rios de sistema ne­ces­sá­rios para os serviços do Ceph. Depois da ini­ci­a­li­za­ção, configure o primeiro serviço de monitor:

pveceph createmon
bash

Esse comando inicia o serviço de monitor e o registra no cluster. A partir desse momento, você já tem um nó Ceph funcional, embora ainda isolado. O monitor começa a coletar in­for­ma­ções de status e cria a base para a co­mu­ni­ca­ção com os outros nós.

Nota

Em um cluster Ceph, nor­mal­mente são usados pelo menos três monitores. Isso permite que o cluster continue fun­ci­o­nando mesmo se um monitor falhar, já que os monitores restantes ainda conseguem se coordenar. Só com vários monitores o Ceph consegue atingir o quorum, ou seja, uma maioria ativa que permite ao cluster decidir de forma confiável sobre o seu estado.

Passo 4: adicionar mais nós ao cluster

Para que o Ceph ofereça to­le­rân­cia a falhas, agora você precisa adicionar os outros nós Proxmox ao cluster Ceph. Cada nó adicional aumenta a re­dun­dân­cia e a ca­pa­ci­dade de ar­ma­ze­na­mento. Acesse os outros nós e execute os comandos abaixo, na ordem:

pveceph install
pveceph createmon
bash

Assim, você também configura monitores nos outros hosts. Quando todos os monitores estiverem ativos, verifique o status do cluster em qualquer nó com o comando:

ceph -s
bash

A saída mostra quais monitores e serviços estão em execução. Se vários monitores apa­re­ce­rem listados, os nós foram in­te­gra­dos com sucesso.

Passo 5: criar OSDs

Os OSDs (Object Storage Daemons) são o núcleo do cluster Ceph. Cada disco usado no Ceph passa a funcionar como um OSD in­de­pen­dente. Esses daemons são res­pon­sá­veis por gravar, replicar e dis­po­ni­bi­li­zar os dados quando so­li­ci­ta­dos por outro nó ou por uma máquina virtual. Quanto maior o número de OSDs, maior será tanto a ca­pa­ci­dade de ar­ma­ze­na­mento quanto o de­sem­pe­nho do cluster. Antes de iniciar a con­fi­gu­ra­ção, verifique quais discos estão dis­po­ní­veis no nó. Você pode fazer isso com o comando abaixo:

lsblk
bash

A saída mostra todas as unidades re­co­nhe­ci­das e suas partições. Use apenas discos que não estejam em uso, não contenham o sistema ope­ra­ci­o­nal e não estejam montados. Depois de iden­ti­fi­car um disco adequado, no nosso exemplo /dev/sdb, ini­ci­a­lize-o como OSD:

pveceph createosd /dev/sdb
bash

O disco será formatado au­to­ma­ti­ca­mente, e o Ceph con­fi­gu­rará toda a estrutura ne­ces­sá­ria. Em seguida, o daemon OSD é iniciado e integrado ao cluster. Todos os dados exis­ten­tes no disco se­le­ci­o­nado serão apagados, então confirme que ele será usado ex­clu­si­va­mente para o Ceph.

Repita esse processo em todos os nós e para todos os discos que você deseja integrar ao ar­ma­ze­na­mento Ceph. De­pen­dendo do tamanho do cluster e do hardware, a in­te­gra­ção completa pode levar alguns minutos.

Depois disso, verifique se os OSDs foram re­co­nhe­ci­dos cor­re­ta­mente e estão ativos, usando o comando abaixo:

ceph osd tree
bash

A vi­su­a­li­za­ção em árvore facilita a iden­ti­fi­ca­ção de como os dis­po­si­ti­vos de ar­ma­ze­na­mento estão dis­tri­buí­dos no cluster e se estão operando sem erros.

Passo 6: ativar o Ceph Manager e o Dashboard

Para monitorar e gerenciar o cluster com mais fa­ci­li­dade, instale o Ceph Manager (MGR). Esse serviço coleta métricas de de­sem­pe­nho, monitora os com­po­nen­tes ativos e oferece funções adi­ci­o­nais por meio de vários módulos. Um desses módulos é o Dashboard Web integrado. Instale o ge­ren­ci­a­dor no nó Proxmox usando o comando abaixo:

pveceph createmgr
bash

Assim que o ge­ren­ci­a­dor estiver ativo, você pode habilitar o módulo do Dashboard. Ele já vem dis­po­ní­vel com o serviço MGR e só precisa ser ativado:

ceph mgr module enable dashboard
bash

O Dashboard oferece uma interface intuitiva para acom­pa­nhar o status do cluster, o uso dos OSDs e dos monitores, além de iden­ti­fi­car alertas ra­pi­da­mente. O acesso é feito pelo navegador, usando a porta padrão 8443:

https://<PROXMOX_IP>:8443

Substitua PROXMOX_IP pelo endereço IP do nó Proxmox onde o Ceph Manager foi instalado.

Passo 7: criar e testar pools do Ceph

Depois de con­fi­gu­rar o cluster Ceph e ativar todos os OSDs, você pode criar as áreas de ar­ma­ze­na­mento onde os dados serão gravados. O Ceph organiza os dados em pools. Um pool é uma unidade lógica usada para armazenar arquivos, imagens de disco ou volumes de contêiner. Cada pool é composto por vários Placement Groups, que dis­tri­buem os dados entre os OSDs para equi­li­brar a carga. Com os pools, você define como e onde o Ceph armazena os dados. Assim, é possível criar pools di­fe­ren­tes de acordo com a ne­ces­si­dade: por exemplo, um pool para máquinas virtuais e outro para backups ou imagens de con­têi­ne­res.

Para criar um pool, execute o comando abaixo em um dos nós Proxmox:

pveceph pool create cephpool --size 3 --min_size 2 --pg_num 128
bash

No exemplo abaixo, criamos um pool com o nome cephpool. Os pa­râ­me­tros definem como o Ceph lida com os dados:

  • --size 3 significa que cada dado é replicado três vezes. Isso garante to­le­rân­cia a falhas: se um OSD falhar, ainda haverá duas cópias dis­po­ní­veis.
  • --min_size 2 define que pelo menos duas cópias precisam estar ativas para que o pool seja con­si­de­rado funcional. Isso evita que o Ceph opere com dados in­com­ple­tos.
  • --pg_num 128 define o número de Placement Groups, ou seja, os con­têi­ne­res lógicos nos quais o Ceph divide os dados in­ter­na­mente. Quanto maior o número de OSDs no cluster, maior pode ser esse valor para garantir uma dis­tri­bui­ção equi­li­brada dos dados.
Nota

O número de Placement Groups definido ao criar um pool não pode ser reduzido depois. Esse número pode ser aumentado à medida que o cluster cresce, mas não é possível diminuí-lo sem risco de perda de dados. Por isso, é im­por­tante planejar desde o início uma quan­ti­dade su­fi­ci­ente de PGs. Como regra geral, usar cerca de 100 PGs por OSD no pool é um bom ponto de partida para ambientes pequenos e médios.

Depois de criar o pool, verifique se o cluster está fun­ci­o­nando cor­re­ta­mente.

ceph -s
bash

Na saída, você verá o status atual do seu cluster Ceph. Se aparecer a indicação HEALTH_OK, isso significa que o pool foi con­fi­gu­rado cor­re­ta­mente e que o cluster está fun­ci­o­nando de forma estável.

Passo 8: integrar o ar­ma­ze­na­mento Ceph ao Proxmox

Depois que o cluster Ceph estiver con­fi­gu­rado e o primeiro pool criado, o último passo é integrar esse ar­ma­ze­na­mento ao Proxmox para que as máquinas virtuais e os con­têi­ne­res possam utilizá-lo. O Proxmox usa o protocolo RBD para essa in­te­gra­ção, e a maneira mais simples de configurá-la é pela interface gráfica. Acesse a interface web e navegue até “Da­ta­cen­ter > Ar­ma­ze­na­mento > Adicionar > RBD (Ceph)”.

No diálogo, insira os dados de conexão do cluster Ceph.

  • Em ID, defina um nome exclusivo para o novo destino de ar­ma­ze­na­mento.
  • Em monitores, insira os endereços IP dos seus Ceph MONs. Estes são os endereços dos nós onde os serviços de monitor estão em execução. Separe os endereços por vírgulas, por exemplo: 10.0.0.11,10.0.0.12,10.0.0.13.
  • No campo Pool, insira o nome do pool Ceph criado an­te­ri­or­mente, como cephpool.
  • Como usuário, nor­mal­mente você pode usar admin.
  • O campo Keyring é pre­en­chido au­to­ma­ti­ca­mente, pois o Proxmox lê a chave de au­ten­ti­ca­ção da con­fi­gu­ra­ção do Ceph.
Nota

Se preferir usar a linha de comando, você pode fazer o mesmo pro­ce­di­mento com um único comando:

pvesm add rbd ceph-storage --monhost <mon1,mon2,mon3> --pool cephpool --content images
bash

Substitua <mon1,mon2,mon3> pelos endereços IP dos nós de mo­ni­to­ra­mento.

Depois de adicionar o ar­ma­ze­na­mento, ele passa a aparecer na interface do Proxmox e pode ser se­le­ci­o­nado di­re­ta­mente como destino para máquinas virtuais. A partir desse momento, o Proxmox usa o Ceph como backend de ar­ma­ze­na­mento, e todas as VMs criadas ali se be­ne­fi­ciam au­to­ma­ti­ca­mente da re­dun­dân­cia e da to­le­rân­cia a falhas do cluster Ceph.

Dica

Se no futuro você quiser rodar um cluster Ku­ber­ne­tes no Proxmox, a in­te­gra­ção com o Ceph é es­pe­ci­al­mente vantajosa. O Ceph funciona muito bem como ar­ma­ze­na­mento per­sis­tente para o Ku­ber­ne­tes. Dessa forma, seus con­têi­ne­res se be­ne­fi­ciam da mesma re­dun­dân­cia e alta dis­po­ni­bi­li­dade que as máquinas virtuais.

Ir para o menu principal