8.6. コントローラーノードのフェンシング
フェンシングとは、クラスターとそのリソースを保護するためにノードを分離するプロセスのことです。フェンシングがないと、問題のあるノードが原因でクラスター内のデータが破損する可能性があります。
director は、Pacemaker を使用して、高可用性のコントローラーノードクラスターを提供します。Pacemaker は、問題のあるノードをフェンシングするのに役立つ STONITH (Shoot-The-Other-Node-In-The-Head) というプロセスを使用します。デフォルトでは、STONITH はお使いのクラスター上では無効化されているため、Pacemaker がクラスター内の各ノードの電源管理を制御できるように手動で設定する必要があります。
注記
director 上の
stack
ユーザーから、heat-admin
ユーザーとして各ノードにログインします。オーバークラウドを作成すると自動的に stack
ユーザーの SSH キーが各ノードの heat-admin
にコピーされます。
pcs status
を使用して、クラスターが実行していることを確認します。
$ sudo pcs status Cluster name: openstackHA Last updated: Wed Jun 24 12:40:27 2015 Last change: Wed Jun 24 11:36:18 2015 Stack: corosync Current DC: lb-c1a2 (2) - partition with quorum Version: 1.1.12-a14efad 3 Nodes configured 141 Resources configured
pcs property show
で、STONITH が無効化されていることを確認します。
$ sudo pcs property show
Cluster Properties:
cluster-infrastructure: corosync
cluster-name: openstackHA
dc-version: 1.1.12-a14efad
have-watchdog: false
stonith-enabled: false
コントローラーノードには、director がサポートするさまざまな電源管理デバイス用のフェンシングエージェントのセットが実装されています。これには、以下が含まれます。
デバイス
|
タイプ
|
---|---|
fence_ipmilan
|
Intelligent Platform Management Interface (IPMI)
|
fence_idrac 、fence_drac5
|
Dell Remote Access Controller (DRAC)
|
fence_ilo
|
Integrated Lights-Out (iLO)
|
fence_ucs
|
Cisco UCS: 詳しい情報は 「Configuring Cisco Unified Computing System (UCS) Fencing on an OpenStack High Availability Environment」 の記事を参照してください。
|
fence_xvm 、fence_virt
|
Libvirt と SSH
|
本項ではこれ以降、IPMI エージェント (
fence_ipmilan
) を例として使用します。
Pacemaker がサポートする IPMI オプションの完全一覧を表示します。
$ sudo pcs stonith describe fence_ipmilan
各ノードには、電源管理を制御する IPMI デバイスの設定が必要です。これには、各ノードの Pacemaker に
stonith
デバイスを追加する必要があります。クラスターに以下のコマンドを実行します。
注記
各例の 2 番目のコマンドは、ノードが自らをフェンシングするかどうかを尋ねないようにします。
コントローラーノード 0 の場合:
$ sudo pcs stonith create my-ipmilan-for-controller-0 fence_ipmilan pcmk_host_list=overcloud-controller-0 ipaddr=192.0.2.205 login=admin passwd=p@55w0rd! lanplus=1 cipher=1 op monitor interval=60s $ sudo pcs constraint location my-ipmilan-for-controller-0 avoids overcloud-controller-0
コントローラーノード 1 の場合:
$ sudo pcs stonith create my-ipmilan-for-controller-1 fence_ipmilan pcmk_host_list=overcloud-controller-1 ipaddr=192.0.2.206 login=admin passwd=p@55w0rd! lanplus=1 cipher=1 op monitor interval=60s $ sudo pcs constraint location my-ipmilan-for-controller-1 avoids overcloud-controller-1
コントローラーノード 2 の場合:
$ sudo pcs stonith create my-ipmilan-for-controller-2 fence_ipmilan pcmk_host_list=overcloud-controller-2 ipaddr=192.0.2.207 login=admin passwd=p@55w0rd! lanplus=1 cipher=1 op monitor interval=60s $ sudo pcs constraint location my-ipmilan-for-controller-2 avoids overcloud-controller-2
以下のコマンドを実行して、すべての STONITH リソースを表示します。
$ sudo pcs stonith show
以下のコマンドを実行して、特定の STONITH リソースを表示します。
$ sudo pcs stonith show [stonith-name]
最後に、
stonith
プロパティーを true
に設定して、フェンシングを有効にします。
$ sudo pcs property set stonith-enabled=true
プロパティーを確認します。
$ sudo pcs property show