[Amazon FSx for NetApp ONTAP] SMBでファイルオープン中にフェイルオーバーが発生した場合の挙動を確認してみた
実際フェイルオーバーが発生するとユーザーにどんな影響があるのか気になる
こんにちは、のんピ(@non____97)です。
皆さんはAmazon FSx for NetApp ONTAP(以降FSxN)を使用していて、実際フェイルオーバーが発生するとユーザーにどんな影響があるのか気になったことはありますか? 私はあります。
FSxNでは週次30分のメンテナンスウィンドウを設定する必要があります。このメンテナンスウィンドウの範囲内でメンテナンスが開始され、パッチ適用が行われます。
パッチ適用前にフェイルオーバーするタイミングで60秒未満のIO停止が発生します。そのため、負荷の高いタイミングを避けてメンテナンスウィンドウを設定するのが望ましいです。
パッチ適用にかかる時間は1ノードあたり通常最大1時間とされています。
パッチ適用が発生すると、ファイルシステムの各ファイルサーバーに一度に 1 つずつパッチが適用され、各ファイルサーバーにパッチを適用するのに通常最大 1 時間かかります。HA ペア内でファイルサーバーにパッチを適用する前に、ファイルシステムは自動的にファイルサーバーの HA パートナーにフェイルオーバーします。
HAペア数が1つの場合でも実際にメンテナンスが走っている時間は メンテナンスウィンドウの時間枠30分 + 2時間(1ノード1時間 × 2ノード) = 2時間30分となります。
要するにFSxNで設定するメンテナンスウィンドウの時間枠はメンテナンスを開始する時間枠を指しており、メンテナンス開始から完了までの時間枠を指していません。
具体的には「メンテナンスウィンドウが 毎週日曜日 AM 7:00 - AM 7:30 の場合」としている場合、以下の最も時間がかかるケースで以下のようなタイムラインになります
- 日曜日 AM 7:30 : プライマリノードからセカンダリノードへフェイルオーバー (IOの停止発生)
- 日曜日 AM 7:30 : プライマリノードのパッチ適用開始
- 日曜日 AM 8:30 : プライマリノードのパッチ適用終了
- 日曜日 AM 8:30 : セカンダリノードからプライマリノードへフェイルオーバー (IOの停止発生)
- 日曜日 AM 8:30 : セカンダリノードのパッチ適用開始
- 日曜日 AM 9:30 : セカンダリノードのパッチ適用終了
※ パッチ適用がプライマリノードとセカンダリノードのどちらから行われるのかは不明
そのため、ユーザーに対してパッチ適用によるIO停止を避けてもらうためには「毎週日曜日 AM 7:00 - AM 9:30」をメンテナンス期間としてアナウンスする必要があります。
ただし、2時間半のうちIO停止は120秒のみとは言え、何も処理させない2時間枠を捻出することが難しい場面もあるでしょう。
試しにFSxNをSMBサーバーとして動作させている状態で、SMBでファイルオープン中にフェイルオーバーが発生した場合の挙動を確認してみました。
いきなりまとめ
- 検証したアプリケーションにおいては、いずれもフェイルオーバー、フェイルバックによりアプリケーションが閉じられるということはない
- つまりは、ファイルを開いている最中にフェイルオーバーが発生した際に、勝手にクローズされるという事象は起こらない
- 検証したアプリケーションにおいては、フェイルオーバー発生前に保存していない内容について、フェイルオーバー完了後に正常に保存することが可能
- つまりは、ファイル編集中にフェイルオーバーが発生した際に編集中の内容がロストするという事象は起こらない
- フェイルオーバー、フェイルバックによってノードとのセッションは削除される
- ただし、フェイルオーバー、フェイルバック完了後にセッションは貼り直される
- フェイルオーバー処理、フェイルバック処理実施中にピンポイントで読み書きできるかは確認できず
- システムがSMBサーバーにアクセスする場合はタイムアウト値の確認と、フェイルオーバー試験を行おう
やってみた
検証環境
検証環境は以下のとおりです。
AD DCのEC2インスタンスからSMBでファイルをオープンしている状態でフェイルオーバー/フェイルバックを発生させてみて、どのような挙動をするのか確認してみます。
ファイルをオープンするのに使用したアプリケーションは以下のとおりです。
- LibreOffice Calc
- LibreOffice Writer
- メモ帳
- Microsoft Edge
- PDFの閲覧
- ワードパッド
- ペイント
確認観点は以下のとおりです。
- フェイルオーバーしたタイミングで開いているファイルは閉じられてしまうのか
- フェイルオーバーしたタイミングで編集中で、未保存のデータはどうなるのか
- フェイルオーバー完了後に上書き保存することはできるのか
フェイルオーバー前準備
フェイルオーバー前の準備として各種ファイルをオープンにしておきます。
LibreOffice Calcとワードパッド、メモ帳は各ファイル名を記入した状態で保存します。その後1
と書き込み、上書き保存はしていない状態にしておきます。
AD DCに別ユーザーCORP\test-user01
でRDP接続し、LibreOffice Calcとワードパッド、メモ帳で開いているファイルを確認します。
追記した1
は保存されていないので、当然表示されていませんね。
フェイルオーバー前のSMBセッションは以下のとおりです。
::> cifs session show
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
Connection Session Open Idle Connection
ID ID Workstation Windows User Files Time Count
---------- ------- ---------------- ---------------- --------- ------------ ---------------
651621422 16689214319128215553 1h 29m 11s 1
10.0.0.139 CORP\ 6
Administrator
651621422 16689214319128215556 1h 32m 20s 1
10.0.0.139 CORP\test-user01 4
2 entries were displayed.
::> cifs session show -instance
Vserver: svm
Node: FsxId0e64a4f5386f74c87-01
Session ID: 16689214319128215553
Connection ID: 651621422
Incoming Data LIF IP Address: 10.0.8.246
Workstation IP Address: 10.0.0.139
Authentication Mechanism: Kerberos
User Authenticated as: domain-user
Windows User: CORP\Administrator
UNIX User: root
Open Shares: 2
Open Files: 6
Open Other: 0
Connected Time: 1h 58m 59s
Idle Time: 1h 29m 15s
Protocol Version: SMB3_1
Continuously Available: No
Is Session Signed: false
NetBIOS Name: -
SMB Encryption Status: encrypted
Large MTU Enabled: true
Connection Count: 1
Active Shares: share, vol_ntfs_dst
Node: FsxId0e64a4f5386f74c87-01
Session ID: 16689214319128215556
Connection ID: 651621422
Incoming Data LIF IP Address: 10.0.8.246
Workstation IP Address: 10.0.0.139
Authentication Mechanism: Kerberos
User Authenticated as: domain-user
Windows User: CORP\test-user01
UNIX User: root
Open Shares: 1
Open Files: 4
Open Other: 0
Connected Time: 1h 34m 37s
Idle Time: 1h 32m 24s
Protocol Version: SMB3_1
Continuously Available: No
Is Session Signed: false
NetBIOS Name: -
SMB Encryption Status: encrypted
Large MTU Enabled: true
Connection Count: 1
Active Shares: vol_ntfs_dst
2 entries were displayed.
::> cifs session file show
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
Connection: 651621422
Session: 16689214319128215553
Connection Count: 1
File File Open Hosting Continuously
ID Type Mode Volume Share Available
------- --------- ---- --------------- --------------------- ------------
201 Regular rw vol_ntfs_dst vol_ntfs_dst No
Path: test3.ods
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
Connection: 651621422
Session: 16689214319128215556
Connection Count: 1
File File Open Hosting Continuously
ID Type Mode Volume Share Available
------- --------- ---- --------------- --------------------- ------------
255 Regular rw vol_ntfs_dst vol_ntfs_dst No
Path: test3.ods
2 entries were displayed.
フェイルオーバー実施
それではフェイルオーバーを実施します。
フェイルオーバーを実施するために、FSxNファイルシステムのスループットキャパシティを変更します。
スループットキャパシティ変更後、FSxNファイルシステムへSSH接続をしているセッションが閉じられました。フェイルオーバーが発生したようです。
再度SSH接続をして、SMBセッションを確認します。
::> cifs session show
Node: FsxId0e64a4f5386f74c87-02
Vserver: svm
Connection Session Open Idle Connection
ID ID Workstation Windows User Files Time Count
---------- ------- ---------------- ---------------- --------- ------------ ---------------
1343263384 2258555213126303745 44s 1
10.0.0.139 CORP\test-user01 2
1343263384 2258555213126303746 34s 1
10.0.0.139 CORP\ 2
Administrator
2 entries were displayed.
::> cifs session show -instance
Vserver: svm
Node: FsxId0e64a4f5386f74c87-02
Session ID: 2258555213126303745
Connection ID: 1343263384
Incoming Data LIF IP Address: 10.0.8.246
Workstation IP Address: 10.0.0.139
Authentication Mechanism: Kerberos
User Authenticated as: domain-user
Windows User: CORP\test-user01
UNIX User: root
Open Shares: 1
Open Files: 2
Open Other: 0
Connected Time: 4m 46s
Idle Time: 47s
Protocol Version: SMB3_1
Continuously Available: No
Is Session Signed: false
NetBIOS Name: -
SMB Encryption Status: encrypted
Large MTU Enabled: true
Connection Count: 1
Active Shares: vol_ntfs_dst
Node: FsxId0e64a4f5386f74c87-02
Session ID: 2258555213126303746
Connection ID: 1343263384
Incoming Data LIF IP Address: 10.0.8.246
Workstation IP Address: 10.0.0.139
Authentication Mechanism: Kerberos
User Authenticated as: domain-user
Windows User: CORP\Administrator
UNIX User: root
Open Shares: 1
Open Files: 2
Open Other: 0
Connected Time: 4m 46s
Idle Time: 37s
Protocol Version: SMB3_1
Continuously Available: No
Is Session Signed: false
NetBIOS Name: -
SMB Encryption Status: encrypted
Large MTU Enabled: true
Connection Count: 1
Active Shares: vol_ntfs_dst
2 entries were displayed.
::> cifs session file show
Warning: Unable to list entries on node FsxId0e64a4f5386f74c87-01. RPC: Couldn't make connection [from mgwd on node "FsxId0e64a4f5386f74c87-02" (VSID: -1) to mgwd
at 198.19.2.237]
Node: FsxId0e64a4f5386f74c87-02
Vserver: svm
Connection: 1343263384
Session: 2258555213126303746
Connection Count: 1
File File Open Hosting Continuously
ID Type Mode Volume Share Available
------- --------- ---- --------------- --------------------- ------------
13 Regular rw vol_ntfs_dst vol_ntfs_dst No
Path: test3.ods
::> cifs session file show -instance
Warning: Unable to list entries on node FsxId0e64a4f5386f74c87-01. RPC: Couldn't make connection [from mgwd on node "FsxId0e64a4f5386f74c87-02" (VSID: -1) to mgwd
at 198.19.2.237]
Node: FsxId0e64a4f5386f74c87-02
Vserver: svm
File ID: 13
Connection ID: 1343263384
Session ID: 2258555213126303746
Connection Count: 1
File Type: Regular
Open Mode: rw
Aggregate Hosting File: aggr1
Volume Hosting File: vol_ntfs_dst
CIFS Share: vol_ntfs_dst
Path from CIFS Share: test3.ods
Share Mode: rw
Range Locks: 0
Continuously Available: No
Reconnected: No
FlexGroup MSID: 0
どちらのSMBセッションもフェイルオーバーしてアクティブとなっているセカンダリノードFsxId0e64a4f5386f74c87-02
の方にセッションを貼り直していることが分かります。
また、LibreOffice Calcで開いているファイルもオープン状態になっています。
実際にRDP接続しているセッションを確認してみましょう。
両方ともファイルのアプリケーションは勝手にクローズされていないですね。
また、書き込んで未保存の1
という情報も残っています。
しばらくすると、フェイルバックが完了しました。SMBセッションを確認してみましょう。
::> cifs session show
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
Connection Session Open Idle Connection
ID ID Workstation Windows User Files Time Count
---------- ------- ---------------- ---------------- --------- ------------ ---------------
1491430371 3632716049427726337 57s 1
10.0.0.139 CORP\ 1
Administrator
::> cifs session show -instance
Vserver: svm
Node: FsxId0e64a4f5386f74c87-01
Session ID: 3632716049427726337
Connection ID: 1491430371
Incoming Data LIF IP Address: 10.0.8.246
Workstation IP Address: 10.0.0.139
Authentication Mechanism: Kerberos
User Authenticated as: domain-user
Windows User: CORP\Administrator
UNIX User: root
Open Shares: 1
Open Files: 1
Open Other: 0
Connected Time: 1m 58s
Idle Time: 1m 2s
Protocol Version: SMB3_1
Continuously Available: No
Is Session Signed: false
NetBIOS Name: -
SMB Encryption Status: encrypted
Large MTU Enabled: true
Connection Count: 1
Active Shares: vol_ntfs_dst
::> cifs session file show
This table is currently empty.
Warning: Unable to list entries on node FsxId0e64a4f5386f74c87-02. RPC: Couldn't make connection [from mgwd on node "FsxId0e64a4f5386f74c87-01" (VSID: -1) to mgwd
at 198.19.2.65]
1つSMBセッションはプライマリノードFsxId0e64a4f5386f74c87-01
の方に貼り直されていますが、もう一つのSMBセッションは消えていますね。
また、LibreOffice Calcでファイルオープンしていた情報も消えています。oplockをクローズした影響でしょうか。
メンテナンスアクティビティ中のデータの整合性を確保するために、FSx for ONTAP は、メンテナンスを開始する前に、すべての日和見ロックを閉じ、ファイルシステムをホストしている基になるストレージボリュームへの保留中の書き込みオペレーションを完了します。
ただし、両RDPセッションを確認したところ、フェイルバック後もファイルのアプリケーションは勝手にクローズされていませんでした。
少し待つと、AWSマネジメントコンソール上からスループットキャパシティの更新が完了したことを確認できました。
再度SMBセッションを確認すると、消えていたもう片方のセッションCORP\test-user01
も貼り直されていました。
::> cifs session show
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
Connection Session Open Idle Connection
ID ID Workstation Windows User Files Time Count
---------- ------- ---------------- ---------------- --------- ------------ ---------------
1491430371 3632716049427726337 25s 1
10.0.0.139 CORP\ 1
Administrator
1491430371 3632716049427726338 33s 1
10.0.0.139 CORP\test-user01 1
2 entries were displayed.
::> cifs session show -instance
Vserver: svm
Node: FsxId0e64a4f5386f74c87-01
Session ID: 3632716049427726337
Connection ID: 1491430371
Incoming Data LIF IP Address: 10.0.8.246
Workstation IP Address: 10.0.0.139
Authentication Mechanism: Kerberos
User Authenticated as: domain-user
Windows User: CORP\Administrator
UNIX User: root
Open Shares: 1
Open Files: 1
Open Other: 0
Connected Time: 10m 55s
Idle Time: 34s
Protocol Version: SMB3_1
Continuously Available: No
Is Session Signed: false
NetBIOS Name: -
SMB Encryption Status: encrypted
Large MTU Enabled: true
Connection Count: 1
Active Shares: vol_ntfs_dst
Node: FsxId0e64a4f5386f74c87-01
Session ID: 3632716049427726338
Connection ID: 1491430371
Incoming Data LIF IP Address: 10.0.8.246
Workstation IP Address: 10.0.0.139
Authentication Mechanism: Kerberos
User Authenticated as: domain-user
Windows User: CORP\test-user01
UNIX User: root
Open Shares: 1
Open Files: 1
Open Other: 0
Connected Time: 1m 56s
Idle Time: 42s
Protocol Version: SMB3_1
Continuously Available: No
Is Session Signed: false
NetBIOS Name: -
SMB Encryption Status: encrypted
Large MTU Enabled: true
Connection Count: 1
Active Shares: vol_ntfs_dst
2 entries were displayed.
::> cifs session file show
This table is currently empty.
単純に時間がかかっていたようです。
フェイルオーバー完了後
フェイルオーバー完了後にCORP\Administrator
のエクスプローラーをリロードします。
リロード後のSMBセッションは以下のとおりです。
::> cifs session show
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
Connection Session Open Idle Connection
ID ID Workstation Windows User Files Time Count
---------- ------- ---------------- ---------------- --------- ------------ ---------------
1491430371 3632716049427726337 11s 1
10.0.0.139 CORP\ 3
Administrator
1491430371 3632716049427726338 1m 25s 1
10.0.0.139 CORP\test-user01 1
2 entries were displayed.
::> cifs session show -instance
Vserver: svm
Node: FsxId0e64a4f5386f74c87-01
Session ID: 3632716049427726337
Connection ID: 1491430371
Incoming Data LIF IP Address: 10.0.8.246
Workstation IP Address: 10.0.0.139
Authentication Mechanism: Kerberos
User Authenticated as: domain-user
Windows User: CORP\Administrator
UNIX User: root
Open Shares: 1
Open Files: 3
Open Other: 0
Connected Time: 11m 46s
Idle Time: 19s
Protocol Version: SMB3_1
Continuously Available: No
Is Session Signed: false
NetBIOS Name: -
SMB Encryption Status: encrypted
Large MTU Enabled: true
Connection Count: 1
Active Shares: vol_ntfs_dst
Node: FsxId0e64a4f5386f74c87-01
Session ID: 3632716049427726338
Connection ID: 1491430371
Incoming Data LIF IP Address: 10.0.8.246
Workstation IP Address: 10.0.0.139
Authentication Mechanism: Kerberos
User Authenticated as: domain-user
Windows User: CORP\test-user01
UNIX User: root
Open Shares: 1
Open Files: 1
Open Other: 0
Connected Time: 2m 47s
Idle Time: 1m 33s
Protocol Version: SMB3_1
Continuously Available: No
Is Session Signed: false
NetBIOS Name: -
SMB Encryption Status: encrypted
Large MTU Enabled: true
Connection Count: 1
Active Shares: vol_ntfs_dst
2 entries were displayed.
::> cifs session file show
This table is currently empty.
Idle Timeがリフレッシュされたことが分かります。
それでは気になるフェイルオーバーしたタイミングで編集中で、未保存のデータをフェイルオーバー完了後に上書き保存することはできるのか確認してみます。
すると、正常に上書き保存できました。
上書き保存後もう一つのセッションでファイルを開き直すと、正常に反映されていることを確認できました。
ということで、問題なさそうです。
参考までにこの時のSMBセッションは以下のとおりです。
::> cifs session show
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
Connection Session Open Idle Connection
ID ID Workstation Windows User Files Time Count
---------- ------- ---------------- ---------------- --------- ------------ ---------------
1491430371 3632716049427726337 48s 1
10.0.0.139 CORP\ 4
Administrator
1491430371 3632716049427726338 42s 1
10.0.0.139 CORP\test-user01 2
2 entries were displayed.
::> cifs session show -instance
Vserver: svm
Node: FsxId0e64a4f5386f74c87-01
Session ID: 3632716049427726337
Connection ID: 1491430371
Incoming Data LIF IP Address: 10.0.8.246
Workstation IP Address: 10.0.0.139
Authentication Mechanism: Kerberos
User Authenticated as: domain-user
Windows User: CORP\Administrator
UNIX User: root
Open Shares: 1
Open Files: 4
Open Other: 0
Connected Time: 16m 57s
Idle Time: 52s
Protocol Version: SMB3_1
Continuously Available: No
Is Session Signed: false
NetBIOS Name: -
SMB Encryption Status: encrypted
Large MTU Enabled: true
Connection Count: 1
Active Shares: vol_ntfs_dst
Node: FsxId0e64a4f5386f74c87-01
Session ID: 3632716049427726338
Connection ID: 1491430371
Incoming Data LIF IP Address: 10.0.8.246
Workstation IP Address: 10.0.0.139
Authentication Mechanism: Kerberos
User Authenticated as: domain-user
Windows User: CORP\test-user01
UNIX User: root
Open Shares: 1
Open Files: 2
Open Other: 0
Connected Time: 7m 58s
Idle Time: 46s
Protocol Version: SMB3_1
Continuously Available: No
Is Session Signed: false
NetBIOS Name: -
SMB Encryption Status: encrypted
Large MTU Enabled: true
Connection Count: 1
Active Shares: vol_ntfs_dst
2 entries were displayed.
::> cifs session file show
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
Connection: 1491430371
Session: 3632716049427726337
Connection Count: 1
File File Open Hosting Continuously
ID Type Mode Volume Share Available
------- --------- ---- --------------- --------------------- ------------
40 Regular rw vol_ntfs_dst vol_ntfs_dst No
Path: test3.ods
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
Connection: 1491430371
Session: 3632716049427726338
Connection Count: 1
File File Open Hosting Continuously
ID Type Mode Volume Share Available
------- --------- ---- --------------- --------------------- ------------
102 Regular rw vol_ntfs_dst vol_ntfs_dst No
Path: test3.ods
2 entries were displayed.
::> cifs session file show -instance
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
File ID: 40
Connection ID: 1491430371
Session ID: 3632716049427726337
Connection Count: 1
File Type: Regular
Open Mode: rw
Aggregate Hosting File: aggr1
Volume Hosting File: vol_ntfs_dst
CIFS Share: vol_ntfs_dst
Path from CIFS Share: test3.ods
Share Mode: rw
Range Locks: 0
Continuously Available: No
Reconnected: No
FlexGroup MSID: 0
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
File ID: 102
Connection ID: 1491430371
Session ID: 3632716049427726338
Connection Count: 1
File Type: Regular
Open Mode: rw
Aggregate Hosting File: aggr1
Volume Hosting File: vol_ntfs_dst
CIFS Share: vol_ntfs_dst
Path from CIFS Share: test3.ods
Share Mode: rw
Range Locks: 0
Continuously Available: No
Reconnected: No
FlexGroup MSID: 0
2 entries were displayed.
再フェイルオーバー前
念には念をと、もう一度確認してみます。
ワードパットで開いていたファイルはLibreOffice Writerで開いてみます。それ以外は同じです。今度は2
と入力して、上書き保存せずに放置します。
ファイルロックされている影響でもう片方のセッションでLibreOffice Writerでファイルを開こうとすると、以下のようなポップアップが表示されます。
読み込み専用ではなく、Open
をクリックして通常に開きます。
この時のSMBセッションは以下のとおりです。
::> cifs session show
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
Connection Session Open Idle Connection
ID ID Workstation Windows User Files Time Count
---------- ------- ---------------- ---------------- --------- ------------ ---------------
1491430371 3632716049427726337 53s 1
10.0.0.139 CORP\ 5
Administrator
1491430371 3632716049427726338 35s 1
10.0.0.139 CORP\test-user01 5
2 entries were displayed.
::> cifs session show -instance
Vserver: svm
Node: FsxId0e64a4f5386f74c87-01
Session ID: 3632716049427726337
Connection ID: 1491430371
Incoming Data LIF IP Address: 10.0.8.246
Workstation IP Address: 10.0.0.139
Authentication Mechanism: Kerberos
User Authenticated as: domain-user
Windows User: CORP\Administrator
UNIX User: root
Open Shares: 1
Open Files: 5
Open Other: 0
Connected Time: 26m 21s
Idle Time: 58s
Protocol Version: SMB3_1
Continuously Available: No
Is Session Signed: false
NetBIOS Name: -
SMB Encryption Status: encrypted
Large MTU Enabled: true
Connection Count: 1
Active Shares: vol_ntfs_dst
Node: FsxId0e64a4f5386f74c87-01
Session ID: 3632716049427726338
Connection ID: 1491430371
Incoming Data LIF IP Address: 10.0.8.246
Workstation IP Address: 10.0.0.139
Authentication Mechanism: Kerberos
User Authenticated as: domain-user
Windows User: CORP\test-user01
UNIX User: root
Open Shares: 1
Open Files: 5
Open Other: 0
Connected Time: 17m 22s
Idle Time: 40s
Protocol Version: SMB3_1
Continuously Available: No
Is Session Signed: false
NetBIOS Name: -
SMB Encryption Status: encrypted
Large MTU Enabled: true
Connection Count: 1
Active Shares: vol_ntfs_dst
2 entries were displayed.
::> cifs session file show
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
Connection: 1491430371
Session: 3632716049427726337
Connection Count: 1
File File Open Hosting Continuously
ID Type Mode Volume Share Available
------- --------- ---- --------------- --------------------- ------------
342 Regular rw vol_ntfs_dst vol_ntfs_dst No
Path: test2.rtf
410 Regular rw vol_ntfs_dst vol_ntfs_dst No
Path: test3.ods
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
Connection: 1491430371
Session: 3632716049427726338
Connection Count: 1
File File Open Hosting Continuously
ID Type Mode Volume Share Available
------- --------- ---- --------------- --------------------- ------------
447 Regular rw vol_ntfs_dst vol_ntfs_dst No
Path: test3.ods
466 Regular rw vol_ntfs_dst vol_ntfs_dst No
Path: test2.rtf
4 entries were displayed.
::> cifs session file show -instance
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
File ID: 342
Connection ID: 1491430371
Session ID: 3632716049427726337
Connection Count: 1
File Type: Regular
Open Mode: rw
Aggregate Hosting File: aggr1
Volume Hosting File: vol_ntfs_dst
CIFS Share: vol_ntfs_dst
Path from CIFS Share: test2.rtf
Share Mode: rw
Range Locks: 0
Continuously Available: No
Reconnected: No
FlexGroup MSID: 0
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
File ID: 410
Connection ID: 1491430371
Session ID: 3632716049427726337
Connection Count: 1
File Type: Regular
Open Mode: rw
Aggregate Hosting File: aggr1
Volume Hosting File: vol_ntfs_dst
CIFS Share: vol_ntfs_dst
Path from CIFS Share: test3.ods
Share Mode: rw
Range Locks: 0
Continuously Available: No
Reconnected: No
FlexGroup MSID: 0
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
File ID: 447
Connection ID: 1491430371
Session ID: 3632716049427726338
Connection Count: 1
File Type: Regular
Open Mode: rw
Aggregate Hosting File: aggr1
Volume Hosting File: vol_ntfs_dst
CIFS Share: vol_ntfs_dst
Path from CIFS Share: test3.ods
Share Mode: rw
Range Locks: 0
Continuously Available: No
Reconnected: No
FlexGroup MSID: 0
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
File ID: 466
Connection ID: 1491430371
Session ID: 3632716049427726338
Connection Count: 1
File Type: Regular
Open Mode: rw
Aggregate Hosting File: aggr1
Volume Hosting File: vol_ntfs_dst
CIFS Share: vol_ntfs_dst
Path from CIFS Share: test2.rtf
Share Mode: rw
Range Locks: 0
Continuously Available: No
Reconnected: No
FlexGroup MSID: 0
4 entries were displayed.
再度フェイルオーバー実施
それでは再度フェイルオーバーを行います。
フェイルオーバー開始後、SMBセッションを確認します。
::> network interface show -lif nfs_smb_management_1 -vserver svm -fields is-home
vserver lif is-home
------- -------------------- -------
svm nfs_smb_management_1 false
::> cifs session show
Node: FsxId0e64a4f5386f74c87-02
Vserver: svm
Connection Session Open Idle Connection
ID ID Workstation Windows User Files Time Count
---------- ------- ---------------- ---------------- --------- ------------ ---------------
1492574239 2585066186110664705 1m 6s 1
10.0.0.139 CORP\ 2
Administrator
::> cifs session show -instance
Vserver: svm
Node: FsxId0e64a4f5386f74c87-02
Session ID: 2585066186110664705
Connection ID: 1492574239
Incoming Data LIF IP Address: 10.0.8.246
Workstation IP Address: 10.0.0.139
Authentication Mechanism: Kerberos
User Authenticated as: domain-user
Windows User: CORP\Administrator
UNIX User: root
Open Shares: 1
Open Files: 2
Open Other: 0
Connected Time: 1m 9s
Idle Time: 1m 9s
Protocol Version: SMB3_1
Continuously Available: No
Is Session Signed: false
NetBIOS Name: -
SMB Encryption Status: encrypted
Large MTU Enabled: true
Connection Count: 1
Active Shares: vol_ntfs_dst
::> cifs session file show
This table is currently empty.
Warning: Unable to list entries on node FsxId0e64a4f5386f74c87-01. RPC: Couldn't make connection [from mgwd on node "FsxId0e64a4f5386f74c87-02" (VSID: -1) to mgwd
at 198.19.2.237]
CORP\Administrator
がセカンダリノードに接続しているセッションを確認できました。
RDP接続でも、セカンダリノードへフェイルオーバーしている状態でもファイルはクローズされていないことを確認できました。
このセカンダリノードがアクティブな状態でLibreOffice Calc、LibreOffice Writerで開いているファイルを更新してみます。
別ユーザーも読み取り専用ではなく、読み書きできる状態で開いているため、警告が出ました。ロック無視で上書きします。
はい、問題なく上書き保存できました。
もう片方のRDP接続セッションでも一度ファイルを閉じて開き直すことで、保存結果が反映されていることを確認できました。
しばらくするとフェイルバックが行われ、スループットキャパシティの変更が完了しました。
再度RDP接続セッションを確認しましたが、特に動きはありませんでした。
この時のSMBセッションは以下のとおりです。
::> network interface show -vserver svm
Logical Status Network Current Current Is
Vserver Interface Admin/Oper Address/Mask Node Port Home
----------- ---------- ---------- ------------------ ------------- ------- ----
svm
iscsi_1 up/up 10.0.8.90/24 FsxId0e64a4f5386f74c87-01
e0e true
iscsi_2 up/up 10.0.8.210/24 FsxId0e64a4f5386f74c87-02
e0e true
nfs_smb_management_1
up/up 10.0.8.246/24 FsxId0e64a4f5386f74c87-01
e0e true
3 entries were displayed.
::> cifs session show
Node: FsxId0e64a4f5386f74c87-01
Vserver: svm
Connection Session Open Idle Connection
ID ID Workstation Windows User Files Time Count
---------- ------- ---------------- ---------------- --------- ------------ ---------------
2515696770 816558907437613057 11m 29s 1
10.0.0.139 CORP\test-user01 2
2515696770 816558907437613058 11m 29s 1
10.0.0.139 CORP\ 2
Administrator
2 entries were displayed.
::> cifs session show -instance
Vserver: svm
Node: FsxId0e64a4f5386f74c87-01
Session ID: 816558907437613057
Connection ID: 2515696770
Incoming Data LIF IP Address: 10.0.8.246
Workstation IP Address: 10.0.0.139
Authentication Mechanism: Kerberos
User Authenticated as: domain-user
Windows User: CORP\test-user01
UNIX User: root
Open Shares: 1
Open Files: 2
Open Other: 0
Connected Time: 11m 50s
Idle Time: 11m 37s
Protocol Version: SMB3_1
Continuously Available: No
Is Session Signed: false
NetBIOS Name: -
SMB Encryption Status: encrypted
Large MTU Enabled: true
Connection Count: 1
Active Shares: vol_ntfs_dst
Node: FsxId0e64a4f5386f74c87-01
Session ID: 816558907437613058
Connection ID: 2515696770
Incoming Data LIF IP Address: 10.0.8.246
Workstation IP Address: 10.0.0.139
Authentication Mechanism: Kerberos
User Authenticated as: domain-user
Windows User: CORP\Administrator
UNIX User: root
Open Shares: 1
Open Files: 2
Open Other: 0
Connected Time: 11m 50s
Idle Time: 11m 37s
Protocol Version: SMB3_1
Continuously Available: No
Is Session Signed: false
NetBIOS Name: -
SMB Encryption Status: encrypted
Large MTU Enabled: true
Connection Count: 1
Active Shares: vol_ntfs_dst
2 entries were displayed.
::> cifs session file show
This table is currently empty.
ユーザーやシステムとの調整を行おう
Amazon FSx for NetApp ONTAPにSMB接続し、ファイルオープン中にフェイルオーバーが発生した場合の挙動を確認してみました。
まとめると以下のとおりです。
- 検証したアプリケーションにおいては、いずれもフェイルオーバー、フェイルバックによりアプリケーションが閉じられるということはない
- つまりは、ファイルを開いている最中にフェイルオーバーが発生した際に、勝手にクローズされるという事象は起こらない
- 検証したアプリケーションにおいては、フェイルオーバー発生前に保存していない内容について、フェイルオーバー完了後に正常に保存することが可能
- つまりは、ファイル編集中にフェイルオーバーが発生した際に編集中の内容がロストするという事象は起こらない
- フェイルオーバー、フェイルバックによってノードとのセッションは削除される
- ただし、フェイルオーバー、フェイルバック完了後にセッションは貼り直される
- フェイルオーバー処理、フェイルバック処理実施中にピンポイントで読み書きできるかは確認できず
手元にExcelやAdobe Acrobatの準備ができない関係上、限られたアプリケーションからの動作確認にはなりますが、おそらく同様の挙動になるのではないかと推測しています。
「アプリケーションが閉じられない」、「編集中の内容がロストされない」のであれば、人がSMBサーバーとして使用する分にはユーザー影響は小さいのではと考えます。
一方で、システムがSMBサーバーを利用する場合は注意が必要です。60秒のIO停止によってタイムアウト判定され、実行中の処理が停止してしまう可能性があります。
もし、パッチ適用が走っている時間を完全に回避することが難しいのであれば、タイムアウト値を事前に確認し、可能であればフェイルオーバー試験まで実施しておくと良いでしょう。
この記事が誰かの助けになれば幸いです。
以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!