クラスタリソースを設定および管理するには、crmシェル(crmsh)コマンドラインユーティリティ、HA Web Konsole (Hawk2)、Webベースユーザインタフェースのいずれかを使用します。
この章では、crm
コマンドラインツールを紹介し、このツールの概要、テンプレートの使用方法、そして、主にクラスタリソースの設定と管理(基本的なリソースと高度なリソース(グループとクローン)の作成、制約の設定、フェールオーバーノードとフェールバックノードの指定、リソース監視の設定、リソースの開始、クリーンアップ、または削除、および手動によるリソースの移行について説明します。
クラスタを管理するには十分な権限が必要です。crm
コマンドおよびそのサブコマンドは、root
ユーザとして、またはCRM所有者ユーザとして実行される必要があります(通常はhacluster
ユーザ)。
ただし、user
オプションを使用することで、crm
とそのサブコマンドを一般(権限のない)ユーザとして実行し、必要な場合はいつでもsudo
を使用してIDを変更できます。 たとえば、次のcrm
コマンドは、権限のあるユーザIDとしてhacluster
を使用します。
root #
crm
options user hacluster
/etc/sudoers
を設定しておいて、sudo
がパスワードを要求しないようにしておく必要があることに注意してください。
crm
コマンドには、リソース、CIB、ノード、リソースエージェントなどを管理するサブコマンドがあります。このコマンドには、例を組み込んだ詳細なヘルプシステムが用意されています。すべての例は、付録Bで説明される命名規則に従います。
crmを引数なしで(または1つのサブレベルのみを引数として)使用することにより、crmシェルは対話モードになります。このモードは、次のプロンプトで示されます。
crm(live/HOSTNAME)
読みやすくするために、このマニュアルでは対話型crmのプロンプトでホスト名を省略します。次の例のように、aliceなどの特定のノードで対話型シェルを実行する必要がある場合にのみホスト名を含めます。
crm(live/alice)
ヘルプには複数の方法でアクセスできます。
crm
とそのコマンドラインオプションの使用方法を出力するには:
root #
crm
--help
使用可能なすべてのコマンドの一覧を表示するには:
root #
crm
help
コマンドの参照情報だけでなく、他のヘルプセクションにアクセスするには:
root #
crm
help topics
configure
サブコマンドの詳細なヘルプテキストを表示するには:
root #
crm
configure help
configure
のgroup
サブコマンドの構文、使用方法、例を印刷するには:
root #
crm
configure help group
これも同様です:
root #
crm
help configure group
help
サブコマンド(--help
オプションと混同しないこと)のほとんどすべての出力によって、テキストビューアが開きます。このテキストビューアは上下にスクロール可能で、ヘルプテキストが読みやすくなっています。テキストビューアを閉じるには、Qキーを押します。
crmshは、対話型シェルに対してだけではなく、バッシュでの直接的で完全なタブ補完機能をサポートしています。たとえば、「crm help config
<Tab>」と入力してを押すと、対話型シェルと同様に単語が補完されます。
crm
コマンドそのものは、次のように使用できます。
直接:
すべてのサブコマンドをcrm
に続け、Enterを押すと、ただちにその出力が表示されます。たとえば、crm
help ra
を入力すると、ra
サブコマンド(リソースエージェント)に関する情報を取得できます。
サブコマンドは、その短縮形が固有である限り短縮できます。たとえば、status
をst
と短縮しても、crmshにはユーザが意図したサブコマンドとして認識されます。
パラメータを短縮する機能もあります。通常、パラメータはparams
キーワードを使用して追加します。paramsセクションが最初のセクションでほかにセクションがない場合、このセクションを省略できます。たとえば、次のような行があるとします。
root #
crm
primitive ipaddr ocf:heartbeat:IPaddr2 params ip=192.168.0.55
これは次の行と同等です。
root #
crm
primitive ipaddr ocf:heartbeat:IPaddr2 ip=192.168.0.55
crmシェルスクリプトとして使用:
Crmシェルスクリプトにはcrm
のサブコマンドが含まれます。詳細については、8.1.4項 「crmshのシェルスクリプトの使用」を参照してください。
crmshクラスタスクリプトとして使用: これらは、メタデータ、RPMパッケージへの参照、設定ファイル、およびcrmshサブコマンドを1つのわかりやすい名前でバンドルしてまとめたものです。crm script
コマンドを使用して管理します。
これらをcrmshシェルスクリプトと混同しないでください。両方に共通する目的はいくつかありますが、crmシェルスクリプトにはサブコマンドのみが含まれるのに対し、クラスタスクリプトにはコマンドの単純なエミュレーション以上の処理が組み込まれています。詳細については、8.1.5項 「crmshのクラスタスクリプトの使用」を参照してください。
内部シェルとして対話式に使用:
「crm
」とタイプして、内部シェルに入ります。プロンプトがcrm(live)
に変化します。help
を使用すると、利用可能なサブコマンドの概要を取得できます。内部シェルにはさまざまなサブコマンドレベルがあり、1つのサブコマンドをタイプしてEnterを押すことで、そのサブコマンドのレベルに「入る」ことができます。
たとえば、「resource
」とタイプすると、リソース管理レベルに入ります。プロンプトはcrm(live)resource#
に変わります。内部シェルを終了したい場合は、コマンドquit
、bye
、またはexit
を使用します。1レベル戻る場合は、back
、up
、end
、またはcd
を使用します。
crm
、そしてオプションを付けずにサブコマンドを入力してEnterを押すと、そのレベルに直接入ることができます。
内部シェルは、サブコマンドとリソースのタブによる完了もサポートします。コマンドの冒頭をタイプして<Tab>を押すと、crm
がそのオブジェクトを完了します。
すでに説明した方法に加えて、crmshは、同期コマンド実行もサポートしています。これを有効にするには、-w
オプションを使用します。crm
を-w
なしで起動した場合でも、後ほどユーザ初期設定のwait
をyes
に設定すれば(options wait yes
)、有効にすることができます。このオプションが有効化される場合、crm
は遷移が終了するまで待機します。処理が開始すると毎回、進行状況を示すための点が印刷されます。同期コマンドの実行はresource start
などのコマンドにのみ適用できます。
crm
ツールには管理機能(サブコマンドresources
およびnode
)があり、設定に使用できます(cib
、configure
)。
以降のサブセクションでは、crm
ツールの重要な側面について、その概要を示します。
リソースエージェントはクラスタ設定で常に操作する必要があるため、crm
ツールには、ra
コマンドが含まれています。このコマンドを使用して、リソースエージェントの情報を表示し、リソースエージェントを管理します(詳細は6.3.2項 「サポートされるリソースエージェントクラス」も参照)。
root #
crm
racrm(live)ra#
コマンドclasses
は、すべてのクラスとプロバイダを一覧表示します。
crm(live)ra#
classes
lsb ocf / heartbeat linbit lvm2 ocfs2 pacemaker service stonith systemd
クラス(およびプロバイダ)に使用できるすべてのリソースエージェントの概要を取得するには、list
コマンドを使用します。
crm(live)ra#
list
ocf AoEtarget AudibleAlarm CTDB ClusterMon Delay Dummy EvmsSCC Evmsd Filesystem HealthCPU HealthSMART ICP IPaddr IPaddr2 IPsrcaddr IPv6addr LVM LinuxSCSI MailTo ManageRAID ManageVE Pure-FTPd Raid1 Route SAPDatabase SAPInstance SendArp ServeRAID ...
リソースエージェントの概要は、info
で表示できます。
crm(live)ra#
info
ocf:linbit:drbd This resource agent manages a DRBD* resource as a master/slave resource. DRBD is a shared-nothing replicated storage device. (ocf:linbit:drbd) Master/Slave OCF Resource Agent for DRBD Parameters (* denotes required, [] the default): drbd_resource* (string): drbd resource name The name of the drbd resource from the drbd.conf file. drbdconf (string, [/etc/drbd.conf]): Path to drbd.conf Full path to the drbd.conf file. Operations' defaults (advisory minimum): start timeout=240 promote timeout=90 demote timeout=90 notify timeout=90 stop timeout=100 monitor_Slave_0 interval=20 timeout=20 start-delay=1m monitor_Master_0 interval=10 timeout=20 start-delay=1m
ビューアは、「Q」を押すと終了できます。
crm
の直接使用
前の例では、crm
コマンドの内部シェルを使用しました。ただし、必ずしも、それを使用する必要はありません。該当するサブコマンドをcrm
に追加すれば、同じ結果が得られます。たとえば、すべてのOCFリソースエージェントを一覧するには、シェルに「crm
ra list ocf
」を入力すれば済みます。
crmshシェルスクリプトは、crmshサブコマンドをファイル内に列挙する便利な方法を提供します。これにより、特定の行をコメントしたり、これらのコメントを後で再生したりするのが簡単になります。crmshシェルスクリプトには「crmshサブコマンドのみ」を含めることができることに注意してください。他のコマンドは許可されていません。
crmshシェルスクリプトを使用するには、その前に特定のコマンドを使用してファイルを作成してください。たとえば、次のファイルにはクラスタのステータスが出力され、すべてのノードのリストが提供されます。
# A small example file with some crm subcommandsstatus
node
list
ハッシュ記号(#
)で始まる行はコメントなので、無視されます。行が長すぎる場合は、行末にバックスラッシュ(\
)を挿入します。可読性を向上させるため、特定のサブコマンドに属する行をインデントすることをお勧めします。
このスクリプトを使用するには、次の方法のいずれかを使用します。
root #
crm
-f example.cliroot #
crm
< example.cli
すべてのクラスタノードから情報を収集して変更をすべて展開することは、鍵となるクラスタ管理タスクです。複数のノードで同じ手順を手動で実行するのはミスを起こしがちであるため、代わりにcrmshクラスタスクリプトを使用できます。
これらを「crmshシェルスクリプト」と混同しないでください(8.1.4項 「crmshのシェルスクリプトの使用」で説明)。
crmshシェルスクリプトとは対照的に、クラスタスクリプトでは次のような追加のタスクを実行します。
特定のタスクに必要なソフトウェアをインストールする。
設定ファイルを作成または変更する。
情報を収集し、クラスタの潜在的な問題をレポートする。
変更をすべてのノードに展開する。
crmshクラスタスクリプトは、他のクラスタ管理ツールを置き換えるものではなく、クラスタ全体に対して統合化された方法でこれらのタスクを実行できるようにします。詳細については、http://crmsh.github.io/scripts/を参照してください。
利用可能なすべてのクラスタのリストを取得するには、次のコマンドを実行します。
root #
crm
script list
スクリプトのコンポーネントを表示するには、show
コマンドと、クラスタスクリプトの名前を使用します。次に例を示します。
root #
crm
script show mailto mailto (Basic) MailTo This is a resource agent for MailTo. It sends email to a sysadmin whenever a takeover occurs. 1. Notifies recipients by email in the event of resource takeover id (required) (unique) Identifier for the cluster resource email (required) Email address subject Subject
show
の出力には、タイトル、短い説明、および手順が含まれます。各手順は一連のステップに分かれており、これらのステップを指定された順序で実行します。
各ステップには、必須パラメータとオプションパラメータのリスト、および短い説明とそのデフォルト値が含まれます。
各クラスタスクリプトは、一連の共通パラメータを認識します。これらのパラメータは任意のスクリプトに渡すことができます。
パラメータ | 引数 | 説明 |
---|---|---|
action | INDEX | 設定した場合、1つのアクションのみを実行します(verifyによって返されたインデックス)。 |
dry_run | BOOL | 設定した場合、実行のシミュレートのみを行います(デフォルト: no)。 |
nodes | LIST | スクリプト実行対象のノードのリスト。 |
port | NUMBER | 接続先のポート。 |
statefile | FILE | シングルステップ実行の場合に、指定したファイルに状態を保存します。 |
sudo | BOOL | 設定した場合、sudoパスワードを入力するようcrmによってプロンプトが表示され、必要に応じてsudoが使用されます(デフォルト: no)。 |
timeout | NUMBER | 秒単位での実行タイムアウト(デフォルト: 600)。 |
user | USER | 指定したユーザとしてスクリプトを実行します。 |
問題を避けるため、クラスタスクリプトを実行する前に、実行するアクションを確認してパラメータを検証します。クラスタスクリプトは一連のアクションを実行でき、さまざまな理由で失敗する可能性があります。そのため、実行前にパラメータを検証すると、問題の回避に役立ちます。
たとえば、mailto
リソースエージェントでは、固有の識別子と電子メールアドレスが必要です。これらのパラメータを検証するには、以下を実行します。
root #
crm
script verify mailto id=sysadmin email=tux@example.org 1. Ensure mail package is installed mailx 2. Configure cluster resources primitive sysadmin ocf:heartbeat:MailTo email="tux@example.org" op start timeout="10" op stop timeout="10" op monitor interval="10" timeout="10" clone c-sysadmin sysadmin
verify
は各ステップを出力し、指定したパラメータでプレースホルダを置き換えます。問題が見つかった場合、verify
によってレポートされます。問題がなければ、verify
コマンドをrun
に置き換えます。
root #
crm
script run mailto id=sysadmin email=tux@example.org INFO: MailTo INFO: Nodes: alice, bob OK: Ensure mail package is installed OK: Configure cluster resources
crm status
を使用して、リソースがクラスタに統合されているかどうかを確認します。
root #
crm
status [...] Clone Set: c-sysadmin [sysadmin] Started: [ alice bob ]
設定テンプレートの使用は非推奨で、今後削除される予定です。設定テンプレートはクラスタスクリプトに置き換えられます。8.1.5項 「crmshのクラスタスクリプトの使用」を参照してください。
設定テンプレートは、crmsh用の既成のクラスタ設定です。リソーステンプレート(8.4.3項 「リソーステンプレートの作成」の説明を参照)と混同しないでください。これらはクラスタ用のテンプレートで、crmシェル用ではありません。
設定テンプレートは、最小限の操作で、特定ユーザのニーズに合わせて調整できます。テンプレートで設定を作成する際には、警告メッセージでヒントが与えられます。これは、後から編集することができ、さらにカスタマイズできます。
次の手順は、簡単ですが機能的なApache設定を作成する方法を示しています。
root
としてログインし、crm
対話型シェルを開始します。
root #
crm
configure
設定テンプレートから新しい設定を作成します。
template
サブコマンドに切り替えます。
crm(live)configure#
template
使用可能な設定テンプレートを一覧します。
crm(live)configure template#
list
templates gfs2-base filesystem virtual-ip apache clvm ocfs2 gfs2
必要な設定テンプレートを決めます。Apache設定が必要なので、apache
テンプレートを選択し、g-intranet
と名付けます。
crm(live)configure template#
new
g-intranet apache INFO: pulling in template apache INFO: pulling in template virtual-ip
パラメータを定義します。
作成した設定を一覧表示します。
crm(live)configure template#
list
g-intranet
入力を必要とする最小限の変更項目を表示します。
crm(live)configure template#
show
ERROR: 23: required parameter ip not set ERROR: 61: required parameter id not set ERROR: 65: required parameter configfile not set
好みのテキストエディタを起動し、ステップ 3.bでエラーとして表示されたすべての行に入力します。
crm(live)configure template#
edit
設定を表示し、設定が有効かどうか確認します(太字のテキストは、ステップ 3.cで入力した設定によって異なります)。
crm(live)configure template#
show
primitive virtual-ip ocf:heartbeat:IPaddr \ params ip="192.168.1.101" primitive apache ocf:heartbeat:apache \ params configfile="/etc/apache2/httpd.conf" monitor apache 120s:60s group g-intranet \ apache virtual-ip
設定を適用します。
crm(live)configure template#
apply
crm(live)configure#
cd ..
crm(live)configure#
show
変更内容をCIBに送信します。
crm(live)configure#
commit
詳細がわかっていれば、コマンドをさらに簡素化できます。次のコマンドをシェルで使用して、上記の手順を要約できます。
root #
crm
configure template \ new g-intranet apache params \ configfile="/etc/apache2/httpd.conf" ip="192.168.1.101"
内部crm
シェルに入っている場合は、次のコマンドを使用します。
crm(live)configure template#
new
intranet apache params \ configfile="/etc/apache2/httpd.conf" ip="192.168.1.101"
ただし、このコマンドは、設定テンプレートから設定を作成するだけです。設定をCIBに適用したり、コミットすることはありません。
シャドーイング設定は、異なる設定シナリオのテストに使用されます。複数のシャドウ設定を作成した場合は、1つ1つテストして変更を加えた影響を確認できます。
通常の処理は次のようになります。
root
としてログインし、crm
対話型シェルを開始します。
root #
crm
configure
新しいシャドウ設定を作成します。
crm(live)configure#
cib
new myNewConfig INFO: myNewConfig shadow CIB created
シャドウCIBの名前を省略する場合は、一時名の@tmp@
が作成されます。
現在のライブ設定をシャドウ設定にコピーする場合は、次のコマンドを使用します。コピーしない場合は、このステップをスキップします。
crm(myNewConfig)# cib
reset myNewConfig
このコマンドを使用すると、既存のリソースを後から編集する場合に、簡単に編集できます。
通常どおり変更を行います。シャドウ設定の作成後は、すべての変更がシャドウ設定に適用されます。すべての変更を保存するには、次のコマンドを使用します。
crm(myNewConfig)# commit
ライブクラスタ設定が再び必要な場合は、次のコマンドでライブ設定に戻ります。
crm(myNewConfig)configure#cib
use livecrm(live)#
設定の変更をクラスタにロードする前に、変更内容をptest
でレビューすることを推奨します。ptest
コマンドを指定すると、変更のコミットによって生じるアクションのダイアグラムを表示できます。ダイアグラムを表示するには、graphviz
パッケージが必要です。次の例は監視操作を追加するスクリプトです。
root #
crm
configurecrm(live)configure#
show
fence-bob primitive fence-bob stonith:apcsmart \ params hostlist="bob"crm(live)configure#
monitor
fence-bob 120m:60scrm(live)configure#
show
changed primitive fence-bob stonith:apcsmart \ params hostlist="bob" \ op monitor interval="120m" timeout="60s"crm(live)configure#
ptestcrm(live)configure#
commit
クラスタダイアグラムを出力するには、コマンドcrm
configure graph
を使用します。これにより現在の設定が現在のウィンドウに表示されるので、X11が必要になります。
SVG (Scalable Vector Graphics)を使用する場合は、次のコマンドを使用します。
root #
crm
configure graph dot config.svg svg
Corosyncは、ほとんどのHAクラスタの下層にあるメッセージング層です。corosync
サブコマンドは、Corosync設定を編集および管理するためのコマンドを提供します。
たとえば、クラスタのステータスを一覧表示するには、status
を使用します。
root #
crm
corosync status Printing ring status. Local node ID 175704363 RING ID 0 id = 10.121.9.43 status = ring 0 active with no faults Quorum information ------------------ Date: Thu May 8 16:41:56 2014 Quorum provider: corosync_votequorum Nodes: 2 Node ID: 175704363 Ring ID: 4032 Quorate: Yes Votequorum information ---------------------- Expected votes: 2 Highest expected: 2 Total votes: 2 Quorum: 2 Flags: Quorate Membership information ---------------------- Nodeid Votes Name 175704363 1 alice.example.com (local) 175704619 1 bob.example.com
diff
コマンドは非常に便利です。すべてのノード上のCorosync設定を比較し(別途記載のない場合)、それらの差異を出力します。
root #
crm
corosync diff --- bob +++ alice @@ -46,2 +46,2 @@ - expected_votes: 2 - two_node: 1 + expected_votes: 1 + two_node: 0
詳細については、http://crmsh.nongnu.org/crm.8.html#cmdhelp_corosyncを参照してください。
グローバルクラスタオプションは、一定の状況下でのクラスタの動作を制御します。事前に定義されている値は、通常は、そのまま保持できます。ただし、クラスタの主要機能を正しく機能させるには、クラスタの基本的なセットアップ後に、次のパラメータを調整する必要があります。
crm
でグローバルクラスタオプションを変更する #
root
としてログインし、crm
ツールを開始します。
root #
crm
configure
次のコマンドを使用して、2ノードクラスタだけのオプションを設定します。
crm(live)configure#
property
no-quorum-policy=stopcrm(live)configure#
property
stonith-enabled=true
STONITHがないクラスタはサポートされません。
変更内容を表示します。
crm(live)configure#
show
property $id="cib-bootstrap-options" \ dc-version="1.1.1-530add2a3721a0ecccb24660a97dbfdaa3e68f51" \ cluster-infrastructure="corosync" \ expected-quorum-votes="2" \ no-quorum-policy="stop" \ stonith-enabled="true"
変更内容をコミットして終了します。
crm(live)configure#
commit
crm(live)configure#
exit
クラスタの管理者は、クラスタ内のサーバ上の各リソースや、サーバ上で実行する各アプリケーションに対してクラスタリソースを作成する必要があります。クラスタリソースには、Webサイト、電子メールサーバ、データベース、ファイルシステム、仮想マシン、およびユーザが常時使用できるようにする他のサーバベースのアプリケーションまたはサービスなどが含まれます。
作成できるリソースタイプの概要については、6.3.3項 「リソースのタイプ」を参照してください。
設定の一部またはすべてをローカルファイルまたはネットワークURLからロードできます。次の3つの異なる方法を定義できます。
置き換え
このオプションは、現在の設定を新たなソース設定に置き換えます。
update
このオプションは、ソース設定のインポートを試みます。現在の設定に新たな項目を追加したり、既存の項目を更新したりします。
push
このオプションは、ソースからのコンテンツを現在の設定にインポートします(update
と同じ)。ただし、新しい設定で使用できないオブジェクトを削除します。
ファイルmycluster-config.txt
から新しい設定をロードするには、次の構文を使用します。
root #
crm
configure load push mycluster-config.txt
クラスタで使用できるRA(リソースエージェント)には3種類あります(背景情報については6.3.2項 「サポートされるリソースエージェントクラス」を参照)。新しいリソースをクラスタに追加するには、次の手順に従います。
root
としてログインし、crm
ツールを開始します。
root #
crm
configure
プリミティブIPアドレスを設定ます。
crm(live)configure#
primitive
myIP ocf:heartbeat:IPaddr \ params ip=127.0.0.99 op monitor interval=60s
前のコマンドは「プリミティブ」に名前myIP
を設定します。クラス(ここではocf
)、プロバイダ(heartbeat
)、およびタイプ(IPaddr
)を選択する必要があります。さらに、このプリミティブでは、IPアドレスなどのパラメータが必要です。自分の設定に合わせてアドレスを変更してください。
行った変更を表示して確認します。
crm(live)configure#
show
変更をコミットして反映させます。
crm(live)configure#
commit
類似した設定で複数のリソースを作成する場合、リソーステンプレートを使用すれば作業が簡単になります。基本的なバックグラウンド情報については、6.5.3項 「リソーステンプレートと制約」を参照してください。これらを、「通常の」テンプレート(8.1.6項 「設定テンプレートの使用」で説明したもの)と混同しないでください。次の構文を知るには、rsc_template
コマンドを使用してください。
root #
crm
configure rsc_template usage: rsc_template <name> [<class>:[<provider>:]]<type> [params <param>=<value> [<param>=<value>...]] [meta <attribute>=<value> [<attribute>=<value>...]] [utilization <attribute>=<value> [<attribute>=<value>...]] [operations id_spec [op op_type [<attribute>=<value>...] ...]]
たとえば、次のコマンドは、ocf:heartbeat:Xen
リソースと、デフォルト値および操作に由来するBigVM
の名前を持つ新しいリソーステンプレートを作成します。
crm(live)configure#
rsc_template
BigVM ocf:heartbeat:Xen \ params allow_mem_management="true" \ op monitor timeout=60s interval=15s \ op stop timeout=10m \ op start timeout=10m
新しいリソーステンプレートを定義したら、それをプリミティブとして使用すること、または順序、コロケーション、またはrsc_ticketの制約で参照することができます。リソーステンプレートを参照するには、@
記号を使用します。
crm(live)configure#
primitive
MyVM1 @BigVM \ params xmfile="/etc/xen/shared-vm/MyVM1" name="MyVM1"
新しいプリミティブMy-VM1は、BigVMリソーステンプレートからすべてを継承します。たとえば、上の2つに等しいものは次のようになります。
crm(live)configure#
primitive
MyVM1 ocf:heartbeat:Xen \ params xmfile="/etc/xen/shared-vm/MyVM1" name="MyVM1" \ params allow_mem_management="true" \ op monitor timeout=60s interval=15s \ op stop timeout=10m \ op start timeout=10m
オプションや操作を上書きしたい場合は、自分の(プリミティブの)定義を追加します。たとえば、次の新しいプリミティブMyVM2は監視操作のタイムアウトを2倍にしますが、その他はそのままに残します。
crm(live)configure#
primitive
MyVM2 @BigVM \ params xmfile="/etc/xen/shared-vm/MyVM2" name="MyVM2" \ op monitor timeout=120s interval=30s
リソーステンプレートは、そのテンプレートから派生するすべてのプリミティブを表すものとして、制約で参照することができます。これにより、クラスタ設定をいっそう簡潔かつクリアに行うことができます。リソーステンプレートは、場所の制約を除くすべての制約から参照することができます。コロケーション制約には、複数のテンプレート参照を含めることはできません。
crm
からは、STONITHデバイスは単なる1つのリソースと認識されます。STONITHリソースを作成するには、次の手順に従います。
root
としてログインし、crm
対話型シェルを開始します。
root #
crm
configure
次のコマンドで、すべてのSTONITHタイプのリストを取得します。
crm(live)#
ra
list stonith apcmaster apcmastersnmp apcsmart baytech bladehpi cyclades drac3 external/drac5 external/dracmc-telnet external/hetzner external/hmchttp external/ibmrsa external/ibmrsa-telnet external/ipmi external/ippower9258 external/kdumpcheck external/libvirt external/nut external/rackpdu external/riloe external/sbd external/vcenter external/vmware external/xen0 external/xen0-ha fence_legacy ibmhmc ipmilan meatware nw_rpc100s rcd_serial rps10 suicide wti_mpc wti_nps
上記のリストからSTONITHタイプを選択し、利用できるオプションのリストを表示します。次のコマンドを実行します。
crm(live)#
ra
info stonith:external/ipmi IPMI STONITH external device (stonith:external/ipmi) ipmitool based power management. Apparently, the power off method of ipmitool is intercepted by ACPI which then makes a regular shutdown. If case of a split brain on a two-node it may happen that no node survives. For two-node clusters use only the reset method. Parameters (* denotes required, [] the default): hostname (string): Hostname The name of the host to be managed by this STONITH device. ...
stonith
クラス、ステップ 3で選択したタイプ、および必要に応じて該当するパラメータを使用して、STONITHリソースを作成します。たとえば、次のコマンドを使用します。
crm(live)#
configure
crm(live)configure#
primitive
my-stonith stonith:external/ipmi \ params hostname="alice" \ ipaddr="192.168.1.221" \ userid="admin" passwd="secret" \ op monitor interval=60m timeout=120s
すべてのリソースを設定することは、ジョブのほんの一部分です。クラスタが必要なすべてのリソースを認識しても、正しく処理できるとは限りません。たとえば、DRBDのスレーブノードにファイルシステムをマウントしないようにしてください(実際、DRBDでは失敗します)。このような情報をクラスタが利用できるように、制約を定義します。
制約の詳細については、6.5項 「リソースの制約」を参照してください。
location
コマンドは、リソースを実行できるノード、できないノード、または実行に適したノードを定義するものです。
この種類の制約は、各リソースに複数追加できます。すべてのlocation
制約は、所定のリソースに関して評価されます。fs1
というIDを持つリソースをalice
という名前のノード上で実行するプリファレンスを100にする簡単な例を次に示します。
crm(live)configure#
location
loc-fs1 fs1 100: alice
もう1つの例は、pingdによる場所の設定です。
crm(live)configure#
primitive
pingd pingd \ params name=pingd dampen=5s multiplier=100 host_list="r1 r2"crm(live)configure#
location
loc-node_pref internal_www \ rule 50: #uname eq alice \ rule pingd: defined pingd
場所の制約のもう1つの使用例は、「リソースセット」としてのプリミティブのグループ化です。これは、たとえば、いくつかのリソースがネットワーク接続のping属性によって異なるときに役立つ場合があります。以前は、-inf/ping
ルールを設定で何度も重複して指定する必要があったため、設定内容が不必要に複雑でした。
次の例では、リソースセット
loc-alice
を作成し、仮想IPアドレス
vip1
および vip2
を参照します。
crm(live)configure#
primitive
vip1 ocf:heartbeat:IPaddr2 params ip=192.168.1.5crm(live)configure#
primitive
vip2 ocf:heartbeat:IPaddr2 params ip=192.168.1.6crm(live)configure#
location
loc-alice { vip1 vip2 } inf: alice
ある場合には、location
コマンドでリソースパターンを使用すると、より効率的で便利です。リソースパターンは、2つのスラッシュ間の正規表現です。たとえば、前に示した仮想IPアドレスは、次とすべて一致させることができます。
crm(live)configure#
location
loc-alice /vip.*/ inf: alice
colocation
コマンドは、同じホストまたは別のホストで実行するべきリソースを定義するために使用します。
常に同じノードで実行する必要があるリソース、または同じノードで実行してはならないリソースを定義する場合には、それぞれ+infまたは-infのスコアを設定することだけが可能です。無限大以外のスコアの使用も可能です。その場合、コロケーションはadvisoryと呼ばれ、衝突が発生したときに他のリソースが停止しないようにするため、クラスタがそれらの制約に従わないこともあります。
たとえば、IDがfilesystem_resource
とnfs_group
のリソースを常に同じホストで実行するには、次の制約を使用します。
crm(live)configure#
colocation
nfs_on_filesystem inf: nfs_group filesystem_resource
マスタスレーブ構成では、現在のノートがマスタかどうかと、リソースをローカルに実行しているかどうかを把握することが必要です。
同じノード上にリソースのグループを配置できると便利な場合がありますが(コロケーション制約を定義)、リソース間で困難な依存性を持つことはありません。
同じノード上にリソースを配置するが、これらの一方に障害が発生した場合のアクションがない場合は、weak-bond
コマンドを使用します。
root #
crm
configure assist weak-bond RES1 RES2
weak-bond
の実装により、指定されたリソースを持つダミーリソースとコロケーション制約が自動的に作成されます。
order
コマンドは、アクションのシーケンスを定義します。
リソースのアクションや操作の順序を指定することが必要な場合があります。たとえば、デバイスがシステムで利用できるようになるまで、ファイルシステムはマウントできません。順序の制約を使用して、開始、停止、マスタへの昇格など、別のリソースが特殊な条件を満たす直前または直後に、サービスを開始または停止できます。
順序の制約を設定するには、次のようなコマンドをcrm
シェルで使用します。
crm(live)configure#
order
nfs_after_filesystem mandatory: filesystem_resource nfs_group
このセクションで使用される例は、制約を追加しないと機能しません。すべてのリソースは、必ず、マスタであるDRBDリソースと同じマシンで実行される必要があります。DRBDリソースは、他のリソースが開始する前にマスタにする必要があります。マスタでないときに、drbdデバイスをマウントしようとすると失敗します。次の制約を満たす必要があります。
ファイルシステムは、常に、DRDBリソースのマスタと同じノード上に存在する必要があります。
crm(live)configure#
colocation
filesystem_on_master inf: \ filesystem_resource drbd_resource:Master
NFSサーバとIPアドレスは、ファイルシステムと同じノードに存在する必要があります。
crm(live)configure#
colocation
nfs_with_fs inf: \ nfs_group filesystem_resource
NFSサーバとIPアドレスは、ファイルシステムがマウントされた後に開始されます。
crm(live)configure#
order
nfs_second mandatory: \ filesystem_resource:start nfs_group
ファイルシステムは、drbdリソースがこのノードのマスタに昇格した後にマウントされる必要があります。
crm(live)configure#
order
drbd_first inf: \ drbd_resource:promote filesystem_resource:start
リソースフェールオーバーを判定するには、メタ属性migration-thresholdを使用します。すべてのノードで失敗回数がmigration-thresholdを超えている場合には、リソースは停止したままになります。例:
crm(live)configure#
location
rsc1-alice rsc1 100: alice
通常、rsc1はaliceで実行されます。そこで失敗すると、migration-thresholdがチェックされ、失敗回数と比較されます。失敗回数がmigration-threshold以上の場合、次の候補のノードにマイグレートします。
開始が失敗すると、start-failure-is-fatal
オプションによっては、失敗回数がinfに設定されます。stopの失敗により、フェンシングが発生します。STONITHが定義されていない場合には、リソースは移行しません。
概要については、6.5.4項 「フェールオーバーノード」を参照してください。
ノードがオンライン状態に戻り、クラスタ内にある場合は、リソースが元のノードにフェールバックすることがあります。リソースを実行していたノードにリソースをフェールバックさせたくない場合や、リソースのフェールバック先として別のノードを指定する場合は、リソースの固着性の値を変更します。リソースの固着性は、リソースの作成時でも、その後でも指定できます。
概要については、6.5.5項 「フェールバックノード」を参照してください。
一部のリソースは、メモリの最小量など、特定の容量要件を持っています。要件が満たされていない場合、リソースは全く開始しないか、またはパフォーマンスを下げた状態で実行されます。
これを考慮に入れて、High Availability Extensionでは、次のパラメータを指定できます。
一定のノードが提供する容量
一定のリソースが要求する容量
リソースの配置に関する全体的なストラテジ
パラメータと設定の詳細な背景情報については、6.5.6項 「負荷インパクトに基づくリソースの配置」を参照してください。
リソースの要件とノードが提供する容量を設定するには、使用属性を使用します。使用属性に任意の名前を付け、設定に必要なだけ名前/値のペアを定義します。いくつかのエージェントは、たとえばVirtualDomain
などの使用を更新します。
次の例では、クラスタのノードとリソースの基本設定がすでに完了していることを想定しています。さらに、特定のノードが提供する容量と特定のリソースが必要とする容量を設定します。
crm
で使用属性を追加または変更する #
root
としてログインし、crm
対話型シェルを開始します。
root #
crm
configure
ノードが提供する容量を指定するには、次のコマンドを使用し、プレースホルダNODE_1をノードの名前に置き換えます。
crm(live)configure#
node
NODE_1 utilization memory=16384 cpu=8
これらの値によって、NODE_1は16GBのメモリと8つのCPUコアをリソースに提供すると想定されます。
リソースが要求する容量を指定するには、次のコマンドを使用します。
crm(live)configure#
primitive
xen1 ocf:heartbeat:Xen ... \ utilization memory=4096 cpu=4
これによって、リソースはNODE_1からの4,096のメモリ単位と4つのCPU単位を使用します。
property
コマンドを使用して、配置ストラテジを設定します。
crm(live)configure#
property
...
次の値を使用できます。
default
(デフォルト値)使用値は考慮しません。リソースは、場所のスコアに従って割り当てられます。スコアが同じであれば、リソースはノード間で均等に分散されます。
utilization
リソースの要件を満たすだけの空き容量がノードにあるかどうか決定する際に、利用率を確認します。ただし、負荷分散は、まだ、ノードに割り当てられたリソースの数に基づいて行われます。
minimal
リソースの要件を満たすだけの空き容量がノードにあるかどうか決定する際に、利用率を確認します。できるだけ少ない数のノードにリソースを集中しようとします(残りのノードの電力節約のため)。
balanced
リソースの要件を満たすだけの空き容量がノードにあるかどうか決定する際に、利用率を確認します。リソースを均等に分散して、リソースのパフォーマンスを最適化しようとします。
使用できる配置ストラテジは、最善策であり、まだ、複雑なヒューリスティックソルバで、常に最適な割り当て結果を得るには至っていません。リソースの優先度を正しく設定して、最重要なリソースが最初にスケジュールされるようにしてください。
変更をコミットしてから、crmshを終了します。
crm(live)configure#
commit
次の例は、同等のノードから成る3ノードクラスタと4つの仮想マシンを示しています。
crm(live)configure#
node
alice utilization memory="4000"crm(live)configure#
node
bob utilization memory="4000"crm(live)configure#
node
charlie utilization memory="4000"crm(live)configure#
primitive
xenA ocf:heartbeat:Xen \ utilization hv_memory="3500" meta priority="10" \ params xmfile="/etc/xen/shared-vm/vm1"crm(live)configure#
primitive
xenB ocf:heartbeat:Xen \ utilization hv_memory="2000" meta priority="1" \ params xmfile="/etc/xen/shared-vm/vm2"crm(live)configure#
primitive
xenC ocf:heartbeat:Xen \ utilization hv_memory="2000" meta priority="1" \ params xmfile="/etc/xen/shared-vm/vm3"crm(live)configure#
primitive
xenD ocf:heartbeat:Xen \ utilization hv_memory="1000" meta priority="5" \ params xmfile="/etc/xen/shared-vm/vm4"crm(live)configure#
property
placement-strategy="minimal"
3ノードはすべてアクティブであり、まず、xenAがノードに配置され、次に、xenDが配置されます。xenBとxenCは、一緒に割り当てられるか、またはどちらか1つがxenDとともに割り当てられます。
1つのノードに障害が発生した場合、残りのノード上で利用できるメモリ合計が少なすぎて、これらのリソースすべてはホストできません。xenAは確実に割り当てられ、xenDも同様です。ただし、xenBとxenCは、そのどちらか1つしか割り当てられません。xenBとxenCの優先度は同等なので、結果はまだ未定義です。これを解決するためにも、どちらかに高い優先度を設定する必要があります。
リソースを監視するには、2つの方法(op
キーワードで監視処理を定義するか、monitor
コマンドを使用するか)があります。次の例では、Apacheリソースを設定し、op
キーワードの使用で 60秒ごとに監視します。
crm(live)configure#
primitive
apache apache \ params ... \ op monitor interval=60s timeout=30s
同じことを次のようにしても実行できます。
crm(live)configure#
primitive
apache apache \ params ...crm(live)configure#
monitor
apache 60s:30s
概要については、6.4項 「リソース監視」を参照してください。
クラスタの一般的な要素の1つは、一緒の場所で見つける必要のあるリソースのセットです。連続的に開始し、逆の順序で停止します。この設定を簡単にするため、グループのコンセプトをサポートしています。次の例では、2つのプリミティブ(IPアドレスと電子メールリソース)を作成します。
crm
コマンドをシステム管理者として実行します。プロンプトがcrm(live)
に変化します。
プリミティブを設定します。
crm(live)#
configure
crm(live)configure#
primitive
Public-IP ocf:heartbeat:IPaddr \ params ip=1.2.3.4 id= Public-IPcrm(live)configure#
primitive
Email systemd:postfix \ params id=Email
該当するIDを使用して、正しい順序で、プリミティブをグループ化します。
crm(live)configure#
group
g-mailsvc Public-IP Email
グループメンバーの順序を変更するには、configure
サブコマンドからmodgroup
コマンドを使用します。プリミティブのEmail
をPublic-IP
の前に移動するには、次のコマンドを使用します(このコマンドは機能のデモのみを目的としています)。
crm(live)configure#
modgroup
g-mailsvc add Email before Public-IP
グループ(Email
など)からリソースを削除する場合には、このコマンドを使用します。
crm(live)configure#
modgroup
g-mailsvc remove Email
概要については、6.3.5.1項 「グループ」を参照してください。
クローンは当初、IPアドレスのN個のインスタンスを開始し、負荷分散のためにクラスタ上に分散させる便利な方法と考えられていました。それらは、DLMとの統合、サブシステムおよびOCFS2のフェンシングなど、他の目的にも有効であることがわかってきました。どのようなリソースでも、リソースエージェントがサポートしていれば、クローン化できます。
クローンリソースの詳細については、6.3.5.2項 「クローン」を参照してください。
匿名クローンリソースを作成するには、まずプリミティブリソースを作成して、それをclone
コマンドで指定することです。次の操作を実行してください:
root
としてログインし、crm
対話型シェルを開始します。
root #
crm
configure
次のように、プリミティブを設定します。
crm(live)configure#
primitive
Apache ocf:heartbeat:apache
プリミティブをクローンします。
crm(live)configure#
clone
cl-apache Apache
マルチステートリソースは、クローンが得意とするところです。これにより、インスタンスを2つの動作モード(active/passive、primary/secondary、またはmaster/slave)のいずれかに設定できます。
ステートフルクローンリソースを作成するには、まずプリミティブリソースを作成してから、マルチステートリソースを作成します。マルチステートリソースは少なくとも、昇格および降格操作をサポートしている必要があります。
root
としてログインし、crm
対話型シェルを開始します。
root #
crm
configure
プリミティブを作成します。必要に応じて間隔を変更します。
crm(live)configure#
primitive
my-rsc ocf:myCorp:myAppl \ op monitor interval=60 \ op monitor interval=61 role=Master
マルチステートリソースを作成します。
crm(live)configure#
ms
ms-rsc my-rsc
crm
ツールでは、クラスタリソースの設定が可能なだけでなく、既存リソースを管理することもできます。移行のサブセクションで概要を示します。
クラスタを管理する際には、コマンドcrm configure show
で、クラスタ設定、グローバルオプション、プリミティブなどの現在のCIBオブジェクトを一覧表示します。
root #
crm
configure show node 178326192: alice node 178326448: bob primitive admin_addr IPaddr2 \ params ip=192.168.2.1 \ op monitor interval=10 timeout=20 primitive stonith-sbd stonith:external/sbd \ params pcmk_delay_max=30 property cib-bootstrap-options: \ have-watchdog=true \ dc-version=1.1.15-17.1-e174ec8 \ cluster-infrastructure=corosync \ cluster-name=hacluster \ stonith-enabled=true \ placement-strategy=balanced \ standby-mode=true rsc_defaults rsc-options: \ resource-stickiness=1 \ migration-threshold=3 op_defaults op-options: \ timeout=600 \ record-pending=true
多数のリソースがある場合、show
の出力が冗長になります。出力を制限するには、リソースの名前を使用します。たとえば、プリミティブadmin_addr
のみのプロパティを一覧表示するには、リソース名をshow
に付加します。
root #
crm
configure show admin_addr primitive admin_addr IPaddr2 \ params ip=192.168.2.1 \ op monitor interval=10 timeout=20
ただし、特定のリソースの出力をさらに制限したい場合があります。これは、「フィルタ」を使用して実現できます。フィルタは特定のコンポーネントに出力を制限します。たとえば、ノードのみを一覧表示するには、type:node
を使用します。
root #
crm
configure show type:node node 178326192: alice node 178326448: bob
プリミティブにも興味がある場合には、or
オペレータを使用します。
root #
crm
configure show type:node or type:primitive node 178326192: alice node 178326448: bob primitive admin_addr IPaddr2 \ params ip=192.168.2.1 \ op monitor interval=10 timeout=20 primitive stonith-sbd stonith:external/sbd \ params pcmk_delay_max=30
さらに、特定の文字列で開始するオブジェクトを検索するには次の表記を使用します。
root #
crm
configure show type:primitive and and 'admin*' primitive admin_addr IPaddr2 \ params ip=192.168.2.1 \ op monitor interval=10 timeout=20
使用可能なすべてのタイプを一覧表示するには、crm configure show type:
と入力し、<Tab>キーを押します。Bash補完により、すべてのタイプのリストが表示されます。
新しいクラスタリソースを開始するには、そのIDが必要です。次の手順に従います。
root
としてログインし、crm
対話型シェルを開始します。
root #
crm
リソースレベルに切り替えます。
crm(live)#
resource
start
でリソースを開始し、<Tab>キーを押してすべての既知のリソースを表示します。
crm(live)resource#
start
ID
リソースは、失敗した場合は自動的に再起動しますが、失敗のたびにリソースの失敗回数が増加します。migration-threshold
がそのリソースに設定されている場合は、失敗の数が移行しきい値に達すると、そのリソースはノードで実行できなくなります。
シェルを開いて、root
ユーザとしてログインします。
すべてのリソースのリストを取得します。
root #
crm
resource list ... Resource Group: dlm-clvm:1 dlm:1 (ocf:pacemaker:controld) Started clvm:1 (ocf:heartbeat:clvm) Started
リソースdlm
をクリーンアップするには、たとえば、以下の手順を実行します:
root #
crm
resource cleanup dlm
次の手順に従って、クラスタリソースを削除します。
root
としてログインし、crm
対話型シェルを開始します。
root #
crm
configure
次のコマンドを実行して、リソースのリストを取得します。
crm(live)#
resource
status
たとえば、出力はこのようになります(ここで、myIPはリソースの該当するID)。
myIP (ocf:IPaddr:heartbeat) ...
該当するIDを持つリソースを削除します(これは、commit
も含意します)。
crm(live)#
configure
delete YOUR_ID
変更をコミットします。
crm(live)#
configure
commit
リソースは、ハードウェアまたはソフトウェアに障害が発生した場合、クラスタ内の他のノードに自動的にフェールオーバー(つまり移行)するよう設定されていますが、Hawk2またはコマンドラインを使用して、手動でリソースを別のノードに移動することもできます。
この作業を行うには、migrate
コマンドを使用します。たとえば、リソースipaddress1
をbob
というクラスタノードに移行するには、次のコマンドを使用します。
root #
crm
resourcecrm(live)resource#
migrate
ipaddress1 bob
タグは、コロケーションの作成や関係の順序付けを行わずに、複数のリソースをただちに参照する方法です。これは、概念的に関連するリソースをグループ化するのに役立つ場合があります。たとえば、データベースに関連するいくつかのリソースがある場合、databases
というタグを作成し、データベースに関連するすべてのリソースをこのタグに追加します。
root #
crm
configure tag databases: db1 db2 db3
これにより、1つのコマンドですべてを起動できます。
root #
crm
resource start databases
同様に、すべてを停止することもできます。
root #
crm
resource stop databases
クラスタまたはノードの「ヘルス」ステータスは、「スクリプト」というもので表示できます。スクリプトは、ヘルスだけに限らず各タスクを実行できます。ただし、このサブセクションでは、ヘルスステータスを取得する方法に焦点を当てます。
health
コマンドに関するすべての詳細を取得するには、describe
を使用します。
root #
crm
script describe health
このコマンドは、すべてのパラメータの説明とリスト、およびそのデフォルト値を示します。スクリプトを実行するには、run
を使用します。
root #
crm
script run health
スイートから1つのステップのみを実行したい場合は、describe
コマンドのStepsカテゴリで、使用可能なすべてのステップを一覧表示できます。
たとえば、次のコマンドは、health
コマンドの最初のステップを実行します。さらなる調査のために、出力がhealth.json
に保存されます。
root #
crm
script run health statefile='health.json'
上記のコマンドは、crm cluster health
でも実行できます。
スクリプトに関する追加情報を表示するには、http://crmsh.github.io/scripts/を参照してください。
cib.xml
から独立したパスワードの設定 #クラスタ設定にパスワードなどの機密の情報が含まれている場合、それらをローカルファイルに保存する必要があります。こうしておけば、これらのパラメータがログに記録されたり、サポートレポートに漏洩することはありません。
secret
を使用する前に、リソースの概要を確認するため、show
コマンドを実行しておくとよいでしょう。
root #
crm
configure show primitive mydb ocf:heartbeat:mysql \ params replication_user=admin ...
上記のmydb
リソースに対してパスワードを設定するには、次のコマンドを使用します。
root #
crm
resource secret mydb set passwd linux INFO: syncing /var/lib/heartbeat/lrm/secrets/mydb/passwd to [your node list]
次のように、保存されたパスワードが返されます。
root #
crm
resource secret mydb show passwd linux
パラメータは、ノード間で同期する必要があることに注意してください。crm resource secret
コマンドを使用すれば、この処理が実行されます。秘密のパラメータを管理する場合には、このコマンドを使用することを強く推奨します。
クラスタの履歴の調査は複雑な作業です。この作業を簡素化するために、crmshにはhistory
コマンドとそのサブコマンドが含まれています。これは、SSHが正しく設定されていることが前提となります。
それぞれのクラスタは、状態を移動し、リソースを移行し、または重要なプロセスを開始します。これらすべてのアクションは、history
のサブコマンドによって取得できます。
デフォルトでは、すべてのhistory
コマンドは過去1時間のイベントを確認します。このタイムフレームを変更するには、limit
サブコマンドを使用します。構文は次のとおりです。
root #
crm
historycrm(live)history#
limit
FROM_TIME [TO_TIME]
有効な例として、次のようなものが挙げられます。
limit
4:00pm
, limit
16:00
どちらのコマンドも同じ意味で、今日の午後4時を表しています。
limit
2012/01/12 6pm
2012年1月12日の午後6時。
limit
"Sun 5 20:46"
今年の今月の5日日曜日の午後8時46分。
その他の例とタイムフレームの作成方法については、http://labix.org/python-dateutilを参照してください。
info
サブコマンドでは、crm report
によって使用されているすべてのパラメータが表示されます。
crm(live)history#
info
Source: live Period: 2012-01-12 14:10:56 - end Nodes: alice Groups: Resources:
crm report
を特定のパラメータに制限するには、サブコマンドhelp
で使用可能なオプションを表示します。
詳細レベルに絞り込んでいくには、サブコマンドdetail
とレベル数を使用します。
crm(live)history#
detail
1
数値が大きいほど、レポートが詳細になっていきます。デフォルト値は0
(ゼロ)です。
ここまでのパラメータを設定したら、log
を使用してログメッセージを表示します。
最後の遷移を表示するには、次のコマンドを使用します。
crm(live)history#
transition
-1 INFO: fetching new logs, please wait ...
このコマンドはログを取得し、dotty
(graphviz
パッケージから)を実行して、遷移グラフを表示します。 シェルはログファイルを開きます。ログ内は、↓と↑カーソルキーでブラウズできます。
遷移グラフを表示する必要がない場合には、nograph
オプションを使用します。
crm(live)history#
transition
-1 nograph
crm マニュアルページ。
アップストリームプロジェクトマニュアルにアクセスします(http://crmsh.github.io/documentation)。
詳しい例については、Highly Available NFS Storage with DRBD and Pacemakerを参照してください。