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.150
は overcloud-controller-0 で開始されます。ただし、そのコントローラーノードで異常が発生すると、IP アドレスはクラスター内の他のコントローラーノードに再割り当てされます。
以下の表には、この出力例の IP アドレスと、各 IP アドレスの初期の割り当てをまとめています。
IP アドレス | 説明 | 割り当て元 |
---|---|---|
| パブリック IP アドレス |
|
| コントローラーの仮想 IP アドレス |
|
| コントローラーノード上の OpenStack API サービスへのアクセスを提供します。 |
|
| Glance API および Swift プロキシーのサービスへのアクセスを提供するストレージの仮想 IP アドレス |
|
| コントローラーノード上の Radis サービスへのアクセスを提供します。 |
|
| ストレージ管理へのアクセスを提供します。 |
|
特定 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 アドレスのネットワーク情報の表示
- 表示する IP アドレスが割り当てられているコントローラーノードにログインします。
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
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
からも利用できます。これらのプロセスには、sshd
、mysqld
、dhclient
、ntpd
などがあります。
ポート番号割り当ての表示
/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
を別のコントローラーノードに再割り当てするだけで、他のサービスはすべてフォールバックコントローラーノードですでに実行されている状態となります。