作業ログ源泉垂れ流し

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

DRBDの練習 2 〜アクティブ系の切換〜

前回に続いて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

テスト用にファイルを作る。 /dev/drbd1drbd1/mntmountされている。

drbd1# echo 'Test File 1' > /mnt/test1
drbd1# ls /mnt
lost+found  test1
drbd1# cat /mnt/test1  
Test File 1

まずは、現在プライマリのdrbd1をシャットダウンしてみる。

drbd1# shutdown -P now

この状態でdrbd2でステータスを確認。

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

peer connectionConnectingとなっていて接続が切れていることがわかる。
この状態で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  test1
drbd2# cat /mnt/test1 
Test File 1

先ほど作ったファイルが存在している。
さらにファイルを作成してみる。

drbd2# echo 'Test File 2' > /mnt/test2
drbd2# ls /mnt 
lost+found  test1  test2
drbd2# cat /mnt/test2
Test File 2

この状態でdrbd1を起動してみる。

host$ virsh start --console drbd1

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

drbd1セカンダリになっている。

drbd2でアンマウントして、セカンダリに戻す。

drbd2# umount /mnt
drbd2# drbdadm secondary r0
drbd2# drbdadm status r0
r0 role:Secondary
  disk:UpToDate
  peer role:Secondary
    replication:Established peer-disk:UpToDate

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

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

マウントして中身を確認。

drbd1# mount /dev/drbd1 /mnt
drbd1# ls /mnt
lost+found  test1  test2
drbd1# cat /mnt/test2
Test File 2

drbd2で作成したファイルも確認できた!