インフラエンジニアXの備忘

とある企業のシステム部門のインフラエンジニアです。忘れっぽい自分のメモ書きとしてこのブログを使用します。

DRBD運用メモ

あああ、大分時間が空いてしまった。
日々忙しいというのを理由に備忘録をつけないというのはいただけませんね。
憶えられることは3つだけで、4つ目から忘れちゃうのかなぁ。

DRBD運用確認

一応、テストの切替は実施してみたが、
勝手に機器がリブートするなどした場合にどのようになるのかを確認

■プライマリ機のリブートした場合


プライマリ機にて障害発生と仮定してリブートを実施し、セカンダリ側のDRBDのステータスを確認する。

 # /etc/init.d/drbd status
 
 drbd driver loaded OK; device status:
 version: 8.4.2 (api:1/proto:86-101)
 GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by dag@Build64R6, 2012-09-06 08:16:10
 m:res  cs            ro                 ds                 p  mounted  fstype
 0:r0   WFConnection  Secondary/Unknown  UpToDate/DUnknown  C

 → プライマリ側が識別できずUnknownになっている。


リブート後にdrbdが起動した後にどのような状態かを確認

 # /etc/init.d/drbd status

drbd driver loaded OK; device status:
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by dag@Build64R6, 2012-09-06 08:16:10
m:res  cs          ro                   ds                     p  mounted  fstype
0:r0   SyncTarget  Secondary/Secondary  Inconsistent/UpToDate  C
...    sync'ed:    27.0%                (149512/204792)M

 → リブート後はどちらもセカンダリとなっている。
 → おそらくこの状態では双方のデータの整合性をチェックしていると思われる。


このままだとマウントできないのでプライマリ機にて以下実行する。


 # drbdadm primary r0 → プライマリ機に変更
 # /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by dag@Build64R6, 2012-09-06 08:16:10
m:res  cs          ro                 ds                     p  mounted  fstype
0:r0   SyncSource  Primary/Secondary  UpToDate/Inconsistent  C
...    sync'ed:    29.4%              (144764/204792)M

 → プライマリに変化したことを確認

 # mount /dev/drbd0 /pgdata →/pgdata をマウント
 # df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                      290G  1.8G  273G   1% /
tmpfs                  32G     0   32G   0% /dev/shm
/dev/sda1             485M   54M  406M  12% /boot
/dev/drbd0            197G  188M  187G   1% /pgdata

 → /pgdataがマウントされたことを確認

■セカンダリ機をリブートした場合


プライマリ側でPrimary/Unknownとなっているかどうかを確認

 # /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by dag@Build64R6, 2012-09-06 08:16:10
m:res  cs            ro               ds                 p  mounted   fstype
0:r0   WFConnection  Primary/Unknown  UpToDate/DUnknown  C  /pgdata   ext4


リブート後にdrbdが起動した後、どのような状態かを確認

 # /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.4.2 (api:1/proto:86-101)
GIT-hash: 7ad5f850d711223713d6dcadc3dd48860321070c build by dag@Build64R6, 2012-09-06 08:16:10
m:res  cs          ro                 ds                     p  mounted  fstype
0:r0   SyncSource  Primary/Secondary  UpToDate/Inconsistent  C

 → 起動時にはSecondaryで起動してくるので、この状態はあっている?んだと思われる。
 → ただ、セカンダリ機がリブートしても一度双方でデータチェックは行われないとおかしいと思うので
   これは詳細のチェックを実施する必要がある。
本日はここまで、お疲れさまでした。

参照:http://www.drbd.jp/users-guide/s-configure-resource.html#s-drbdconf-example
参照:http://www.oss-d.net/ha/postgresql
参照:http://www.oss-d.net/drbd-pacemaker-corosync
参照:http://level69.net/archives/258
参照:http://centossrv.com/heartbeat-drbd.shtml
参考:http://d.hatena.ne.jp/clmind/20090612/1244816651