DRBDをUbuntu 8.04でテストした時には、debian lennyとの間でocfs2がうまく動かなかったのですが、 Ubuntu 10.04になってからは問題なく動いていました。
ある時、vmwareが動かない事で/etc/rc2.d/以下のスクリプトの大半が実行されていない事に気がついたのですが、原因はDRBDでした。
drbdadmコマンドを使うだけで解決したのですが、単純に設定だけじゃなくてDRBDの裏の動きもある程度把握していないと複雑な状況に対応できないかなと感じました。
初期症状
いつの間にかDRBDのステータスが以下のようになっていまいました。
この結果、/etc/rc2.d/S06drbdが終了せずにいつまでも接続待ちのままプロセスが残り、後続の/etc/rc2.dにあるスクリプトが実行されない状態になってしまいました。
回復させるために手動で停止するか、/etc/rc2.d/S06drbd stopを実行して、処理を継続させる必要がありました。
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@athlon, 2010-08-04 17:46:47
m:res cs ro ds p mounted fstype
0:r0 WFConnection Primary/Unknown UpToDate/DUnknown C
drbd driver loaded OK; device status:
version: 8.0.14 (api:86/proto:86)
GIT-hash: bb447522fc9a87d0069b7e14f0234911ebdab0f7 build by phil@fat-tyre, 2008-11-12 16:40:33
m:res cs st ds p mounted fstype
0:r0 StandAlone Primary/Unknown UpToDate/DUnknown -
対応方法
一方は単純に接続待ちになり、もう片方は StandAlone 状態になっていたので、StandAloneの方から手動で接続状態にすることにします。
もしどちらがPrimaryになるか自信がなければ、事前に不要な片側を初期化しておくのがベストでしょう。
$ sudo /sbin/drbdadm connect r0
この後でstatusを確認すると、無事に同期が始まっていました。
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@athlon, 2010-08-04 17:46:47
m:res cs ro ds p mounted fstype
0:r0 SyncTarget Secondary/Primary Inconsistent/UpToDate C
... sync'ed: 46.9% (1006128/1884328)K
ただ、ステータスが Primary/Secondary となっていたので、 WFConnection 状態だった側でPrimaryにしました。
$ sudo /sbin/drbdadm -- -o primary r0
drbd driver loaded OK; device status:
version: 8.3.7 (api:88/proto:86-91)
GIT-hash: ea9e28dbff98e331a62bcbcc63a6135808fe2917 build by root@athlon, 2010-08-04 17:46:47
m:res cs ro ds p mounted fstype
0:r0 Connected Primary/Primary UpToDate/UpToDate C
0 件のコメント:
コメントを投稿