前回は、Nutanix CE / AHV のユーザ VM に直接続した、Nutanix Volumes(旧 ABS)の Volume Group(VG)について、CVM 障害時の 様子を見てみました。
AHV で VG を利用するときは、物理マシンの OS もしくはゲスト OS の iSCSI イニシエータからの接続か、VM への直接続が可能です。今回は Nutanix 外部のサーバの iSCSI イニシエータから接続されている VG の iSCSI 接続が、別の CVM に切り替わる様子を見てみます。
今回の VG 構成
Nutanix クラスタは前回と同様の構成で、バージョンは ce-2018.01.05-stable、AHV は 3ノード、ユーザ VM は 1台(vm01。これを Nutanix 外部サーバ役に見立てる)だけ起動していて、AHV のアドレスは 192.168.20.22 です。
Nutanix クラスタに、iSCSI データ サービス IP アドレスを設定ずみです。
VG「vg01」は前回と同じもので vDisk(Volume)を 3つ作成しています。しかし、今回は、外部サーバの iSCSI イニシエータを登録しています。
外部サーバ役として、Linux サーバの iSCSI イニシエータから VG に接続しています。
通常時の 外部サーバ → VG への iSCSI 接続
VG が VM 直接続の場合と異なり、AHV には外部サーバから VG の iSCSI 接続はありません。VM のローカル vDisk による iSCSI 接続だけが AHV「192.168.20.22」に見られます。
CVM$ hostssh "netstat -na | grep :3261" ============= 192.168.20.22 ============ tcp 0 0 127.0.0.1:3261 0.0.0.0:* LISTEN tcp 0 0 192.168.5.1:45284 192.168.5.254:3261 ESTABLISHED ============= 192.168.20.21 ============ tcp 0 0 127.0.0.1:3261 0.0.0.0:* LISTEN ============= 192.168.20.23 ============ tcp 0 0 127.0.0.1:3261 0.0.0.0:* LISTEN
iSCSI イニシエータから CVM のターゲットにログインするときは、3205 ポートです。ちなみに「192.168.20.203」は iSCSI 接続をしている Linux OS 側の IP アドレスです。今回の VG には vDisk が 3つあり、それぞれ別の CVM に分散されたようです。
CVM$ allssh "netstat -na | grep 192.168.20.203" ================== 192.168.20.31 ================= tcp 0 0 192.168.20.31:3205 192.168.20.203:57572 ESTABLISHED ================== 192.168.20.32 ================= tcp 0 0 192.168.20.32:3205 192.168.20.203:34252 ESTABLISHED ================== 192.168.20.33 ================= tcp 0 0 192.168.20.33:3205 192.168.20.203:51597 ESTABLISHED
Linux サーバ側から見ても、下記のようになっています。iSCSI 接続は、 CVM 宛の 3205 番ポートです。
[root@vm01 ~]# netstat -na | grep :3205 tcp 0 0 192.168.20.203:34252 192.168.20.32:3205 ESTABLISHED tcp 0 0 192.168.20.203:57572 192.168.20.31:3205 ESTABLISHED tcp 0 0 192.168.20.203:51597 192.168.20.33:3205 ESTABLISHED
CVM 障害発生
今回は、VG の iSCSI セッションが3ノードすべての CVM に分散されているので、ユーザ VM がいない AHV の CVM を 停止して、iSCSI セッションを見てみます。
1号機です。CVM だけが起動しています。
CVM$ ssh root@192.168.20.21 virsh list FIPS mode initialized Id Name State ---------------------------------------------------- 2 NTNX-01a8888b-A-CVM running
CVM を停止します。
CVM$ ssh root@192.168.20.21 virsh destroy NTNX-01a8888b-A-CVM FIPS mode initialized Domain NTNX-01a8888b-A-CVM destroyed CVM$ ssh root@192.168.20.21 virsh list FIPS mode initialized Id Name State ---------------------------------------------------- CVM$
Linux サーバ側のログファイル(/var/log/messages)を見ていると、下記のように iscsid はエラーを検知します。
Dec 18 21:55:59 vm01 iscsid: Kernel reported iSCSI connection 2:0 error (1022 - Invalid or unknown error code) state (3) Dec 18 21:56:19 vm01 iscsid: connect to 192.168.20.30:3260 failed (No route to host) Dec 18 21:56:25 vm01 iscsid: connect to 192.168.20.30:3260 failed (No route to host) Dec 18 21:56:30 vm01 iscsid: connection2:0 is operational after recovery (4 attempts)
停止した CVM への VG の iSCSI セッションは、別の CVM に張りなおされました。
CVM$ ssh nutanix@192.168.20.32 "netstat -na | grep 192.168.20.203" FIPS mode initialized Nutanix Controller VM tcp 0 0 192.168.20.32:3205 192.168.20.203:34259 ESTABLISHED tcp 0 0 192.168.20.32:3205 192.168.20.203:34252 ESTABLISHED CVM$ ssh nutanix@192.168.20.33 "netstat -na | grep 192.168.20.203" FIPS mode initialized Nutanix Controller VM tcp 0 0 192.168.20.33:3205 192.168.20.203:51597 ESTABLISHED CVM$
Linux 側でも、iSCSI のセッションが正常な CVM に張りなおされたことがわかります。
[root@vm01 ~]# lsof -P -i:3205 -n COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME iscsid 15173 root 9u IPv4 47638 0t0 TCP 192.168.20.203:34259->192.168.20.32:3205 (ESTABLISHED) iscsid 15173 root 12u IPv4 45520 0t0 TCP 192.168.20.203:34252->192.168.20.32:3205 (ESTABLISHED) iscsid 15173 root 14u IPv4 45447 0t0 TCP 192.168.20.203:51597->192.168.20.33:3205 (ESTABLISHED)
ちなみに、停止した CVM を復旧すると、セッションは元に戻るようです。
以上。