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.

Create Ceph OSD


    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

Postagens mais visitadas