Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

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 がサポートするさまざまな電源管理デバイス用のフェンシングエージェントのセットが実装されています。これには、以下が含まれます。

表8.1 フェンスエージェント

デバイス
タイプ
fence_ipmilan
Intelligent Platform Management Interface (IPMI)
fence_idracfence_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_xvmfence_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