[Amazon FSx for NetApp ONTAP] SMBでファイルオープン中にフェイルオーバーが発生した場合の挙動を確認してみた

[Amazon FSx for NetApp ONTAP] SMBでファイルオープン中にフェイルオーバーが発生した場合の挙動を確認してみた

ユーザーやシステムとの調整を行おう
Clock Icon2024.12.13

実際フェイルオーバーが発生するとユーザーにどんな影響があるのか気になる

こんにちは、のんピ(@non____97)です。

皆さんはAmazon FSx for NetApp ONTAP(以降FSxN)を使用していて、実際フェイルオーバーが発生するとユーザーにどんな影響があるのか気になったことはありますか? 私はあります。

FSxNでは週次30分のメンテナンスウィンドウを設定する必要があります。このメンテナンスウィンドウの範囲内でメンテナンスが開始され、パッチ適用が行われます。

パッチ適用前にフェイルオーバーするタイミングで60秒未満のIO停止が発生します。そのため、負荷の高いタイミングを避けてメンテナンスウィンドウを設定するのが望ましいです。

パッチ適用にかかる時間は1ノードあたり通常最大1時間とされています。

パッチ適用が発生すると、ファイルシステムの各ファイルサーバーに一度に 1 つずつパッチが適用され、各ファイルサーバーにパッチを適用するのに通常最大 1 時間かかります。HA ペア内でファイルサーバーにパッチを適用する前に、ファイルシステムは自動的にファイルサーバーの HA パートナーにフェイルオーバーします。

Amazon FSx メンテナンスウィンドウでのパフォーマンスの最適化 - FSx for ONTAP

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サーバーにアクセスする場合はタイムアウト値の確認と、フェイルオーバー試験を行おう

やってみた

検証環境

検証環境は以下のとおりです。

[Amazon FSx for NetApp ONTAP] SMBでファイルオープン中にフェイルオーバーが発生した場合の挙動を確認してみた検証環境構成図.png

AD DCのEC2インスタンスからSMBでファイルをオープンしている状態でフェイルオーバー/フェイルバックを発生させてみて、どのような挙動をするのか確認してみます。

ファイルをオープンするのに使用したアプリケーションは以下のとおりです。

  • LibreOffice Calc
  • LibreOffice Writer
  • メモ帳
  • Microsoft Edge
    • PDFの閲覧
  • ワードパッド
  • ペイント

確認観点は以下のとおりです。

  • フェイルオーバーしたタイミングで開いているファイルは閉じられてしまうのか
  • フェイルオーバーしたタイミングで編集中で、未保存のデータはどうなるのか
    • フェイルオーバー完了後に上書き保存することはできるのか

フェイルオーバー前準備

フェイルオーバー前の準備として各種ファイルをオープンにしておきます。

1.ドメインのAdministratorでファイルをオープン.png

LibreOffice Calcとワードパッド、メモ帳は各ファイル名を記入した状態で保存します。その後1と書き込み、上書き保存はしていない状態にしておきます。

AD DCに別ユーザーCORP\test-user01でRDP接続し、LibreOffice Calcとワードパッド、メモ帳で開いているファイルを確認します。

2.test-user01でファイルをオープン.png

追記した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ファイルシステムのスループットキャパシティを変更します。

3.スループットキャパ容量を更新.png

スループットキャパシティ変更後、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接続しているセッションを確認してみましょう。

4.ファイルはクローズされない.png

5.ファイルはクローズされない2.png

両方ともファイルのアプリケーションは勝手にクローズされていないですね。

また、書き込んで未保存の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 は、メンテナンスを開始する前に、すべての日和見ロックを閉じ、ファイルシステムをホストしている基になるストレージボリュームへの保留中の書き込みオペレーションを完了します。

Amazon FSx メンテナンスウィンドウでのパフォーマンスの最適化 - FSx for ONTAP

ただし、両RDPセッションを確認したところ、フェイルバック後もファイルのアプリケーションは勝手にクローズされていませんでした。

6.フェイルバック後もクローズされない.png

7.フェイルバック後もクローズされない2.png

少し待つと、AWSマネジメントコンソール上からスループットキャパシティの更新が完了したことを確認できました。

8.スループットキャパシティ更新済み.png

再度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がリフレッシュされたことが分かります。

それでは気になるフェイルオーバーしたタイミングで編集中で、未保存のデータをフェイルオーバー完了後に上書き保存することはできるのか確認してみます。

すると、正常に上書き保存できました。

9.フェイルオーバー前に未保存だったファイルの更新ができた.png

上書き保存後もう一つのセッションでファイルを開き直すと、正常に反映されていることを確認できました。

10.test-user01でもファイルの更新が反映されていることを確認.png

ということで、問題なさそうです。

参考までにこの時の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と入力して、上書き保存せずに放置します。

11.フェイルオーバー前_ドメインAdministrator.png

ファイルロックされている影響でもう片方のセッションでLibreOffice Writerでファイルを開こうとすると、以下のようなポップアップが表示されます。

12.test-user01でWriter起動時のポップアップ.png

読み込み専用ではなく、Openをクリックして通常に開きます。

13.フェイルオーバー前_ドメインtest-user01.png

この時の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接続でも、セカンダリノードへフェイルオーバーしている状態でもファイルはクローズされていないことを確認できました。

14.セカンダリノードが動作中でもファイルはクローズされない.png

15.セカンダリノードが動作中でもファイルはクローズされない2.png

このセカンダリノードがアクティブな状態でLibreOffice Calc、LibreOffice Writerで開いているファイルを更新してみます。

別ユーザーも読み取り専用ではなく、読み書きできる状態で開いているため、警告が出ました。ロック無視で上書きします。

16.セカンダリノード動作中にファイル更新.png

はい、問題なく上書き保存できました。

17.問題なく保存できたこと.png

もう片方のRDP接続セッションでも一度ファイルを閉じて開き直すことで、保存結果が反映されていることを確認できました。

19.一度ファイルを閉じて開き直すことで反映されることを確認.png

しばらくするとフェイルバックが行われ、スループットキャパシティの変更が完了しました。

20.スループットキャパシティ変更完了.png

再度RDP接続セッションを確認しましたが、特に動きはありませんでした。

21.スループットキャパシティ変更完了後も特に動きなし.png

22.スループットキャパシティ変更完了後も特に動きなし_2.png

この時の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)でした!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.