Interrompendo o DRBD para que eu possa executar alguns testes com uma VM

Interrompendo o DRBD para que eu possa executar alguns testes com uma VM

Temos dois servidores que herdei, ambos executando DRBD e cada um executando máquinas virtuais KVM.

Eu adoraria interromper uma VM em execução no servidor1 e exibir apenas 1 VM no servidor2 para alguns testes. Embora o DRBD esteja fazendo seu trabalho nesses servidores e o script de inicialização quebrado (postado aqui) que tenho no servidor2, isso me deixa nervoso, pois não quero parar totalmente o servidor1, apenas aquele VM nele. Não criei ou configurei essas máquinas e tenho dúvidas se o DRBD (sobre o qual pouco sei) foi totalmente implementado corretamente. O script de parada do servidor1 foi postado e o script de início do servidor2 foi postado aqui.

Mas antes de tudo isso, acho que só quero saber como impedir que o drbd mexa com segurança nos dois servidores por um tempo. Para que eu possa montar um sistema de arquivos no servidor2 e abrir uma VM que parei no servidor1.

Script de parada do site Server1:

echo    poweroff -p now
echo
read -rsp $'Press any key to continue...\n' -n1 key

virsh shutdown irsc
virsh shutdown backup
virsh shutdown user
virsh shutdown repository
virsh shutdown web-firewall
virsh shutdown wiki
virsh shutdown a-gateway
virsh shutdown b-gateway
virsh shutdown dhcp
 
# shutdown the drbd
#drbd-stop
echo now manually turn off drbd
echo     umount /systems
echo     drbdadm secondary all
echo     drbd-overview

Por que o drbd-stop não é comentado, não faço ideia e por que ele reflete coisas que deveria estar fazendo? Eu não faço ideia. Mas tudo bem, então esse é o script de parada. Os arquivos img do Server1 para o KVM residem em /systems aliás.

Então fui para o servidor 2. Primeiro problema: a pasta /systems não contém arquivos img, mas há uma linha de montagem no script de inicialização. Aqui está o script inicial para server2: (não tenho ideia do que o nodedev-detach pci está realmente fazendo.)

#!/bin/sh
# isolate the CPUs for the VMs
#site-isolate

# backup 192 network
virsh nodedev-detach pci_0000_06_10_2
# 10.7
virsh nodedev-detach pci_0000_02_10_0
# 10.5
virsh nodedev-detach pci_0000_06_10_3
# 10.2
virsh nodedev-detach pci_0000_02_10_1

# a-gateway
# 192
virsh nodedev-detach pci_0000_06_10_0
# 10.5
virsh nodedev-detach pci_0000_06_10_1
# 10.7
virsh nodedev-detach pci_0000_02_10_4

# b-gateway
# 192
virsh nodedev-detach pci_0000_06_10_4
# 10.2
virsh nodedev-detach pci_0000_02_10_5

# dhcp
# 10.5
virsh nodedev-detach pci_0000_06_10_7
# 10.7
virsh nodedev-detach pci_0000_02_11_0
# 10.2
virsh nodedev-detach pci_0000_02_11_1

# dns2
# 192
virsh nodedev-detach pci_0000_06_11_0

# web-server
# 10.7
virsh nodedev-detach pci_0000_02_11_4

# web-firewall
# 192
virsh nodedev-detach pci_0000_06_10_6
# 10.7
virsh nodedev-detach pci_0000_02_12_4
# 10.2
virsh nodedev-detach pci_0000_02_11_5

# irsc
# 10.7
virsh nodedev-detach pci_0000_02_13_0
# BTTV
virsh nodedev-detach pci_0000_09_00_0

# firewall
# 10.25
virsh nodedev-detach pci_0000_02_12_1
# 10.5
virsh nodedev-detach pci_0000_06_11_1

# bro-server
# 192
virsh nodedev-detach pci_0000_06_11_2

echo start drbd
# start the disk mirror with the slave
service drbd start
sleep 2

# now setup drbd and filesystems

# for all VM images, mount the /systems
drbdadm primary systems
mount /dev/drbd/by-res/systems /systems

# for arc-gateway
drbdadm primary arc-gateway-data

# for backup
drbdadm primary archive
drbdadm primary amanda

# for user computer
# for user computer
drbdadm primary users

# for web server computer
drbdadm primary web-server

# for wiki
drbdadm primary svn

# for irsc. *** this is the one I want to bring up?  do I have to do this drbdadm primary irsc
drbdadm primary irsc

echo start vms
# start the VMs
# fundamental servers
virsh start dns2
virsh start dhcp
# take a long time to start servers
virsh start devel1
virsh start xmail
# gateways, sdss-gateway takes a long time
virsh start sdss-gateway
virsh start arc-gateway
virsh start user
# APO servers
virsh start web-server
virsh start backup
virsh start repository
virsh start wiki
virsh start irsc

# finally web firewall, now online to the world
virsh start web-firewall

Responder1

Como você explicou em um comentário acima. Todos os volumes raiz da VM são armazenados como arquivos de imagem no sistema de arquivos montado em /systems. Para fazer failover com segurança para o sistema peer, você precisará interromper o acesso a esse sistema de arquivos (parar todas as VMs) e desmontá-lo primeiro. Isso agrupa todas as VMs e faz com que você precise fazer failover de todas as VMs.

Uma opção, geralmentenão aconselhadoseria desconectar os nós do DRBD e causar manualmente uma divisão do cérebro. Essencialmente, ambos os nós seriam primários ao mesmo tempo e, portanto, causariam divergência de dados que você precisará resolver manualmente para reconectá-los. Gostaria primeiro de verificar se sua configuração do DRBD não inclui nenhumopções automáticas de recuperação de cérebro dividido. O procedimento deve ser semelhante ao abaixo. Tenha cuidado aqui, especialmente com o --discard-my-datacomando. Executá-los no nó errado pode ser desastroso.

## From the secondary node
# drbdadm disconnect systems
# drbdadm primary systems
## Verify irsc is stopped on the peer
# virsh start irsc
## Do whatever testing you need
# virsh stop irsc
# drbdadm secondary systems
# drbdacm connect systems --discard-my-data

informação relacionada