NutaNice Xperience

主にNutanix製品を検証したり触ったりした結果をつづっています。※このブログの内容は個人の見識や見解をもとに作成しています。参考にされる場合は自己責任でご活用ください。実際に製品を使用される場合は、メーカードキュメントの手順に従い実施してください。

Nutanix Filesで障害を発生させてみる① -ファイルアップロード中にFSVM停止-

 今回はやってみた系で長編です。

Nutanix Filesでは、FSVMという仮想アプライアンスをNutanixクラスター上へ複数台デプロイし、それがNASヘッドとなって共有フォルダをクライアントへ提供します。

今回は、Nutanix Filesで「標準共有」で共有フォルダを作成し、クライアントから1GBのExcelファイルを共有フォルダへアップロード中にFSVMを停止させてみます。

環境としてはこんな感じです。
f:id:tomomartin:20210920000635p:plain

今回の環境

AOS: 5.20.1.1 LTS
AHV: 20201105.2096
Files Version: 3.8.1.2
クライアント: Windows Server 2016: ip 172.22.5.56
FSVM: 3台構成

FSVMクライアントネットワーク
FSVM1: 172.22.8.4
FSVM2: 172.22.8.5
FSVM3: 172.22.8.6

FSVMストレージネットワーク
storage vip: 172.22.1.94
FSVM1: 172.22.1.95
FSVM2: 172.22.1.96
FSVM3: 172.22.1.97

標準共有「share01」作成済み
share01内には「test.txt」ファイルを保存済み
アップロードするのは1GBのExcelファイル

事前確認

まずは、作成した標準共有「share01」をどのFSVMが公開しているのかを特定します。FSVMそれぞれ3台にログインし探してみました。ちなみに、FSVMへログインするには、CVMからFSVMのストレージIP宛にSSH接続します。


[nutanix@cvm]$ ssh 172.22.1.95
FIPS mode initialized
Nutanix File-Server VM
Last login: Sun Sep 19 08:12:38 2021 from 172.22.1.44

Nutanix File Server VM (FSVM) is a virtual management appliance.

Alteration of the FSVM (unless advised by Nutanix Technical Support or
Support Portal Documentation) is unsupported and may result in loss
of User VMs or other data residing on the cluster.

Unsupported alterations may include (but are not limited to):

- Configuration changes / removal of files
- Installation of third-party software/scripts not approved by Nutanix.
- Installation or upgrade of software packages from non-Nutanix
  sources (using yum, rpm, or similar).

[nutanix@FSVM1]$ 

各FSVMへログインしたら、「df -h」などを実行して共有フォルダのボリュームグループをマウントしているFSVMを探します。Filesでの共有フォルダのストレージ領域はFSVMへ「zpool~」という名前でファイルシステムがマウントされます。ちなみに「/zroot/shares」配下へマウントされます。

今回は[FSVM1]へマウントされていることが確認できました。



[nutanix@FSVM1]$ df -h
Filesystem                                                                                                                           Size  Used Avail Use% Mounted on
devtmpfs                                                                                                                             5.8G  4.0K  5.8G   1% /dev
tmpfs                                                                                                                                512M   12M  501M   3% /dev/shm
tmpfs                                                                                                                                5.8G  720K  5.8G   1% /run
tmpfs                                                                                                                                5.8G     0  5.8G   0% /sys/fs/cgroup
/dev/sda1                                                                                                                             12G  6.0G  5.6G  52% /
/dev/loop0                                                                                                                           240M  2.4M  221M   2% /tmp
/dev/sdb1                                                                                                                             45G  2.4G   42G   6% /home
/dev/sdc1                                                                                                                             45G  121M   44G   1% /home/nutanix/data/stargate-storage/disks/NFS_7_0_275_5b64d019_6537_4d93_940e_abe6d2b89640
tmpfs                                                                                                                                1.2G     0  1.2G   0% /run/user/1000
zpool-NTNX-testfiles-ca69f2d4-82e1-4f27-820a-cac0e201591d-320e18dc-7293-428c-a08e-7ff450977558                                       280T  128K  280T   1% /zroot/shares/2e0ded64-1fae-46b2-96d6-44f35488d3fc/:5759e11b-c954-40f8-a0e0-a5f97dfdaf79
zpool-NTNX-testfiles-ca69f2d4-82e1-4f27-820a-cac0e201591d-320e18dc-7293-428c-a08e-7ff450977558/2693d6bb-4d4c-4009-8860-975e3dc24ebb  100G  192K  100G   1% /zroot/shares/2e0ded64-1fae-46b2-96d6-44f35488d3fc/:5759e11b-c954-40f8-a0e0-a5f97dfdaf79/2693d6bb-4d4c-4009-8860-975e3dc24ebb
[nutanix@FSVM1]$ 

実際にマウントされているディレクトリを覗くと、事前に作成しておいた「test.txt」が確認できます。


[nutanix@FSVM1]$ ls -l /zroot/shares/2e0ded64-1fae-46b2-96d6-44f35488d3fc/:5759e11b-c954-40f8-a0e0-a5f97dfdaf
79/2693d6bb-4d4c-4009-8860-975e3dc24ebb
total 2
drwxrwxrwx. 2 root    root    2 Sep 19 07:22 :streams
-rwxrwxrwx. 1 1100500 1100513 0 Sep 19 07:23 test.txt
[nutanix@FSVM1]$ 

ファイルをアップロード中にFSVM1を強制停止してみる

事前に作成済みのExcelデータ「test-data.xlsx」(1GB)を共有フォルダへアップロードすると同時に [FSVM1] を停止させてみました。共有フォルダは自動復旧するのでしょうか。
f:id:tomomartin:20210920092939p:plain

[FSVM1] を停止すると、ターゲット共有フォルダへのアクセスが切断されてしまうため、クライアントからのアップロードプロセスは一時的にフリーズしたような状態がみられます。10~20秒ほどで、ファイル置換のポップアップが上がり、再度アップロードを促されます。

これは、共有フォルダが自動復旧したためです。「ファイルを置き換える」をクリックして、中途半端にアップロードされたExcelに上書きで再度アップロードします。
f:id:tomomartin:20210920094206p:plain

アップロードしたExcelファイルも問題なくオープンすることができました。
f:id:tomomartin:20210920095757p:plain

FSVM1 が公開していた共有フォルダの行方

[FSVM1]の停止後、共有フォルダは自動復旧したわけですが、これは別のFSVMが[FSVM1]の共有フォルダを即座に引き継いだためです。FSVM2へログインすると、共有フォルダ用のファイルシステムがマウントされていることが確認できました。今回は、FSVM2が共有フォルダを引き継いだようです。



[nutanix@FSVM2]$ df -h
Filesystem                                                                                                                           Size  Used Avail Use% Mounted on
devtmpfs                                                                                                                             5.8G     0  5.8G   0% /dev
tmpfs                                                                                                                                512M   12M  501M   3% /dev/shm
tmpfs                                                                                                                                5.8G  728K  5.8G   1% /run
tmpfs                                                                                                                                5.8G     0  5.8G   0% /sys/fs/cgroup
/dev/sda1                                                                                                                             12G  6.1G  5.6G  52% /
/dev/loop0                                                                                                                           240M  2.4M  221M   2% /tmp
/dev/sdb1                                                                                                                             45G  2.4G   42G   6% /home
/dev/sdc1                                                                                                                             45G  121M   44G   1% /home/nutanix/data/stargate-storage/disks/NFS_7_0_276_850e1c97_3841_4e09_baba_2166ab03c334
tmpfs                                                                                                                                1.2G     0  1.2G   0% /run/user/1000
zpool-NTNX-testfiles-ca69f2d4-82e1-4f27-820a-cac0e201591d-320e18dc-7293-428c-a08e-7ff450977558                                       280T  128K  280T   1% /zroot/shares/2e0ded64-1fae-46b2-96d6-44f35488d3fc/:5759e11b-c954-40f8-a0e0-a5f97dfdaf79
zpool-NTNX-testfiles-ca69f2d4-82e1-4f27-820a-cac0e201591d-320e18dc-7293-428c-a08e-7ff450977558/2693d6bb-4d4c-4009-8860-975e3dc24ebb  100G  974M  100G   1% /zroot/shares/2e0ded64-1fae-46b2-96d6-44f35488d3fc/:5759e11b-c954-40f8-a0e0-a5f97dfdaf79/2693d6bb-4d4c-4009-8860-975e3dc24ebb
[nutanix@FSVM2]$ 

マウントされているディレクトリ配下を確認すると、今回アップロードした「test-data.xlsx」が確認できます。



[nutanix@FSVM2]$ ls -l /zroot/shares/2e0ded64-1fae-46b2-96d6-44f35488d3fc/:5759e11b-c954-40f8-a0e0-a5f97dfdaf79/2693d6bb-4d4c-4009-8860-975e3dc24ebb
total 997636
drwxrwxrwx. 3 root    root             3 Sep 19 17:26 :streams
-rwxrwxrwx. 1 1100500 1100513 1020045084 Sep 19 07:45 test-data.xlsx
-rwxrwxrwx. 1 1100500 1100513          0 Sep 19 07:23 test.txt
[nutanix@FSVM2]$ 

ちなみに[netstat]ではクライアントから445ポートで [FSVM2] へ接続されていることが確認できますが、接続先はもともと[FSVM1]が持っていたIPアドレス(172.22.8.4)になっています。


[nutanix@FSVM2]$ netstat -n | grep 172.22.5
tcp        0      0 172.22.8.4:445          172.22.5.56:52104       ESTABLISHED
[nutanix@FSVM2]$ 

これは、停止した[FSVM1]のIPアドレスも含めて、[FSVM2]が共有フォルダを引き継いだためです。これにより、クライアントからのセッションはタイムアウト内の一時的な切断として認識されたのではないかと考えられます。

以下コマンドからも、[FSVM2]が[FSVM1]のクライアントIPを引き継いでいることが確認できます。



[nutanix@FSVM2]$ ifconfig
eth0: flags=4163 mtu 1500
inet 172.22.1.96 netmask 255.255.255.0 broadcast 172.22.1.255
inet6 fe80::526b:8dff:fed2:4e9 prefixlen 64 scopeid 0x20
ether 50:6b:8d:d2:04:e9 txqueuelen 1000 (Ethernet)
RX packets 4418532 bytes 1238455245 (1.1 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8085893 bytes 21341817798 (19.8 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth0:1: flags=4163 mtu 1500
inet 172.22.1.94 netmask 255.255.255.255 broadcast 172.22.255.255
ether 50:6b:8d:d2:04:e9 txqueuelen 1000 (Ethernet)

eth1: flags=4163 mtu 1500
inet 172.22.8.5 netmask 255.255.255.0 broadcast 172.22.8.255
inet6 fe80::526b:8dff:fedf:f9b4 prefixlen 64 scopeid 0x20
ether 50:6b:8d:df:f9:b4 txqueuelen 1000 (Ethernet)
RX packets 875188 bytes 2094248677 (1.9 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 316038 bytes 5123715235 (4.7 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth1:2: flags=4163 mtu 1500
inet 172.22.8.4 netmask 255.255.255.0 broadcast 172.22.8.255
ether 50:6b:8d:df:f9:b4 txqueuelen 1000 (Ethernet)

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 1966128 bytes 255784546 (243.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1966128 bytes 255784546 (243.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[nutanix@FSVM2]$ 

FSVM1を復旧させてみる

[FSVM1]を復旧させると、[FSVM1]が共有フォルダを自動で取り戻します。復旧後は、[FSVM2]から172.22.8.4のIPアドレスが消え、[FSVM1]でIPが確認できます。


[nutanix@FSVM1]$ ifconfig
eth0: flags=4163 mtu 1500
inet 172.22.1.95 netmask 255.255.255.0 broadcast 172.22.1.255
inet6 fe80::526b:8dff:fe87:7417 prefixlen 64 scopeid 0x20
ether 50:6b:8d:87:74:17 txqueuelen 1000 (Ethernet)
RX packets 97303 bytes 67892409 (64.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 205029 bytes 905993671 (864.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth1: flags=4163 mtu 1500
inet 172.22.8.4 netmask 255.255.255.0 broadcast 172.22.8.255
inet6 fe80::526b:8dff:fef7:eb33 prefixlen 64 scopeid 0x20
ether 50:6b:8d:f7:eb:33 txqueuelen 1000 (Ethernet)
RX packets 468423 bytes 1045589610 (997.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 180251 bytes 9921049 (9.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 20390 bytes 4178627 (3.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20390 bytes 4178627 (3.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[nutanix@FSVM1]$ 

共有フォルダのボリュームグループも[FSVM1]へマウントされていることが確認できます。


[nutanix@FSVM1]$ df -h
Filesystem                                                                                                                           Size  Used Avail Use% Mounted on
devtmpfs                                                                                                                             5.8G     0  5.8G   0% /dev
tmpfs                                                                                                                                512M   12M  501M   3% /dev/shm
tmpfs                                                                                                                                5.8G  720K  5.8G   1% /run
tmpfs                                                                                                                                5.8G     0  5.8G   0% /sys/fs/cgroup
/dev/sda1                                                                                                                             12G  6.1G  5.6G  53% /
/dev/loop0                                                                                                                           240M  2.4M  221M   2% /tmp
/dev/sdb1                                                                                                                             45G  2.5G   42G   6% /home
/dev/sdc1                                                                                                                             45G  120M   44G   1% /home/nutanix/data/stargate-storage/disks/NFS_7_0_275_5b64d019_6537_4d93_940e_abe6d2b89640
tmpfs                                                                                                                                1.2G     0  1.2G   0% /run/user/1000
zpool-NTNX-testfiles-ca69f2d4-82e1-4f27-820a-cac0e201591d-320e18dc-7293-428c-a08e-7ff450977558                                       280T  128K  280T   1% /zroot/shares/2e0ded64-1fae-46b2-96d6-44f35488d3fc/:5759e11b-c954-40f8-a0e0-a5f97dfdaf79
zpool-NTNX-testfiles-ca69f2d4-82e1-4f27-820a-cac0e201591d-320e18dc-7293-428c-a08e-7ff450977558/2693d6bb-4d4c-4009-8860-975e3dc24ebb  100G  974M  100G   1% /zroot/shares/2e0ded64-1fae-46b2-96d6-44f35488d3fc/:5759e11b-c954-40f8-a0e0-a5f97dfdaf79/2693d6bb-4d4c-4009-8860-975e3dc24ebb

[nutanix@FSVM1]$ ls -l /zroot/shares/2e0ded64-1fae-46b2-96d6-44f35488d3fc/:5759e11b-c954-40f8-a0e0-a5f97dfdaf79/2693d6bb-4d4c-4009-8860-975e3dc24ebb
total 997636
drwxrwxrwx. 3 root    root             3 Sep 19 17:26 :streams
-rwxrwxrwx. 1 1100500 1100513 1020045084 Sep 19 07:45 test-data.xlsx
-rwxrwxrwx. 1 1100500 1100513          0 Sep 19 07:23 test.txt
[nutanix@FSVM1]$ 

ちなみに、[FSVM2]では、マウントしていたボリュームグループは見当たりません。


[nutanix@FSVM2]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        5.8G     0  5.8G   0% /dev
tmpfs           512M   12M  501M   3% /dev/shm
tmpfs           5.8G  648K  5.8G   1% /run
tmpfs           5.8G     0  5.8G   0% /sys/fs/cgroup
/dev/sda1        12G  6.1G  5.6G  53% /
/dev/loop0      240M  2.4M  221M   2% /tmp
/dev/sdb1        45G  2.5G   42G   6% /home
/dev/sdc1        45G  122M   44G   1% /home/nutanix/data/stargate-storage/disks/NFS_7_0_276_850e1c97_3841_4e09_baba_2166ab03c334
tmpfs           1.2G     0  1.2G   0% /run/user/1000
[nutanix@FSVM2]$ 

おわりに

今回は、Nutanix Filesで作成した標準共有の共有フォルダへクライアントからファイルアップロード中に、その共有フォルダをホストするFSVMを停止させてみました。

結果としては、FSVMがいきなり停止すると、もちろん一時的にセッションは途切れますが、共有フォルダは自動復旧しすぐに接続は回復されることが確認できました。

Nutanix Filesのバージョンアップを実施する際は、FSVMが再起動したりしますので当然のことですが、書き込みや読み込みが行われている時間帯はFSVMの停止・起動は避けたほうがよいですね。

次回予告:ファイルサーバーのExcelファイルを編集中にFSVMを停止させてみた。お楽しみに。