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 などの仮想マシンを管理する権限を持つロールを使用します。

手順

  1. それぞれのコントローラーノードに heat-admin ユーザーとしてログインします。
  2. クラスターが動作状態にあることを確認します。

    $ 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
  3. 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
  4. 使用するフェンシングエージェントに応じて、以下のオプションのいずれかを選択します。

    • 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 ファイルを作成します。
  5. 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 を参照してください。

  6. マルチレイヤーフェンシングのみ: 生成された 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> を、フェンシングエージェントが必要とする実際のパラメーターおよび値に置き換えてください。

  7. 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
  8. SBD フェンシングのみ: ウォッチドッグタイマーデバイスの間隔を設定し、間隔が正しく設定されていることを確認します。

    # pcs property set stonith-watchdog-timeout=<interval>
    # pcs property show

検証

  1. 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 プロセスを設定することはできません。

  2. フェンシングリソースの属性を確認します。STONITH 属性の値は、fencing.yaml ファイルの値と一致している必要があります。

    $ sudo pcs stonith show <stonith-resource-controller-x>