pacemaker+corosyncでファイルオーバーを設定していると、フェイルオーバー発生時に・・・
# crm_mon -1 ============ Last updated: Thu Jul 16 23:03:29 2015 Stack: Heartbeat Current DC: server02 (XXX-XXXX-XXX-XXXX-XXXXXXXXX) - partition with quorum Version: 1.0.11-XXXXXXXXXXXXXXXXX 2 Nodes configured, unknown expected votes 1 Resources configured. ============ Online: [ server01 server02 ] Failed actions: service_start_0 (node=server01, call=15, rc=-2, status=Timed Out): unknown exec error service_start_0 (node=server02, call=15, rc=-2, status=Timed Out): unknown exec error
crm_mon
コマンドFailed actionsのエラーメッセージが残ることがたまにあり、そのままにしておくとフェイルバックが出来なくなるので
#crm_resource -H server01 -r service -C #crm_resource -H server02 -r service -C
上記コマンドを実行して削除する必要があります
いちいちサーバに乗り込んでcrm_mon
コマンドで削除対象のサーバ名(node名)やサービス名を確認したりするのは辛いし、
そう滅多に実行する機会が少ないので、コマンド名やパラメータを忘れてしまう事も多いので・・・
それを自動化するスクリプトを(ざっくりですがw)書きました(python製)
#!/usr/bin/env python import commands import os failflg = False crm_mon_print_list = (commands.getoutput('crm_mon -1')).replace(',','').split('n') for crm_mon_print in crm_mon_print_list: if failflg == True: faillog = (crm_mon_print.strip()).split(' ') hostname = faillog[1].split('=')[1] servicename= (faillog[0].split('_'))[0] os.system("crm_resource -H " + hostname + " -r " + servicename + " -C") if "Failed actions:" in crm_mon_print: failflg = True