A execução do Ceph (ou sistemas similares) virtualizados degradará seu desempenho?

1

Estou configurando um cluster Ceph. O cliente está pedindo para que seja feito em máquinas virtuais, um hipervisor / VM por servidor. Dada a minha experiência anterior (menor) com máquinas virtuais, eu me pergunto se isso será um problema (hipervisores abstraindo hardware e usando seus drivers internos, etc.). As minhas preocupações são justificadas? Provavelmente haverá penalidades de desempenho ao colocar uma VM entre o hardware e uma única máquina virtual executando uma E / S (disco e controladora de disco) e um aplicativo intensivo de rede, como o Ceph?

    
por Turtle V. Rabbit 17.11.2016 / 17:08

1 resposta

3

Pelo que parece ... seu cliente não entende os requisitos do Ceph.
Quantos hosts de máquinas virtuais eles têm?

Resposta curta:

Sim, você pode, mas não é recomendado.

Resposta longa:

Sim, vai funcionar. Mas o desempenho pode ser impactado negativamente. E quando digo negativamente, quero dizer potencialmente muito negativamente.

Por favor, leia as Recomendações de Hardware .

Detalhes:

O Ceph realmente espera gravar seus dados em discos dedicados controlados por nós de armazenamento (OSD's). Colocar outra camada de virtualização em cima disso poderia realmente encher o desempenho. Especialmente quando é preciso compartilhar esse disco com outras VMs. Mas se é para testar entre alguns membros da equipe, por que não?

Mas para produção. POR FAVOR, NÃO FAÇA ISSO.

Além dos OSDs, você precisa de no mínimo três monitores. Estes devem funcionar em máquinas completamente separadas, idealmente. Porque se eles não são, então eles não são resilientes a descer quando o host perde o poder ou algo são eles? E se isso acontecer, você perderá o acesso ao cluster ceph.

Outro motivo, o Ceph é intensivo de E / S durante leituras / gravações em OSDs. Quanto mais OSD você tiver no mesmo host físico, mais congestionada ficará a interface de rede nesse host. É por isso que você precisa distribuir sua carga entre muitos OSDs e muitos servidores.

Agora, eu já virtualizei os monitores e os servidores de metadados antes no Xen. Mas o host da Máquina Virtual que eu tinha era uma fera e dei muitos recursos para o ceph. Eu também tinha grande largura de banda de rede disponível em todos esses hosts. Na verdade, era 56Gbit FDR Infiniband. Então, eu não posso realmente dizer o que seria como correr com isso, eu não percebi dessa maneira.

Eu também criei o Amazon EC2. Mas, novamente, usei uma configuração de especificação mais alta para teste. Ele correu OKish lá, mas pudemos ver se machucar com a virtualização. Esse teste anterior foi para ver se poderíamos obter um desempenho mais rápido do que o IOPS provisionado da Amazon por um custo menor. Nós não fomos com isso, mas foi um teste interessante.

Em relação a drivers paravirtuais, etc. Sim, eles ajudam, mas o SR-IOV é a melhor opção na minha opinião.

Resumo:

  • Não é recomendado, embora funcione.
  • Os
  • OSDs não devem ser virtualizados de verdade.

Vai ser interessante ver se Sage Weil comenta aqui. Se não estou errado, ele já fez isso antes.

    
por 17.11.2016 / 22:48