High Availability Add-On リファレンス
Red Hat Enterprise Linux 7 向け High Availability Add-On のリファレンスドキュメント
概要
第1章 Red Hat High Availability Add-On の設定と管理のリファレンス概要
pcs 設定インターフェースまたは pcsd GUI インターフェースを使用します。
1.1. 新機能と変更点
1.1.1. Red Hat Enterprise Linux 7.1 の新機能および変更された機能
- 「クラスターリソースのクリーンアップ」 に記載されているように、
pcs resource cleanupコマンドがすべてのリソースのリソース状態とfailcountをリセットするようになりました。 - Red Hat Enterprise Linux 7.1 以降では
pcs aclコマンドを使用してローカルユーザーのパーミッションを設定し、アクセス制御リスト (ACL) を使用してクラスター設定への読み取り専用または読み書きアクセスを許可できるようになりました。ACL の詳細は 「ユーザーのパーミッション設定」 を参照してください。 - 「順序付けされたリソースセット」 および 「リソースのコロケーション」 が大幅に更新および明確化されました。
- 「クォーラムオプションの設定」 に、クォーラムの確立時にクラスターがすべてのノードを待たないようにする
cluster quorum unblock機能の説明が追加されました。 - 「リソースの作成」 に、リソースグループの順序付けを設定するために使用できる
pcs resource createコマンドのbeforeおよびafterパラメーターの説明が追加されました。 - Red Hat Enterprise Linux 7.1 リリース以降ではクラスター設定を tarball にバックアップし、
pcs configコマンドでbackupおよびrestoreオプションを使用してバックアップからすべてのノードのクラスター設定ファイルを復元できるようになりました。この機能の詳細は 「クラスター設定のバックアップおよび復元」 を参照してください。 - 内容を明確にするため本書全体に小変更が加えられました。
1.1.2. Red Hat Enterprise Linux 7.2 の新機能および変更された機能
pcs resource relocate runコマンドを使用して、現在のクラスター状態、制約、リソースの場所、およびその他の設定によって決定される優先ノードにリソースを移動できるようになりました。このコマンドの詳細は、「リソースの優先ノードへの移動」 を参照してください。- 外部プログラムを実行してクラスター通知の処理を判断するために
ClusterMonを設定する方法をより明確に説明するため、「モニタリングのリソースを使ったイベント通知」 が変更および拡大されました。 - 冗長な電源供給用のフェンスを設定する場合に各デバイスを 1 度のみ設定する必要があり、ノードのフェンシングには両方のデバイスが必要になることを指定する必要があります。冗長な電源供給にフェンスを設定する方法の詳細は、「冗長電源のフェンシング設定」 を参照してください。
- 本ドキュメントの 「クラスターノードの追加」 に、ノードを既存のクラスターに追加する手順が追加されました。
- 表7.1「場所の制約オプション」 の説明にあるように、新しい
resource-discoveryの場所の制約オプションにより、Pacemaker が指定されたリソースのノード上でリソースの検索を実行すべきかどうかを指定できるようになりました。 - ドキュメント全体にわたり、記載内容の明確化を図り、若干の修正を加えました。
1.1.3. Red Hat Enterprise Linux 7.3 の新機能および変更された機能
- 本バージョンでは、「pacemaker_remote サービス」 全体が書き直されました。
- アラートエージェントを使用して Pacemaker アラートを設定できます。アラートエージェントは、リソース設定と操作を処理するためにクラスター呼び出しのリソースエージェントと同様にクラスターが呼び出す外部プログラムです。Pacemaker アラートエージェントの説明は 「Pacemaker アラートエージェント (Red Hat Enterprise Linux 7.3 以降)」 を参照してください。
- 本リリースでは新しいクォーラム管理コマンドがサポートされ、クォーラムの状態を表示し、
expected_votesパラメーターを変更することができます。これらのコマンドの説明は 「クォーラム管理コマンド (Red Hat Enterprise Linux 7.3 以降)」 を参照してください。 - 「クォーラムオプションの変更 (Red Hat Enterprise Linux 7.3 以降)」 に記載されているように、
pcs quorum updateコマンドを使用して一般的なクォーラムオプションを変更できるようになりました。 - クラスターのサードパーティー判別デバイスとして動作する個別のクォーラムデバイスを設定できます。この機能は主に、標準のクォーラムルールが許可するよりも多くのノード障害をクラスターで維持できるようにするために使用されます。この機能はテクニカルリビューとしてのみ提供されます。クォーラムデバイスの説明は 「クォーラムデバイス (テクノロジープレビュー)」 を参照してください。
- Red Hat Enterprise Linux 7.3 には、Booth クラスターチケットマネージャーを使用して複数のサイトにまたがる高可用性クラスターを設定する機能が提供されます。 この機能はテクニカルプレビューとしてのみ提供されます。Booth クラスターチケットマネージャーの説明は 14章Pacemaker を用いたマルチサイトクラスターの設定 (テクニカルプレビュー) を参照してください。
pacemaker_remoteサービスを実行している KVM ゲストノードを設定する場合、グループにゲストノードを含めることができます。これにより、ストレージデバイス、ファイルシステムおよび VM をグループ化できます。KVM ゲストノードの設定に関する詳細は 「設定の概要: KVM ゲストノード」 を参照してください。
1.2. Pacemaker 設定ツールのインストール
yum install コマンドを使って Red Hat High Availability Add-On ソフトウェアのパッケージおよび利用可能なフェンスエージェントを High Availability チャネルからインストールします。
# yum install pcs pacemaker fence-agents-all
# yum install pcs pacemaker fence-agents-model
# rpm -q -a | grep fence
fence-agents-rhevm-4.0.2-3.el7.x86_64
fence-agents-ilo-mp-4.0.2-3.el7.x86_64
fence-agents-ipmilan-4.0.2-3.el7.x86_64
...lvm2-cluster と gfs2-utils のパッケージは ResilientStorage チャンネルの一部になります。必要に応じて次のコマンドでインストールを行ってください。
# yum install lvm2-cluster gfs2-utils警告
1.3. ファイアウォールでクラスターコンポーネントを許可する iptables 設定
- TCP: ポート 2224、3121、21064
- UDP: ポート 5405
- DLM (clvm/GFS2 で DLM ロックマネージャーを使用する場合): ポート 21064
firewalld デーモンを使用してこれらのポートを有効にすることができます。
#firewall-cmd --permanent --add-service=high-availability#firewall-cmd --add-service=high-availability
1.4. クラスターと Pacemaker の設定ファイル
corosync.conf と cib.xml です。これらのファイルは直接編集せずに、必ず pcs または pcsd インターフェースを使用して編集してください。
corosync.conf ファイルは、Pacemaker が構築されるクラスターマネージャーである corosync によって使用されるクラスターパラメーターを提供します。
cib.xml はクラスターの構成とクラスターの全リソースの現在の状態を表す XML ファイルです。このファイルは Pacemaker のクラスター情報ベース (CIB) によって使用されます。CIB の内容はクラスター全体で自動的に同期されます。
1.5. クラスター設定の注意事項
- Red Hat は完全なクラスターノードが 17 個以上あるクラスターデプロイメントをサポートしません。しかし、
pacemaker_remoteサービスを実行しているリモートノードを使用すると、この制限を超えた拡張が可能になります。pacemaker_remoteサービスの説明は 「pacemaker_remote サービス」 を参照してください。 - DHCP (Dynamic Host Configuration Protocol) を使用して
corosyncデーモンによって使用されるネットワークインターフェースで IP アドレスを取得することはサポートされません。アドレスの更新中、DHCP クライアントは割り当てられたインターフェースに対して定期的に IP アドレスを削除および再追加することができます。これにより、corosyncによって接続障害が検出され、クラスターの他のノードからのフェンシングアクティビティーによってハートビート接続性にcorosyncが使用されます。
第2章 pcsd Web UI
pcsd Web UI を用いた Red Hat High Availability クラスターの設定について説明します。
2.1. pcsd Web UI の設定
pcsd Web UI を使用してクラスターを設定するようシステムを設定するには、以下の手順に従います。
- 「Pacemaker 設定ツールのインストール」 の説明に従って Pacemaker 設定ツールをインストールします。
- クラスターの一部である各ノードで、
passwdコマンドを使用してユーザーhaclusterのパスワードを設定します。各ノードに同じパスワードを使用してください。 - 各ノードの
pcsdデーモンを開始し、有効にします。#
systemctl start pcsd.service#systemctl enable pcsd.service - クラスターの 1 つのノードで、以下のコマンドを使用してクラスターを構成するノードを認証します。このコマンドを実行すると、
UsernameとPasswordを指定するよう要求されます。Usernameにはhaclusterを指定してください。#
pcs cluster auth node1 node2 ... nodeN - いずれかのシステムで、以下の URL をブラウザーで開き、承認したノードの 1 つを指定します (
httpsプロトコルを使用することに注意してください)。指定するとpcsdWeb UI のログイン画面が表示されます。https://nodename:2224

図2.1 クラスターページの管理
2.2. pcsd Web UI を用いたクラスターの作成
- クラスターを作成するには、 Create New をクリックし、作成するクラスターとクラスターを構成するノードの名前を入力します。また、この画面では 「高度なクラスター設定オプション」 に記載されているクラスター通信のトランスポートメカニズムなどの高度なクラスターオプションを設定することもできます。クラスター情報の入力後、 をクリックします。
- 既存のクラスターを Web UI に追加するには、Add Existing をクリックし、Web UI で管理したいクラスターのノードのホスト名または IP アドレスを入力します。
注記
pcsd Web UI を使用してクラスターを設定する場合、多くのオプションを説明するテキストの上にマウスを移動すると、tooltip 表示としてそのオプションの詳細を表示することができます。
2.2.1. 高度なクラスター設定オプション

図2.2 クラスターページの作成
2.2.2. クラスターパーミッションの設定
hacluster は常にフルパーミッションを持つことに注意してください。
注記
- 読み取りパーミッション (クラスター設定の表示)
- 書き込みパーミッション (パーミッションおよび ACL を除くクラスター設定の変更)
- 付与パーミッション (クラスターパーミッションおよび ACL の変更)
- フルパーミッション (ノードの追加や削除などのクラスターへの無制限アクセス、およびキーや証明書へのアクセス)
haclient グループのメンバーはクラスターに完全アクセスできます。
2.3. クラスターコンポーネントの設定
- (「クラスターノード」 を参照)。
- (「クラスターリソース」 を参照)。
- (「フェンスデバイス」 を参照)。
- (「ACL の設定」 を参照)。
- (「クラスタープロパティー」 を参照)。

図2.3 クラスターコンポーネントのメニュー
2.3.1. クラスターノード
Nodes オプションを選択すると、ノードで実行されているリソースやリソースの場所設定などの、現在設定されているノードと現在選択されたノードの状態が表示されます。このページは、Manage Clusters 画面でクラスターを選択すると表示されるデフォルトページです。
Configure Fencing を選択するとこのページで直接フェンスデバイスを設定することもできます。
2.3.2. クラスターリソース
2.3.3. フェンスデバイス
2.3.4. ACL の設定
ACLS オプションを選択すると、ローカルユーザーのパーミッションを設定できる画面が表示されます。アクセス制御リスト (ACL) を使用すると、クラスター設定への読み取り専用または読み書きアクセスが可能になります。
2.3.5. クラスタープロパティー
Cluster Properties オプションを選択するとクラスタープロパティーが表示され、これらのプロパティーの値をデフォルト値から他の値に変更できます。Pacemaker クラスタープロパティーの詳細は 12章Pacemaker クラスターのプロパティ を参照してください。
第3章 pcs コマンドラインインターフェース
pcs コマンドラインインターフェースは、インターフェースを corosync.conf および cib.xml ファイルに提供し、corosync と Pacemaker を制御および設定します。
pcs コマンドの一般的な形式を以下に示します。
pcs [-f file] [-h] [commands]...
3.1. pcs コマンド
pcs コマンドを以下に示します。
clusterクラスターオプションおよびノードの設定を行います。pcs clusterコマンドの詳細については 4章クラスターの作成と管理 を参照してください。resourceクラスターリソースの作成と管理を行います。pcs clusterコマンドの詳細については 6章クラスターリソースの設定、8章クラスターリソースの管理、9章高度なリソースタイプ などを参照してください。stonithPacemaker との使用に備えてフェンスデバイスを設定します。pcs stonithコマンドについては 5章フェンス機能: STONITH の設定 を参照してください。constraintリソースの制約を管理します。pcs constraintコマンドについては 7章リソースの制約 を参照してください。propertyPacemaker のプロパティーを設定します。pcs propertyコマンドでプロパティーを設定する方法については 12章Pacemaker クラスターのプロパティ を参照してください。status現在のクラスターとリソースの状態を表示します。pcs statusコマンドについては 「状態の表示」 を参照してください。configユーザーが理解できる形式でクラスターの全設定を表示します。pcs configコマンドの詳細は 「全クラスター設定の表示」 を参照してください。
3.2. pcs の使用に関するヘルプ表示
pcs の -h オプションを使用すると pcs のパラメーターとその詳細を表示させることができます。例えば、次のコマンドでは pcs resource コマンドのパラメーターが表示されます。次の例は出力の一部です。
# pcs resource -h
Usage: pcs resource [commands]...
Manage pacemaker resources
Commands:
show [resource id] [--all]
Show all currently configured resources or if a resource is specified
show the options for the configured resource. If --all is specified
resource options will be displayed
start <resource id>
Start resource specified by resource_id
...3.3. raw クラスター設定の表示
pcs cluster cib コマンドを使用すると raw クラスター設定を表示できます。
pcs cluster cib filename を使うと raw クラスター設定を指定のファイルに保存することができます。
3.4. 設定の変更をファイルに保存
pcs コマンドを使用する際、-f オプションを使うとアクティブの CIB に影響を与えずに設定変更をファイルに保存することができます。
pcs cluster cib filename
testfile という名前のファイルに保存されます。
pcs cluster cib testfile
testfile1 ファイル内にリソースをひとつ作成しています。ただし、そのリソースは現在実行中のクラスター構成には追加されません。
# pcs -f testfile1 resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.120 cidr_netmask=24 op monitor interval=30stestfile の現在のコンテンツを CIB にプッシュします。
pcs cluster cib-push filename
3.5. 状態の表示
pcs status commands
resources、groups、cluster、nodes、pcsd などを指定すると特定のクラスターコンポーネントの状態のみを表示させることができます。
3.6. 全クラスター設定の表示
pcs config
3.7. 現在の pcs バージョンの表示
pcs の現行バージョンを表示します。
pcs --version
3.8. クラスター設定のバックアップおよび復元
pcs config backup filename
--local オプションを指定すると、現在のノードのファイルのみが復元されます。
pcs config restore [--local] [filename]
第4章 クラスターの作成と管理
4.1. クラスターの作成
- クラスターの各ノードで
pcsdを開始します。 - クラスターを構成するノードを認証します。
- クラスターノードの設定と同期を行います。
- クラスターノードでクラスターサービスを起動します。
4.1.1. pcsd デーモンの開始
pcsd サービスを開始し、システムの起動時に pcsd を有効にします。これらのコマンドはクラスターの各ノードで実行する必要があります。
#systemctl start pcsd.service#systemctl enable pcsd.service
4.1.2. クラスターノードの認証
pcs デーモンに対して pcs の認証を行います。
- すべてのノードで
pcs管理者のユーザー名をhaclusterにする必要があります。ユーザーhaclusterのパスワードも各ノードで同じパスワードを使用することが推奨されます。 usernameやpasswordを指定しないと、コマンドの実行時にノードごとにこれらのパラメーターを入力するよう要求されます。- ノードを指定しないと、前回実行した
pcs cluster setupコマンドで指定されているノードのpcsを認証することになります。
pcs cluster auth [node] [...] [-u username] [-p password]
z1.example.com と z2.example.com の両方で構成されるクラスターのノード両方に対して z1.example.com のユーザー hacluster を認証します。このコマンドは、クラスターノードのユーザー hacluster に対するパスワードを要求します。
root@z1 ~]# pcs cluster auth z1.example.com z2.example.com
Username: hacluster
Password:
z1.example.com: Authorized
z2.example.com: Authorized~/.pcs/tokens (または /var/lib/pcsd/tokens) ファイルに格納されます。
4.1.3. クラスターノードの設定と起動
--startオプションを使用すると指定ノードでクラスターサービスが起動されます。必要に応じて、別途pcs cluster startコマンドを使ってクラスターサービスを起動させることもできます。pcs cluster setup --startコマンドでクラスターを作成する場合、またはpcs cluster startコマンドでクラスターサービスを開始する場合、クラスターが稼働するまでに若干の遅延が発生することがあります。クラスターおよび設定の作業を続行する前に、pcs cluster statusコマンドを使用してクラスターが稼働していることを確認することが推奨されます。--localオプションを使用するとローカルノードでのみ変更を実行します。
pcs cluster setup [--start] [--local] --name cluster_ name node1 [node2] [...]
--allオプションを使用すると全ノードでクラスターサービスを起動します。- ノードを指定しないとクラスターサービスはローカルのノードでしか起動されません。
pcs cluster start [--all] [node] [...]
4.2. クラスターのタイムアウト値の設定
pcs cluster setup コマンドを使用してクラスターを作成する場合、クラスターのタイムアウト値はほとんどのクラスター設定に適するデフォルト値に設定されます。システムに他のタイムアウト値が必要な場合は、表4.1「タイムアウトオプション」 に記載されている pcs cluster setup オプションを使用してデフォルト値を変更できます。
表4.1 タイムアウトオプション
| オプション | 説明 |
|---|---|
--token timeout | トークンを受信しなかった後にトークンの損失が宣言されるまでの時間をミリ秒単位で設定します (デフォルトは 1000 ms です)。 |
--join timeout | join メッセージの待ち時間をミリ秒単位で設定します (デフォルトは 50 ms です)。 |
--consensus timeout | 新しいメンバーシップの設定を開始する前に合意が得られるまでの待ち時間をミリ秒単位で設定します (デフォルトは 1200 ms です)。 |
--miss_count_const count | 再送信が行われる前に、トークンの受信時に再送信のメッセージがチェックされる最大回数を設定します。デフォルトは 5 (5 つのメッセージ) です。 |
--fail_recv_const failures | 新しい設定の構成前に、受信しなければならないメッセージが発生する可能性がある場合、メッセージを受信せずにトークンをローテーションする回数を指定します (デフォルトの失敗数は 2500 です)。 |
new_cluster というクラスターを作成し、トークンのタイムアウト値を 10000 ミリ秒 (10 秒)、join タイムアウト値を 100 ミリ秒に設定します。
# pcs cluster setup --name new_cluster nodeA nodeB --token 10000 --join 1004.3. 冗長リングプロトコル (RRP) の設定
pcs cluster setup コマンドを使用してクラスターを作成する場合、各ノードの両方のインターフェースを指定すると冗長リングプロトコル (RRP) を用いてクラスターを設定できます。デフォルトの udpu トランスポートを使用する場合にクラスターノードを指定するには、リング 0 アドレス、「,」、リング 1 アドレスの順に指定します。
my_rrp_clusterM というクラスターを設定します。ノード A には nodeA-0 と nodeA-1 の 2 つのインターフェースがあります。ノード B には nodeB-0 と nodeB-1 の 2 つのインターフェースがあります。RRP を使用してこれらのノードをクラスターとして設定するには、以下のコマンドを実行します。
# pcs cluster setup --name my_rrp_cluster nodeA-0,nodeA-1 nodeB-0,nodeB-1 udp トランスポートを使用するクラスターに RRP を設定する場合の詳細は、pcs cluster setup コマンドのヘルプスクリーンを参照してください。
4.4. クラスターノードの管理
4.4.1. クラスターサービスの停止
pcs cluster start と同様に --all オプションを使うと全ノードのクラスターサービスが停止されます。ノードを指定しない場合はローカルノードのクラスターサービスのみが停止されます。
pcs cluster stop [--all] [node] [...]
kill -9 コマンドを実行します。
pcs cluster kill
4.4.2. クラスターサービスの有効化および無効化
--allオプションを使用すると全ノードでクラスターサービスが有効になります。- ノードを指定しないとローカルノードでのみクラスターサービスが有効になります。
pcs cluster enable [--all] [node] [...]
--allオプションを使用すると全ノードでクラスターサービスが無効になります。- ノードを指定しないとローカルノードでのみクラスターサービスが無効になります。
pcs cluster disable [--all] [node] [...]
4.4.3. クラスターノードの追加
clusternode-01.example.com、clusternode-02.example.com、および clusternode-03.example.com になります。新たに追加するノードは newnode.example.com になります。
- クラスターパッケージをインストールします。
[root@newnode ~]#
yum install -y pcs fence-agents-all firewalldデーモンを実行している場合は、以下のコマンドを実行して Red Hat High Availability Add-On が必要とするポートを有効にします。#
firewall-cmd --permanent --add-service=high-availability#firewall-cmd --add-service=high-availability- ユーザー ID
haclusterのパスワードを設定します。クラスターの各ノードに同じパスワードを使用することが推奨されます。[root@newnode ~]#
passwd haclusterChanging password for user hacluster. New password: Retype new password: passwd: all authentication tokens updated successfully. - 次のコマンドを実行して
pcsdサービスを開始し、システムの起動時にpcsdが有効になるようにします。#
systemctl start pcsd.service#systemctl enable pcsd.service
- 新しいクラスターノードでユーザー
haclusterを認証します。[root@clusternode-01 ~]#
pcs cluster auth newnode.example.comUsername: hacluster Password: newnode.example.com: Authorized - 新しいノードを既存のクラスターに追加します。さらに、このコマンドは
corosync.confクラスター設定ファイルをクラスターのすべてのノード (追加する新しいノードを含む) に対して同期します。[root@clusternode-01 ~]#
pcs cluster node add newnode.example.com
- 新しいノードにて、ユーザー
haclusterをクラスターのすべてのノードに対して認証します。[root@newnode ~]#
pcs cluster authUsername: hacluster Password: clusternode-01.example.com: Authorized clusternode-02.example.com: Authorized clusternode-03.example.com: Authorized newnode.example.com: Already authorized - 新しいノードでクラスターサービスを開始および有効化します。
[root@newnode ~]#
pcs cluster startStarting Cluster... [root@newnode ~]#pcs cluster enable - 新しいクラスターノードのフェンスデバイスを設定するようにしてください。フェンスデバイスの設定については 5章フェンス機能: STONITH の設定 を参照してください。
4.4.4. クラスターノードの削除
corosync.conf クラスター設定ファイルから指定のノードを削除します。クラスターに関するすべての情報をクラスターノード全体で削除し、クラスターを永久的に破壊する方法については、「クラスター設定の削除」 を参照してください。
pcs cluster node remove node
4.4.5. スタンバイモード
--all を使用すると全ノードがスタンバイモードになります。
pcs cluster standby node | --all
--all を使用すると全ノードのスタンバイモードを外します。
pcs cluster unstandby node | --all
pcs cluster standby コマンドを実行すると指定したノードでのリソースの実行を阻止する制約が追加されることになります。制約を取り除く場合は pcs cluster unstandby コマンドを実行します。このコマンドは必ずしもリソースを指定ノードに戻すわけではありません。最初にどのようにリソースを設定したかにより、その時点で実行できるノードに移動されます。リソースの制約については 7章リソースの制約 を参照してください。
4.5. ユーザーのパーミッション設定
haclient グループのメンバーであるユーザーは、クラスター設定へ完全に読み書きアクセスできます。Red Hat Enterprise Linux 7.1 以降では、pcs acl コマンドを使用してローカルユーザーのパーミッションを設定し、アクセス制御リスト (ACL) を使用してクラスター設定への読み取り専用または読み書きアクセスを許可できます。
pcs acl role create...コマンドを実行して role を作成しそのロールのパーミッションを定義します。pcs acl user createコマンドで作成したロールをユーザーに割り当てます。
rouser というローカルユーザーにクラスター設定に対する読み取り専用アクセスを与えています。
- この手順では、
rouserユーザーがローカルシステムに存在し、rouserユーザーがhaclientグループのメンバーである必要があります。#
adduser rouser#usermod -a -G haclient rouser enable-aclクラスタープロパティを使って Pacemaker ACL を有効にします。#
pcs property set enable-acl=true --force- cib に対して読み取り専用のパーミッションを持つ
read-onlyという名前のロールを作成します。#
pcs acl role create read-only description="Read access to cluster" read xpath /cib - pcs ACL システム内に
rouserというユーザーを作成し、read-onlyロールを割り当てます。#
pcs acl user create rouser read-only - 現在の ACL を表示させます。
#
pcs aclUser: rouser Roles: read-only Role: read-only Description: Read access to cluster Permission: read xpath /cib (read-only-read)
wuser と言うローカルユーザーにクラスター設定に対する書き込みアクセスを与えています。
- この手順では、
wuserユーザーがローカルシステムに存在し、wuserユーザーがhaclientグループのメンバーである必要があります。#
adduser wuser#usermod -a -G haclient wuser enable-aclクラスタープロパティを使って Pacemaker ACL を有効にします。#
pcs property set enable-acl=true --force- cib に対して書き込みパーミッションを持つ
write-accessという名前のロールを作成します。#
pcs acl role create write-access description="Full access" write xpath /cib - pcs ACL システム内に
wuserというユーザーを作成し、write-accessロールを割り当てます。#
pcs acl user create wuser write-access - 現在の ACL を表示させます。
#
pcs aclUser: rouser Roles: read-only User: wuser Roles: write-access Role: read-only Description: Read access to cluster Permission: read xpath /cib (read-only-read) Role: write-access Description: Full Access Permission: write xpath /cib (write-access-write)
pcs acl コマンドのヘルプ画面を参照してください。
4.6. クラスター設定の削除
警告
pcs cluster stop を実行してからクラスターの破棄を行うことを推奨しています。
pcs cluster destroy
第5章 フェンス機能: STONITH の設定
5.1. STONITH (フェンス) エージェント
pcs stonith list [filter]
5.2. フェンスデバイスの一般的なプロパティー
注記
target-role を設定することができます。
注記
注記
表5.1 フェンスデバイスの一般的なプロパティー
| フィールド | タイプ | デフォルト | 説明 |
|---|---|---|---|
priority | 整数 | 0 | stonith リソースの優先度です。高い優先度のデバイスから順番に試行されます。 |
pcmk_host_map | 文字列 | ホスト名に対応していないデバイスのポート番号とホスト名をマッピングします。例えば、node1:1;node2:2,3 なら node1 にはポート 1 を使用し node2 にはポート 2 と 3 を使用するようクラスターに指示します。 | |
pcmk_host_list | 文字列 | このデバイスで制御するマシンの一覧です (オプション、pcmk_host_check=static-list を除く)。 | |
pcmk_host_check | 文字列 | dynamic-list | デバイスで制御するマシンを指定します。使用できる値: dynamic-list (デバイスに問い合わせ)、static-list (pcmk_host_list 属性をチェック)、なし (すべてのデバイスで全マシンのフェンスが可能とみなされる) |
5.3. デバイス固有のフェンスオプションの表示
pcs stonith describe stonith_agent
# pcs stonith describe fence_apc
Stonith options for: fence_apc
ipaddr (required): IP Address or Hostname
login (required): Login Name
passwd: Login password or passphrase
passwd_script: Script to retrieve password
cmd_prompt: Force command prompt
secure: SSH connection
port (required): Physical plug number or name of virtual machine
identity_file: Identity file for ssh
switch: Physical switch number on device
inet4_only: Forces agent to use IPv4 addresses only
inet6_only: Forces agent to use IPv6 addresses only
ipport: TCP port to use for connection with device
action (required): Fencing Action
verbose: Verbose mode
debug: Write debug information to given file
version: Display version information and exit
help: Display help and exit
separator: Separator for CSV created by operation list
power_timeout: Test X seconds for status change after ON/OFF
shell_timeout: Wait X seconds for cmd prompt after issuing command
login_timeout: Wait X seconds for cmd prompt after login
power_wait: Wait X seconds after issuing ON/OFF
delay: Wait X seconds before fencing is started
retry_on: Count of attempts to retry power on5.4. フェンスデバイスの作成
pcs stonith create stonith_id stonith_device_type [stonith_device_options]
# pcs stonith create MyStonith fence_virt pcmk_host_list=f1 op monitor interval=30s pcmk_host_map オプションを使用すると、ノードとポートのマッピングを定義できます。たとえば、次のコマンドは west-apc という APC 電源スイッチを使用し、ノード west-13 に 15 番ポートを使用する myapc-west-13 という名前のフェンスデバイスを 1 つ作成します。
# pcs stonith create myapc-west-13 fence_apc pcmk_host_list="west-13" ipaddr="west-apc" login="apc" passwd="apc" port="15"west-13、17 番ポートを使用するフェンスノード west-14、18 番ポートを使用するフェンスノード west-15、および 19 番ポートを使用するフェンスノード west-16 に west-apc という APC 電源スイッチを使用します。
# pcs stonith create myapc fence_apc pcmk_host_list="west-13,west-14,west-15,west-16" pcmk_host_map="west-13:15;west-14:17;west-15:18;west-16:19" ipaddr="west-apc" login="apc" passwd="apc" 5.5. アンフェンスによるストレージベースのフェンスデバイスの設定
stonith デバイスの作成時にメタオプション provides=unfencing を設定する必要があります。これにより、フェンスされたノードが再起動前にアンフェンスされ、クラスターサービスがそのノードで開始されます。
provides=unfencing メタオプションを設定する必要はありません。この場合の起動とはアンフェンスが発生してから起動するという意味です。
fence_scsi フェンスエージェントを使用する my-scsi-shooter と言う名前の stonith デバイスを設定、デバイスのアンフェンスを有効にしています。
pcs stonith create my-scsi-shooter fence_scsi devices=/dev/sda meta provides=unfencing
5.6. フェンスデバイスの表示
--full オプションが指定されていると、設定された stonith のオプションがすべて表示されます。
pcs stonith show [stonith_id] [--full]
5.7. フェンスデバイスの修正と削除
pcs stonith update stonith_id [stonith_device_options]
pcs stonith delete stonith_id
5.8. フェンスデバイスが接続されているノードの管理
--off を使用すると stonith に対して off API コールが使用されノードは再起動ではなく電源オフになります。
pcs stonith fence node [--off]
注記
pcs stonith confirm node
5.9. その他のフェンス設定オプション
表5.2 フェンスデバイスの高度なプロパティー
| フィールド | タイプ | デフォルト | 説明 |
|---|---|---|---|
pcmk_host_argument | 文字列 | port | ポートの代わりに提供する代替のパラメーターです。デバイスによっては、標準のポートパラメーターをサポートしなかったり、追加のパラメーターを提供することがあります。このパラメーターを使用して、フェンスするマシンを示すデバイス固有の代替パラメーターを指定します。クラスターが追加のパラメーターを提供しないようにするには、 none を値として使用します。 |
pcmk_reboot_action | 文字列 | reboot | reboot の代わりに実行する代替のコマンドです。標準的なコマンドに対応していないデバイスや別のコマンドを提供しているデバイスがあります。このような場合、このパラメーターを使って再起動の動作を実行するデバイス固有の代替コマンドを指定します。 |
pcmk_reboot_timeout | 時間 | 60s | stonith-timeout の代わりに再起動の動作に対して使用する代替タイムアウトです。再起動が完了するまでに通常より長い時間を要するデバイスもあれば通常より短い時間で完了するデバイスもあります。再起動の動作に対してデバイス固有の代替タイムアウトを指定する場合に使用します。 |
pcmk_reboot_retries | 整数 | 2 | タイムアウト期間内で reboot コマンドを再試行させる最大回数です。複数接続に対応していないデバイスがあります。別のタスクでビジー状態になるとデバイスが動作に失敗する場合があるため、Pacemaker は残り時間内で動作を自動的に再試行させます。Pacemaker による再起動の動作の再試行回数を変更する場合に使用します。 |
pcmk_off_action | 文字列 | オフ | off の代わりに実行する代替コマンドです。標準的なコマンドに対応していないデバイスや別のコマンドを提供しているデバイスがあります。このような場合、このパラメーターを使ってオフの動作を実行するデバイス固有の代替コマンドを指定します。 |
pcmk_off_timeout | 時間 | 60s | stonith-timeout の代わりにオフの動作に対して使用する代替タイムアウトです。オフに通常より長い時間を要するデバイスもあれば通常より短い時間でオフするデバイスもあります。オフの動作に対してデバイス固有の代替タイムアウトを指定する場合に使用します。 |
pcmk_off_retries | 整数 | 2 | タイムアウト期間内で off コマンドを再試行させる最大回数です。複数接続に対応していないデバイスがあります。別のタスクでビジー状態になるとデバイスが動作に失敗する場合があるため、Pacemaker は残り時間内で動作を自動的に再試行させます。Pacemaker によるオフ動作の再試行回数を変更する場合に使用します。 |
pcmk_list_action | 文字列 | list | list の代わりに実行する代替のコマンドです。標準的なコマンドに対応していないデバイスや別のコマンドを提供しているデバイスがあります。このような場合、このパラメーターを使って list の動作を実行するデバイス固有の代替コマンドを指定します。 |
pcmk_list_timeout | 時間 | 60s | stonith-timeout の代わりに list の動作に対して使用する代替タイムアウトです。list の完了に通常より長い時間を要するデバイスもあれば通常より短い時間で list するデバイスもあります。list の動作に対してデバイス固有の代替タイムアウトを指定する場合に使用します。 |
pcmk_list_retries | 整数 | 2 | タイムアウト期間内で list コマンドを再試行させる最大回数です。複数接続に対応していないデバイスがあります。別のタスクでビジー状態になるとデバイスが動作に失敗する場合があるため、Pacemaker は残り時間内で動作を自動的に再試行させます。Pacemaker による list 動作の再試行回数を変更する場合に使用します。 |
pcmk_monitor_action | 文字列 | monitor | monitor の代わりに実行する代替のコマンドです。標準的なコマンドに対応していないデバイスや別のコマンドを提供しているデバイスがあります。このような場合、このパラメーターを使ってモニタリングの動作を実行するデバイス固有の代替コマンドを指定します。 |
pcmk_monitor_timeout | 時間 | 60s | stonith-timeout の代わりにモニターの動作に対して使用する代替タイムアウトです。モニターに通常より長い時間を要するデバイスもあれば通常より短い時間でオフするデバイスもあります。モニターの動作に対してデバイス固有の代替タイムアウトを指定する場合に使用します。 |
pcmk_monitor_retries | 整数 | 2 | タイムアウト期間内で monitor コマンドを再試行させる最大回数です。複数接続に対応していないデバイスがあります。別のタスクでビジー状態になるとデバイスが動作に失敗する場合があるため、Pacemaker は残り時間内で動作を自動的に再試行させます。Pacemaker によるモニター動作の再試行回数を変更する場合に使用します。 |
pcmk_status_action | 文字列 | status | status の代わりに実行する代替のコマンドです。標準的なコマンドに対応していないデバイスや別のコマンドを提供しているデバイスがあります。このような場合、このパラメーターを使って status の動作を実行するデバイス固有の代替コマンドを指定します。 |
pcmk_status_timeout | 時間 | 60s | stonith-timeout の代わりに status の動作に対して使用する代替タイムアウトです。status に通常より長い時間を要するデバイスもあれば通常より短い時間でオフするデバイスもあります。status の動作に対してデバイス固有の代替タイムアウトを指定する場合に使用します。 |
pcmk_status_retries | 整数 | 2 | タイムアウト期間内で status コマンドを再試行させる最大回数です。複数接続に対応していないデバイスがあります。別のタスクでビジー状態になるとデバイスが動作に失敗する場合があるため、Pacemaker は残り時間内で動作を自動的に再試行させます。Pacemaker による status 動作の再試行回数を変更する場合に使用します。 |
5.10. フェンスレベルの設定
- 各レベルは 1 から昇順で試行されていきます。
- 任意のフェンスデバイスに障害が発生すると、現行レベルの排他処理は終了します。同レベルのデバイスには試行されず、次のレベルが試行されます。
- すべてのデバイスの排他処理が正常に完了するとそのレベルが継承され他のレベルは試行されません。
- 任意のレベルで成功するまたはすべてのレベルが試行される (失敗する) と動作は終了します。
pcs stonith level add level node devices
pcs stonith level
my_ilo という ilo フェンスデバイスと my_apc という apc フェンスデバイスの 2 つがノード rh7-2 に対して設定されています。これらのコマンドはフェンスレベルを設定します。デバイス my_ilo に障害が発生し、ノードをフェンスできない場合、Pacemaker はデバイス my_apc の使用を試みます。この例では、レベル設定後の pcs stonith level コマンドの出力も表示されています。
#pcs stonith level add 1 rh7-2 my_ilo#pcs stonith level add 2 rh7-2 my_apc#pcs stonith levelNode: rh7-2 Level 1 - my_ilo Level 2 - my_apc
pcs stonith level remove level [node_id] [stonith_id] ... [stonith_id]
pcs stonith level clear [node|stonith_id(s)]
# pcs stonith level clear dev_a,dev_bpcs stonith level verify
5.11. 冗長電源のフェンシング設定
#pcs stonith create apc1 fence_apc_snmp ipaddr=apc1.example.com login=user passwd='7a4D#1j!pz864' pcmk_host_map="node1.example.com:1;node2.example.com:2"#pcs stonith create apc2 fence_apc_snmp ipaddr=apc2.example.com login=user passwd='7a4D#1j!pz864' pcmk_host_map="node1.example.com:1;node2.example.com:2"#pcs stonith level add 1 node1.example.com apc1,apc2#pcs stonith level add 1 node2.example.com apc1,apc2
第6章 クラスターリソースの設定
6.1. リソースの作成
pcs resource create resource_id standard:provider:type|type [resource options] [op operation_action operation_options [operation_action operation_options]...] [meta meta_options...] [--clone clone_options | --master master_options | --group group_name [--before resource_id | --after resource_id]] [--disabled]
--group オプションを指定すると、リソースはその名前のリソースグループへ追加されます。指定のグループが存在しない場合、グループが作成され、グループにリソースが追加されます。リソースグループの詳細は、「リソースグループ」 を参照してください。
--before および --after オプションは、リソースグループにすでに存在するリソースを基準として、追加されたリソースの相対的な位置を指定します。
--disabled オプションを指定すると、リソースが自動的に起動されません。
VirtualIP という名前のリソースが作成され、標準 ocf、heartbeat プロバイダー、および IPaddr2 タイプが指定されます。このリソースのフローティングアドレスは 192.168.0.120 で、システムはリソースが 30 秒毎に実行されるかどうかをチェックします。
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.120 cidr_netmask=24 op monitor interval=30socf と heartbeat にデフォルト設定されます。
# pcs resource create VirtualIP IPaddr2 ip=192.168.0.120 cidr_netmask=24 op monitor interval=30spcs resource delete resource_id
VirtualIP というリソース ID の既存リソースを削除しています。
# pcs resource delete VirtualIPpcs resource createコマンドのフィールド、resource_id、standard、provider、type については 「リソースのプロパティー」 を参照してください。- リソースごとにパラメーターを指定する方法については 「リソース固有のパラメーター」 を参照してください。
- リソースの動作をクラスターが決定する場合に使用するリソースのメタオプションを定義する方法については 「リソースのメタオプション」 を参照してください。
- リソースで行う動作を定義する方法については 「リソースの動作」 を参照してください。
--cloneを指定するとクローンリソースが作成されます。--masterを指定するとマスター/スレーブリソースが作成されます。リソースのクローンや、複数モードのリソースに関する詳細は、9章高度なリソースタイプ を参照してください。
6.2. リソースのプロパティー
表6.1 リソースのプロパティー
| フィールド | 説明 |
|---|---|
|
resource_id
| |
|
standard
| |
|
type
| |
|
provider
|
表6.2 リソースプロパティを表示させるコマンド
| pcs 表示コマンド | 出力 |
|---|---|
pcs resource list | 利用できる全リソースの一覧を表示 |
pcs resource standards | 利用できるリソースエージェントの標準を表示 |
pcs resource providers | 利用できるリソースエージェントのプロバイダーを表示 |
pcs resource list string | 利用できるリソースを指定文字列でフィルターした一覧を表示、標準名、プロバイダー名、タイプ名などでフィルターした一覧を表示させることが可能 |
6.3. リソース固有のパラメーター
# pcs resource describe standard:provider:type|typeLVM のリソースに設定できるパラメーターを表示します。
# pcs resource describe LVM
Resource options for: LVM
volgrpname (required): The name of volume group.
exclusive: If set, the volume group will be activated exclusively.
partial_activation: If set, the volume group will be activated even
only partial of the physical volumes available. It helps to set to
true, when you are using mirroring logical volumes.6.4. リソースのメタオプション
表6.3 リソースのメタオプション
| フィールド | デフォルト | 説明 |
|---|---|---|
priority
| 0
| |
target-role
| Started
|
維持するリソースの状態、使用できる値:
* Stopped - リソースの強制停止
* Started - リソースの起動を許可 (多状態リソースの場合マスターには昇格されません)
|
is-managed
| true
| |
resource-stickiness
|
0
| |
requires
|
Calculated
|
リソースの起動を許可する条件
以下の条件の場合を除き
fencing にデフォルト設定、可能な値:
*
nothing - クラスターによるリソースの起動を常に許可
*
quorum - 設定されているノードの過半数がアクティブな場合にのみクラスターはこのリソースを起動可能、stonith-enabled が false に設定されている場合またはリソースの standard が stonith の場合はこのオプションがデフォルト値となる
*
fencing -設定されているノードの過半数がアクティブで 且つ 障害が発生しているノードや不明なノードの電源がすべてオフになっている場合にのみ、クラスターによるこのリソースの起動を許可
*
unfencing - The cluster can only start this resource if a majority of the configured nodes are active and any failed or unknown nodes have been powered off and only on nodes that have been unfenced. This is the default value if the provides=unfencing stonith meta option has been set for a fencing device. For information on the provides=unfencing stonith meta option, see 「アンフェンスによるストレージベースのフェンスデバイスの設定」.
|
migration-threshold
| INFINITY (無効)
|
How many failures may occur for this resource on a node, before this node is marked ineligible to host this resource. For information on configuring the
migration-threshold option, refer to 「障害発生によるリソースの移動」.
|
failure-timeout
| 0 (無効)
|
Used in conjunction with the
migration-threshold option, indicates how many seconds to wait before acting as if the failure had not occurred, and potentially allowing the resource back to the node on which it failed. For information on configuring the failure-timeout option, refer to 「障害発生によるリソースの移動」.
|
multiple-active
| stop_start
|
リソースが複数のノードで実行していることが検出された場合にクラスターに行わせる動作、使用できる値:
*
block - リソースに unmanaged のマークを付ける
*
stop_only - 実行しているインスタンスをすべて停止する (これ以上の動作は行わない)
*
stop_start - 実行中のインスタンスをすべて停止してから一ヶ所でのみ起動する
|
pcs resource defaults options
resource-stickiness のデフォルト値を 100 にリセットしています。
# pcs resource defaults resource-stickiness=100pcs resource defaults の options パラメーターを省略すると現在設定しているリソースオプションのデフォルト値の一覧を表示します。次の例では resource-stickiness のデフォルト値を 100 にリセットした後の出力を示しています。
# pcs resource defaults
resource-stickiness:100pcs resource create コマンドの形式を以下に示します。
pcs resource create resource_id standard:provider:type|type [resource options] [meta meta_options...]
resource-stickiness の値を 50 に設定したリソースを作成しています。
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.120 cidr_netmask=24 meta resource-stickiness=50pcs resource meta resource_id | group_id | clone_id | master_id meta_options
dummy_resource と言うリソースに failure-timeout メタオプションの値を 20 秒に設定しているコマンドの例を示します。これにより 20 秒でリソースが同じノード上で再起動試行できるようになります。
# pcs resource meta dummy_resource failure-timeout=20s failure-timeout=20s が設定されているか確認するためリソースの値を表示させることができます。
# pcs resource show dummy_resource
Resource: dummy_resource (class=ocf provider=heartbeat type=Dummy)
Meta Attrs: failure-timeout=20s
Operations: start interval=0s timeout=20 (dummy_resource-start-timeout-20)
stop interval=0s timeout=20 (dummy_resource-stop-timeout-20)
monitor interval=10 timeout=20 (dummy_resource-monitor-interval-10)6.5. リソースグループ
pcs resource group add group_name resource_id [resource_id] ... [resource_id] [--before resource_id | --after resource_id
--before および --after オプションを使用すると、リソースグループにすでに存在するリソースを基準として、追加されたリソースの相対的な位置を指定できます。
pcs resource create resource_id standard:provider:type|type [resource_options] [op operation_action operation_options] --group group_name
pcs resource group remove group_name resource_id...
pcs resource group list
IPaddr と Email が含まれる shortcut というリソースグループが作成されます。
# pcs resource group add shortcut IPaddr Email- リソースは指定された順序で起動されます (この例では、最初に
IPaddrが起動された後、Emailが起動されます)。 - リソースは指定された順序の逆順で停止されます (
Emailが停止された後、IPaddrが停止されます)。
IPaddrを実行できない場合はEmailも実行できません。Emailを実行できなくてもIPaddrには影響しません。
6.5.1. グループオプション
priority、target-role、および is-managed オプションを継承します。リソースオプションの詳細は 表6.3「リソースのメタオプション」 を参照してください。
6.6. リソースの動作
pcs コマンドはデフォルトでモニタリングの動作を作成します。モニタリングの間隔はリソースエージェントで確定されます。リソースエージェントでデフォルトのモニタリング間隔が提供されない場合は pcs コマンドにより 60 秒間隔のモニタリング動作が作成されます。
表6.4 動作のプロパティ
pcs resource create resource_id standard:provider:type|type [resource_options] [op operation_action operation_options [operation_type operation_options]...]
IPaddr2 リソースを作成します。新しいリソースには VirtualIP という名前が付けられ、eth2 で IP アドレス 192.168.0.99、ネットマスク 24 になります。モニタリング動作は 30 秒毎に実施されます。
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.99 cidr_netmask=24 nic=eth2 op monitor interval=30spcs resource op add resource_id operation_action [operation_properties]
pcs resource op remove resource_id operation_name operation_properties
注記
VirtualIP を作成できます。
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.99 cidr_netmask=24 nic=eth2
Operations: start interval=0s timeout=20s (VirtualIP-start-timeout-20s)
stop interval=0s timeout=20s (VirtualIP-stop-timeout-20s)
monitor interval=10s timeout=20s (VirtualIP-monitor-interval-10s)#pcs resource update VirtualIP stop interval=0s timeout=40s#pcs resource show VirtualIPResource: VirtualIP (class=ocf provider=heartbeat type=IPaddr2) Attributes: ip=192.168.0.99 cidr_netmask=24 nic=eth2 Operations: start interval=0s timeout=20s (VirtualIP-start-timeout-20s) monitor interval=10s timeout=20s (VirtualIP-monitor-interval-10s) stop interval=0s timeout=40s (VirtualIP-name-stop-interval-0s-timeout-40s)
pcs resource op defaults [options]
timeout 値のグローバルデフォルトを 240 秒に設定します。
# pcs resource op defaults timeout=240spcs resource op defaults コマンドをオプションを指定せずに実行します。
timeout 値は 240 秒に設定されています。
# pcs resource op defaults
timeout: 240s6.7. 設定されているリソースの表示
pcs resource show
VirtualIP と言う名前のリソースと WebSite という名前のリソースでシステムを設定していた場合、pcs resource show コマンドを実行すると次のような出力が得られます。
# pcs resource show
VirtualIP (ocf::heartbeat:IPaddr2): Started
WebSite (ocf::heartbeat:apache): Started
pcs resource show コマンドの --full オプションを使用します。
# pcs resource show --full
Resource: VirtualIP (type=IPaddr2 class=ocf provider=heartbeat)
Attributes: ip=192.168.0.120 cidr_netmask=24
Operations: monitor interval=30s
Resource: WebSite (type=apache class=ocf provider=heartbeat)
Attributes: statusurl=http://localhost/server-status configfile=/etc/httpd/conf/httpd.conf
Operations: monitor interval=1minpcs resource show resource_id
VirtualIP のパラメーターを表示しています。
# pcs resource show VirtualIP
Resource: VirtualIP (type=IPaddr2 class=ocf provider=heartbeat)
Attributes: ip=192.168.0.120 cidr_netmask=24
Operations: monitor interval=30s6.8. リソースパラメーターの変更
pcs resource update resource_id [resource_options]
VirtualIP のパラメーターの値を示すコマンドと初期値を表示している出力、ip パラメーターの値を変更するコマンド、変更されたパラメーター値を表示している出力を以下に示します。
#pcs resource show VirtualIPResource: VirtualIP (type=IPaddr2 class=ocf provider=heartbeat) Attributes: ip=192.168.0.120 cidr_netmask=24 Operations: monitor interval=30s #pcs resource update VirtualIP ip=192.169.0.120#pcs resource show VirtualIPResource: VirtualIP (type=IPaddr2 class=ocf provider=heartbeat) Attributes: ip=192.169.0.120 cidr_netmask=24 Operations: monitor interval=30s
6.9. 複数のモニタリング動作
注記
OCF_CHECK_LEVEL=n オプションを追加します。
IPaddr2 リソースを設定するとデフォルトでは 10 秒間隔でタイムアウト値が 20 秒のモニタリング動作が作成されます。
# pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.99 cidr_netmask=24 nic=eth2
# pcs resource op add VirtualIP monitor interval=60s OCF_CHECK_LEVEL=106.10. クラスターリソースの有効化と無効化
resource_id で指定されているリソースを有効にします。
pcs resource enable resource_idresource_id で指定されているリソース無効にします。
pcs resource disable resource_id6.11. クラスターリソースのクリーンアップ
pcs resource cleanup コマンドで障害状態を消去できます。このコマンドはリソースの状態と failcount をリセットし、リソースの動作履歴を消去して現在の状態を再検出するようクラスターに指示します。
pcs resource cleanup resource_id
failcount をリセットします。
第7章 リソースの制約
location制約 — 場所の制約はリソースを実行できるノードを決めます。場所の制約については「場所の制約」 で説明しています。order制約 — 順序の制約はリソースが実行される順序を決めます。順序の制約については 「順序の制約」 で説明しています。colocation制約 — コロケーションの制約は他のリソースと相対的となるリソースの配置先を決めます。コロケーションの制約については 「リソースのコロケーション」 で説明しています。
7.1. 場所の制約
表7.1 場所の制約オプション
| フィールド | 説明 | ||||||
|---|---|---|---|---|---|---|---|
rsc
|
リソース名
| ||||||
node
|
ノード名
| ||||||
score
|
優先度を示す値、任意のノードでのリソースの実行を優先または避ける
INFINITY の値は「すべき」から「しなければならない」に変化、INFINITY はリソースの場所制約のデフォルト score 値
| ||||||
resource-discovery
|
|
pcs constraint location rsc prefers node[=score] ...
pcs constraint location rsc avoids node[=score] ...
- オプトインクラスター — クラスターを設定し、デフォルトではいずれのノードでもリソース実行を許可せず、特定のリソース用に選択的に許可ノードを有効にします。オプトインクラスターの設定方法は 「「オプトイン」クラスターの設定」 で説明しています。
- オプトアウトクラスター — クラスターを設定し、デフォルトでは全ノードでリソース実行を許可してから、特定ノードでの実行を許可しない場所の制約を作成します。オプトアウトクラスターの設定方法は 「「オプトアウト」クラスターの設定」 で説明しています。
7.1.1. 「オプトイン」クラスターの設定
symmetric-cluster を false に設定してデフォルトではリソースの実行をいずれのノードでも許可しないようにします。
# pcs property set symmetric-cluster=falseWebserver リソースは example-1 ノードでの実行を優先させ、Database リソースは example-2 ノードでの実行を優先させるようになります。また、いずれのリソースも優先ノードに障害が発生した場合は example-3 ノードにフェールオーバーすることができます。
#pcs constraint location Webserver prefers example-1=200#pcs constraint location Webserver prefers example-3=0#pcs constraint location Database prefers example-2=200#pcs constraint location Database prefers example-3=0
7.1.2. 「オプトアウト」クラスターの設定
symmetric-cluster を true に設定しデフォルトではリソースの実行をすべてのノードに許可します。
# pcs property set symmetric-cluster=trueexample-3 ノードにフェールオーバーすることができます。
#pcs constraint location Webserver prefers example-1=200#pcs constraint location Webserver avoids example-2=INFINITY#pcs constraint location Database avoids example-1=INFINITY#pcs constraint location Database prefers example-2=200
7.2. 順序の制約
pcs constraint order [action] resource_id then [action] resource_id [options]
表7.2 順序の制約のプロパティ
| フィールド | 説明 |
|---|---|
|
resource_id
|
動作を行うリソースの名前
|
|
action
|
リソースで行う動作、action プロパティで使用できる値:
*
start - リソースを起動する
*
stop - リソースを停止する
*
promote - スレーブリソースからマスターリソースにリソースの昇格を行う
*
demote - マスターリソースからスレーブリソースにリソースの降格を行う
動作を指定しないとデフォルトの動作
start が設定されます。マスターリソースとスレーブリソースについての詳細は 「多状態のリソース: 複数モードのリソース」 を参照してください。
|
kind オプション
|
制約の実施方法、
kind オプションで使用できる値:
*
Optional - 両方のリソースが指定のアクションを実行する場合のみ適用されます。順序は 「勧告的な順序付け」 を参照してください。
*
Mandatory - 常に実施 (デフォルト値)、1 番目に指定したリソースが停止しているまたは起動できない場合、2 番目に指定されているリソースを停止しなければなりません (「強制的な順序付け」 を参照)
*
Serialize - リソースセットに対して 2 種類の動作、停止と起動が同時に発生しないようにする
|
symmetrical オプション
|
7.2.1. 強制的な順序付け
kind オプションのデフォルトです。デフォルト値のままにしておくと 1 番目に指定しているリソースの状態が変化した場合、2 番目に指定したリソー スが必ず反応するようになります。
- 1 番目に指定している実行中のリソースを停止すると 2 番目に指定しているリソースも停止されます (実行していれば)。
- 1 番目に指定しているリソースが実行されていない状態でまた起動できない場合には 2 番目に指定しているリソースが停止されます (実行していれば)。
- 2 番目に指定しているリソースの実行中に 1 番目に指定しているリソースが再起動されると、2 番目に指定しているリソースが停止され再起動されます。
7.2.2. 勧告的な順序付け
kind=Optional オプションが指定された場合、制約は任意として考慮され、両方のリソースが指定のアクションを実行する場合のみ適用されます。最初に指定するリソースによる状態の変更は 2 番目に指定するリソースに影響を与えません。
VirtualIP というリソースと dummy_resource というリソースに勧告的な順序付けの制約を設定します。
# pcs constraint order VirtualIP then dummy_resource kind=Optional 7.2.3. 順序付けされたリソースセット
pcs constraint order set コマンドを使用してリソースのセットに順序付けの制約を作成できます。
pcs constraint order set コマンドを使用すると、以下のオプションをリソースのセットに設定できます。
sequential:trueまたはfalseに設定でき、リソースのセットが相対的に順序付けされる必要があるかどうかを示します。sequentialをfalseに設定すると、順序付けの制約で他のセットに対して相対的に順序付けすることができますが、セットのメンバーは相対的に順序付けされません。そのため、このオプションは制約に複数のセットがリストされている場合のみ有効です。それ以外の場合、制約の効果はありません。require-all:trueまたはfalseを設定でき、続行する前にセットのすべてのリソースがアクティブである必要があるかどうかを示します。require-allをfalseに設定した場合、次のセットに継続する前にセットの 1 つのリソースのみが開始される必要があります。require-allをfalseに設定した場合、sequentialがfalseに設定された順序付けされていないセットと併用しないと効果がありません。
pcs constraint order set コマンドの setoptions パラメーターの後に、リソースのセットに対する以下の制約オプションを設定できます。
id: 定義する制約の名前を指定します。score: 制約の優先度を示します。このオプションの詳細は 表7.3「コロケーション制約のプロパティ」 を参照してください。
pcs constraint order set resource1 resource2 [resourceN]... [options] [set resourceX resourceY ... [options]] [setoptions [constraint_options]]
D1、D2、D3 という 3 つのリソースがあると仮定した場合、次のコマンドはこの 3 つのリソースを順序付けされたひとつのリソースセットとして設定します。
# pcs constraint order set D1 D2 D37.2.4. 順序の制約からリソースを削除
pcs constraint order remove resource1 [resourceN]...
7.3. リソースのコロケーション
pcs constraint colocation add [master|slave] source_resource with [master|slave] target_resource [score] [options]
表7.3 コロケーション制約のプロパティ
| フィールド | 説明 |
|---|---|
|
source_resource
|
コロケーションソース、制約の条件を満たせない場合はこのリソースの実行を全く許可しないと判断されることがあります。
|
|
target_resource
|
コロケーションターゲット、このリソースの実行先が最初に決定されてからソースリソースの実行先が決定されます。
|
|
score
|
正の値を指定するとリソースは同じノードで実行され、負の値を指定するとリソースは同じノードで実行されません。デフォルト値である +
INFINITY は source_resource が target_resource と同じノードで実行されなければならないことを示しています。- INFINITY は source_resource が target_resource と同じノードで実行されてはならないことを示しています。
|
7.3.1. 強制的な配置
+INFINITY または -INFINITY の場合は常に強制的な配置が発生します。制約条件が満たされないと source_resource の実行が許可されません。score=INFINITY の場合、target_resource がアクティブではないケースが含まれます。
myresource1 を常に myresource2 と同じマシンで実行する場合は次のような制約を追加します。
# pcs constraint colocation add myresource1 with myresource2 score=INFINITYINFINITY を使用しているため myresource2 がクラスターのいずれのノードでも実行できない場合には (理由の如何に関わらず) myresource1 の実行は許可されません。
myresource1 が myresource2 と同じマシンでは実行できないようクラスターを設定することもできます。この場合は score=-INFINITY を使用します。
# pcs constraint colocation add myresource1 with myresource2 score=-INFINITY-INFINITY を指定することで制約が結合しています。このため、実行できる場所として残っているノードで myresource2 がすでに実行されている場合には myresource1 はいずれのノードでも実行できなくなります。
7.3.2. 勧告的な配置
-INFINITY より大きく INFINITY より小さい場合、クラスターはユーザーの希望を優先しようとしますが、クラスターリソースを一部停止することを希望する場合は無視します。勧告的なコロケーション制約と設定の他の要素を組み合わせると、強制的であるように動作させることができます。
7.3.3. 複数リソースのコロケート
pcs constraint colocation set コマンドを使用してリソースのセットにコロケーションの制約を作成できます。
pcs constraint colocation set コマンドを使用すると、以下のオプションをリソースのセットに設定できます。
sequential:trueまたはfalseに設定でき、セットのメンバーがお互いをコロケートする必要があるかどうかを示します。sequentialをfalseに設定すると、このセットのメンバーがアクティブであるかどうかに関係なく、このセットのメンバーを制約の後にリストされている他のセットとコロケートすることができます。そのため、このオプションは制約でこのセットの後に他のセットがリストされている場合のみ有効です。それ以外の場合、制約の効果はありません。
pcs constraint colocation set コマンドの setoptions パラメーターの後に、リソースのセットに対する以下の制約オプションを設定できます。
kind: 制約の実行方法を示します。このオプションの詳細は 表7.2「順序の制約のプロパティ」 を参照してください。symmetrical: リソースを停止する順序を示します。デフォルト値はtrueで、リソースを逆順で停止します。id: 定義する制約の名前を指定します。
pcs constraint colocation set resource1 resource2 [resourceN]... [options] [set resourceX resourceY ... [options]] [setoptions [constraint_options]]
7.3.4. コロケーション制約の削除
pcs constraint colocation remove source_resource target_resource
7.4. 制約の表示
pcs constraint list|show
resourcesを指定すると場所制約がリソースごとに表示されます。デフォルトの動作です。nodesを指定すると場所制約がノードごとに表示されます。- 特定のリソースまたはノードを指定するとそのリソースまたはノードの情報のみが表示されます。
pcs constraint location [show resources|nodes [specific nodes|resources]] [--full]
--full オプションを指定すると制約の内部 ID を表示します。
pcs constraint order show [--full]
--full オプションを指定すると制約の内部 ID を表示します。
pcs constraint colocation show [--full]
pcs constraint ref resource ...
第8章 クラスターリソースの管理
8.1. リソースを手作業で移動する
- ノードのメンテナンスのためそのノードで実行中の全リソースを別のノードに移動する必要がある
- 個別に指定されたリソースを移動する必要がある場合
- 「現在のノードからリソースを移動」 の説明にしたがって、
pcs resource moveコマンドを使用して現在稼働しているノードからリソースを移動します。 pcs resource relocate runコマンドを使用して、現在のクラスター状態、制約、リソースの場所、およびその他の設定によって決定される優先ノードへリソースを移動します。このコマンドの詳細は 「リソースの優先ノードへの移動」 を参照してください。
8.1.1. 現在のノードからリソースを移動
destination_node を指定します。
pcs resource move resource_id [destination_node] [--master] [lifetime=lifetime]
注記
pcs resource move コマンドを実行すると、現在稼働しているノードで実行されないよう、リソースに制約が追加されます。pcs resource clear または pcs constraint delete コマンドを実行すると制約を削除できます。これらのコマンドを実行してもリソースが必ずしも元のノードに戻るわけではありません。この時点でリソースが実行できる場所は、リソースの最初の設定によって異なります。
pcs resource ban コマンドの --master パラメーターを指定すると、制約の範囲がマスターロールに限定され、resource_id の代わりに master_id を指定する必要があります。
pcs resource move コマンドの lifetime パラメーターを設定すると、制限が維持される期間を指定できます。ISO 8601 に定義された形式に従って lifetime パラメーターの単位を指定できます。ISO 8601 では、Y (年)、M (月)、W (週)、D (日)、H (時)、M (分)、S (秒) のように、単位を大文字で指定する必要があります。
lifetime パラメーターは 5 カ月の間隔を示し、PT5M の lifetime パラメーターは 5 分の間隔を示します。
lifetime パラメーターは cluster-recheck-interval クラスタープロパティーによって定義された間隔でチェックされます。デフォルト値は 15 分です。このパラメーターを頻繁にチェックする必要がある場合、以下のコマンドを実行してこの値をリセットできます。
pcs property set cluster-recheck-interval=value
pcs resource ban コマンドに --wait[=n] パラメーターを設定し、移動先のノードでリソースが起動するまでの待機時間 (秒単位) を指定することができます。待機時間がこの値を超えると、リソースが起動した場合は 0 が返され、リソースが起動しなかった場合は 1 が返されます。n の値を指定しないと、デフォルトのリソースタイムアウト値が使用されます。
resource1 をノード example-node2 へ移動し、1 時間 30 分以内に元のノードへ戻らないようにします。
pcs resource move resource1 example-node2 lifetime=PT1H30M
resource1 をノード example-node2 へ移動し、30 分以内に元のノードへ戻らないようにします。
pcs resource move resource1 example-node2 lifetime=PT30M
8.1.2. リソースの優先ノードへの移動
pcs resource relocate run [resource1] [resource2] ...
pcs resource relocate run コマンドによって作成された制約をすべて削除するには、pcs resource relocate clear コマンドを入力します。リソースの現在の状態と、resource stickiness を無視した最適なノードを表示するには、pcs resource relocate show コマンドを実行します。
8.2. 障害発生によるリソースの移動
migration-threshold オプションをセットし、セットした回数の障害が発生するとリソースが新しいノードに移動されるよう設定することができます。このしきい値に一旦達してしまうと、このノードは障害が発生したリソースを実行できなくなります。解除には以下が必要になります。
- 管理者は
pcs resource failcountコマンドを使用して手作業でリソースのfailcountをリセットします。 - リソースの
failure-timeout値に達する
注記
migration-threshold を設定するのと、リソースの状態を維持しながら別の場所に移動させるリソースの移行設定とは異なります。
dummy_resource というリソースに移行しきい値 10 を追加しています。この場合、障害が 10 回発生するとそのリソースは新しいノードに移動されます。
# pcs resource meta dummy_resource migration-threshold=10
# pcs resource defaults migration-threshold=10pcs resource failcount コマンドを使用します。
start-failure-is-fatal が true に設定された場合 (デフォルト)、起動の失敗によって failcount が INFINITY に設定され、リソースが常に即座に移動するようになります。
8.3. 接続状態変更によるリソースの移動
pingリソースをクラスターに追加します。pingリソースは同じ名前のシステムユーティリティーを使用して、マシン (DNS ホスト名または IPv4/IPv6 アドレスによって指定される) にアクセス可能であるかをテストし、その結果を使用してpingdと呼ばれるノード属性を維持します。- 接続が失われたときに別のノードにリソースを移動させるためのリソース場所制約を設定します。
ping リソースに設定できるプロパティを示します。
表8.1 ping リソースのプロパティ
| フィールド | 説明 |
|---|---|
dampen
| |
multiplier
| |
host_list
|
gateway.example.com への接続を検証する ping リソースを作成します。実際には、ネットワークゲートウェイやルーターへの接続を検証します。リソースがすべてのクラスターノードで実行されるよう、ping リソースをクローンとして設定します。
# pcs resource create ping ocf:pacemaker:ping dampen=5s multiplier=1000 host_list=gateway.example.com --cloneWebserver という既存のリソースの場所制約ルールを設定します。これにより、Webserver リソースが現在実行されているホストが www.example.com へ ping できない場合に、 Webserver リソースを www.example.com へ ping できるホストに移動します。
# pcs constraint location Webserver rule score=-INFINITY pingd lt 1 or not_defined pingd8.4. クラスターリソースの有効化、無効化、および禁止
pcs resource move および pcs resource relocate コマンドの他にも、クラスターリソースの動作を制御するために使用できるコマンドは複数あります。
--wait オプションを指定すると、pcs はリソースが停止するまで 30 秒間 (または指定した n 秒間) 待機します。リソースが停止した場合は 0 を返し、リソースが停止しなかった場合は 1 を返します。
pcs resource disable resource_id [--wait[=n]]
--wait オプションを指定すると pcs はリソースの停止を最長で 30 秒間 (または「n」を使って秒数を指定する) 待ってから、リソースが停止した場合には 0、リソースが停止しなかった場合には 1 を返します。
pcs resource enable resource_id [--wait[=n]]
pcs resource ban resource_id [node] [--master] [lifetime=lifetime] [--wait[=n]]
pcs resource ban コマンドを実行すると、場所制約である -INFINITY がリソースに追加され、リソースが指定のノードで実行されないようにします。pcs resource clear または pcs constraint delete コマンドを実行すると制約を削除できます。これらのコマンドを実行してもリソースが必ずしも指定のノードに戻るわけではありません。この時点でリソースが実行できる場所は、リソースの最初の設定によって異なります。リソース制約の詳細は 7章リソースの制約 を参照してください。
pcs resource ban コマンドの --master パラメーターを指定すると、制約の範囲がマスターロールに限定され、resource_id の代わりに master_id を指定する必要があります。
pcs resource ban コマンドの lifetime パラメーターを設定すると、制約を維持する期間を指定できます。lifetime パラメーターの単位や、lifetime パラメーターがチェックされる間隔を指定する方法については、「リソースを手作業で移動する」 を参照してください。
pcs resource ban コマンドに --wait[=n] パラメーターを設定し、移動先のノードでリソースが起動するまでの待機時間 (秒単位) を指定することができます。待機時間がこの値を超えると、リソースが起動した場合は 0 が返され、リソースが起動しなかった場合は 1 が返されます。n の値を指定しないと、デフォルトのリソースタイムアウト値が使用されます。
pcs resource コマンドの debug-start パラメーターを使用します。クラスターの推奨は無視され強制起動しているリソースからの出力を表示します。このコマンドは主にリソースをデバッグする際に使用されます。クラスターでのリソースの起動はほぼ毎回、Pacemaker で行われるため、直接 pcs コマンドを使った起動は行われません。リソースが起動しない場合、大抵はリソースが誤って設定されている、リソースが起動しないよう制約が設定されている、リソースが無効になっているのいずれかが原因です。このような場合に、このコマンドを使ってリソースの設定をテストすることができます。ただし、クラスター内でのリソースの通常起動には使用しないでください。
debug-start コマンドの形式を以下に示します。
pcs resource debug-start resource_id
8.5. モニター操作の無効化
enabled="false" を操作の定義に追加します。モニタリング操作を再度有効にするには、enabled="true" を操作の定義に設定します。
8.6. 管理リソース
unmanaged モードに設定できます。このモードでは、リソースは設定に維持されますが Pacemaker はリソースを管理しません。
unmanaged モードに設定します。
pcs resource unmanage resource1 [resource2] ...
managed モードに設定します。
pcs resource manage resource1 [resource2] ...
pcs resource manage または pcs resource unmanage コマンドを使用してリソースグループの名前を指定できます。コマンドはグループのすべてのリソースに対して実行されるため、1 つのコマンドでグループのリソースすべてを managed または unmanaged モードに設定し、リソースを個別に管理できます。
第9章 高度なリソースタイプ
9.1. リソースのクローン
注記
ext4 などのクラスター化していないファイルシステムをマウントする Filesystem リソースなどのクローンは作成しないでください。ext4 パーティションはクラスターを認識しないため、同時に複数のノードから繰り返し行われる読み取りや書き込み操作には適していません。
9.1.1. クローンリソースの作成と削除
pcs resource create resource_id standard:provider:type|type [resource options] \ clone [meta clone_options]
resource_id-clone になります。
pcs resource clone resource_id | group_name [clone_options]...
resource_id-clone または group_name-clone になります。
注記
注記
-clone を付けた名前が付けられます。次のコマンドではタイプが apache の webfarm というリソースとそのクローンとして webfarm-clone というリソースを作成します。
# pcs resource create webfarm apache clonepcs resource unclone resource_id | group_name
表9.1 クローンのリソース用オプション
| フィールド | 説明 |
|---|---|
priority, target-role, is-managed
|
表6.3「リソースのメタオプション」 の説明どおり、クローンされたリソースから継承されるオプション。
|
clone-max
| |
clone-node-max
| |
notify
| |
globally-unique
|
各クローンのコピーに異なる機能を行わせるかどうか、使用できる値:
false、true
このオプションの値が
false の場合はリソースが実行しているいずれのノードであってもすべて同じ動作を行うため、1 台のマシンごと実行できるクローンのコピーは 1 つ
このオプションの値が
true の場合は任意のマシンで実行中のクローンのコピーは別のマシンまたは同じマシンで実行している他のコピーとは同じにならない、clone-node-max の値が「1」より大きい場合にはデフォルト値は true になり、これ以外の場合は false がデフォルト値になる
|
ordered
| |
interleave
|
Changes the behavior of ordering constraints (between clones/masters) so that copies of the first clone can start or stop as soon as the copy on the same node of the second clone has started or stopped (rather than waiting until every instance of the second clone has started or stopped). Allowed values:
false, true. The default value is false.
|
9.1.2. 制約のクローン作成
clone-max にはクラスター内のノード合計数より小さい数をリソースのクローン数の値として設定することができます。この場合、リソースの場所制約を付けたコピーを優先的に割り当てるノードを示すことができます。クローンの ID を使用する点以外、制約は通常のリソースの場合と全く変わらずクローンに記述されます。
webfarm-clone が node1 に優先的に割り当てられるようにしています。
# pcs constraint location webfarm-clone prefers node1webfarm-clone のコピーがすべて開始されるまで待機した後に webfarm-stats が開始されます。webfarm-clone のコピーを 1 つも開始できない場合、webfarm-stats はアクティブになりません。さらに、webfarm-stats が停止されるまで待機してから webfarm-clone が停止されます。
# pcs constraint order start webfarm-clone then webfarm-statswebfarm-stats リソースが webfarm-clone のアクティブなコピーと同じノードで実行されるようにします。
# pcs constraint colocation add webfarm-stats with webfarm-clone9.1.3. 粘着性のクローン作成
resource-stickiness に値を与えないとクローンは 1 の値を使用します。値を小さくすることで他のリソースのスコア計算への阻害を最小限に抑えながら、Pacemaker によるクラスターノード内での不必要なコピーの移動を適切に阻止することができます。
9.2. 多状態のリソース: 複数モードのリソース
Master および Slave の 2 つの操作モードのいずれかになることができます。モードの名前に特別な意味はありませんが、インスタンスの起動時に Slave 状態にならなければならない制限があります。
pcs resource create resource_id standard:provider:type|type [resource options] \ --master [meta master_options]
resource_id-master になります。
resource_id-master または group_name-master になります。
pcs resource master master/slave_name resource_id|group_name [master_options]
表9.2 多状態リソースのプロパティー
9.2.1. 多状態リソースの監視
ms_resource のマスターリソースに 11 秒間隔の監視操作を設定します。この監視操作は、10 秒間隔で行われるデフォルトの監視操作とは別に追加されます。
# pcs resource op add ms_resource interval=11s role=Master9.2.2. 多状態制約
pcs constraint colocation add [master|slave] source_resource with [master|slave] target_resource [score] [options]
promote です。さらに、demote を指定するとリソースをマスターからスレーブに降格できます。
pcs constraint order [action] resource_id then [action] resource_id [options]
9.2.3. 多状態の粘着性 (Stickiness)
resource-stickiness is provided, the multistate resource will use a value of 1. Being a small value, it causes minimal disturbance to the score calculations of other resources but is enough to prevent Pacemaker from needlessly moving copies around the cluster.
9.3. pacemaker_remote サービス
pacemaker_remote サービスを使用すると、corosync を実行していないノードをクラスターに統合し、それらのノードのリソースはクラスターによって実際のクラスターノードと同様に管理されます。
pacemaker_remote サービスが提供する機能には以下が含まれます。
pacemaker_remoteサービスはcorosyncの 16 ノード制限を超えた拡張を可能にします。pacemaker_remoteサービスを使用すると、仮想環境をクラスターリソースとして管理でき、さらに仮想環境内の個別のサービスをクラスターリソースとして管理できます。
pacemaker_remote サービスは以下の用語を使用して記述されます。
- cluster node: 高可用性サービスを実行しているノード (
pacemakerおよびcorosync)。 - remote node:
corosyncクラスターメンバーシップを必要としないクラスターにリモートで統合するためにpacemaker_remoteを実行しているノード。リモートノードは、ocf:pacemaker:remoteリソースエージェントを使用するクラスターリソースとして設定されます。 - guest node:
pacemaker_remoteサービスを実行している仮想ゲストノード。ゲストノードは、ocf:pacemaker:VirtualDomainなどのリソースエージェントのremote-nodeメタデータオプションを使用して設定されます。仮想ゲストリソースはクラスターによって管理されます。仮想ゲストリソースはクラスターによって開始され、リモートノードとしてクラスターに統合されます。 - pacemaker_remote: Pacemaker クラスター環境のリモートノードおよびゲストノード (KVM および LXC) 内でリモートアプリケーション管理を実行できるサービスデーモン。このサービスは、corosync を実行していないノード上でリソースをリモートで管理できる Pacemaker のローカルリソース管理デーモン (LRMD) の強化バージョンです。
- LXC —
libvirt-lxcLinux コンテナードライバーで定義される Linux Container
pacemaker_remote サービスを実行している Pacemaker クラスターには次のような特徴があります。
- リモートノードおよびゲストノードは
pacemaker_remoteサービスを実行します (仮想マシン側で必要な設定はほとんどありません)。 - クラスターノードで実行しているクラスタースタック (
pacemakerおよびcorosync) はリモートノード上でpacemaker_remoteサービスに接続するため、クラスターに統合することができます。 - クラスターノードで実行しているクラスタースタック (
pacemakerおよびcorosync) はゲストノードを開始し、ゲストノード上でpacemaker_remoteサービスに即座に接続するため、クラスターに統合することができます。
- クォーラムで実行されません
- フェンスデバイスのアクションを実行しません
- クラスターの指定コントローラー (DC) にはなれません
pcsコマンドのすべてを実行できません
pcs コマンドを使用してクラスターノードでその他のアクションを実行することもできます。リモートおよびゲストノードは、クラスターノードと同様にクラスター状態の出力に表示されます。
9.3.1. ホストとゲストの認証
pacemaker_remote を実行しているクラスターノードおよびノードは同じプライベートキーを共有する必要があります。デフォルトでは、クラスターノードとリモートノードの両方でこのキーを /etc/pacemaker/authkey に格納する必要があります。
9.3.2. ゲストノードリソースのオプション
VirtualDomain リソースを作成します。VirtualDomain リソースに設定できるオプションの説明を表示するには、次のコマンドを実行します。
# pcs resource describe VirtualDomainVirtualDomain リソースオプションの他にも、メタデータオプションを設定してリソースをゲストノードとして有効にし、接続パラメーターを定義することができます。メタデータオプションの説明は 表9.3「KVM/LXC リソースをリモートノードとして設定するメタデータオプション」 を参照してください。
表9.3 KVM/LXC リソースをリモートノードとして設定するメタデータオプション
| フィールド | デフォルト | 説明 |
|---|---|---|
remote-node
|
<none>
|
このリソースが定義するゲストノードの名前。リソースをゲストノードとして有効にし、ゲストノードの識別に使用される一意名を定義します。 警告: この値はリソースやノードの ID と重複してはなりません。
|
remote-port
|
3121
| pacemaker_remote へのゲスト接続に使用するカスタムのポートを設定
|
remote-addr
|
ホスト名として使用される
remote-node 値
|
リモートノードの名前がゲストのホスト名ではない場合に接続する IP アドレスまたはホスト名
|
remote-connect-timeout
|
60s
|
保留中のゲスト接続がタイムアウトするまでの時間
|
9.3.3. リモートノードリソースのオプション
pcs resource create コマンドを使用し、ocf:pacemaker:remote をリソースタイプとして指定します。remote リソースに設定できるリソースオプションの説明は 表9.4「リモートノードのリソースオプション」 を参照してください。
表9.4 リモートノードのリソースオプション
| フィールド | デフォルト | 説明 |
|---|---|---|
reconnect_interval
|
0
|
リモートノードへのアクティブな接続が切断された後、リモートノードへの再接続を試みる前に待機する時間 (秒単位)。待機期間は繰り返されます。待機期間の後に再接続に失敗した場合、さらなる待機期間の後に再接続を試みます。このオプションが使用されると、Pacemaker は待機期間の後に無限にリモートノードへ接続を試みます。
|
server
| |
接続するサーバーの場所。IP アドレスまたはホスト名を指定できます。
|
port
| |
接続する TCP ポート。
|
9.3.4. デフォルトの pacemaker_remote オプションの変更
pacemaker_remote いずれかの authkey の場所を変更する必要がある場合は、両方のデーモンに反映させることができる環境変数を設定することができます。以下のように /etc/sysconfig/pacemaker ファイルに配置するとこの環境変数を有効にすることができます。
#==#==# Pacemaker Remote # Use a custom directory for finding the authkey. PCMK_authkey_location=/etc/pacemaker/authkey # # Specify a custom port for Pacemaker Remote connections PCMK_remote_port=3121
PCMK_remote_port 変数をそのノードの /etc/sysconfig/pacemaker ファイルに設定する必要があります。また、ゲストノードまたはリモートノードの接続を作成するクラスターリソースを同じポート番号で設定する必要もあります (ゲストノードの場合は remote-port メタデータオプション、リモートノードの場合は port オプションを使用します)。
9.3.5. 設定の概要: KVM ゲストノード
libvirt と KVM 仮想ゲストを使用して、Pacemaker で仮想マシンを起動し、そのマシンをゲストノードとして統合する方法の概要を説明します。
- 仮想化ソフトウェアをインストールし、クラスターノード上で
libvirtdサービスを有効にした後、すべてのクラスターノードと仮想マシンの/etc/pacemaker/authkeyに同じ暗号化キーを保存します。これにより、通信と認証がセキュア化されます。すべてのノードで以下のコマンドセットを実行し、セキュアなパーミッションを持つauthkeyディレクトリーを作成します。#
mkdir -p --mode=0750 /etc/pacemaker#chgrp haclient /etc/pacemaker以下のコマンドは、暗号化キーを作成する方法の 1 つを示しています。キーは 1 度だけ作成し、すべてのノードにコピーする必要があります。#
dd if=/dev/urandom of=/etc/pacemaker/authkey bs=4096 count=1 - 各仮想マシンに
pacemaker_remoteパッケージをインストールし、pacemaker_remoteサービスを開始します。pacemaker_remoteが起動時に実行されるよう設定し、ファイアウォールを介して TCP のポート 3121 を許可します。#
yum install pacemaker-remote resource-agents#systemctl start pacemaker_remote.service#systemctl enable pacemaker_remote.service#firewall-cmd --add-port 3121/tcp --permanent#firewall-cmd --reload - すべてのノードが認識できる静的ネットワークアドレスと一意なホスト名を各仮想マシンに割り当てます。ゲスト仮想マシンに静的 IP アドレスを設定する方法については、『仮想化の導入および管理ガイド』を参照してください。
- 仮想マシンを管理するために
VirtualDomainリソースエージェントを作成する場合、Pacemaker は仮想マシンの xml 設定ファイルをディスクのファイルにダンプすることを必要とします。たとえば、guest1という名前の仮想マシンを作成し、ホストにあるファイルに xml をダンプします。好きなファイル名を使用できますが、この例では/etc/pacemaker/guest1.xmlを使用します。#
virsh dumpxml guest1 > /etc/pacemaker/guest1.xml - ゲストノードが実行されている場合はシャットダウンします。そのノードがクラスターで設定されると Pacemaker によって開始されます。
VirtualDomainリソースを作成し、remote-noteリソースメタオプションを設定して仮想マシンはリソースの実行が可能なゲストノードであることを示します。以下の例では、このリソースはクラスターに統合可能で、ホスト名がguest1のゲストノードであることをremote-node=guest1メタ属性が Pacemaker に伝えます。クラスターは開始後、ホスト名guest1で仮想マシンのpacemaker_remoteサービスに通信しようとします。クラスターノードから以下のコマンドを入力します。#
pcs resource create vm-guest1 VirtualDomain hypervisor="qemu:///system" config="/virtual_machines/vm-guest1.xml" meta remote-node=guest1VirtualDomainリソースの作成後、ゲストノードをクラスターの他のノードと同じように扱うことができます。たとえば、以下のコマンドをクラスターノードから実行すると、作成したリソースに対してリソース制約が作成され、ゲストノードで実行されるようになります。Red Hat Enterprise Linux 7.3 時点では、ゲストノードをグループで含むことができ、ストレージデバイス、ファイルシステム、および VM をグループ化できます。#
pcs resource create webserver apache configfile=/etc/httpd/conf/httpd.conf op monitor interval=30s#pcs constraint location webserver prefers guest1
9.3.6. 設定の概要: リモートノード
- リモートノードを設定するノードで、ローカルファイアウォールを介してクラスター関連のサービスを許可します。
#
firewall-cmd --permanent --add-service=high-availabilitysuccess #firewall-cmd --reloadsuccess注記
iptablesを直接使用する場合またはfirewalld以外のファイアウォールソリューションを使用する場合は、さまざまなクラスタリングコンポーネントによって使用される TCP ポート 2224、3121、21064、および UDP ポート 5405 を開きます。 - リモートノードで
pacemaker_remoteデーモンをインストールします。#
yum install -y pacemaker-remote resource-agents pcs - 適切に通信するには、すべてのノード (クラスターノードとリモートノードの両方) に同じ認証キーがインストールされている必要があります。既存ノードにすでにキーがある場合、そのキーを使用してリモートノードにコピーします。それ以外の場合はリモートノードで新しいキーを作成します。リモートノードで以下のコマンドを実行し、セキュアなパーミッションを持つ認証キーのディレクトリーを作成します。
#
mkdir -p --mode=0750 /etc/pacemaker#chgrp haclient /etc/pacemaker以下のコマンドは、リモートノードで暗号化キーを作成する方法の 1 つを示しています。#
dd if=/dev/urandom of=/etc/pacemaker/authkey bs=4096 count=1 - リモートノードで
pacemaker_remoteデーモンを開始し、有効にします。#
systemctl enable pacemaker_remote.service#systemctl start pacemaker_remote.service - クラスターノードにて、リモートノードの認証キーと同じパスを持つ共有された認証キーの保存場所を作成し、そのディレクトリーにキーをコピーします。この例では、キーが作成されたリモートノードからキーがコピーされます。
#
mkdir -p --mode=0750 /etc/pacemaker#chgrp haclient /etc/pacemaker#scp remote1:/etc/pacemaker/authkey /etc/pacemaker/authkey - クラスターノードから以下のコマンドを実行し、
remoteリソースを作成します。この例では、リモートノードはremote1になります。# pcs resource create remote1 ocf:pacemaker:remote
remoteリソースの作成後、リモートノードをクラスターの他のノードと同じように扱うことができます。たとえば、以下のコマンドをクラスターノードから実行すると、作成したリソースに対してリソース制約が作成され、リモートノードで実行されるようになります。#
pcs resource create webserver apache configfile=/etc/httpd/conf/httpd.conf op monitor interval=30s#pcs constraint location webserver prefers remote1警告
リソースグループ、コロケーション制約、または順序制約でノード接続リソースを利用しないでください。- リモートノードのフェンスリソースを設定します。リモートノードは、クラスターノードと同様にフェンスされます。クラスターノードと同様に、リモートノードと使用するフェンスリソースを設定します。リモートノードはフェンスアクションを開始してはならないことに注意してください。他のノードに対してフェンス操作を実行できるのはクラスターノードのみです。
9.3.7. システムアップグレードおよび pacemaker_remote
pacemaker_remote サービスが停止した場合にノードの停止前にクラスターがノードをリソースから正常に移行するようになりました。これにより、クラスターからノードを削除せずに、ソフトウェアのアップグレードやその他の定期的なメンテナンスを実行できるようになりました。pacemaker_remote がシャットダウンするとクラスターは即座に再接続を試みます。リソースのモニタータイムアウトが発生する前に pacemaker_remote が再起動されないと、クラスターは監視操作が失敗したと判断します。
pacemaker_remote サービスが停止したときに監視が失敗しないようにするには、以下の手順にしたがって、pacemaker_remote を停止する可能性があるシステム管理を実行する前にノードをクラスターから削除します。
警告
pacemaker_remote が停止するとクラスターはそのノードをフェンスします。yum update のプロセスの一部として自動的に停止した場合、システムが不安定な状態になることがあります (特に pacemaker_remote と同時にカーネルもアップグレードされる場合)。Red Hat Enterprise Linux 7.2 以前のリリースでは、以下の手順にしたがって、pacemaker_remote を停止する可能性があるシステム管理を実行する前にノードをクラスターから除去する必要があります。
- ノードからすべてのサービスを除去する
pcs resource disable resourcenameコマンドを使用して、ノードの接続リソースを停止します。ゲストノードでは VM も停止されるため、VM をクラスターの外部で起動して (virshなどを使用) メンテナンスを実行する必要があります。 - 必要なメンテナンスを実行します。
- ノードをクラスターに戻す準備ができたら、
pcs resource enableでリソース再度有効にします。
9.3.8. VM リソースのゲストノードへの変換
VirtualDomain リソースをゲストノードに変換します。リソースが最初からゲストノードとして作成された場合、このコマンドを実行する必要はありません。
pcs cluster remote-node add hostname resource_id [options]
pcs cluster remote-node remove hostname
第10章 クラスタークォーラム
votequorum サービスとフェンシングを併用してスプリットブレインが発生しないようにします。クラスターの各システムには投票数が割り当てられ、過半数の票がある場合のみクラスターの操作を続行できます。サービスはすべてのノードにロードするか、すべてのノードにロードしない必要があります。サービスがクラスターノードのサブセットにロードされると、結果が予想不可能になります。votequorum サービスの設定および操作の詳細は、votequorum(5) の man ページを参照してください。
10.1. クォーラムオプションの設定
pcs cluster setup コマンドを使用してクラスターを作成する場合、クォーラム設定の特別な機能を設定できます。これらのオプションは 表10.1「クォーラムオプション」 に記載されています。
表10.1 クォーラムオプション
| オプション | 説明 |
|---|---|
--auto_tie_breaker |
有効にすると、クラスターは決定論的に最大 50% のノードが同時に失敗しても存続されます。クラスターパーティションや、
auto_tie_breaker_node に設定された nodeid (設定されていない場合は最小の nodeid) と通信するノードのセットはクォーラムに達した状態を維持します。その他のノードはクォーラムに達しません。
auto_tie_breaker オプションを指定すると、クラスターは均等の分割では操作を継続できるため、偶数個のノードを持つクラスターで使用されます。複数で不均等の分割など、より複雑な障害では 「クォーラムデバイス (テクノロジープレビュー)」 に説明されているクォーラムデバイスの使用が推奨されます。
|
--wait_for_all |
有効にすると、最低 1 回同時にすべてのノードが現れた後にクラスターは初回だけクォーラムに達します。
wait_for_all オプションは、主にクォーラムデバイスの lms (last man standing) アルゴリズムを使用する、2 ノードまたは偶数のノードで構成されるクラスターによって使用されます。
wait_for_all オプションは、クラスターに 2 つのノードがあり、クォーラムデバイスを使用せず、auto_tie_breaker が無効になっている場合に自動的に有効になります。wait_for_all を明示的に 0 に設定すると、このオプションをオーバーライドできます。
|
--last_man_standing | 有効にすると、特定の状況でクラスターは動的に expected_votes とクォーラムを再計算します。このオプションを有効にするには wait_for_all を有効にする必要があります。 |
--last_man_standing_window | クラスターのノードが失われた後、expected_votes およびクォーラムを再計算するまでの待ち時間 (ミリ秒単位)。 |
votequorum(5) の man ページを参照してください。
10.2. クォーラム管理コマンド (Red Hat Enterprise Linux 7.3 以降)
pcs quorum [config]
pcs quorum status
pcs quorum expected-votes コマンドを使用するとライブクラスターの expected_votes パラメーターの値を変更できます。これにより、クラスターはクォーラムがなくても操作を継続できます。
警告
wait_for_all パラメーターが有効になっていることを確認してください。
expected_votes の値は設定ファイルの値にリセットされます。
pcs quorum expected-votes votes
10.3. クォーラムオプションの変更 (Red Hat Enterprise Linux 7.3 以降)
pcs quorum update コマンドを使用してクラスターの一般的なクォーラムオプションを変更できるようになりました。このコマンドを実行するにはクラスターを停止する必要があります。クォーラムオプションの詳細は votequorum(5) の man ページを参照してください。
pcs quorum update コマンドの形式は次のとおりです。
pcs quorum update [auto_tie_breaker=[0|1]] [last_man_standing=[0|1]] [last_man_standing_window=[time-in-ms] [wait_for_all=[0|1]]
wait_for_all クォーラムオプションを変更し、このオプションの更新された状態を表示します。クラスターの稼働中はこのコマンドを実行できないことに注意してください。
[root@node1:~]#pcs quorum update wait_for_all=1Checking corosync is not running on nodes... Error: node1: corosync is running Error: node2: corosync is running [root@node1:~]#pcs cluster stop --allnode2: Stopping Cluster (pacemaker)... node1: Stopping Cluster (pacemaker)... node1: Stopping Cluster (corosync)... node2: Stopping Cluster (corosync)... [root@node1:~]#pcs quorum update wait_for_all=1Checking corosync is not running on nodes... node2: corosync is not running node1: corosync is not running Sending updated corosync.conf to nodes... node1: Succeeded node2: Succeeded [root@node1:~]#pcs quorum configOptions: wait_for_all: 1
10.4. クォーラムアンブロック (quorum unblock) コマンド
注記
# pcs cluster quorum unblock10.5. クォーラムデバイス (テクノロジープレビュー)
重要
- クォーラムデバイスを使用するクラスターと同じ場所にある異なる物理ネットワークでクォーラムデバイスを実行することが推奨されます。理想的には、クォーラムデバイスホストはメインクラスターとは別のラックに置くようにし、最低でも別の PSU に置くようにしてください。corosync リングと同じネットワークセグメントには置かないでください。
- 複数のクォーラムデバイスをクラスターで同時に使用することはできません。
- 複数のクォーラムデバイスをクラスターで同時に使用することはできませんが、複数のクラスターが 1 つのクォーラムデバイスを同時に使用することはできます。アルゴリズムやクォーラムオプションはクラスターノード自体に保存されるため、同じクォーラムデバイスを使用する各クラスターは異なるアルゴリズムやクォーラムオプションを使用できます。たとえば、
ffsplit((fifty/fifty split) アルゴリズムを使用するクラスターと、lms(last man standing) アルゴリズムを使用する別のクラスターが 1 つのクォーラムデバイスを使用することができます。 - クォーラムデバイスは既存のクラスターノードで実行しないでください。
10.5.1. クォーラムデバイスパッケージのインストール
- クラスターノードで
corosync-qdeviceをインストールします。[root@node1:~]#
yum install corosync-qdevice[root@node2:~]#yum install corosync-qdevice - クォーラムデバイスホストで
corosync-qnetdをインストールします。[root@qdevice:~]#
yum install corosync-qnetd
10.5.2. クォーラムデバイスの設定
- クォーラムデバイスに使用されるノードは
qdeviceです。 - クォーラムデバイスモデルは
netで、現在唯一サポートされているモデルです。 - クラスターノードは
node1とnode2です。
- クォーラムデバイスをホストするために使用するノードで以下のコマンドを使用し、クォーラムデバイスを設定します。このコマンドは、クォーラムデバイスモデルである
netを設定および開始し、デバイスが起動時に開始されるよう設定します。[root@qdevice:~]#
pcs qdevice setup model net --enable --startQuorum device 'net' initialized quorum device enabled Starting quorum device... quorum device startedクォーラムデバイスの設定後、その状態をチェックできます。corosync-qnetdデーモンが実行され、この時点では接続されているクライアントがないはずです。--fullコマンドオプションを指定すると詳細が出力されます。[root@qdevice:~]#
pcs qdevice status net --fullQNetd address: *:5403 TLS: Supported (client certificate required) Connected clients: 0 Connected clusters: 0 Maximum send/receive size: 32768/32768 bytes - クォーラムデバイスをクラスターに追加します。クォーラムデバイスを追加する前に、クォーラムデバイスの現在の設定と状況をチェックして後で比較することができます。これらのコマンドの出力はクラスターがクォーラムデバイスを使用していないことを示しています。
[root@node1:~]#
pcs quorum configOptions:[root@node1:~]#
pcs quorum statusQuorum information ------------------ Date: Wed Jun 29 13:15:36 2016 Quorum provider: corosync_votequorum Nodes: 2 Node ID: 1 Ring ID: 1/8272 Quorate: Yes Votequorum information ---------------------- Expected votes: 2 Highest expected: 2 Total votes: 2 Quorum: 1 Flags: 2Node Quorate Membership information ---------------------- Nodeid Votes Qdevice Name 1 1 NR node1 (local) 2 1 NR node2以下のコマンドは以前作成したクォーラムデバイスをクラスターに追加します。複数のクォーラムデバイスをクラスターで同時に使用することはできませんが、複数のクラスターが 1 つのクォーラムデバイスを同時に使用することはできます。このコマンド例は、クォーラムデバイスがlms(last man standing) アルゴリズムを使用するよう設定します。クォーラムデバイスの設定オプションに関する情報は、corosync-qdevice(8) の man ページを参照してください。[root@node1:~]#
pcs quorum device add model net host=qdevice algorithm=lmsSetting up qdevice certificates on nodes... node2: Succeeded node1: Succeeded Enabling corosync-qdevice... node1: corosync-qdevice enabled node2: corosync-qdevice enabled Sending updated corosync.conf to nodes... node1: Succeeded node2: Succeeded Corosync configuration reloaded Starting corosync-qdevice... node1: corosync-qdevice started node2: corosync-qdevice started - クォーラムデバイスの設定状態をチェックします。クラスター側から以下のコマンドを実行すると、設定の変更内容を確認することができます。
pcs quorum configは設定されたクォーラムデバイスを表示します。[root@node1:~]#
pcs quorum configOptions: Device: Model: net algorithm: lms host: qdevicepcs quorum statusコマンドは、使用中のクォーラムデバイスとクォーラムのランタイム状態を表示します。[root@node1:~]#
pcs quorum statusQuorum information ------------------ Date: Wed Jun 29 13:17:02 2016 Quorum provider: corosync_votequorum Nodes: 2 Node ID: 1 Ring ID: 1/8272 Quorate: Yes Votequorum information ---------------------- Expected votes: 3 Highest expected: 3 Total votes: 3 Quorum: 2 Flags: Quorate Qdevice Membership information ---------------------- Nodeid Votes Qdevice Name 1 1 A,V,NMW node1 (local) 2 1 A,V,NMW node2 0 1 Qdevicepcs quorum device statusはクォーラムデバイスのランタイム状態を表示します。[root@node1:~]#
pcs quorum device statusQdevice information ------------------- Model: Net Node ID: 1 Configured node list: 0 Node ID = 1 1 Node ID = 2 Membership node list: 1, 2 Qdevice-net information ---------------------- Cluster name: mycluster QNetd host: qdevice:5403 Algorithm: LMS Tie-breaker: Node with lowest node ID State: Connectedクォーラムデバイス側から以下のコマンドを実行すると、corosync-qnetdデーモンの状態を表示できます。[root@qdevice:~]#
pcs qdevice status net --fullQNetd address: *:5403 TLS: Supported (client certificate required) Connected clients: 2 Connected clusters: 1 Maximum send/receive size: 32768/32768 bytes Cluster "mycluster": Algorithm: LMS Tie-breaker: Node with lowest node ID Node ID 2: Client address: ::ffff:192.168.122.122:50028 HB interval: 8000ms Configured node list: 1, 2 Ring ID: 1.2050 Membership node list: 1, 2 TLS active: Yes (client certificate verified) Vote: ACK (ACK) Node ID 1: Client address: ::ffff:192.168.122.121:48786 HB interval: 8000ms Configured node list: 1, 2 Ring ID: 1.2050 Membership node list: 1, 2 TLS active: Yes (client certificate verified) Vote: ACK (ACK)
10.5.3. クォーラムデバイスサービスの管理
corosync-qnetd) でクォーラムデバイスサービスを管理する機能を提供します。これらのコマンドは corosync-qnetd サービスのみに影響することに注意してください。
[root@qdevice:~]#pcs qdevice start net[root@qdevice:~]#pcs qdevice stop net[root@qdevice:~]#pcs qdevice enable net[root@qdevice:~]#pcs qdevice disable net[root@qdevice:~]#pcs qdevice kill net
10.5.4. クラスターでのクォーラムデバイス設定の管理
10.5.4.1. クォーラムデバイス設定の変更
pcs quorum device update コマンドを使用します。
警告
net の host オプションを変更するには、pcs quorum device remove および pcs quorum device add コマンドを使用し、設定プロパティーを設定します (変更前のホストと変更後のホストが同じマシンである場合を除く)。
ffsplit (fifty/fifty split) に変更します。
[root@node1:~]# pcs quorum device update model algorithm=ffsplit
Sending updated corosync.conf to nodes...
node1: Succeeded
node2: Succeeded
Corosync configuration reloaded
Reloading qdevice configuration on nodes...
node1: corosync-qdevice stopped
node2: corosync-qdevice stopped
node1: corosync-qdevice started
node2: corosync-qdevice started10.5.4.2. クォーラムデバイスの削除
[root@node1:~]# pcs quorum device remove
Sending updated corosync.conf to nodes...
node1: Succeeded
node2: Succeeded
Corosync configuration reloaded
Disabling corosync-qdevice...
node1: corosync-qdevice disabled
node2: corosync-qdevice disabled
Stopping corosync-qdevice...
node1: corosync-qdevice stopped
node2: corosync-qdevice stopped
Removing qdevice certificates from nodes...
node1: Succeeded
node2: Succeeded
[root@node1:~]# pcs quorum device status
Error: Unable to get quorum status: corosync-qdevice-tool: Can't connect to QDevice socket (is QDevice running?): No such file or directory10.5.4.3. クォーラムデバイスの破棄
[root@qdevice:~]# pcs qdevice destroy net
Stopping quorum device...
quorum device stopped
quorum device disabled
Quorum device 'net' configuration files removed第11章 Pacemaker ルール
resource-stickiness の値を設定してリソースが最も優先される場所に戻されないようにし、出社する社員がいない週末に別の値を設定します。
boolean-op フィールドに応じて処理され、最終的にそのルールが true または false どちらの評価になるかが確定されます。ルールが使用された状況に応じて次に起こる動作は異なります。
表11.1 ルールのプロパティー
| フィールド | 説明 |
|---|---|
role
| |
score
| |
score-attribute
| |
boolean-op
|
11.1. ノード属性の式
表11.2 式のプロパティ
| フィールド | 説明 |
|---|---|
value
| |
attribute
| |
type
| |
operation
|
実行する比較動作、使用できる値:
*
lt - ノード属性の値が value 未満の場合に True
*
gt - ノード属性の値が value を越える場合に True
*
lte - ノード属性の値が value 未満または同等になる場合に True
*
gte - 属性の値が value を越えるまたは同等になる場合に True
*
eq - ノード属性の値が value と同等になる場合に True
*
ne - ノード属性の値が value と同等ではない場合に True
*
defined - ノードに指定属性がある場合に True
|
11.2. 時刻と日付ベースの式
表11.3 日付の式のプロパティ
| フィールド | 説明 |
|---|---|
start
| |
end
| |
operation
|
状況に応じて現在の日付と時刻を start と end のいずれかの日付、または両方の日付と比較します。使用できる値は次のとおりです。
*
gt - 現在の日付と時刻が start 以降の場合は True
*
lt - 現在の日付と時刻が end 以前の場合は True
*
in-range - 現在の日付と時刻が start 以降で且つ end 以前の場合は True
|
11.3. 日付の詳細
monthdays="1" は各月の最初の日と一致し、hours="09-17" は午前 9 時から午後 5 時までの時間と一致しますが、複数の範囲が含まれる weekdays="1,2" や weekdays="1-2,5-6" は指定できません。
表11.4 日付詳細のプロパティー
| フィールド | 説明 |
|---|---|
id
| |
hours
| |
monthdays
| |
weekdays
| |
yeardays
| |
months
| |
weeks
| |
years
| |
weekyears
| |
moon
|
11.4. 期間
end の値が与えられていない場合は期間を使ってその値を算出します。date_spec オブジェクトと同じフィールドがありますが制限はありません (つまり 19 ヶ月の期間を持たせることが可能)。date_specs 同様、未入力のフィールドは無視されます。
11.5. pcs を用いたルールの設定
score を省略すると INFINITY にデフォルト設定されます。id を省略すると constraint_id で生成されます。rule_type は expression または date_expression のいずれかにしてください。
pcs constraint rule add constraint_id [rule_type] [score=score [id=rule_id] expression|date_expression|date_spec options
pcs constraint rule remove rule_id
11.6. 時刻ベースの式のサンプル
# pcs constraint location Webserver rule score=INFINITY date-spec years=2005
# pcs constraint location Webserver rule score=INFINITY date-spec hours="9-16" weekdays="1-5"
# pcs constraint location Webserver rule date-spec weekdays=5 monthdays=13 moon=411.7. ルールを使用したリソースの場所の確定
pcs constraint location resource_id rule [rule_id] [role=master|slave] [score=score expression]
defined|not_defined attributeattribute lt|gt|lte|gte|eq|ne valuedate [start=start] [end=end] operation=gt|lt|in-rangedate-spec date_spec_options
第12章 Pacemaker クラスターのプロパティ
- 表12.1「クラスターのプロパティ」 ではクラスターのプロパティオプションを説明します。
- 「クラスターのプロパティの設定と削除」 ではクラスタープロパティの設定方法について説明します。
- 「クラスタープロパティ設定のクエリー」 では現在設定されているクラスタープロパティを表示させる方法について説明します。
12.1. クラスタープロパティとオプションの要約
注記
表12.1 クラスターのプロパティ
| オプション | デフォルト | 説明 |
|---|---|---|
batch-limit | 30 | |
migration-limit | -1 (無制限) | |
no-quorum-policy | stop |
* ignore - 全リソースの管理を続行
* freeze - リソースの管理は続行するが、影響を受けるパーティション外のノードのリソースは復帰させない
* stop - 影響を受けるクラスターパーティション内の全リソースを停止する
* suicide - 影響を受けるクラスターパーティション内の全ノードを排他処理する
|
symmetric-cluster | true | |
stonith-enabled | true |
Indicates that failed nodes and nodes with resources that cannot be stopped should be fenced. Protecting your data requires that you set this
true.
true または未設定の場合、STONITH リソースが設定されていない限りクラスターによりリソースの起動が拒否される
|
stonith-action | reboot | |
cluster-delay | 60s | |
stop-orphan-resources | true | |
stop-orphan-actions | true | |
start-failure-is-fatal | true |
Indicates whether a failure to start a resource on a particular node prevents further start attempts on that node. When set to
false, the cluster will decide whether to try starting on the same node again based on the resource's current failure count and migration threshold. For information on setting the migration-threshold option for a resource, see 「障害発生によるリソースの移動」.
|
pe-error-series-max | -1 (all) | |
pe-warn-series-max | -1 (all) | |
pe-input-series-max | -1 (all) | |
cluster-infrastructure | ||
dc-version | ||
last-lrm-refresh | ||
cluster-recheck-interval | 15分 | |
default-action-timeout | 20s | |
maintenance-mode | false | |
shutdown-escalation | 20min | |
stonith-timeout | 60s | |
stop-all-resources | false | |
default-resource-stickiness | 5000 | |
is-managed-default | true | |
enable-acl | false |
12.2. クラスターのプロパティの設定と削除
pcs property set property=value
symmetric-cluster の値を false に設定する場合は次のコマンドを使用します。
# pcs property set symmetric-cluster=falsepcs property unset property
pcs property set コマンドの値フィールドを空白にしてもクラスタープロパティを削除することができます。これによりそのプロパティの値がデフォルト値に戻されます。例えば、以前に symmetric-cluster プロパティを false に設定したことがある場合は、次のコマンドにより設定した値が削除され、symmetric-cluster の値がデフォルト値の true に戻されます。
# pcs property set symmetic-cluster=12.3. クラスタープロパティ設定のクエリー
pcs コマンドを使用する際、pcs list または pcs show を交互に使用することができます。次の例では pcs list は複数プロパティのすべての設定の全一覧表示に使用する形式になります。一方、pcs show は特定のプロパティの値を表示する場合に使用する形式になります。
pcs property list
pcs property list --all
pcs property show property
cluster-infrastructure プロパティの現在の値を表示する場合は次のコマンドを実行します。
# pcs property show cluster-infrastructure
Cluster Properties:
cluster-infrastructure: cmanpcs property [list|show] --defaults
第13章 クラスターイベントのスクリプトのトリガー
- Red Hat Enterprise Linux 7.3 より、アラートエージェントを使用して Pacemaker アラートを設定できるようになりました。アラートエージェントは、リソース設定と操作を処理するためにクラスター呼び出しのリソースエージェントと同様にクラスターが呼び出す外部プログラムです。これは推奨される方法で、クラスターアラートをより簡単に設定できます。Pacemaker アラートエージェントの説明は 「Pacemaker アラートエージェント (Red Hat Enterprise Linux 7.3 以降)」 を参照してください。
ocf:pacemaker:ClusterMonリソースはクラスターの状態を監視でき、クラスターイベントごとにアラートをトリガーできます。このリソースは、標準の間隔でcrm_monコマンドをバックグランドで実行します。ClusterMonリソースの詳細は 「モニタリングのリソースを使ったイベント通知」 を参照してください。
13.1. Pacemaker アラートエージェント (Red Hat Enterprise Linux 7.3 以降)
- Pacemaker は、デフォルトで
/usr/share/pacemaker/alertsにインストールされるアラートエージェントのサンプルを複数提供します。これらのサンプルスクリプトは、コピーしてそのまま使用したり、目的に合わせて編集するテンプレートとして使用することもできます。サポートされる属性は、サンプルエージェントのソースコードを参照してください。サンプルアラートエージェントを使用するアラートの基本的な設定手順の例は、「サンプルアラートエージェントの使用」 を参照してください。 - アラートエージェントの設定および管理に関する一般的な情報は、「アラートの作成」、「アラートの表示、編集、および削除」、「アラートの受信側」、「アラートメタオプション」、および 「アラート設定コマンドの例」 を参照してください。
- Pacemaker アラートの独自のアラートエージェントを作成することができます。アラートエージェントの記述に関する情報は、「アラートエージェントの作成」 を参照してください。
13.1.1. サンプルアラートエージェントの使用
alert_snmp.sh.sample スクリプトを alert_snmp.sh としてインストールします。
# install --mode=0755 /usr/share/pacemaker/alerts/alert_snmp.sh.sample /var/lib/pacemaker/alert_snmp.shalert_snmp.sh アラートエージェントを使用するアラートを設定し、クラスターイベントを SNMP トラップとして送信します。デフォルトでは、正常なモニター呼び出し以外のすべてのイベントを SNMP サーバーに送信します。この例では、タイムスタンプの形式はメタオプションとして設定されます。メタオプションの詳細は、「アラートメタオプション」 を参照してください。アラートの設定後にアラートの受信側が設定され、アラート設定が表示されます。
#pcs alert create id=snmp_alert path=/var/lib/pacemaker/alert_snmp.sh meta timestamp_format="%Y-%m-%d,%H:%M:%S.%01N". #pcs alert recipient add snmp_alert 192.168.1.2#pcs alertAlerts: Alert: snmp_alert (path=/var/lib/pacemaker/alert_snmp.sh) Meta options: timestamp_format=%Y-%m-%d,%H:%M:%S.%01N. Recipients: Recipient: snmp_alert-recipient (value=192.168.1.2)
alert_smtp.sh エージェントをインストールし、インストールされたアラートエージェントを使用するアラートを設定してクラスターイベントを E メールメッセージとして送信します。アラートの設定後に受信側が設定され、アラート設定が表示されます。
#install --mode=0755 /usr/share/pacemaker/alerts/alert_smtp.sh.sample /var/lib/pacemaker/alert_smtp.sh#pcs alert create id=smtp_alert path=/var/lib/pacemaker/alert_smtp.sh options email_sender=donotreply@example.com#pcs alert recipient add smtp_alert admin@example.com#pcs alertAlerts: Alert: smtp_alert (path=/var/lib/pacemaker/alert_smtp.sh) Options: email_sender=donotreply@example.com Recipients: Recipient: smtp_alert-recipient (value=admin@example.com)
13.1.2. アラートの作成
id の値を指定しないと、値が生成されます。アラートメタオプションに関する情報は、「アラートメタオプション」 を参照してください。
pcs alert create path=path [id=alert-id] [description=description] [options [option=value]...] [meta [meta-option=value]...]
my-script.sh を呼び出す簡単なアラートを作成します。
# pcs alert create id=my_alert path=/path/to/myscript.sh13.1.3. アラートの表示、編集、および削除
pcs alert [config|show]
pcs alert update alert-id [path=path] [description=description] [options [option=value]...] [meta [meta-option=value]...]
pcs alert remove alert-id
13.1.4. アラートの受信側
pcs alert recipient add alert-id recipient-value [id=recipient-id] [description=description] [options [option=value]...] [meta [meta-option=value]...]
pcs alert recipient update recipient-id [value=recipient-value] [description=description] [options [option=value]...] [meta [meta-option=value]...]
pcs alert recipient remove recipient-id
my-recipient-id のアラート受信側 my-alert-recipient をアラート my-alert に追加します。これにより、 my-alert に設定されたアラートスクリプトを各イベントで呼び出すよう、クラスターが設定されます。
# pcs alert recipient add my-alert my-alert-recipient id=my-recipient-id options value=some-address13.1.5. アラートメタオプション
表13.1 アラートメタオプション
| メタ属性 | デフォルト | 説明 |
|---|---|---|
timestamp-format
|
%H:%M:%S.%06N
|
イベントのタイムスタンプをエージェントに送信するときにクラスターが使用する形式。この文字列は
date(1) コマンドと使用されます。
|
timeout
|
30s
|
アラートエージェントがこの時間内に完了しないと終了させられます。
|
my-script.sh スクリプトを呼び出すアラートを設定し、2 つの受信側をアラートに追加します。最初の受信側の ID は my-alert-recipient1 で、2 つ目の受信側の ID は my-alert-recipient2 です。スクリプトは各イベントで 2 回呼び出され、呼び出しのタイムアウト値はそれぞれ 15 秒です。1 つの呼び出しは受信側 someuser@example.com に渡され、タイムスタンプの形式は %D %H:%M になります。もう 1 つの呼び出しは受信側 otheruser@example.com へ渡され、タイムスタンプの形式は %c になります。
#pcs alert create id=my-alert path=/path/to/my-script.sh meta timeout=15s#pcs alert recipient add my-alert someuser@example.com id=my-alert-recipient1 meta timestamp-format=%D %H:%M#pcs alert recipient add my-alert otheruser@example.com id=my-alert-recipient2 meta timestamp-format=%c
13.1.6. アラート設定コマンドの例
- アラート ID の値が指定されていないため、
alertが値となるアラート ID が作成されます。 - 最初の受信側作成コマンドは、
rec_valueの受信側を指定します。このコマンドには受信側 ID が指定されていないため、受信側 ID の値としてalert-recipientが使用されます。 - 2 番目の受信側作成コマンドは、
rec_value2の受信側を指定します。このコマンドは、my-recipientを受信側 ID として指定します。
#pcs alert create path=/my/path#pcs alert recipient add alert rec_value#pcs alert recipient add alert rec_value2 id=my-recipient#pcs alert configAlerts: Alert: alert (path=/my/path) Recipients: Recipient: alert-recipient (value=rec_value) Recipient: my-recipient (value=rec_value2)
my-alert で、受信側の値は my-other-recipient です。受信側 ID が指定されていないため、my-alert-recipient が受信側 ID として使用されます。
#pcs alert create id=my-alert path=/path/to/script description=alert_description options option1=value1 opt=val meta meta-option1=2 m=val#pcs alert recipient add my-alert my-other-recipient#pcs alertAlerts: Alert: alert (path=/my/path) Recipients: Recipient: alert-recipient (value=rec_value) Recipient: my-recipient (value=rec_value2) Alert: my-alert (path=/path/to/script) Description: alert_description Options: opt=val option1=value1 Meta options: m=val meta-option1=2 Recipients: Recipient: my-alert-recipient (value=my-other-recipient)
my-alert と受信側 my-alert-recipient のアラート値を変更します。
#pcs alert update my-alert options option1=newvalue1 meta m=newval#pcs alert recipient update my-alert-recipient options option1=new meta metaopt1=newopt#pcs alertAlerts: Alert: alert (path=/my/path) Recipients: Recipient: alert-recipient (value=rec_value) Recipient: my-recipient (value=rec_value2) Alert: my-alert (path=/path/to/script) Description: alert_description Options: opt=val option1=newvalue1 Meta options: m=newval meta-option1=2 Recipients: Recipient: my-alert-recipient (value=my-other-recipient) Options: option1=new Meta options: metaopt1=newopt
my-alert-recipient を alert から削除します。
#pcs alert recipient remove my-recipient#pcs alertAlerts: Alert: alert (path=/my/path) Recipients: Recipient: alert-recipient (value=rec_value) Alert: my-alert (path=/path/to/script) Description: alert_description Options: opt=val option1=newvalue1 Meta options: m=newval meta-option1=2 Recipients: Recipient: my-alert-recipient (value=my-other-recipient) Options: option1=new Meta options: metaopt1=newopt
myalert を削除します。
#pcs alert remove my-alert#pcs alertAlerts: Alert: alert (path=/my/path) Recipients: Recipient: alert-recipient (value=rec_value)
13.1.7. アラートエージェントの作成
表13.2 アラートエージェントに渡される環境変数
| 環境変数 | 説明 |
|---|---|
CRM_alert_kind
|
アラートの種類 (ノード、フェンス、またはリソース)
|
CRM_alert_version
|
アラートを送信する Pacemaker のバージョン
|
CRM_alert_recipient
|
設定された送信側
|
CRM_alert_node_sequence
|
アラートがローカルノードで発行されるたびに増加するシーケンス番号。Pacemaker によってアラートが発行された順序を参照するために使用することができます。後で発生したイベントのアラートは、先に発生したイベントのアラートよりも確実にシーケンス番号が大きくなります。この番号は、クラスター全体を対象とする番号ではないことに注意してください。
|
CRM_alert_timestamp
|
エージェントの実行前に
timestamp-format メタオプションによって指定された形式で作成されたタイムスタンプ。これにより、エージェント自体が呼び出されたタイミング (システムの負荷やその他の状況によって遅延される可能性があります) に関係なく、エージェントは信頼できる精度が高いイベント発生時間を使用できます。
|
CRM_alert_node
|
影響を受けるノードの名前
|
CRM_alert_desc
|
イベントの詳細。ノードアラートの場合はノードの現在の状態 (番号または lost) になります。フェンスアラートの場合は、フェンス操作の要求元、ターゲット、フェンス操作のエラーコードなどを含む要求されたフェンス操作の概要になります。リソースアラートの場合は
CRM_alert_status と同等の読み取り可能な文字列になります。
|
CRM_alert_nodeid
|
状態が変更したノードの ID (ノードアラートの場合のみ提供)。
|
CRM_alert_task
|
要求されたフェンスまたはリソース操作 (フェンスおよびリソースアラートの場合のみ提供)。
|
CRM_alert_rc
|
フェンスまたはリソース操作の数値の戻りコード (フェンスおよびリソースアラートの場合のみ提供)。
|
CRM_alert_rsc
|
影響を受けるリソースの名前 (リソースアラートのみ)。
|
CRM_alert_interval
|
リソース操作の間隔 (リソースアラートのみ)
|
CRM_alert_target_rc
|
操作の予期される数値の戻りコード (リソースアラートのみ)。
|
CRM_alert_status
|
操作の結果を示すために Pacemaker によって使用される数値コード (リソースアラートのみ)。
|
- アラートエージェントは受信側がない状態で呼び出されることがあります (受信側が設定されていない場合)。そのため、エージェントはこの状態に対応できなければなりません (このような状況では終了する場合でも)。設定を段階的に変更し、後で受信側を追加することもできます。
- 1 つのアラートに複数の受信側が設定された場合、アラートエージェントは受信側ごとに 1 回呼び出されます。エージェントが同時実行できない場合、受信側を 1 つのみ設定する必要があります。エージェントは受信側をリストとして解釈することができます。
- クラスターイベントの発生時、すべてのアラートは別々のプロセスとして同時に発生します。設定されたアラートと受信側の数や、アラートエージェント内で実行されることによって、負荷が急激に増加する可能性があります。リソースが集中するアクションを直接実行せずに他のインスタンスのキューに置くなど、これを考慮してエージェントを記述する必要があります。
- アラートエージェントは最低限のパーミッションを持つ
haclusterユーザーとして実行されます。アラートエージェントに追加のパーミッションが必要な場合は、sudoを設定してアラートエージェントが適切な特権を持つ別ユーザーとして必要なコマンドを実行できるようにすることが推奨されます。 CRM_alert_timestamp(このコンテンツはユーザー設定のtimestamp-formatによって指定)、CRM_alert_recipient、およびすべてのアラートオプションなど、ユーザー設定のパラメーターを検証およびサニタイズする場合は十分注意してください。設定エラーから保護する必要があります。また、クラスターへのhaclusterレベルのアクセスがなくても CIB を変更できるユーザーが存在する場合、セキュリティーの問題が発生する可能性もあり、コードを挿入できないようにする必要があります。onfailパラメーターがfenceに設定されているリソースがクラスターに含まれる場合、障害時に複数のフェンス通知が送信されます (このパラメーターが設定されたリソースごとに 1 つの通知とそれに加えてさらに 1 つの通知)。STONITH デーモンとcrmdデーモンの両方が通知を送信します。この場合、送信される通知の数に関係なく、Pacemaker は 1 つのフェンス操作のみを実際に実行します。
注記
ocf:pacemaker:ClusterMon リソースによって使用される外部スクリプトインターフェースと後方互換性を維持するよう設計されています。この互換性を維持するには、先頭に CRM_notify_ および CRM_alert_ が付けられたアラートエージェントに渡される環境変数を使用できます。ClusterMon リソースは root ユーザーとして実行し、アラートエージェントは hacluster ユーザーとして実行することがこの互換性の例外になります。ClusterMon によるスクリプトの設定に関する情報は、「モニタリングのリソースを使ったイベント通知」 を参照してください。
13.2. モニタリングのリソースを使ったイベント通知
ocf:pacemaker:ClusterMon リソースはクラスターの状態を監視でき、クラスターイベントごとにアラートをトリガーできます。このリソースは、標準の間隔で crm_mon コマンドをバックグランドで実行します。
crm_mon コマンドはリソースイベントのみをリッスンします。フェンスイベントをリッスンできるようにするには、ClusterMon リソースの設定時に --watch-fencing オプションをコマンドに指定します。crm_mon コマンドはメンバーシップの問題を監視しませんが、フェンスが開始され、そのノードに対して監視が開始されたときにメッセージが出力されます。これはメンバーがクラスターに参加したことを意味します。
ClusterMon リソースは外部プログラムを実行し、extra_options パラメーターを用いてクラスター通知の処理を判断します。表13.3「外部監視プログラムへ渡される環境変数」 には、プログラムに渡される環境変数が記載されています。
表13.3 外部監視プログラムへ渡される環境変数
| 環境変数 | 説明 |
|---|---|
CRM_notify_recipient
|
リソース定義からの静的な外部受信側。
|
CRM_notify_node
|
状態が変更したノード。
|
CRM_notify_rsc
|
状態を変更したリソースの名前。
|
CRM_notify_task
|
状態が変更する原因となった操作。
|
CRM_notify_desc
|
状態が変更する原因となった操作 (該当の操作がある場合) のテキスト出力の関連エラーコード。
|
CRM_notify_rc
|
操作の戻りコード。
|
CRM_target_rc
|
操作の予期される戻りコード。
|
CRM_notify_status
|
操作の状態の数値表現。
|
crm_logger.sh を実行する ClusterMon リソースを設定します。このプログラムは指定されたイベント通知をログに記録します。
crm_logger.sh プログラムを作成します。
- クラスターのノードの 1 つで、イベント通知をログに記録するプログラムを作成します。
#
cat <<-END >/usr/local/bin/crm_logger.sh#!/bin/shlogger -t "ClusterMon-External" "${CRM_notify_node} ${CRM_notify_rsc}\${CRM_notify_task} ${CRM_notify_desc} ${CRM_notify_rc}\${CRM_notify_target_rc} ${CRM_notify_status} ${CRM_notify_recipient}";exit;END - プログラムの所有者とパーミッションを設定します。
#
chmod 700 /usr/local/bin/crm_logger.sh#chown root.root /usr/local/bin/crm_logger.sh scpコマンドを使用してcrm_logger.shプログラムをクラスターの他のノードにコピーし、これらのノードの同じ場所にプログラムを格納し、プログラムに同じ所有者とパーミッションを設定します。
/usr/local/bin/crm_logger.sh プログラムを実行する ClusterMon-External という名前の ClusterMon リソースを設定します。 ClusterMon リソースは html ファイル (この例の場合は /var/www/html/cluster_mon.html) にクラスターの状態を出力します。pidfile は ClusterMon がすでに実行されているかどうかを検出します (この例では /var/run/crm_mon-external.pid ファイル)。このリソースはクローンとして作成されるため、クラスターの各ノードで実行されます。watch-fencing を指定すると、開始/停止/監視、開始/監視、フェンスリソースの停止など、リソースイベントの他にフェンスイベントの監視が有効になります。
#pcs resource create ClusterMon-External ClusterMon user=root\update=10 extra_options="-E /usr/local/bin/crm_logger.sh --watch-fencing"\htmlfile=/var/www/html/cluster_mon.html\pidfile=/var/run/crm_mon-external.pid clone
注記
crm_mon コマンド (手作業による実行も可能) になります。
#/usr/sbin/crm_mon -p /var/run/crm_mon-manual.pid -d -i 5\-h /var/www/html/crm_mon-manual.html -E "/usr/local/bin/crm_logger.sh"\--watch-fencing
Aug 7 11:31:32 rh6node1pcmk ClusterMon-External: rh6node2pcmk.examplerh.com ClusterIP st_notify_fence Operation st_notify_fence requested by rh6node1pcmk.examplerh.com for peer rh6node2pcmk.examplerh.com: OK (ref=b206b618-e532-42a5-92eb-44d363ac848e) 0 0 0 #177 Aug 7 11:31:32 rh6node1pcmk ClusterMon-External: rh6node1pcmk.examplerh.com ClusterIP start OK 0 0 0 Aug 7 11:31:32 rh6node1pcmk ClusterMon-External: rh6node1pcmk.examplerh.com ClusterIP monitor OK 0 0 0 Aug 7 11:33:59 rh6node1pcmk ClusterMon-External: rh6node1pcmk.examplerh.com fence_xvms monitor OK 0 0 0 Aug 7 11:33:59 rh6node1pcmk ClusterMon-External: rh6node1pcmk.examplerh.com ClusterIP monitor OK 0 0 0 Aug 7 11:33:59 rh6node1pcmk ClusterMon-External: rh6node1pcmk.examplerh.com ClusterMon-External start OK 0 0 0 Aug 7 11:33:59 rh6node1pcmk ClusterMon-External: rh6node1pcmk.examplerh.com fence_xvms start OK 0 0 0 Aug 7 11:33:59 rh6node1pcmk ClusterMon-External: rh6node1pcmk.examplerh.com ClusterIP start OK 0 0 0 Aug 7 11:33:59 rh6node1pcmk ClusterMon-External: rh6node1pcmk.examplerh.com ClusterMon-External monitor OK 0 0 0 Aug 7 11:34:00 rh6node1pcmk crmd[2887]: notice: te_rsc_command: Initiating action 8: monitor ClusterMon-External:1_monitor_0 on rh6node2pcmk.examplerh.com Aug 7 11:34:00 rh6node1pcmk crmd[2887]: notice: te_rsc_command: Initiating action 16: start ClusterMon-External:1_start_0 on rh6node2pcmk.examplerh.com Aug 7 11:34:00 rh6node1pcmk ClusterMon-External: rh6node1pcmk.examplerh.com ClusterIP stop OK 0 0 0 Aug 7 11:34:00 rh6node1pcmk crmd[2887]: notice: te_rsc_command: Initiating action 15: monitor ClusterMon-External_monitor_10000 on rh6node2pcmk.examplerh.com Aug 7 11:34:00 rh6node1pcmk ClusterMon-External: rh6node2pcmk.examplerh.com ClusterMon-External start OK 0 0 0 Aug 7 11:34:00 rh6node1pcmk ClusterMon-External: rh6node2pcmk.examplerh.com ClusterMon-External monitor OK 0 0 0 Aug 7 11:34:00 rh6node1pcmk ClusterMon-External: rh6node2pcmk.examplerh.com ClusterIP start OK 0 0 0 Aug 7 11:34:00 rh6node1pcmk ClusterMon-External: rh6node2pcmk.examplerh.com ClusterIP monitor OK 0 0 0
第14章 Pacemaker を用いたマルチサイトクラスターの設定 (テクニカルプレビュー)
重要
- Cluster 1 はノード
cluster1-node1およびcluster1-node2で構成されます。 - Cluster 1 に割り当てられたフローティング IP アドレスは 192.168.11.100 です。
- Cluster 2 は
cluster2-node1およびcluster2-node2で構成されます。 - Cluster 2 に割り当てられたフローティング IP アドレスは 192.168.22.100 です。
- arbitrator (調停役) ノードは
arbitrator-nodeで、IP アドレスは 192.168.99.100 です。 - この設定が使用する Booth チケットの名前は
apacheticketです。
apachegroup リソースグループの一部として設定されていることを前提としています。各クラスターの Pacemaker インスタンスは独立しているため、リソースのチケット制約を設定するために各クラスターのリソースとリソースグループが同じである必要はありませんが、これがフェイルオーバーの一般的な事例になります。
pcs booth config コマンドを実行すると現在のノードまたはクラスターの Booth 設定を表示できます。また、pcs booth status コマンドを実行するとローカルノードの現在の Booth 状態を表示できます。
- 1 つのクラスターの 1 つのノードで Booth 設定を作成します。各クラスターおよび arbitrator (調停役) に指定するアドレスは IP アドレスでなければなりません。各クラスターにはフローティング IP アドレスを指定します。
[cluster1-node1 ~] #
pcs booth setup sites 192.168.11.100 192.168.22.100 arbitrators 192.168.99.100このコマンドを実行すると、/etc/booth/booth.confおよび/etc/booth/booth.key設定ファイルがノード上に作成されます。 - Booth 設定のチケットを作成します。このチケットがクラスターに付与された場合のみリソースの実行を許可するリソース抑制を定義するためにこのチケットを使用します。このフェイルオーバー設定手順は基本的な手順で、1 つのチケットのみを使用します。各チケットが異なるリソースに関連付けられる、より複雑な事例では追加のチケットを作成します。
[cluster1-node1 ~] #
pcs booth ticket add apacheticket - 現在のクラスターのすべてのノードに対して Booth 設定を同期します。
[cluster1-node1 ~] #
pcs booth sync - arbitrator (調停役) ノードから、Booth 設定を arbitrator へプルします。この作業をこれまで行ったことがない場合は、最初に設定をプルするノードに
pcsを認証する必要があります。[arbitrator-node ~] #
pcs cluster auth cluster1-node1[arbitrator-node ~] #pcs booth pull cluster1-node1 - Booth 設定を別のクラスターにプルし、そのクラスターのすべてのノードを同期します。arbitrator ノードでこの作業を行ったことがない場合は、最初に設定をプルするノードに
pcsを認証する必要があります。[cluster2-node1 ~] #
pcs cluster auth cluster1-node1[cluster2-node1 ~] #pcs booth pull cluster1-node1[cluster2-node1 ~] #pcs booth sync - arbitrator で Booth を開始および有効化します。
注記
Booth はクラスターで Pacemaker リソースとして実行されるため、クラスターのノードで Booth を手動で開始または有効化してはなりません。[arbitrator-node ~] #
pcs booth start[arbitrator-node ~] #pcs booth enable - Booth を設定し、両方のクラスターサイトでクラスターリソースとして実行されるようにします。
booth-ipおよびbooth-serviceをグループのメンバーとするリソースグループが作成されます。[cluster1-node1 ~] #
pcs booth create ip 192.168.11.100[cluster2-node1 ~] #pcs booth create ip 192.168.22.100 - 各クラスターに定義したリソースグループにチケット制約を追加します。
[cluster1-node1 ~] #
pcs constraint ticket add apacheticket apachegroup[cluster2-node1 ~] #pcs constraint ticket add apacheticket apachegroup以下のコマンドを実行すると、現在設定されているチケット制約を表示できます。pcs contraint ticket [show]
- この設定用に作成したチケットを最初のクラスターに付与します。チケットを付与する前に定義されたチケット抑制を準備する必要はありません。最初にチケットをクラスターに付与した後、
pcs booth ticket revokeコマンドで手動でオーバーライドしない限り、Booth はチケットの管理を引き継ぎます。pcs booth管理コマンドの詳細は、pcs boothコマンドの PCS ヘルプ画面を参照してください。[cluster1-node1 ~] #
pcs booth ticket grant apacheticket
pcs booth コマンドの PCS ヘルプ画面を参照してください。
付録A Red Hat Enterprise Linux 6 および Red Hat Enterprise Linux 7 でのクラスターの作成
rgmanager を用いて Red Hat Enterprise Linux 6 のクラスターを設定する場合とは異なる設定ツールと管理インターフェースが必要になります。「クラスター作成 - rgmanager と Pacemaker」 ではクラスターコンポーネントごとに設定の違いを説明します。
pcs 設定ツールを使用して、Pacemaker を用いたクラスター設定をサポートします。「Red Hat Enterprise Linux 6.5 および Red Hat Enterprise Linux 7 で Pacemaker を用いたクラスターの作成」 では、Red Hat Enterprise Linux 6.5 の pcs サポートと Red Hat Enterprise Linux 7.0 の pcs サポートで異なる設定について説明します。
A.1. クラスター作成 - rgmanager と Pacemaker
rgmanager を使用した場合と Red Hat Enterprise Linux 7 で Pacemaker を使用した場合のクラスターコンポーネントの設定方法を比較しています。
表A.1 gmanager と Pacemaker を使用した場合のクラスター設定に関する比較
| 設定コンポーネント | rgmanager | Pacemaker |
|---|---|---|
|
クラスター設定ファイル
|
各ノード上のクラスター設定ファイルは
cluster.conf、目的に応じて直接編集が可能、またはluci か ccs を使用
|
クラスターおよび Pacemaker 設定ファイルは
corosync.conf および cib.xml です。これらのファイルは直接編集しないでください。必ず pcs または pcsd インターフェースを使用して編集してください。
|
|
ネットワーク設定
|
クラスター設定前に IP アドレスおよび SSH を設定
|
クラスター設定前に IP アドレスおよび SSH を設定
|
|
クラスター設定ツール
|
luci、
ccs コマンド、手作業で cluster.conf ファイルを編集
|
pcs または pcsd
|
|
インストール
| rgmanager のインストール (ricci、luci、リソース、フェンスエージェントなどすべての依存パッケージをインストール)、必要に応じて lvm2-cluster および gfs2-utils をインストール
| pcs と必要なフェンスエージェントをインストールします。必要な場合は lvm2-cluster および gfs2-utils をインストールします。
|
|
クラスターサービスの起動
|
次の手順でクラスターサービスを起動、有効にする
または、
ccs --start を実行してクラスターサービスを開始および有効化します。
|
次の手順でクラスターサービスを起動、有効にする
|
|
設定ツールへのアクセスの制御
|
luci の場合、luci にアクセスできるのは root ユーザーまたは luci パーミッションを持つユーザーになる、すべてのアクセスにノードの
ricci パスワードが必要
| pcsd GUI では、共通のシステムユーザーであるユーザー hacluster として認証される必要があります。root ユーザーは hacluster のパスワードを設定できます。
|
|
クラスター作成
|
クラスターの命名、クラスターに含ませるノードの定義などは luci または
ccs で行うか cluster.conf ファイルを直接編集
| pcs cluster setup コマンドまたは pcsd Web UI を使用して、クラスターに名前を付け、ノードを含めます。pcs cluster node add コマンドまたは pcsd Web UI を使用すると、ノードを既存のクラスターに追加できます。
|
|
クラスター設定を全ノードに伝える
|
クラスターを luci で設定する場合は設定は自動的に伝わる、
ccs の場合は --sync オプションを使用する、cman_tool version -r コマンドの使用も可
|
クラスターおよび Pacemaker 設定ファイルである
corosync.conf および cib.xml は、クラスターの設定時やノードまたはリソースの追加時に自動的に伝播されます。
|
|
グローバルのクラスタープロパティー
|
以下の機能は、Red Hat Enterprise Linux 6 の
rgmanager によってサポートされます。
* クラスターネットワーク内での IP マルチキャスティングに使用するマルチキャストアドレスの選択をシステム側で行うよう設定することが可能
* IP マルチキャスティングが利用できない場合に UDP Unicast トランスポートメカニズムが使用可能
* RRP プロトコルを使用したクラスター設定が可能
|
Red Hat Enterprise Linux 7 の Pacemaker はクラスターに対して以下の機能をサポートします。
* クラスターに
no-quorum-policy を設定しクラスターが定足数を持たない場合のシステムの動作を指定できる
* 設定可能な他のクラスタープロパティは 表12.1「クラスターのプロパティ」 を参照
|
|
ログ機能
|
グローバルおよびデーモン固有のログ記録設定が可能
|
ログ記録を手作業で設定する方法については
/etc/sysconfig/pacemaker ファイルを参照
|
|
クラスターの検証
|
luci および
ccs ではクラスタースキーマを使った自動検証、クラスターは起動時に自動的に検証される
|
クラスターは起動時に自動的に検証される、または
pcs cluster verify を使っての検証も可
|
|
2 ノードクラスターのクォーラム
|
2 ノードのクラスターの場合、システムによるクォーラムの決定方法を設定できます。
* クォーラムディスクの設定
*
ccs を使用するか cluster.conf ファイルを編集して two_node=1 および expected_votes=1 を設定し、1 つのノードがクォーラムを維持できるようにします。
| pcs は 2 ノードクラスターに必要なオプションを自動的に corosync へ追加します。
|
|
クラスターの状態
|
luci では、クラスターの現在の状態がインターフェースのさまざまなコンポーネントで表示されます。クラスターの状態はリフレッシュできます。
ccs コマンドの --getconf オプションを使用すると、現在の設定ファイルを確認できます。clustat コマンドを使用するとクラスターの状態を表示できます。
| pcs status コマンドを使用して、現在のクラスターの状態を表示できます。
|
|
リソース
|
定義したタイプのリソースの追加およびリソース固有のプロパティの設定は luci または
ccs コマンドを使って行うか cluster.conf 設定ファイルを編集して行う
| pcs resource create コマンドまたは pcsd Web UI を使用して、定義されたタイプのリソースを追加し、リソース固有のプロパティーを設定します。Pacemaker を使用したクラスターリソースの設定については 6章クラスターリソースの設定 を参照してください。
|
|
リソースの動作、グループ化、起動と停止の順序
|
リソースの通信方法の設定にクラスターの サービス を定義
|
Pacemaker では、同時に配置され、順番に開始および停止される必要があるリソースのセットを定義する簡単な方法としてリソースグループを使用します。さらに、以下の方法でリソースの動作および対話方法を定義できます。
* リソース動作の一部はリソースオプションとして設定
* 場所の制約を使ってリソースを実行させるノードを指定
* 順序の制約を使ってリソースの実行順序を指定
コロケーション制約を使って任意のリソースの場所が別のリソースの場所に依存することを指定
詳細は 6章クラスターリソースの設定 および 7章リソースの制約 を参照してください。
|
|
リソース管理: リソースの移動、起動、停止
|
luci でクラスター、クラスターの個別ノード、およびクラスターサービスの管理が可能、
ccs ではクラスターの管理が可能、クラスターサービスの管理には clusvadm を使用
| pcs cluster standby コマンドを使ってノードを一時的に無効にし、リソースをホストできないようにすることができます。これにより、リソースを移行することになります。pcs resource disable コマンドでリソースを停止できます。
|
|
クラスターの設定を完全に削除
|
luci でクラスター内の全ノード削除を選択しクラスター全体を削除、クラスター内の各ノードの
cluster.conf を削除することも可能
| pcs cluster destroy コマンドを使用するとクラスター設定を削除できます。
|
|
複数のノードで実行中のリソース、複数モードで複数のノード上で実行中のリソース
|
該当なし。
|
Pacemaker ではリソースのクローンを作成し複数のノードで実行させることが可能、作成したリソースのクローンをマスターリソースとスレーブリソースとして定義し複数のモードで実行させることが可能、リソースのクローンおよびマスターとスレーブリソースについては 9章高度なリソースタイプ を参照
|
|
フェンス機能 -- 1 ノードにつき 1 フェンス
|
フェンスデバイスをグローバルまたはローカルに作成しノードに追加、クラスター全体に
post-fail delay と post-join delay の値を定義することが可能
| pcs stonith create または pcsd Web UI を使用して各ノードにフェンスデバイスを作成します。複数のノードをフェンスできるデバイスでは、各ノードで個別に定義せずに 1 度に定義する必要があります。また、1 つのコマンドですべてのノードにフェンスデバイスを設定するよう pcmk_host_map を定義することもできます。pcmk_host_map の詳細は 表5.1「フェンスデバイスの一般的なプロパティー」 を参照してください。クラスター全体の stonith-timeout の値を定義できます。
|
|
1 ノードごとに複数の (バックアップ) フェンスデバイス
|
バックアップデバイスの定義は luci または
ccs コマンドを使用するか cluster.conf ファイルを直接編集
|
フェンスレベルを設定
|
A.2. Red Hat Enterprise Linux 6.5 および Red Hat Enterprise Linux 7 で Pacemaker を用いたクラスターの作成
pcs 設定ツールを使用して、Pacemaker を用いたクラスター設定をサポートします。Pacemaker を使用する場合、Red Hat Enterprise Linux 6.5 と Red Hat Enterprise Linux 7 とでは、クラスターのインストールおよび作成に若干の違いがあります。ここでは、これらのリリースで異なるコマンドを簡単に説明します。Red Hat Enterprise Linux 7 におけるクラスターのインストールおよび作成の詳細は、1章Red Hat High Availability Add-On の設定と管理のリファレンス概要 および 4章クラスターの作成と管理 を参照してください。
A.2.1. Red Hat Enterprise Linux 6.5 および Red Hat Enterprise Linux 7 での Pacemaker のインストール
cman を使用して corosync が開始されるようにします。クラスターの各ノードでこれらのコマンドを実行する必要があります。
[root@rhel6]#yum install pacemaker cman[root@rhel6]#yum install pcs[root@rhel6]#chkconfig corosync off
hacluster という名前の pcs 管理アカウントのパスワードを設定し、pcsd サービスを開始および有効にします。また、クラスターのノードの管理アカウントも認証します。
[root@rhel7]#yum install pcs fence-agents-all[root@rhel7]#passwd hacluster[root@rhel7]#systemctl start pcsd.service[root@rhel7]#systemctl enable pcsd.service
[root@rhel7]# pcs cluster auth [node] [...] [-u username] [-p password]A.2.2. Red Hat Enterprise Linux 6.5 および Red Hat Enterprise Linux 7 で Pacemaker を用いたクラスターの作成
z1.example.com と z2.example.com のノードで構成される my_cluster というクラスターを作成し、これらのノードでクラスターサービスを開始するには、z1.example.com と z2.example.com の両方で以下のコマンドを実行します。
[root@rhel6]#pcs cluster setup --name my_cluster z1.example.com z2.example.com[root@rhel6]#pcs cluster start
z1.example.com および z2.example.com というノードで構成される my_cluster という名前のクラスターが作成され、これらのノードでクラスターサービスが開始されます。
[root@rhel7]# pcs cluster setup --start --name my_cluster z1.example.com z2.example.com付録B 改訂履歴
| 改訂履歴 | |||
|---|---|---|---|
| 改訂 3.1-8.2 | Mon Jul 3 2017 | ||
| |||
| 改訂 3.1-8.1 | Thu Apr 27 2017 | ||
| |||
| 改訂 3.1-8 | Mon Apr 17 2017 | ||
| |||
| 改訂 3.1-4.2 | Wed Mar 1 2017 | ||
| |||
| 改訂 3.1-4.1 | Tue Nov 22 2016 | ||
| |||
| 改訂 3.1-4 | Mon Oct 17 2016 | ||
| |||
| 改訂 3.1-3 | Wed Aug 17 2016 | ||
| |||
| 改訂 2.1-8 | Mon Nov 9 2015 | ||
| |||
| 改訂 2.1-5 | Mon Aug 24 2015 | ||
| |||
| 改訂 1.1-9 | Mon Feb 23 2015 | ||
| |||
| 改訂 1.1-7 | Thu Dec 11 2014 | ||
| |||
| 改訂 0.1-41 | Mon Jun 2 2014 | ||
| |||
| 改訂 0.1-2 | Thu May 16 2013 | ||
| |||
索引
シンボル
- オプションのクエリー, クラスタープロパティ設定のクエリー
- クラスターのプロパティ, クラスターのプロパティの設定と削除, クラスタープロパティ設定のクエリー
- クラスターの状態
- 表示, クラスターの状態表示
- クローン, リソースのクローン
- グループ, リソースグループ
- グループリソース, リソースグループ
- コロケーション, リソースのコロケーション
- プロパティの削除, クラスターのプロパティの設定と削除
- プロパティの設定, クラスターのプロパティの設定と削除
- リソース, リソースを手作業で移動する
- リソースのクローン, リソースのクローン
- リソースの場所の確定, ルールを使用したリソースの場所の確定
- ルール, Pacemaker ルール
- ルールで確定, ルールを使用したリソースの場所の確定
- 他のリソースに相対的となる場所, リソースのコロケーション
- 場所の制約, 場所の制約
- 多状態, 多状態のリソース: 複数モードのリソース
- 新機能と変更点, 新機能と変更点
- 概要
- 新機能と変更点, 新機能と変更点
- 状態
- 表示, クラスターの状態表示
- 移動する, リソースを手作業で移動する
- 起動順序, 順序の制約
- 順序の制約, 順序の制約
- 順序付け, 順序の制約
- , クラスターの作成
A
B
- batch-limit, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- boolean-op, Pacemaker ルール
- Constraint Rule, Pacemaker ルール
C
- Clone
- Option
- clone-max, クローンリソースの作成と削除
- clone-node-max, クローンリソースの作成と削除
- globally-unique, クローンリソースの作成と削除
- interleave, クローンリソースの作成と削除
- notify, クローンリソースの作成と削除
- ordered, クローンリソースの作成と削除
- Clone Option, クローンリソースの作成と削除
- clone-max, クローンリソースの作成と削除
- Clone Option, クローンリソースの作成と削除
- clone-node-max, クローンリソースの作成と削除
- Clone Option, クローンリソースの作成と削除
- Cluster
- Option
- batch-limit, クラスタープロパティとオプションの要約
- cluster-delay, クラスタープロパティとオプションの要約
- cluster-infrastructure, クラスタープロパティとオプションの要約
- cluster-recheck-interval, クラスタープロパティとオプションの要約
- dc-version, クラスタープロパティとオプションの要約
- default-action-timeout, クラスタープロパティとオプションの要約
- default-resource-stickiness, クラスタープロパティとオプションの要約
- enable-acl, クラスタープロパティとオプションの要約
- is-managed-default, クラスタープロパティとオプションの要約
- last-lrm-refresh, クラスタープロパティとオプションの要約
- maintenance-mode, クラスタープロパティとオプションの要約
- migration-limit, クラスタープロパティとオプションの要約
- no-quorum-policy, クラスタープロパティとオプションの要約
- pe-error-series-max, クラスタープロパティとオプションの要約
- pe-input-series-max, クラスタープロパティとオプションの要約
- pe-warn-series-max, クラスタープロパティとオプションの要約
- shutdown-escalation, クラスタープロパティとオプションの要約
- start-failure-is-fatal, クラスタープロパティとオプションの要約
- stonith-action, クラスタープロパティとオプションの要約
- stonith-enabled, クラスタープロパティとオプションの要約
- stonith-timeout, クラスタープロパティとオプションの要約
- stop-all-resources, クラスタープロパティとオプションの要約
- stop-orphan-actions, クラスタープロパティとオプションの要約
- stop-orphan-resources, クラスタープロパティとオプションの要約
- symmetric-cluster, クラスタープロパティとオプションの要約
- Querying Properties, クラスタープロパティ設定のクエリー
- Removing Properties, クラスターのプロパティの設定と削除
- Setting Properties, クラスターのプロパティの設定と削除
- Cluster Option, クラスタープロパティとオプションの要約
- cluster-delay, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- cluster-infrastructure, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- cluster-recheck-interval, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- Constraint
- Attribute Expression, ノード属性の式
- Date Specification, 日付の詳細
- Date/Time Expression, 時刻と日付ベースの式
- end, 時刻と日付ベースの式
- operation, 時刻と日付ベースの式
- start, 時刻と日付ベースの式
- Duration, 期間
- Rule, Pacemaker ルール
- boolean-op, Pacemaker ルール
- role, Pacemaker ルール
- score, Pacemaker ルール
- score-attribute, Pacemaker ルール
- Constraint Expression, ノード属性の式, 時刻と日付ベースの式
- Constraint Rule, Pacemaker ルール
- Constraints
- Colocation, リソースのコロケーション
- Location
- Order, 順序の制約
- kind, 順序の制約
D
- dampen, 接続状態変更によるリソースの移動
- Ping Resource Option, 接続状態変更によるリソースの移動
- Date Specification, 日付の詳細
- Date/Time Expression, 時刻と日付ベースの式
- end, 時刻と日付ベースの式
- operation, 時刻と日付ベースの式
- start, 時刻と日付ベースの式
- dc-version, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- default-action-timeout, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- default-resource-stickiness, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- disabling
- resources, クラスターリソースの有効化と無効化
- Duration, 期間
E
- enable-acl, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- enabled, リソースの動作
- Action Property, リソースの動作
- enabling
- resources, クラスターリソースの有効化と無効化
- end, 時刻と日付ベースの式
- Constraint Expression, 時刻と日付ベースの式
F
- failure-timeout, リソースのメタオプション
- Resource Option, リソースのメタオプション
G
- globally-unique, クローンリソースの作成と削除
- Clone Option, クローンリソースの作成と削除
- Groups, グループの Stickiness (粘着性)
H
- host_list, 接続状態変更によるリソースの移動
- Ping Resource Option, 接続状態変更によるリソースの移動
- hours, 日付の詳細
- Date Specification, 日付の詳細
I
- id, リソースのプロパティー, リソースの動作, 日付の詳細
- Action Property, リソースの動作
- Date Specification, 日付の詳細
- Location Constraints, 場所の制約
- Multi-State Property, 多状態のリソース: 複数モードのリソース
- Resource, リソースのプロパティー
- interleave, クローンリソースの作成と削除
- Clone Option, クローンリソースの作成と削除
- interval, リソースの動作
- Action Property, リソースの動作
- is-managed, リソースのメタオプション
- Resource Option, リソースのメタオプション
- is-managed-default, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
L
- last-lrm-refresh, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- Location
- Determine by Rules, ルールを使用したリソースの場所の確定
- score, 場所の制約
M
- maintenance-mode, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- master-max, 多状態のリソース: 複数モードのリソース
- Multi-State Option, 多状態のリソース: 複数モードのリソース
- master-node-max, 多状態のリソース: 複数モードのリソース
- Multi-State Option, 多状態のリソース: 複数モードのリソース
- migration-limit, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- migration-threshold, リソースのメタオプション
- Resource Option, リソースのメタオプション
- monthdays, 日付の詳細
- Date Specification, 日付の詳細
- months, 日付の詳細
- Date Specification, 日付の詳細
- moon, 日付の詳細
- Date Specification, 日付の詳細
- Moving
- Resources, リソースを手作業で移動する
- Multi-State
- Option
- master-max, 多状態のリソース: 複数モードのリソース
- master-node-max, 多状態のリソース: 複数モードのリソース
- Property
- Multi-State Option, 多状態のリソース: 複数モードのリソース
- Multi-State Property, 多状態のリソース: 複数モードのリソース
- multiple-active, リソースのメタオプション
- Resource Option, リソースのメタオプション
- multiplier, 接続状態変更によるリソースの移動
- Ping Resource Option, 接続状態変更によるリソースの移動
- Multistate, 多状態の粘着性 (Stickiness)
N
- name, リソースの動作
- Action Property, リソースの動作
- no-quorum-policy, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- notify, クローンリソースの作成と削除
- Clone Option, クローンリソースの作成と削除
O
- on-fail, リソースの動作
- Action Property, リソースの動作
- operation, ノード属性の式, 時刻と日付ベースの式
- Constraint Expression, ノード属性の式, 時刻と日付ベースの式
- Option
- batch-limit, クラスタープロパティとオプションの要約
- clone-max, クローンリソースの作成と削除
- clone-node-max, クローンリソースの作成と削除
- cluster-delay, クラスタープロパティとオプションの要約
- cluster-infrastructure, クラスタープロパティとオプションの要約
- cluster-recheck-interval, クラスタープロパティとオプションの要約
- dampen, 接続状態変更によるリソースの移動
- dc-version, クラスタープロパティとオプションの要約
- default-action-timeout, クラスタープロパティとオプションの要約
- default-resource-stickiness, クラスタープロパティとオプションの要約
- enable-acl, クラスタープロパティとオプションの要約
- failure-timeout, リソースのメタオプション
- globally-unique, クローンリソースの作成と削除
- host_list, 接続状態変更によるリソースの移動
- interleave, クローンリソースの作成と削除
- is-managed, リソースのメタオプション
- is-managed-default, クラスタープロパティとオプションの要約
- last-lrm-refresh, クラスタープロパティとオプションの要約
- maintenance-mode, クラスタープロパティとオプションの要約
- master-max, 多状態のリソース: 複数モードのリソース
- master-node-max, 多状態のリソース: 複数モードのリソース
- migration-limit, クラスタープロパティとオプションの要約
- migration-threshold, リソースのメタオプション
- multiple-active, リソースのメタオプション
- multiplier, 接続状態変更によるリソースの移動
- no-quorum-policy, クラスタープロパティとオプションの要約
- notify, クローンリソースの作成と削除
- ordered, クローンリソースの作成と削除
- pe-error-series-max, クラスタープロパティとオプションの要約
- pe-input-series-max, クラスタープロパティとオプションの要約
- pe-warn-series-max, クラスタープロパティとオプションの要約
- priority, リソースのメタオプション
- requires, リソースのメタオプション
- resource-stickiness, リソースのメタオプション
- shutdown-escalation, クラスタープロパティとオプションの要約
- start-failure-is-fatal, クラスタープロパティとオプションの要約
- stonith-action, クラスタープロパティとオプションの要約
- stonith-enabled, クラスタープロパティとオプションの要約
- stonith-timeout, クラスタープロパティとオプションの要約
- stop-all-resources, クラスタープロパティとオプションの要約
- stop-orphan-actions, クラスタープロパティとオプションの要約
- stop-orphan-resources, クラスタープロパティとオプションの要約
- symmetric-cluster, クラスタープロパティとオプションの要約
- target-role, リソースのメタオプション
- Order
- kind, 順序の制約
- Order Constraints, 順序の制約
- symmetrical, 順序の制約
- ordered, クローンリソースの作成と削除
- Clone Option, クローンリソースの作成と削除
P
- pe-error-series-max, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- pe-input-series-max, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- pe-warn-series-max, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- Ping Resource
- Option
- dampen, 接続状態変更によるリソースの移動
- host_list, 接続状態変更によるリソースの移動
- multiplier, 接続状態変更によるリソースの移動
- Ping Resource Option, 接続状態変更によるリソースの移動
- priority, リソースのメタオプション
- Resource Option, リソースのメタオプション
- Property
- enabled, リソースの動作
- id, リソースのプロパティー, リソースの動作, 多状態のリソース: 複数モードのリソース
- interval, リソースの動作
- name, リソースの動作
- on-fail, リソースの動作
- provider, リソースのプロパティー
- standard, リソースのプロパティー
- timeout, リソースの動作
- type, リソースのプロパティー
- provider, リソースのプロパティー
- Resource, リソースのプロパティー
Q
- Querying
- Cluster Properties, クラスタープロパティ設定のクエリー
R
- Removing
- Cluster Properties, クラスターのプロパティの設定と削除
- requires, リソースのメタオプション
- Resource, リソースのプロパティー
- Constraint
- Attribute Expression, ノード属性の式
- Date Specification, 日付の詳細
- Date/Time Expression, 時刻と日付ベースの式
- Duration, 期間
- Rule, Pacemaker ルール
- Constraints
- Colocation, リソースのコロケーション
- Order, 順序の制約
- Location
- Determine by Rules, ルールを使用したリソースの場所の確定
- Location Relative to other Resources, リソースのコロケーション
- Moving, リソースを手作業で移動する
- Option
- failure-timeout, リソースのメタオプション
- is-managed, リソースのメタオプション
- migration-threshold, リソースのメタオプション
- multiple-active, リソースのメタオプション
- priority, リソースのメタオプション
- requires, リソースのメタオプション
- resource-stickiness, リソースのメタオプション
- target-role, リソースのメタオプション
- Property
- id, リソースのプロパティー
- provider, リソースのプロパティー
- standard, リソースのプロパティー
- type, リソースのプロパティー
- Start Order, 順序の制約
- Resource Option, リソースのメタオプション
- resource-stickiness, リソースのメタオプション
- Groups, グループの Stickiness (粘着性)
- Multi-State, 多状態の粘着性 (Stickiness)
- Resource Option, リソースのメタオプション
- Resources
- Clones, リソースのクローン
- Groups, リソースグループ
- Multistate, 多状態のリソース: 複数モードのリソース
- resources
- cleanup, クラスターリソースのクリーンアップ
- disabling, クラスターリソースの有効化と無効化
- enabling, クラスターリソースの有効化と無効化
- role, Pacemaker ルール
- Constraint Rule, Pacemaker ルール
- Rule
- boolean-op, Pacemaker ルール
- Determine Resource Location, ルールを使用したリソースの場所の確定
- role, Pacemaker ルール
- score, Pacemaker ルール
- score-attribute, Pacemaker ルール
S
- score, 場所の制約, Pacemaker ルール
- Constraint Rule, Pacemaker ルール
- Location Constraints, 場所の制約
- score-attribute, Pacemaker ルール
- Constraint Rule, Pacemaker ルール
- Setting
- Cluster Properties, クラスターのプロパティの設定と削除
- shutdown-escalation, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- standard, リソースのプロパティー
- Resource, リソースのプロパティー
- start, 時刻と日付ベースの式
- Constraint Expression, 時刻と日付ベースの式
- start-failure-is-fatal, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- stonith-action, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- stonith-enabled, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- stonith-timeout, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- stop-all-resources, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- stop-orphan-actions, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- stop-orphan-resources, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- symmetric-cluster, クラスタープロパティとオプションの要約
- Cluster Option, クラスタープロパティとオプションの要約
- symmetrical, 順序の制約
- Order Constraints, 順序の制約
T
- target-role, リソースのメタオプション
- Resource Option, リソースのメタオプション
- Time Based Expressions, 時刻と日付ベースの式
- timeout, リソースの動作
- Action Property, リソースの動作
- type, リソースのプロパティー, ノード属性の式
- Constraint Expression, ノード属性の式
- Resource, リソースのプロパティー
