heartbeatのコマンドメモ
検索したらheartbeatを停止してファイルオーバーを確認、などとあるがいまいちしっくりこない。heartbeat自体は起動したままもっといいテストがある気がする。
とりあえず自動フェイルバック無効化をコマンドで設定してテスト。
設定確認 cibadmin -Q 自動フェイルバックしない crm_attribute -t crm_config -n default-resource-stickiness -v INFINITY 自動フェイルバックする crm_attribute -t crm_config -n default-resource-stickiness -v 0 モニタ(1秒毎に更新) crm_mon -i 1 failedリソースのリセット crm_resource -C -r apache2_11 [-H hostname] failer_countの削除 crm_failcount -D -U hostname -r apache2_11 サービスが落ちた時に自分のマシンで再起動するのを防ぐ(テスト用?) crm_attribute -t crm_config -n default-resource-failure-stickiness -v "-INFINITY"
自分のマシンで再起動しないようにしてからサービスを止めると、しばらくしたらフェイルオーバーする。
これは上記のcrm_attributeを設定するか、または何らかのエラーでサービスが立ち上がらないことを想定して/etc/init.d/apache2 などのファイルのstartの箇所にexit 1と記述してstartが失敗するようにしてからstopする。
待機側のheartbeatを停止せずにフェイルバックってどうやるんだろう?
http://itpro.nikkeibp.co.jp/article/COLUMN/20090106/322292/
スタンバイ?
追記:crm_attribute -t crm_config -n default-resource-stickiness -v 0 コマンドで一時的にフェイルバックONにするとフェイルバックが開始される。フェイルバックされた後は一通り確認してまたオフにすれば良い(たぶん)。
取り敢えずheartbeat stopしたら固まったので
crm_resource -C -r Filesystem_3
などと処理が止まってそうなリソースを再読込したら無事にフェイルバックした。
その他 参考:http://centossrv.com/heartbeat-drbd.shtml
あとapache2の起動に失敗していたので
start) log_daemon_msg "Starting web server" "apache2" if $APACHE2CTL start; then if check_htcacheclean ; then log_progress_msg htcacheclean start_htcacheclean || log_end_msg 1 fi log_end_msg 0 else log_end_msg 1 fi RET=$? sleep 1 exit $RET ;;
最後にsleepを付け足した。
start終了直後にstatusを実行してもapacheがまだ立ち上がっていないらしい。本当はstatusが通るようになってからstartの終了ステータスを返すようにするべきなのだが、どこを修正すればいいのかよくわからない…。