Останавливаю DRBD, чтобы можно было запустить несколько тестов с виртуальной машиной

Останавливаю DRBD, чтобы можно было запустить несколько тестов с виртуальной машиной

У нас есть два сервера, которые я унаследовал, на обоих работает DRBD, и на каждом из них запущены виртуальные машины KVM.

Я бы хотел остановить ВМ, работающую на сервере server1, и поднять только одну ВМ на сервере server2 для некоторых тестов. Хотя с DRBD, работающим на этих серверах, и сломанным скриптом запуска (опубликованным здесь) с сервера server2, это заставляет меня нервничать, так как я не хочу полностью останавливать server1, только одну ВМ на нем. Я не создавал и не настраивал эти машины, и я сомневаюсь, был ли DRBD (о котором я мало что знаю) полностью правильно реализован. Скрипт остановки Server1 опубликован, а скрипт запуска servers2 опубликован здесь.

Но перед всем этим, я думаю, я просто хочу знать, как безопасно остановить drbd от возни с двумя серверами на время. Так что я могу смонтировать файловую систему на server2 и поднять VM, которую я остановил на server1.

Скрипт остановки сайта 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

Почему drbd-stop закомментирован, понятия не имею, и почему он повторяет то, что должен делать? Понятия не имею. Но ладно, вот скрипт остановки. Кстати, файлы img Server1 для KVM находятся в /systems.

Итак, я перехожу на сервер 2. Первая проблема: в папке /systems нет файлов img, но в скрипте запуска есть строка монтирования. Вот скрипт запуска для сервера 2: (Понятия не имею, что на самом деле делает nodedev-detach pci.)

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

решение1

Как вы объяснили в комментарии выше. Все корневые тома ВМ хранятся в виде файлов образов в файловой системе, смонтированной в /systems. Чтобы безопасно переключиться на одноранговую систему, вам нужно будет остановить доступ к этой файловой системе (остановить все ВМ) и сначала размонтировать ее. Это объединяет все ВМ вместе, и вам нужно будет выполнить переключение всех ВМ.

Один из вариантов, который обычноне рекомендуетсябудет отключать узлы DRBD и вручную вызывать split-brain. По сути, оба узла будут первичными в одно и то же время, и, таким образом, вызывать расхождение данных, которое вам нужно будет вручную разрешить, чтобы снова подключить их. Сначала я бы проверил, не включает ли ваша конфигурация DRBD какие-либоавтоматические параметры восстановления разделенного мозга. Процедура должна быть похожа на следующую. Будьте осторожны, особенно с --discard-my-dataкомандой. Запуск их с неправильного узла может иметь катастрофические последствия.

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

Связанный контент