4.2. オーバークラウドへのフェンシングのデプロイ
オーバークラウドにフェンシングをデプロイするには、最初に STONITH および Pacemaker の状態を確認して、fencing.yaml ファイルを設定します。続いて、オーバークラウドをデプロイし、追加のパラメーターを設定します。最後に、フェンシングがオーバークラウドに正しくデプロイされていることを確認します。
前提条件
- デプロイメントに適したフェンシングエージェントを選択します。サポート対象のフェンシングエージェントの一覧は、「サポート対象のフェンシングエージェント」 を参照してください。
-
director にノードを登録した際に作成した
nodes.jsonファイルにアクセスできるようにしてください。このファイルは、デプロイメント中に生成するfencing.yamlファイルに必須なインプットになります。 -
nodes.jsonファイルにノード上のいずれかのネットワークインターフェイス (NIC) の MAC アドレスが含まれている必要があります。詳細は、Registering Nodes for the Overcloud を参照してください。 -
Red Hat Virtualization (RHV) フェンシングエージェントを使用する場合は、
UserVMManagerなどの仮想マシンを管理する権限を持つロールを使用します。
手順
-
それぞれのコントローラーノードに
heat-adminユーザーとしてログインします。 クラスターが動作状態にあることを確認します。
$ 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
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
使用するフェンシングエージェントに応じて、以下のオプションのいずれかを選択します。
IPMI または RHV のフェンシングエージェントを使用する場合は、
fencing.yaml環境ファイルを生成します。$ openstack overcloud generate fencing --output fencing.yaml nodes.json
注記このコマンドにより、
iloおよびdracの電源管理情報が等価な IPMI 版に変換されます。-
STONITH Block Device (SBD)、
fence_kdump、あるいは Redfish 等の別のフェンシングエージェントを使用する場合、または事前にプロビジョニングされたノードを使用する場合は、手動でfencing.yamlファイルを作成します。
SBD フェンシングのみ: 以下のパラメーターを
fencing.yamlファイルに追加します。parameter_defaults: ExtraConfig: pacemaker::corosync::enable_sbd: true注記このステップは、初回のオーバークラウドデプロイメントにのみ適用されます。既存のオーバークラウドで SBD フェンシングを有効にする方法の詳細は、Administrative Procedures for RHEL High Availability clusters - Enabling sbd fencing in RHEL 7 and 8 を参照してください。
マルチレイヤーフェンシングのみ: 生成された
fencing.yamlファイルにレベル固有のパラメーターを追加します。parameter_defaults: EnableFencing: true FencingConfig: devices: level1: - agent: [VALUE] host_mac: aa:bb:cc:dd:ee:ff params: <parameter>: <value> level2: - agent: fence_agent2 host_mac: aa:bb:cc:dd:ee:ff params: <parameter>: <value><parameter>および<value>を、フェンシングエージェントが必要とする実際のパラメーターおよび値に置き換えてください。fencing.yamlファイルおよびデプロイメントに該当するその他の環境ファイルを指定して、overcloud deployコマンドを実行します。openstack overcloud deploy --templates \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e ~/templates/network-environment.yaml \ -e ~/templates/storage-environment.yaml --ntp-server pool.ntp.org --neutron-network-type vxlan --neutron-tunnel-types vxlan \ -e fencing.yaml
SBD フェンシングのみ: ウォッチドッグタイマーデバイスの間隔を設定し、間隔が正しく設定されていることを確認します。
# pcs property set stonith-watchdog-timeout=<interval> # pcs property show
検証
stackユーザーとしてオーバークラウドにログインし、Pacemaker がリソースマネージャーとして設定されていることを確認します。$ source stackrc $ openstack server list | grep controller $ ssh heat-admin@<controller-x_ip> $ sudo pcs status | grep fence stonith-overcloud-controller-x (stonith:fence_ipmilan): Started overcloud-controller-y
この例では、Pacemaker は、
fencing.yamlファイルで指定された各コントローラーノードに STONITH リソースを使用するように設定されています。注記制御するのと同じノードに
fence-resourceプロセスを設定することはできません。フェンシングリソースの属性を確認します。STONITH 属性の値は、
fencing.yamlファイルの値と一致している必要があります。$ sudo pcs stonith show <stonith-resource-controller-x>