ログ日記

作業ログと日記とメモ

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の終了ステータスを返すようにするべきなのだが、どこを修正すればいいのかよくわからない…。