Ceph no Proxmox VE
Ceph é uma tecnologia baseada em software para redundância e segurança de armazenamento de grande capacidade.
Apesar de funcionar com uma configuração simples, por exemplo, 3 servidores com 1 disco dedicado ao Ceph em cada, a recomendação inicial é 3 máquinas com 4 discos em cada.
Tudo pode ser virtualizado, para criar um laboratório de testes, mas achei bem lento nos testes que fiz, comparando com o NFS por exemplo, para armazenamento de arquivos do Proxmox (os discos virtuais das VM) e para compartilhamento em rede com SMB para acesso pelo Windows.
Eu configurei porque já tenho as máquinas e queria uma alternativa ao NFS, que estava configurado em uma VM com TrueNAS, o Ceph vem embutido no Proxmox e com uma configuração simplicada na interface gráfica.
Outro detalhe é a perda de recursos, o Ceph na configuração recomendada faz um espelhamento dos discos em todos os servidores, assim se tiver 3 servidores com 4 discos, o espaço disponível será apenas o dos 4 discos, já que todos os servidores terão réplicas do mesmo conjunto de dados.
Tem o pool EC que estou testando agora, que é mais semelhante a um RAID 5, onde se perde 1 pra n.
Mas o Ceph tem outra métrica e a perda é maior se usar mais discos.
A interface gráfica do Proxmox não tem a opção de criação do Pool EC, então é necessário usar o cli pra isso.
Nos testes que fiz, um problema é o esgotamento do espaço.
A principio imaginei que haveria um redimensionamento automático, mas já estava com o espaço todo alocado e ao ultrapassar seus limites, o sistema se perde e fica lento.
Consegui recuperar instalando mais um disco no pool, mas o processo é demorado.
Provavelmente, a demora piora devido a falta de uma interface de rede dedicada pro Ceph e a recomendação é de 10 Gbps, enquanto só tenho uma porta Gigabit nos computadores.
De qualquer forma, conseguiu recuperar sem perdas aparentes.
Reconfigurei então para usar o Pool EC e o espaço disponibilizado melhorou bastante.
Tenho 3 SSD NVMe de 1 TB e 3 SATA de 2TB, na configuração padrão ele usou todos para o pool
Mas é fácil evitar isso, na criação do OSD, em vez de deixar o tipo no automático, selecionar entre as opções HDD, SSD e NVMe.
Depois, na criação do Pool, indicar essa classe para restringir o uso aos discos desejados.
# pveceph pool create nvme --erasure-coding k=2,m=1,device-class=nvme
Não há essa opção na interface gráfica, então na linha de exemplo acima,
nvme = nome do Pool, gerará dois pools, nvme-data e nvme-metadata no tipo EC
k = mínimo de OSD necessário para manter o pool ativo
m = quantidade de "cópias"
device-class é o usado na criação do OSD
Comentários
Postar um comentário