VMでテストを実行できるようにDRBDを停止する

VMでテストを実行できるようにDRBDを停止する

私が継承したサーバーは 2 台あり、どちらも DRBD を実行しており、それぞれ KVM 仮想マシンを実行しています。

server1 で実行中の VM を停止し、server2 の 1 つの VM だけを起動してテストを行いたいのですが、DRBD がこれらのサーバーで動作しており、server2 の起動スクリプトが壊れているため (ここに投稿)、server1 を完全に停止したくなく、その上の 1 つの VM だけを停止したいので不安です。これらのマシンを作成または構成したことはありませんし、DRBD (あまり詳しくありません) が完全に適切に実装されているかどうかも疑問です。server1 の停止スクリプトはここに投稿されており、server2 の起動スクリプトはここに投稿されています。

しかし、その前に、しばらくの間、drbd が 2 つのサーバーを操作しないように安全に停止する方法を知りたいと思います。そうすれば、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 にあります。

そこで、サーバー 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

上記のコメントで説明したとおりです。すべての 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

関連情報