Red Hat Training

A Red Hat training course is available for RHEL 8

4.10. ネットワークリソースエージェントのインストール

HA 操作が機能するために、クラスターは AWS ネットワークリソースエージェントを使用してフェイルオーバー機能を有効にします。設定された時間内にノードがハートビートチェックに応答しない場合には、ノードはフェンスされ、操作はクラスター内の追加のノードにフェイルオーバーします。これを使用するには、ネットワークリソースエージェントを設定する必要があります。

順序コロケーション の制約を適用するため、同じグループ に 2 つのリソースを追加します。

セカンダリープライベート IP リソースと仮想 IP リソースを作成

セカンダリープライベート IP アドレスを追加し、仮想 IP を作成するには、以下の手順を行います。この手順は、クラスター内の任意のノードから実行できます。

手順

  1. AWS セカンダリープライベート IP アドレス リソースエージェント (awsvip) の説明を表示します。これは、このエージェントのオプションとデフォルトの操作を示しています。

    # pcs resource describe awsvip
  2. VPC CIDR ブロックの未使用のプライベート IP アドレスを使用して、セカンダリープライベート IP アドレスを作成します。

    # pcs resource create privip awsvip secondary_private_ip=Unused-IP-Address --group group-name

    例:

    [root@ip-10-0-0-48 ~]# pcs resource create privip awsvip secondary_private_ip=10.0.0.68 --group networking-group
  3. 仮想 IP リソースを作成します。これは、フェンシングされたノードからフェイルオーバーノードに即時に再マッピングできる VPC IP アドレスで、サブネット内のフェンスされたノードの失敗をマスクします。

    # pcs resource create vip IPaddr2 ip=secondary-private-IP --group group-name

    以下に例を示します。

    root@ip-10-0-0-48 ~]# pcs resource create vip IPaddr2 ip=10.0.0.68 --group networking-group

検証

  • リソースが実行されていることを確認します。

    # pcs status

    例:

    [root@ip-10-0-0-48 ~]# pcs status
    Cluster name: newcluster
    Stack: corosync
    Current DC: ip-10-0-0-46 (version 1.1.18-11.el7-2b07d5c5a9) - partition with quorum
    Last updated: Fri Mar  2 22:34:24 2018
    Last change: Fri Mar  2 22:14:58 2018 by root via cibadmin on ip-10-0-0-46
    
    3 nodes configured
    3 resources configured
    
    Online: [ ip-10-0-0-46 ip-10-0-0-48 ip-10-0-0-58 ]
    
    Full list of resources:
    
    clusterfence    (stonith:fence_aws):    Started ip-10-0-0-46
     Resource Group: networking-group
         privip (ocf::heartbeat:awsvip):    Started ip-10-0-0-48
         vip    (ocf::heartbeat:IPaddr2):   Started ip-10-0-0-58
    
    Daemon Status:
      corosync: active/disabled
      pacemaker: active/disabled
      pcsd: active/enabled

Elastic IP アドレスの作成

Elastic IP アドレスは、フェンシングされたノードからフェイルオーバーノードに即時に再マッピングできるパブリック IP アドレスで、フェンスされたノードの障害をマスクします。

これは、先に作成した仮想 IP リソースとは異なることに注意してください。Elastic IP アドレスは、サブネット接続ではなく、公開用インターネット接続に使用されます。

  1. 上で作成した 同じグループ に 2 つのリソースを追加して、順序コロケーション の制約を適用します。
  2. 以下の AWS CLI コマンドを入力して、Elastic IP アドレスを作成します。

    [root@ip-10-0-0-48 ~]# aws ec2 allocate-address --domain vpc --output text
    eipalloc-4c4a2c45   vpc 35.169.153.122
  3. AWS セカンダリー Elastic IP アドレスリソースエージェント (awseip) の説明を表示します。次のコマンドは、このエージェントのオプションとデフォルトの操作を示しています。

    # pcs resource describe awseip
  4. ステップ 1 で作成して割り当てられた IP アドレスを使用して、セカンダリー Elastic IP アドレスリソースを作成します。

    # pcs resource create elastic awseip elastic_ip=Elastic-IP-Address allocation_id=Elastic-IP-Association-ID --group networking-group

    以下に例を示します。

    # pcs resource create elastic awseip elastic_ip=35.169.153.122 allocation_id=eipalloc-4c4a2c45 --group networking-group

検証

  • pcs status コマンドを実行して、リソースが実行していることを確認します。

    # pcs status

    以下に例を示します。

    [root@ip-10-0-0-58 ~]# pcs status
    Cluster name: newcluster
    Stack: corosync
    Current DC: ip-10-0-0-58 (version 1.1.18-11.el7-2b07d5c5a9) - partition with quorum
    Last updated: Mon Mar  5 16:27:55 2018
    Last change: Mon Mar  5 15:57:51 2018 by root via cibadmin on ip-10-0-0-46
    
    3 nodes configured
    4 resources configured
    
    Online: [ ip-10-0-0-46 ip-10-0-0-48 ip-10-0-0-58 ]
    
    Full list of resources:
    
     clusterfence   (stonith:fence_aws):    Started ip-10-0-0-46
     Resource Group: networking-group
         privip (ocf::heartbeat:awsvip):  Started ip-10-0-0-48
         vip    (ocf::heartbeat:IPaddr2):    Started ip-10-0-0-48
         elastic (ocf::heartbeat:awseip):    Started ip-10-0-0-48
    
    Daemon Status:
      corosync: active/disabled
      pacemaker: active/disabled
      pcsd: active/enabled

Elastic IP アドレスのテスト

以下のコマンドを入力して、仮想 IP (awsvip) および Elastic IP (awseip) のリソースが機能していることを確認します。

手順

  1. ローカルワークステーションから、上で作成した Elastic IP アドレスへの SSH セッションを開始します。

    $ ssh -l ec2-user -i ~/.ssh/<KeyName>.pem elastic-IP

    以下に例を示します。

    $ ssh -l ec2-user -i ~/.ssh/cluster-admin.pem 35.169.153.122
  2. SSH 経由で接続したホストが、作成された elastic リソースに関連付けられたホストであることを確認します。