Deteniendo DRBD para poder ejecutar algunas pruebas con una VM

Deteniendo DRBD para poder ejecutar algunas pruebas con una VM

Tenemos dos servidores que heredé, ambos ejecutan DRBD y cada uno ejecuta máquinas virtuales KVM.

Me encantaría detener una máquina virtual que se ejecuta en el servidor1 y abrir solo la máquina virtual en el servidor2 para algunas pruebas. Aunque con DRBD haciendo lo suyo en estos servidores y el script de inicio roto (publicado aquí) que tengo del servidor2, me pone nervioso porque no quiero detener completamente el servidor1, solo una máquina virtual en él. No creé ni configuré estas máquinas y tengo dudas sobre si el DRBD (del cual sé poco) se implementó correctamente. El script de detención del servidor1 se publica y el script de inicio del servidor2 se publica aquí.

Pero antes de todo eso, supongo que solo quiero saber cómo evitar que drbd juegue con los dos servidores de manera segura por un tiempo. Para poder montar un sistema de archivos en el servidor2 y abrir una máquina virtual que detuve en el servidor1.

Script de parada del sitio del servidor1:

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 qué se comenta drbd-stop sin tener idea y por qué se hace eco de cosas que debería estar haciendo? No tengo ni idea. Pero bueno, ese es el guión de parada. Los archivos img del servidor1 para el KVM se encuentran en /systems por cierto.

Entonces fui al servidor 2. Primer problema: la carpeta /systems no tiene archivos img, pero hay una línea de montaje en el script de inicio. Aquí está el script de inicio para el servidor2: (No tengo idea de qué está haciendo realmente el pci nodedev-detach).

#!/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

Respuesta1

Como explicaste en un comentario anterior. Todos los volúmenes raíz de la VM se almacenan como archivos de imagen en el sistema de archivos montado en /systems. Para realizar una conmutación por error segura en el sistema par, deberá detener el acceso a este sistema de archivos (detener todas las máquinas virtuales) y desmontarlo primero. Esto agrupa todas las máquinas virtuales y hace que sea necesario realizar una conmutación por error en todas las máquinas virtuales.

Una opción, que generalmente esno aconsejadoSería desconectar los nodos DRBD y causar manualmente un cerebro dividido. Básicamente, ambos nodos serían primarios al mismo tiempo y, por lo tanto, provocarían una divergencia de datos que deberá resolver manualmente para volver a conectarlos. Primero verificaría que su configuración DRBD no incluya ningunaOpciones automáticas de recuperación de cerebro dividido.. El procedimiento debería ser similar al siguiente. Tenga cuidado aquí, especialmente con el --discard-my-datacomando. Ejecutarlos desde el nodo equivocado podría 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

información relacionada