Menu Close
Settings Close

Language and Page Formatting Options

4.4. 仮想 IP アドレスの表示

各 IPaddr2 リソースは、クライアントがサービスへのアクセスを要求するために使用する仮想 IP アドレスを設定します。その IP アドレスが割り当てられたコントローラーノードで異常が発生すると、IPaddr2 リソースは IP アドレスを別のコントローラーノードに再割り当てします。

すべての仮想 IP アドレスの表示

--full オプションを指定して pcs resource show コマンドを実行し、VirtualIP タイプを使用するすべてのリソースを表示します。

$ sudo pcs resource show --full

以下の出力例では、特定の仮想 IP アドレスをリッスンするように現在設定されている各コントローラーノードを確認することができます。

 ip-10.200.0.6	(ocf::heartbeat:IPaddr2):	Started overcloud-controller-1
 ip-192.168.1.150	(ocf::heartbeat:IPaddr2):	Started overcloud-controller-0
 ip-172.16.0.10	(ocf::heartbeat:IPaddr2):	Started overcloud-controller-1
 ip-172.16.0.11	(ocf::heartbeat:IPaddr2):	Started overcloud-controller-0
 ip-172.18.0.10	(ocf::heartbeat:IPaddr2):	Started overcloud-controller-2
 ip-172.19.0.10	(ocf::heartbeat:IPaddr2):	Started overcloud-controller-2

初期状態では、各 IP アドレスは特定のコントローラーノードに接続されます。たとえば、192.168.1.150overcloud-controller-0 で開始されます。ただし、そのコントローラーノードで異常が発生すると、IP アドレスはクラスター内の他のコントローラーノードに再割り当てされます。

以下の表には、この出力例の IP アドレスと、各 IP アドレスの初期の割り当てをまとめています。

表4.1 IP アドレスの説明と割り当て元

IP アドレス説明割り当て元

192.168.1.150

パブリック IP アドレス

network-environment.yaml ファイルの ExternalAllocationPools 属性

10.200.0.6

コントローラーの仮想 IP アドレス

dhcp_start および dhcp_end の範囲の部分は、undercloud.conf ファイルで 10.200.0.5-10.200.0.24 に設定されます。

172.16.0.10

コントローラーノード上の OpenStack API サービスへのアクセスを提供します。

network-environment.yaml ファイルの InternalApiAllocationPools

172.18.0.10

Glance API および Swift プロキシーのサービスへのアクセスを提供するストレージの仮想 IP アドレス

network-environment.yaml ファイルの StorageAllocationPools 属性

172.16.0.11

コントローラーノード上の Radis サービスへのアクセスを提供します。

network-environment.yaml ファイルの InternalApiAllocationPools

172.19.0.10

ストレージ管理へのアクセスを提供します。

network-environment.yaml ファイルの StorageMgmtAlloctionPools

特定 IP アドレスの表示

pcs resource show コマンドを実行します。

$ sudo pcs resource show ip-192.168.1.150

出力例:

 Resource: ip-192.168.1.150 (class=ocf provider=heartbeat type=IPaddr2)
  Attributes: ip=192.168.1.150 cidr_netmask=32
  Operations: start interval=0s timeout=20s (ip-192.168.1.150-start-timeout-20s)
              stop interval=0s timeout=20s (ip-192.168.1.150-stop-timeout-20s)
              monitor interval=10s timeout=20s (ip-192.168.1.150-monitor-interval-10s)

特定 IP アドレスのネットワーク情報の表示

  1. 表示する IP アドレスが割り当てられているコントローラーノードにログインします。
  2. ip addr show コマンドを実行して、ネットワークインターフェース情報を表示します。

    $ ip addr show vlan100

    出力例:

      9: vlan100: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
        link/ether be:ab:aa:37:34:e7 brd ff:ff:ff:ff:ff:ff
        inet *192.168.1.151/24* brd 192.168.1.255 scope global vlan100
           valid_lft forever preferred_lft forever
        inet *192.168.1.150/32* brd 192.168.1.255 scope global vlan100
           valid_lft forever preferred_lft forever
  3. netstat コマンドを実行して、IP アドレスをリッスンするすべてのプロセスを表示します。

    $ sudo netstat -tupln | grep "192.168.1.150.haproxy"

    出力例:

    tcp        0      0 192.168.1.150:8778          0.0.0.0:*               LISTEN      61029/haproxy
    tcp        0      0 192.168.1.150:8042          0.0.0.0:*               LISTEN      61029/haproxy
    tcp        0      0 192.168.1.150:9292          0.0.0.0:*               LISTEN      61029/haproxy
    tcp        0      0 192.168.1.150:8080          0.0.0.0:*               LISTEN      61029/haproxy
    tcp        0      0 192.168.1.150:80            0.0.0.0:*               LISTEN      61029/haproxy
    tcp        0      0 192.168.1.150:8977          0.0.0.0:*               LISTEN      61029/haproxy
    tcp        0      0 192.168.1.150:6080          0.0.0.0:*               LISTEN      61029/haproxy
    tcp        0      0 192.168.1.150:9696          0.0.0.0:*               LISTEN      61029/haproxy
    tcp        0      0 192.168.1.150:8000          0.0.0.0:*               LISTEN      61029/haproxy
    tcp        0      0 192.168.1.150:8004          0.0.0.0:*               LISTEN      61029/haproxy
    tcp        0      0 192.168.1.150:8774          0.0.0.0:*               LISTEN      61029/haproxy
    tcp        0      0 192.168.1.150:5000          0.0.0.0:*               LISTEN      61029/haproxy
    tcp        0      0 192.168.1.150:8776          0.0.0.0:*               LISTEN      61029/haproxy
    tcp        0      0 192.168.1.150:8041          0.0.0.0:*               LISTEN      61029/haproxy
    注記

    0.0.0.0のように、すべてのローカルアドレスをリッスンしているプロセスは、192.168.1.150 からも利用できます。これらのプロセスには、sshdmysqlddhclientntpd などがあります。

ポート番号割り当ての表示

/var/lib/config-data/puppet-generated/haproxy/etc/haproxy/haproxy.cfg ファイルを開き、デフォルトのポート番号割り当てを確認します。

以下の例は、ポート番号およびポートがリッスンするサービスを示しています。

  • TCP ポート 6080: nova_novncproxy
  • TCP ポート 9696: neutron
  • TCP ポート 8000: heat_cfn
  • TCP ポート 80: horizon
  • TCP ポート 8776: cinder

この例では、haproxy.cfg ファイルで定義されているサービスの大半は、3 つすべてのコントローラーノードで 192.168.1.150 の IP アドレスをリッスンしています。ただし、192.168.1.150 の IP アドレスを外部でリッスンしているのは controller-0 ノードのみです。

このため、controller-0 ノードで異常が発生した場合には、HAProxy は 192.168.1.150 を別のコントローラーノードに再割り当てするだけで、他のサービスはすべてフォールバックコントローラーノードですでに実行されている状態となります。