Red Hat Training

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

第3章 インスタンス HA のインストールと設定

インスタンス HA は director でデプロイおよび設定されます。ただし、デプロイメントの準備のために、いくつかの追加ステップを実施する必要があります。

本項では、カスタムロールを使用してコンピュートノードのサブセットでインスタンス HA を有効化することを目的に、新しいオーバークラウドで新しいインスタンス HA デプロイメントを設定するために必要なすべての手順について説明します。

重要
  • 標準のロールまたはカスタムロールを使用する既存のオーバークラウド等、別の環境でインスタンス HA を有効化する場合には、デプロイメントに関連する手順のみに従い、テンプレートを適切に変更します。
  • コンピュートノードのホスト名および Pacemaker リモートリソース名は、W3C 命名規則に従う必要があります。詳細は、W3C ドキュメントの Declaring Namespaces および Names and Tokens を参照してください。
  • インスタンス HA では、コンピュートノードがコントローラーノードが使用するのと同じ internal_api ネットワークを使用する必要があります。したがって、リーフごとに別個のネットワークが必要であるため、インスタンス HA をスパイン/リーフ環境にデプロイする構成はサポートされません。
  • インストール後の director でのインスタンス HA の無効化はサポートされていません。デプロイメントからインスタンス HA コンポーネントを手動で削除する回避策は、 「How can I remove Instance HA components from the controller nodes?」の記事を参照してください。.この回避策は、そのまま提供されます。実稼働環境で実装する前に、テスト環境で手順を検証する必要があります。

オーバークラウドのデプロイに関する一般的な情報は、『director のインストールと使用方法』を参照してください。カスタムロールの詳細は、「コンポーザブルサービスとカスタムロール」を参照してください。

インスタンス HA ロール、フレーバー、およびプロファイルの設定

  1. ComputeInstanceHA ロールをロールデータのファイルに追加し、ファイルを再生成します。以下に例を示します。

    $ openstack overcloud roles generate -o ~/my_roles_data.yaml Controller Compute ComputeInstanceHA

    ComputeInstanceHA ロールには、デフォルトの Compute ロールの全サービスに加えて、ComputeInstanceHA および PacemakerRemote サービスが含まれます。カスタムロールおよび roles-data.yaml に関する一般的な情報は、『オーバークラウドの高度なカスタマイズ』「ロール」セクションを参照してください。

  2. インスタンス HA に指定するコンピュートノードにタグ付けする compute-instance-ha フレーバーを作成します。以下に例を示します。

    $ source ~/stackrc
    $ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 compute-instance-ha
    $ openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="compute-instance-ha" compute-instance-ha
  3. インスタンス HA に指定する各コンピュートノードに compute-instance-ha プロファイルをタグ付けします。

    $ openstack baremetal node set --property capabilities='profile:compute-instance-ha,boot_option:local' <NODE UUID>
  4. 以下の内容の環境ファイルを作成して、ComputeInstanceHA ロールを compute-instance-ha フレーバーにマッピングします。

    parameter_defaults:
      OvercloudComputeInstanceHAFlavor: compute-instance-ha

フェンシングの有効化

  1. フェンシング情報を定義した環境ファイルを作成して、オーバークラウドの全コントローラーノードおよびコンピュートノードのフェンシングを有効にします。必ずアクセス可能な場所に環境ファイルを作成してください (~/templates 等)。以下に例を示します。

    parameter_defaults:
      EnableFencing: true
      FencingConfig:
        devices:
        - agent: fence_ipmilan
          host_mac: 00:ec:ad:cb:3c:c7
          params:
            login: admin
            ipaddr: 192.168.24.1
            ipport: 6230
            passwd: password
            lanplus: 1
        - agent: fence_ipmilan
          host_mac: 00:ec:ad:cb:3c:cb
          params:
            login: admin
            ipaddr: 192.168.24.1
            ipport: 6231
            passwd: password
            lanplus: 1
        - agent: fence_ipmilan
          host_mac: 00:ec:ad:cb:3c:cf
          params:
            login: admin
            ipaddr: 192.168.24.1
            ipport: 6232
            passwd: password
            lanplus: 1
        - agent: fence_ipmilan
          host_mac: 00:ec:ad:cb:3c:d3
          params:
            login: admin
            ipaddr: 192.168.24.1
            ipport: 6233
            passwd: password
            lanplus: 1
        - agent: fence_ipmilan
          host_mac: 00:ec:ad:cb:3c:d7
          params:
            login: admin
            ipaddr: 192.168.24.1
            ipport: 6234
            passwd: password
            lanplus: 1

    フェンシングおよび STONITH の設定に関する詳細は、『高可用性デプロイメントと使用方法』「STONITH を使用したコントローラノードのフェンシング」を参照してください。

  2. デフォルトでは、インスタンス HA は共有ストレージを使用します。共有ストレージがコンピュートインスタンス用に設定されていない場合には、前の手順で作成した環境ファイルに以下のパラメーターを追加します。

    parameter_defaults:
      ExtraConfig:
        tripleo::instanceha::no_shared_storage: true

    インスタンスのディスクイメージ用に共有ストレージを設定するのではなく、OpenStack Block Storage (cinder) ボリュームから起動する方法は、「共有ストレージに関する注意事項」を参照してください。

オーバークラウドのデプロイ

作成したすべての環境ファイルのほか、compute-instanceha.yaml 環境ファイル用に、-e オプションを指定して openstack overcloud deploy コマンドを実行します。以下に例を示します。

$ openstack overcloud deploy --templates \
  -e <FLAVOR_ENV_FILE> \
  -e <FENCING_ENV_FILE> \
  -e /usr/share/openstack-tripleo-heat-templates/environments/compute-instanceha.yaml
注記
  • compute-instanceha.yaml 環境ファイルは変更しないでください。
  • オーバークラウドデプロイメントに追加する各環境ファイルへのパスを含めるようにしてください。
  • アンダーグラウンドの作成後は、いつでもオーバークラウドにインスタンス HA を設定することができます。オーバークラウドをすでにデプロイしている場合は、新しいインスタンス HA ファイルで overcloud deploy コマンドを再実行する必要があります。

デプロイメントが完了すると、それぞれのコンピュートノードには STONITH デバイスおよび GuestNode サービスが含まれます。

3.1. 共有ストレージに関する注意事項

一般的に、インスタンス HA ではインスタンスのディスクイメージ用に共有ストレージを設定する必要があります。したがって、no-shared-storage オプションの使用を試みると、退避中に InvalidSharedStorage エラーが表示され、インスタンスが別のコンピュートノードで起動しなくなります。

ただし、すべてのインスタンスが OpenStack Block Storage (cinder) ボリュームから起動するように設定されている場合には、インスタンスのディスクイメージ用に共有ストレージを設定する必要はないので、no-shared-storage オプションを使用してすべてのインスタンスを退避させることができます。

インスタンスが Block Storage ボリュームから起動するように設定されている場合には、退避したインスタンスは別のコンピュートノード上の同じボリュームから起動するはずです。したがって、OS イメージおよびアプリケーションデータが OpenStack Block Storage ボリュームに保管されているので、退避したインスタンスは直ちにジョブを再開します。