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)の方に質問を投げました。 宜しくお願いします。