VM으로 일부 테스트를 실행할 수 있도록 DRBD 중지

VM으로 일부 테스트를 실행할 수 있도록 DRBD 중지

제가 물려받은 두 개의 서버가 있는데, 둘 다 DRBD를 실행하고 각각 KVM 가상 머신을 실행합니다.

server1에서 실행 중인 VM을 중지하고 일부 테스트를 위해 server2에서 VM 1개만 불러오고 싶습니다. DRBD가 이러한 서버에서 작업을 수행하고 server2에서 가져온 손상된 시작 스크립트(여기에 게시됨)가 있지만 server1을 완전히 중지하고 싶지 않고 해당 서버에 있는 하나의 VM만 중지하고 싶기 때문에 긴장됩니다. 나는 이러한 기계를 생성하거나 구성하지 않았으며 DRBD(내가 거의 알지 못하는)가 완전히 적절하게 구현되었는지 의심됩니다. Server1의 중지 스크립트가 게시되고 server2 시작 스크립트가 여기에 게시됩니다.

하지만 그 전에, drbd가 두 서버를 잠시 방해하는 것을 안전하게 중지하는 방법을 알고 싶습니다. 그러면 server2에 파일 시스템을 마운트하고 server1에서 중지한 VM을 불러올 수 있습니다.

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이 주석 처리된 이유는 무엇이며, 수행해야 할 작업을 에코하는 이유는 무엇입니까? 나는 모른다. 하지만 좋아요, 이것이 정지 스크립트입니다. KVM용 Server1의 img 파일은 /systems btw에 있습니다.

그래서 서버 2로 이동했습니다. 첫 번째 문제: /systems 폴더에는 img 파일이 없지만 시작 스크립트에 마운트 라인이 있습니다. 다음은 server2의 시작 스크립트입니다. (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

위 댓글에서 설명하셨듯이. 모든 VM의 루트 볼륨은 에 마운트된 파일 시스템에 이미지 파일로 저장됩니다 /systems. 이를 피어 시스템으로 안전하게 장애 조치하려면 먼저 이 파일 시스템에 대한 액세스를 중지(모든 VM 중지)하고 마운트 해제해야 합니다. 이렇게 하면 모든 VM이 하나로 묶이므로 모든 VM을 장애 조치해야 합니다.

하나의 옵션은 일반적으로조언하지 않음DRBD 노드의 연결을 끊고 수동으로 분할 브레인을 발생시키는 것입니다. 기본적으로 두 노드가 동시에 기본 노드가 되므로 다시 연결하려면 수동으로 해결해야 하는 데이터 분기가 발생합니다. 먼저 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

관련 정보