Replicação DRBD & KVM é possível?

4

Eu tenho dois servidores KVM com algumas máquinas virtuais.

Servidor (A) KVM com imagens qcow2

Servidor (B) KVM montar NFS para partiton (com imagens qcow2 presentes no servidor A).

Minha pergunta é simples, qual é a melhor solução para criar cópias de disco virtual no servidor B (com máquinas virtuais sendo executadas obviamente). O DRBD é uma solução?

    
por Giovanni Bennelli 15.11.2012 / 17:07

4 respostas

3

Se você quer apenas replicar as imagens do servidor A qcow2 no servidor B, mas elas não precisam ser acessadas ao mesmo tempo em A e B, então você pode usar o DRBD com qualquer sistema de arquivos nele ( como ext4), rodando como Primária em A e Secundária em B. Quando A falha, você poderá trocar o DRBD em B para Primário e usar as imagens lá.

Caso você queira essas imagens disponíveis e usadas em A e B ao mesmo tempo - então isso será mais complicado. Um sistema de arquivos em cluster pode ajudar, mas não acho que o desempenho esteja certo.

Se você quiser apenas fazer uma cópia única das imagens, basta parar as VMs em A, copiar as imagens com scp / rsync / over-NFS / whatever. Se as VMs devem estar em execução em A, então, para uma imagem consistente, você precisará fazer algum tipo de instantâneo. Não conheço o KVM e o QCOW2, mas talvez eles ofereçam alguma funcionalidade de instantâneo. Caso contrário, os instantâneos do LVM poderão ter se você armazenar as imagens em um volume LVM.

    
por 15.11.2012 / 17:54
1

Dê uma olhada no link que o guiará pelas etapas.

    
por 16.11.2012 / 22:27
0

Para alta disponibilidade com máquinas virtuais, você pode usar o Ganeti e o DRBD como seu recurso, mas haverá pouco trabalho extra na configuração do ganeti, mas a dor valeria a pena, pois tornaria o gerenciamento da sua VM realmente suave.

Outra opção que eu poderia pensar é usar volumes gluster. Será super fácil de configurar e instalar e se você tiver um bom hardware, o desempenho deve ser bom.

A partir de agora eu uso o estilo DRBD simples como Jacek explicou, eu também estou explorando outras formas também.

    
por 08.01.2013 / 18:22
0

Estou trabalhando nesse mesmo problema. Eu consegui isso para trabalhar de duas maneiras diferentes.

Configuração

Eu estou escolhendo construir meus sistemas guest kvm em cima de LVs usando o formato raw. Eu não sei que isso é melhor do que tê-los em arquivos de imagem nos LVs, mas é com isso que estou indo. Seria muito mais simples usar o drbd para sincronizar a partição física do LVM, mas eu quero rodar vários LVs, e ter um rodando em hostA (requer drbd primary role) e o outro em hostB (também requer drbd principal papel). Então, estou presa a menos que seja brilhante, mas estou relutante em adotar outra tecnologia neste momento. Minha pilha de armazenamento já está:

KVM guest
drbd (drbd1)
lvm2 logical volume (guestlv)
lvm2 volume group (vg)
lvm2 physical volume (crypt)
dm-crypt (crypt)
gpt partitions (md_d0p1=root, md_d0p2=swap, md_d0p3=crypt)
mirror-RAID (md_d0)
gpt partition (single)
hard drive (2)

O maior problema que tenho que resolver é que virt-manager não reconhece ou deixa você trabalhar com drbd volumes ( virt-install e vmbuilder não funcionam para mim). Então, aqui está o que eu fiz:

hostA e hastB estão executando o Ubunut 14.04LTS, instalado com os pacotes OpenSSH Server e Host de Virtualização, com lvm2 e drbd8-utils também instalados. Cada um tem 4 NICS, ligados em pares. bond0 é vinculado a br0 e usado pelos convidados, bond1 não é vinculado e usa uma sub-rede reservada para drbd .

Método 1 do KVM + DRBD

Parte A - Criar o convidado do KVM

  1. Crie um LV em hostA .
  2. Copie ubuntu-14.04.1-server-amd64.iso para /var/lib/libvirt/images
  3. Em um cliente que executa o Ubuntu Desktop, execute virt-manager .
  4. Conecte-se a hostA .
  5. Abra a janela Details e use a guia Storage para incluir o grupo de volumes LVM.
  6. Configure uma nova máquina, usando a instalação ISO, o LV para armazenamento, br0 para a rede.
  7. Reinicie, etc., verifique se o seu LV está funcionando muito bem.

Parte B - Configurar replicação

  1. Encerre o sistema convidado do KVM.
  2. Use lvresize para aumentar o tamanho de LV em 1 lun. %código%
  3. Inicialize os metadados lvresize -l +1 vg/guestlv . %código%
  4. Crie o arquivo de recurso drbd . %código%
  5. em drbdadm create-md /dev/vg/guestlv
    1. crie um LV de tamanho idêntico (o novo tamanho +1!), usando o grupo de volumes e os nomes lv como no arquivo de recursos.
    2. Executar drbd
    3. Executar file:/etc/drbd.d/guest.res resource guest { device /dev/drbd1; meta-disk internal; startup { become-primary-on hostA; wfc-timeout 30; outdated-wfc-timeout 20; degr-wfc-timeout 30; } net { cram-hmac-alg sha1; shared-secret sync_disk; } syncer { rate 100M; verify-alg sha1; } on hostA { address 192.168.2.1:7789; disk /dev/vg/guestlv; } on hostB { address 192.168.2.2:7789; disk /dev/vg/guestlv; } }
    4. Executar hostB
  6. em drbdadm create-md /dev/vg/guestlv
    1. Executar drbdadm connect --discard-my-data guest
    2. Executar drbdadm up guest

Parte C - Mude o dispositivo drbd para a configuração do KVM

  1. Em hostA , execute drbdadm up guest
  2. Encontre a linha drbdadm primary guest e altere para hostA
  3. Salve e saia, inicie sua VM, verifique se ela funciona. Desligue.
  4. Aguarde até que virsh edit guestlv sync termine.
  5. Executar <source dev='/dev/vg/guestlv'/> .
  6. Em <source dev='/dev/drbd1'/> , execute drbd .
  7. Na sua estação de trabalho, use drbdadm secondary guest para criar um novo convidado com algum volume de lixo eletrônico para o armazenamento. Desligue assim que a instalação começar.
  8. Em hostB , use drbdadm primary guest e defina o armazenamento como virt-manager . Inicie a VM, verifique se ela funciona, etc.

KVM + Método DRBD 2 Muito semelhante ao acima, mas

  1. Configure hostB , sincronize.
  2. Crie um convidado KVM usando um volume de lixo eletrônico para o armazenamento, cancele a instalação.
  3. Use virsh edit guestlv para trocar o /dev/drbd1 storage.
  4. Inicie e execute a instalação. Às vezes isso funcionava, às vezes eu recebia um erro de parada de show na instalação do grub para /dev/drbd1 .
  5. Se você conseguir trabalhar, desligue a VM, troque a virsh-edit primary & secundário, configure seu outro host, teste, etc.
por 20.01.2015 / 00:27