[Linux-ha-jp] drbd が primary にならない Part2

Back to archive index

H.Nakai nakai****@shink*****
2011年 10月 11日 (火) 09:47:59 JST


池田様

ありがとうございます。

(2011/10/07 20:34), Junko IKEDA wrote:
>>> 問題は、二台で稼動しているシステムを停止後、片 
>>> 方のマシンのみ起動
>>> したときに heartbeat で管理しているサービスが立ち 
>>> 上がらない場合が
>>> あるということです。停止作業は primary から順に行 
>>> なっています。
> 
> Primaryから停止せず、Secondaryから停止する手順は
> 確認されたでしょうか?
> 
はい、確認しました。
Secondaryから停止すると、Secondary単独で立ち上がりません。
このときのSecondaryは、ファイルシステム的にも不完全で、
fsckを掛けて書き込み途中のデータを元に戻してからでないと
使えません。当然ながら最後に書きこまれたデータは消えます。
Primary単独では立ち上がります。

> 初期起動時に
> - node-aがPrimary
> - node-bがSecondary
> だった場合、RAからDRBDの処理を実行すると
> node-aを停止→node-bがPrimaryに昇格
> という流れになるので、この段階で正しいデータを
> 保持しているのは、node-bとなります。
> よって、node-bは単体でも起動できますが
> node-aはnode-bからの同期処理が完了するまで
> 単体で起動することはできないのではないかと思いま 
> す。
> 
確かにその通りになんですが。

> どうしてもnode-aを先に停止させた後に単体起動させた 
> い場合は
>
都合よく故障が起きればいいのですが、元Primaryだった
サーバがハード的な問題で立ち上がらなかったときに
困ってしまうのです。

> Pacemaker経由でnode-aを起動する前に
> 手動でDRBDを起動させて、node-bからnode-aへ
> 同期処理が完了したことを確認した後、両ノードの 
> DRBDを停止し
> それからPacemaker経由でnode-aを起動させてみては
> いかがでしょうか。
> 
予期せぬ停電のときとか、at, cron等で自動で停止したい
ときがあり、人が操作・判断することは避けたいと
思っています。
取り敢えず、必ずPrimaryから先に停止することとし、
必要な場合は強制的に昇格させるコマンド(引数)があるので
それで対応するつもりでいます。起動時は人が付くことに
なってしまい、嬉しくないんですが。

実はsleepを入れても、元Primaryのデータにoutdateの
フラグが立つことがあります。対抗サーバの状況をうまく
把握できないのか、バグなのかわかりません。
これについては、本家(Pacemaker)の方に質問を投げました。

宜しくお願いします。





Linux-ha-japan メーリングリストの案内
Back to archive index