5.2. オーバークラウドでのフェンシングのデプロイとテスト


フェンシングを設定するプロセスは、以下の段階で構成されます。

  1. STONITH および Pacemaker の状態を確認する。
  2. fencing.yaml ファイルを生成する。
  3. オーバークラウドを再デプロイし設定をテストする。

前提条件

director でコントローラーノードを登録した際に作成した nodes.json ファイルにアクセスできるようにしてください。このファイルは、デプロイメント中に生成する fencing.yaml ファイルに必須なインプットになります。

STONITH および Pacemaker の状態の確認

  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

fencing.yaml 環境ファイルの生成

以下のいずれかのオプションを選択します。

  • IPMI または Red Hat Virtualization のフェンシングエージェントを使用する場合は、以下のコマンドを実行して fencing.yaml 環境ファイルを生成します。

    $ openstack overcloud generate fencing --output fencing.yaml nodes.json
    注記
    • このコマンドにより、ilo および drac の電源管理情報が等価な IPMI 版に変換されます。
    • nodes.json ファイルに、ノード上のいずれかのネットワークインターフェイス (NIC) の MAC アドレスが含まれていることを確認してください。詳しい情報は、「オーバークラウドノードの登録」を参照してください。
  • Storage Block Device (SBD)、fence_kdump、または Redfish などの別のフェンシングエージェントを使用する場合は、fencing.yaml ファイルを手動で生成します。

    注記

    事前にプロビジョニングされたノードを使用する場合には、fencing.yaml ファイルも手動で作成する必要があります。

サポート対象のフェンシングエージェントについての詳しい情報は、「サポート対象のフェンシングエージェント」を参照してください。

オーバークラウドの再デプロイおよび設定のテスト

  1. overcloud deploy コマンドを実行し、コントローラーノードでフェンシングを設定するために生成した fencing.yaml ファイルを含めます。

    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 --control-scale 3 --compute-scale 3 --ceph-storage-scale 3 --control-flavor control --compute-flavor Compute --ceph-storage-flavor ceph-storage --ntp-server pool.ntp.org --neutron-network-type vxlan --neutron-tunnel-types vxlan \
    -e fencing.yaml
  2. オーバークラウドにログインし、各コントローラーノードにフェンシングが設定されていることを確認します。

    1. Pacemaker がリソースマネージャーとして設定されていることを確認します。

      $ source stackrc
      $ nova 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. pcs stonith show コマンドを実行して、フェンシングリソースの属性を確認します。

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

      STONITH 属性の値は、fencing.yaml ファイルの値と一致している必要があります。

コントローラーノードのフェンシングの確認

フェンシングが正しく機能するかどうかをテストするには、コントローラーノード上の全ポートを閉じ、サーバーを再起動してフェンシングをトリガーします。

  1. コントローラーノードにログインします。

    $ source stackrc
    $ nova list |grep controller
    $ ssh heat-admin@<controller-x_ip>
  2. root ユーザーに変更し、各ポートで iptables コマンドを実行します。

    $ sudo -i
    iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT &&
    iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT &&
    iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 5016 -j ACCEPT &&
    iptables -A INPUT -p udp -m state --state NEW -m udp --dport 5016 -j ACCEPT &&
    iptables -A INPUT ! -i lo -j REJECT --reject-with icmp-host-prohibited &&
    iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT &&
    iptables -A OUTPUT -p tcp --sport 5016 -j ACCEPT &&
    iptables -A OUTPUT -p udp --sport 5016 -j ACCEPT &&
    iptables -A OUTPUT ! -o lo -j REJECT --reject-with icmp-host-prohibited
    重要

    このステップによりコントローラーノードへの接続がすべて切断されるので、サーバーがリブートします。

  3. 別のコントローラーノードから、Pacemaker のログファイルでフェンシングイベントの有無を確認します。

    $ ssh heat-admin@<controller-x_ip>
    $ less /var/log/cluster/corosync.log
    (less): /fenc*

    STONITH サービスがコントローラーでフェンシングアクションを実行していれば、ログファイルにフェンシングイベントが記録されます。

  4. 数分待ってから、pcs status コマンドを実行して、再起動したコントローラーノードがクラスターで再び実行されていることを確認します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.