作業ログ源泉垂れ流し

しがないIT技術者の作業ログを垂れ流す

DRBDの練習 3 〜障害対応での切換〜

前回に続いてDRBDの練習。

障害が発生したときの切換をシミュレーションしてみる。

現時点での状態を確認。

drbd1# drbdadm status r0
r0 role:Primary
  disk:UpToDate
  peer role:Secondary
    replication:Established peer-disk:UpToDate

drbd2# drbdadm status r0
r0 role:Secondary
  disk:UpToDate
  peer role:Secondary
    replication:Established peer-disk:UpToDate

プライマリがdrbd1で、セカンダリdrbd2

drbd1で、テスト用にddを使ってファイルに書き込みつづける。

drbd1# dd if=/dev/zero of=/mnt/test bs=1 oflag=sync status=progress
507 bytes copied, 3 s, 0.2 kB/s

この状態で、KVMのホスト環境から強制的にdrbd1を停止してみる。

host$ virsh destroy drbd1
Domain drbd1 destroyed

drbd2で、状態を確認。

drbd2# drbdadm status r0
r0 role:Secondary
  disk:UpToDate
  peer connection:Connecting

接続が切れている。
そこで、drbd2をプライマリに昇格してみる。

drbd2# drbdadm primary r0
drbd2# drbdadm status r0
r0 role:Primary
  disk:UpToDate
  peer connection:Connecting

プライマリに昇格できたので、マウントして中身を確認。

drbd2# mount /dev/drbd1 /mnt
drbd2# ls /mnt
lost+found  test
drbd2# ls -l /mnt/test 
-rw-r--r-- 1 root root 656 Jun 27 23:25 /mnt/test

一旦アンマウントしてセカンダリに降格。

drbd2# umount /mnt
drbd2# drbdadm secondary r0
drbd2# drbdadm status r0
r0 role:Secondary
  disk:UpToDate
  peer connection:Connecting

そして、drbd1を起動してみる。

host$ virsh start --console drbd1

drbd1# drbdadm status r0
r0 role:Secondary
  disk:UpToDate
  peer role:Secondary
    replication:Established peer-disk:UpToDate

drbd1をプライマリに昇格して、マウントする。

drbd1# drbdadm primary r0
drbd1# mount /dev/drbd1 /mnt
drbd1# drbdadm status r0
r0 role:Primary
  disk:UpToDate
  peer role:Secondary
    replication:Established peer-disk:UpToDate

drbd1# ls /mnt
lost+found  test
drbd1# ls -l /mnt/test
-rw-r--r-- 1 root root 656 Jun 27 23:25 /mnt/test

今回のテスト条件では、問題なく同期が取れていたことが確認できた!