ha.cf ファイルは、Heartbeatを構成する際に理解しておきたい重要なファイルです。クラスタノード、通信トポロジーなどの機能が含まれています。FineArtOfConfiguringaClusterについては、別途、詳しく見ていただく必要がありますので、ここでは取り上げません。Heartbeatを初めてお使いになる方は、Heartbeat入門に掲載されている資料をご覧ください。
ha.cfファイルの特定のオプションはグローバルであり、各命令はha.cfファイルで指定された順に解釈されるため、グローバルオプションの順序はha.cfファイルを構成する上で重要となってきます。
グローバルオプションには、以下のものがあります:
これらのオプションは、ha.cfファイルの先頭に入力してください。特に、ログ関係のエントリを最初に入力することをお勧めします。
各ページのデフォルト値は、このWebサイトをご覧ください。
最小限のha.cfファイルには、1つまたは複数のノード命令、および、1つまたは複数の通信トポロジー(bcast、mcast、ucast、またはシリアル)命令が含まれています。
apiauth 命令では、どのユーザー/グループ(またはユーザーとグループ)に特定のAPIグループ名への接続を許可するかを指定します。構文は簡単です:
apiauth apigroupname [uid=uid1,uid2 ...] [gid=gid1,gid2 ...]
uidリスト/gidリスト、またはその両方を指定できます。uidリスト/gidリストは必ず指定してください。両方を指定した場合、uidリストかgidリストに含まれていれば、接続が許可されます。
defaultというAPIグループ名には特別な意味があります。これは、APIグループ名のないクライアントと、ほかのapiauth命令で識別されない全てのクライアントグループを許可する際に使用されるものです。
ha.cfファイルで特に指定していない場合には、以下のとおり、特定のサービスにデフォルト認証が提供されます:
サービス |
デフォルトのapiauth |
ipfail |
uid=hacluster |
ccm |
gid=haclient |
ping |
gid=haclient |
cl_status |
gid=haclient |
lha-snmpagent |
uid=root |
crm |
uid=hacluster |
auto_failback オプションでは、リソースを「PrimaryNode_ja:プライマリ」ノードに自動的にフェイルバックするかどうかの設定や、ノード障害が発生または管理者が介入するまでノードを稼働させておく指定ができます。
The possible values for auto_failback are:
on - 自動フェイルバックを有効にする
off - 自動フェイルバックを無効にする
legacy - クラスタ内のノード全てがauto_failbackオプションをサポートしていないシステムで、自動フェイルバックを有効にする
auto_failback(onおよびoff)には、以前の「nice_failback(on)」設定と後方互換性があります。
フラッシュカットなしで「legacy」から「on」に変換する方法(ローリングアップグレードプロセスの使用)については、FAQドキュメントを参照してください。
auto_failbackのデフォルト値は「legacy」です。起動時には警告が表示されてしまいますので、auto_failback命令をha.cfファイルに必ず入力してください(注:auto_failbackには、HeartbeatBoolean値またはlegacyを指定できます)。通常、アクティブ/アクティブクラスタではauto_failback onに、そしてアクティブ/パッシブクラスタではoffに設定します。
注: auto_failbackは、リリース2のCRMスタイルクラスタ(crm onで構成したクラスタ)では無効になります。CRMスタイルのクラスタでは、このコマンドはCIBのdefault_resource_stickiness属性に置き換えられました。
autojoin 命令を使用すると、クラスタと通信するだけでノードを自動的に参加させることができ、ha.cfファイルにnode命令を入力する必要がなくなります。通常、通信は強力に認証されており、クラスタキーを識別するノードだけが(自動的またはその他の方法で)参加できます。
以下は、一般的なautojoin命令の構文です:
autojoin (none|other|any)
以下は、指定可能なautojoin命令です:
autojoin none autojoin other autojoin any
autojoin 命令に指定可能な値には、以下の意味があります:
none: 自動参加を無効にする。
other: ha.cfに含まれない自分以外のノードに自動参加を許可する。つまり、自分のノードはha.cfに含まれていなければならないが、ほかのノードは含まれていなくてもよい。
any: ha.cfに含まれない全てのノードに(現在のノードにも)自動参加を許可する。
クラスタと見なされているノードは、hostcacheファイルに保存されています。
baud命令を使用して、シリアル通信の速度を設定します。オペレーティングシステムが対応していれば、9600, 19200, 38400, 57600, 115200, 230400, 460800のいずれかの速度を指定できます。デフォルトの速度は19200です。次に、baud 命令の例を挙げます:
baud 38400
bcast 命令を使用して、HeartbeatがUDPブロードキャストトラフィックを送信するインターフェースを構成します。複数のインターフェースを1行で指定できます。udpport命令を使用して、これらのブロードキャスト通信に使用するポートを構成します。次に、bcast行の例を挙げます。
bcast eth0 eth1 # on Linux systems bcast le0 # for Solaris systems
CRM対応クラスタでは、W. Richard Stevens著『Unix Network Programming - Vol 1 - 3rd Edition: The Sockets Networking API』に記載されたフラグメンテーションの問題により、bcast命令はFreeBSDでは動作しません。
20.4 dg_cli Function Using Broadcasting .. IP Fragmentation and Broadcasts Berkeley-derived kernels do not allow a broadcast datagram to be fragmented. If the size of an IP datagram that is being sent to a broadcast address exceeds the outgoing interface MTU, EMSGSIZE is returned (pp. 233-234 of TCPv2). This is a policy decision that has existed since 4.2BSD. There is nothing that prevents a kernel from fragmenting a broadcast datagram, but the feeling is that broadcasting puts enough load on the network as it is, so there is no need to multiply this load by the number of fragments. .... AIX, FreeBSD, and MacOS implement this limitation. Linux, Solaris, and HP-UX fragment datagrams sent to a broadcast address.
これは、CRMクラスタが(MTUサイズを超える)大容量のパケットをクラスタ通信メディアで送信しようとすることが原因です。
compression 命令では、メッセージが大きくなったり、圧縮が必要になったりする場合に、使用する圧縮方法を設定します。
対応するライブラリがシステムに含まれるかによって、zlibまたはbz2を設定できます。 /usr/lib/heartbeat/plugins/HBcompress をチェックして、使用可能な圧縮モジュールを確認できます。
この命令を設定していない場合、圧縮は行われません。
compression <bz2/zlib>
compression_threshold 命令では、メッセージを圧縮するしきい値を設定します。例えば、しきい値が1の場合、1 KB以上のメッセージが圧縮されます。デフォルトは2(KB)です。この命令は、compression命令を設定している場合にのみ有効です。
compression_threshold 2
The conn_logd_time 命令では、Heartbeatとログデーモンの接続が切断された場合に、Heartbeatがログデーモンに再接続する時間を指定します。conn_logd_timeは、Heartbeatの時間構文に従って指定します。次に例を挙げます。
conn_logd_time 60 #60 seconds
デフォルトは60秒です。
注:Heartbeatは、自動的にはログデーモンに再接続はしません。メッセージをログに記録する必要があり、最後の接続試行からconn_logd_time の時間が経過した場合にのみ、再接続を試みます。
The coredumps 命令は、コアをダンプする必要がある場合に、Heartbeatにコアダンプの作成を有効にするよう指示します。
以下は、一般的なcoredumps 命令の構文です:
|
coredumps HeartbeatBoolean |
以下は、一般的なcoredumps命令の使用例です:
coredumps true coredumps false
The crm 命令では、Heartbeatが1.xスタイルのクラスタマネージャか、複数のノードをサポートする2.xスタイルのクラスタマネージャのどちらを実行するかを指定します。
構文は簡単ですe:
|
crm HeartbeatBoolean |
ononに設定すると、この命令は以下を自動で定義します:
apiauth stonithd uid=root apiauth crmd uid=hacluster apiauth cib uid=hacluster respawn hacluster ccm respawn hacluster cib respawn root stonithd respawn root lrmd respawn hacluster crmd
deadping 命令を使用して、Heartbeatがクラスタのpingノードが停止していると判断するまでの時間を指定します。この値を低く設定しすぎると、システムが誤ってpingノードの停止を宣言してしまいます。逆に、この値を高く設定しすぎると、通信障害の検出が遅れます。 deadpingの値は、Heartbeatの時間構文に従って指定します。以下に、deadpingを指定する2つの例を挙げます。
deadping の値は、Heartbeatの時間構文に従って指定します。以下に、deadpingを指定する2つの例を挙げます。
deadping 20 # 20 seconds deadping 750ms # 750 milliseconds
deadtime 命令を使用して、Heartbeatがクラスタのノードが停止していると判断するまでの時間を指定します。この値を低く設定しすぎると、システムが誤ってノードの停止を宣言してしまいます。逆に、この値を高く設定しすぎると、クラスタのノードに障害が発生した後の引き継ぎが遅れます。この重要なパラメータを構成(調整)する方法については、FAQ ドキュメントをご参照ください。
The deadtime の値は、Heartbeatの時間構文に従って指定します。以下に、deadtimeを指定する2つの例を挙げます。
deadtime 10 # 10 seconds deadtime 250ms # 250 milliseconds (1/4 second)
The debug 命令を使用して、システムで実行されるデバッグのレベルを設定します。プロダクションシステムでは、debugレベルをゼロ(オフ)に設定します。これがデフォルトです。デバッグレベルを1以上に設定すると、ログファイルのサイズとシステムのハートビートを高速で送信する機能に影響が生じてしまいます。
システムのデバッグレベルは、-dオプションを使用して、コマンドラインで指定することもできます。さらに、システムのデバッグレベルは、heartbeatプロセスのSIGUSR1およびSIGUSR2シグナルを送信することによって動的に変更できます。SIGUSR1はデバッグレベルを上げ、SIGUSR2はデバッグレベルを下げます。以下に、debug命令の例を挙げます。
debug 0
debugfile命令は、バージョン2.xで廃止される予定です。代わりに use_logd命令を有効にしてください。
debugfile 命令では、Heartbeatがデバッグメッセージを書き込むファイルを指定します。
次に、debugfile命令の例を挙げます:
debugfile /var/log/ha-debug
Hbaping 命令では、ファイバー・チャンネル・デバイスをPingノードとしてHeartbeatに宣言します。
hbaping 命令の構文は、以下のように簡単です:
hbaping fc-card-name
The fc-card-name は、hbaapiパッケージの一部を構成するhbaapitestプログラムから取った名前です。hbaapitestを実行すると、詳細出力が生成されます。最初の数行に、以下のような行が出力されます:
Adapter number 0 is named: qlogic-qla2200-0
ここでは、fc-card-name は qlogic-qla2200-0 です。
配布されているLinux-HAの各バージョンでは、この命令は有効に設定されていません。有効にするには、以下の手順を実行してください:
http://hbaapi.sourceforge.net からHBAAPIライブラリのソースを入手します。
コンパイルします(tarballに含まれるMakefileは、linuxで動作しません。linux用のMakefileは、ここからダウンロードできます)
生成されたlibHBAAPI.so ファイルを/usr/libにコピーします。
hbaapi.hファイルをパッケージから/usr/includeにコピーします。
同じバージョンのソースからHeartbeatをコンパイルし、hbaping.soファイルだけを/usr/lib/heartbeat/plugins/HBcommに手動でコピーします
hbgenmethod 命令では、Heartbeatが通信世代番号を計算する方法を指定します。これは専門的で分かりにくい命令です。主に、ローカルディスクを持たないファイアウォールと、再起動後も永続的にデータ保存ができないデバイスで使用されるものです。デフォルトでは、Heartbeatの各世代をファイルに保存します。この世代番号は、再生攻撃からの防護に使用されるものです。
以下は、hbgenmethod命令です:
hbgenmethod time hbgenmethod file # this is the default.
time メソッドを指定すると、問題が発生する恐れがあります。Heartbeatを再起動したときに、ローカル時刻がHeartbeat起動時の時刻よりも早かったり、両方の時刻が一致したりすると、そのノードはクラスタに参加できません。
The hopfudge 命令では、パケットが破棄される前に、転送するノード数を制御します。ただし、hopfudgeの値は、システムのノード数に追加されます。デフォルトは1です。
以下に、hopfudge命令の例を挙げます:
hopfudge 1
initdead パラメータを使用して、Heartbeatを最初に開始したときに、[ja/:ClusterNode_ja:クラスタノード]の停止を宣言するまでの時間を設定します。オペレーティングシステムが適切に動作するまでに通信システムに時間がかかることがあるため、パラメータを高い値に設定する必要があります。initdeadは、Heartbeatの時間構文に従って指定します。以下に、initdead命令の例を挙げます:
initdead 30
一部のスイッチネットワーク環境では、NICがポート接続するときに、必ずスイッチがスパニングツリーアルゴリズムを実行します。完了までに時間がかかりますが、これは接続するNICが別のスイッチである場合にのみ必要となるものです。該当する場合は、特定のNICをスイッチでないものと構成し、接続の遅延を大幅に短縮できます。該当しない場合は、initdeadを引き上げて、この問題を解決する必要があります。
initdeadを低く設定しすぎると、一方のノードが相手ノードを停止していると宣言し、非CRMクラスタではログに「both nodes own XXX resources」と出力されます。
The keepalive 命令では、ハートビートパケットの間隔を設定します。keepaliveは、Heartbeatの時間構文に従って指定します。
以下に、keepalive命令を指定する例を挙げます:
keepalive 100ms
keepalive 2 # 2 seconds
logfacility を使用して、メッセージのログ記録に使用するsyslogのロギングファシリティをHeartbeatに指示します。
logfacility の値はオペレーティングシステムによって異なりますが、一般的な値には {auth, authpriv, daemon, syslog, user, local0, local1, local2, local3, local4, local5, local6, local7}などがあります。
以下に、logfacility命令の例を挙げます:
logfacility local7
logfile命令は、バージョン2.x構成で廃止される予定です。 代わりに、use_logd 命令を有効にしてください。
logfile 命令では、ログファイルを構成します。Heartbeatのデバッグ以外の全てのメッセージは、このファイルに出力されます。
以下に、logfile命令の例を挙げます:
logfile /var/log/ha-log
(syslogのログを使用する代わりに)ログファイルを構成すると、過剰な負荷がかかっているときにHeartbeatが数秒間停止することがあります。これは、システムに要求されるdeadtimeに影響する可能性があります。
mcast 命令を使用して、マルチキャスト通信パスを構成します。
以下は、mcast命令の構文です:
mcast dev mcast-group udp-port ttl 0
dev - ハートビートを送受信するIPデバイス。
mcast-group - 参加するマルチキャストグループ(クラスDマルチキャストアドレス224.0.0.0~239.255.255.255)
最初のバイトを239にします。
ttl - 送信ハートビートのttl値。これは、マルチキャストパケットが伝播する範囲に影響します(0~255)。現在のサブネットでは1に設定します。必ずゼロ以上に設定してください。
以下に、mcast命令の例を挙げます:
mcast eth0 239.0.0.1 694 1 0
この命令には、必要なパラメータと不要なパラメータがあります。
msgfmt 命令では、Heartbeatが通信で使用する形式を指定します。
msgfmt <classic/netstring>
デフォルトはclassicです。
classic - Heartbeatは、メッセージを文字列に変換して転送します。バイナリ値は、base64ライブラリを使用して変換されます。
netstring - バイナリメッセージは直接転送されます。文字列とバイナリ値の変換が行われないのでより効率的です。
分からないときはclassic(デフォルト)を選択してください。
node命令は、どのマシンがクラスタ内にあるかを通知します。node命令の構文は簡単です:
node nodename1 nodename2 ...
命令のノード名は、マシンの"uname -n"に一致させなければなりません。
1つの命令で複数のノード名を宣言することができます。命令を複数回使用することも可能です。通常、autojoin命令が有効でない場合は、現在のノードも含めた、クラスタ内のノード全てをha.cfファイルに入力します。
2.0.4以降のnode命令は、ハートビートをやり取りするノードが完全に信頼できるわけではありません。過去に、ノードが追加された場合に手動で削除されるまでhostcacheファイル内に残るといった傾向がありました。
関連項目: http://www.osdl.org/developer_bugzilla/show_bug.cgi?id=1226
Ping命令では、PingノードをHeartbeatに宣言します。
ping 命令の構文は簡単です:
ping ip-address ...
ping命令にあるIPアドレスは独立しているため、各ノードへの接続性は重要です。
ノードのグループが特定の機能を持ち、ノードが存在することで正常な通信が可能な場合は、ping_group命令を使用します。
Ping group命令は、ha.cfファイルに含まれ、グループPingノードをHeartbeatに宣言します。
ping_group命令の構文は簡単です:
ping_group group-name ip-address ...
ping_group命令の各IPアドレスは関連するものと見なされ、任意のノード1つに対する接続性は、自動的にグループに対する接続性と見なされます。
Heartbeatでは、pingグループは、単一のクラスタノード(group-name)と見なされています。グループのメンバーいずれかと通信できる場合には、group-nameメンバーにも到達できます。これは、2台のルーターを使い分けてインターネットに接続する場合や、信頼できるpingノードを見つけられない場合などに役立ちます。
realtime 命令では、Heartbeatでオペレーティングシステムのリアルタイムスケジュール機能を利用するかどうかを指定します。設定を有効にした場合、Heartbeatはメモリにロックして、優先度をリアルタイム優先度(rtprio命令で設定)へと引き上げます。この機能は主に、システムに不具合を起こし、デバッグに障害をもたらすループをデバッグする際に使用されます。realtimeフラグはHeartbeatBoolean値です。デフォルト値はtrueです。以下に、realtime命令の例を挙げます。
realtime on
The respawn命令を使用して監視プログラムを指定します。このプログラムが100以外のコードで終了すると、自動的に再起動されます。1つ目のパラメータはプログラムを実行するユーザーIDで、2つ目のパラメータは実行するプログラムです。その他のパラメータは、引数としてプログラムに渡されます。
iptailはユーザーのほとんどが実行したいと思うプログラムです。
以下に、respawn命令の例を挙げます:
respawn hacluster /usr/lib/heartbeat/ipfail
セキュリティに関する注: Heartbeatからrootとしてプログラムを実行すると、セキュリティは低くなります(起動後にユーザーIDを変更できる場合を除く)。Heartbeatの付属プログラムをrespawnでrootとして実行する場合は注意してください。
rtprio 命令を使用して、Heartbeatを実行する優先度を指定します。リアルタイム優先度の異なるプログラムを同時に実行していない場合は、指定する必要はありません。このフィールドの最小値・最大値は、それぞれsched_get_priority_min(SCHED_FIFO)およびsched_get_priority_max(SCHED_FIFO)呼び出しから設定できます。rtprioのデフォルト値は、最小値と最大値の中間です。
以下に、rtprio命令の例を挙げます:
rtprio 5
serial 命令では、指定したシリアルポートを通信に使用するようHeartbeatに命令します。serial命令のパラメータは、最初にキャリアを待機することなくオープンするのに適したttyデバイスの名前です。Linuxでは、これらのポートは/dev/ttySXという名前になっています。
以下に、serial命令の例を挙げます:
serial /dev/ttyS0 /dev/ttyS1 # Linux serial /dev/cuaa0 # FreeBSD serial /dev/cua/a # Solaris
stonith 命令を使用して、Heartbeat(リリース1のみ)のSTONITHを構成します。 ここでは、STONITH構成ファイルをクラスタ内の各マシンに配置してクラスタ内の相手ノードをリセットするのに使用する(単一の)STONITHデバイスの構成を想定しています。
stonith 命令の例
stonith {stonith-device-type} {stonith-configuration-file}
ここでは、{stonith-device-type}は、構成する(対応する)STONITHデバイスのタイプのことです。{stonith-configuration-file}は、このSTONITHデバイスのSTONITH構成情報を入力するファイル名です。
{stonith-device-type}の一覧を表示するには、次のコマンドを発行します:
stonith -L
各種のSTONITHデバイスの構成方法を表示するには、次のコマンドを発行します:
stonith -h
注:このコマンドは、stonith_host命令と相互に排他的に使用するものです。
stonith_host命令を使用して、Heartbeat(リリース1のみ)のSTONITHを構成します。 この命令では、クラスタ内のデバイスに関する全てのSTONITH構成情報を(別のファイルではなく)ha.cfファイルに入力します。
この命令を使用して、複数のstonithデバイスを構成できます。以下に、コマンドラインの形式を示します:
stonith_host {hostfrom} {stonith_type} {params...}
{hostfrom} は、stonithデバイスの接続マシンです。「*」は、どのホストからでもアクセス可能であるという意味です。
{stonith_type} は、stonithデバイスのタイプです。
{params...} は、STONITHデバイスが要求する構成パラメータです。
stonith_host 命令を1回しか実行しない場合は、{hostfrom}に「*」を入力できます。
警告:
ha.cfにstonithデバイスのアクセス情報を入力し、誰でもファイルを読める状態にしておくと、サービス拒否攻撃の標的となる恐れがありま
有効な{stonith-device-type}の一覧を表示するには、次のコマンドを発行します:
stonith -L
各種のSTONITHデバイスの{params...}の一覧を表示するには、次のコマンドを発行します:
stonith -h
注:このコマンドは、stonith命令と相互に排他的に使用するものです。
以下に、一般的なtraditional_compression 命令の構文を示します:
traditional_compression HeartbeatBoolean
以下に、traditional_compression命令の例を挙げます。
traditional_compression false
traditional_compressionをfalseに設定することを強くお勧めします。ハートビートのパフォーマンスに重大な影響が生じる恐れがあります。
ucast 命令では、UDPユニキャスト通信リンクで通信するようにHeartbeatを構成します。
次に、一般的なucast命令の構文を示します:
ucast dev peer-ip-address
ここでは、devとは、ピアとの通信に使用するデバイスで、peer-ip-addressはパケットを送信するIPアドレスです。
これはユニキャスト通信リンクですが、このリンクで送信されたUDPパケットはマルチキャストプロトコルです。
次に、ucast 命令の例を挙げます:
ucast eth0 10.10.10.133
この命令は、eth0インターフェースで10.10.10.133にパケットを 送信します。
ローカルマシンに送信されたucast命令は完全に無視されます。これによって、全てのマシンでha.cf命令が同一になります。
udpport 命令では、HeartbeatがUDPクラスタ内通信に使用するポートを指定します。この値を変更する理由としては、同じサブネットに複数のbcastクラスタがあること、そして、ローカル設定ポリシーに従ってこのポートがすでに使用されていることの2点が挙げられます。
このパラメータのデフォルト値は、/etc/servicesのha-clusterポート(ここにある場合)、または/etc/servicesにha-clusterがある場合は694です。694は、Heartbeat(別名 ha-cluster)用のIANA登録ポート番号です。
次に、udpport命令の例を挙げます。
udpport 694
注: GUIはUDPを使用せず、クラスタ内通信ではないので、GUI通信はこの命令の影響を受けません。
バグ: mcast命令の構文には仕様の間違いがあるため、この命令はmcast通信には適用できません。
use_logd 命令では、Heartbeatがログデーモンでメッセージをログに記録するかどうかを指定します。:
use_logd <on/off>
(注:use_logdは、任意のHeartbeatBoolean値をとります)
以下はポリシー関する詳細です:
1. ha.cfにdebugfile/logfile/logfacilityのエントリが含まれる場合
a) use_logd が設定されていない場合、ログデーモンは使用されません
b) use_logd がonに設定されている場合、ログデーモンが使用されます
c) use_logd がoffに設定されている場合、ログデーモンは使用されません
2. ha.cfにdebugfile/logfile/logfacilityのエントリが含まれない場合
a) use_logd が設定されていない場合、ログデーモンは使用されません
b) use_logd がonに設定されている場合、ログデーモンが使用されます
c) use_logd がoffに設定されている場合には、構成エラーが発生します。ログオプション全てをオフにすることはできません
ログデーモンを使用すると、全てのログメッセージがIPCを経由してログデーモンに送信され、ログファイルに書き込まれます。ログデーモンが、何らかの理由により停止した場合、警告メッセージがログに記録され、メッセージが全てログファイルに直接書き込まれます。
ログデーモンを使用する場合、このファイルのha.cfにdebugfile/logfile/logfacilityは有効ではありません。ログデーモンの構成ファイルをチェックしてください(デフォルトは/etc/logd.cf))。
use_logdを使用していない場合、ログメッセージは全てログファイルに直接書き込まれます。
ログデーモンは、Heartbeatスクリプトで開始または停止されます。
use_logdを「yes」に設定することをお勧めします。
Heartbeatは、ノード名を変更する必要があっても、ノードを一意に識別するために、システム内のノードごとにUUIDを生成します。このUUIDは、/var/lib/heartbeat/hb_uuidファイルに格納されます。
特定種類のインストール(CDなどの読み取り専用メディアから起動するインストール)では、Heartbeatは生成されたUUIDをディスクに保存することはできません。このような場合には、uuidfrom命令を使用してください。uuidfrom nodenameを指定して、UUIDと同じようにノード名を使用するようHeartbeatに命令します。
以下は uuidfrom 命令です.
uuidfrom file uuidfrom nodename
warntime 命令を使用して、Heartbeatが「ハートビート遅延」警告を発行するまでの時間を指定します。
warntime の値は、Heartbeatの時間構文に従って指定します。以下に、warntime指定の例を挙げます。
warntime 10 # 10 seconds
warntime命令は、deadtimeの調整に重要です。
watchdog 命令では、ウォッチドッグデバイスを使用するようにHeartbeatを構成します。一部の環境下では、ウォッチドッグデバイスをSTONITHデバイスの代わりに使用することができます。いずれにせよ、STONITHデバイスを使用していない場合には、構成した方が合理的です。必要に応じて、STONITHデバイスに 追加して構成します。
ウォッチドッグデバイスの目的は、Heartbeatが通常の間隔で自らのハートビートを検出できない場合に、マシンをシャットダウンすることです。これによって、スケジューラのバグなどがスプリットブレイン構成になりません。
以下は、watchdog命令の構文です:
watchdog watchdog-device-name
以下に、watchdog命令の例を挙げます:
watchdog /dev/watchdog
Linuxシステムで使用されている一般的なウォッチドッグデバイスは、softdogデバイスです。softdogデバイスは、ソフトウェアによるウォッチドッグデバイスです。通常、/dev/watchdogで参照できます。ただし、これは、ほとんどのUNIXデバイスと同様、「規則」ではなく「規定」です。
Heartbeatは、自らの停止を宣言した直後にシステムを再起動するようウォッチドッグデバイスを設定しようとします。
また、正常にシャットダウンしたかどうか確認し、終了した場合は、システムは再起動しないでください。ただし、この動作は管理の対象外となります。これはウォッチドッグ・デバイス・ドライバによって異なります。softdogドライバについては、softdogページの設定方法に関する詳細をご覧ください。