Filesのバージョン3.7ごろに追加された機能、SMB CA(継続的可用性)共有を試してみました。
https://portal.nutanix.com/page/documents/details?targetId=Files-v4_0:fil-fs-persistent-handles-c.html
この機能はFSVMがノード障害などにより停止した場合に、フェイルオーバーが完了するまでの間、クライアントとFiles間の接続を切断することなく維持することができます。
ファイルサーバーがアプリケーションと連動している場合に利用することが想定された機能です。
なお、SMB CA自体はSMB3から提供されたMicrosoftの技術であり、それをFilesでも利用できるようになった形です。(名前の通りSMBプロトコルのみ対応)
SMB CA無効時の挙動
SMB CAはFilesに作成した共有フォルダに対して設定を行います。
まずは作成直後の共有フォルダのステータス確認してみます。
FSVMにて以下のコマンドを実行します。(以降、コマンドはすべてFSVMから実行します)
afs share.list sharename="{共有フォルダ名}"
◆実行結果(「CA Test」という共有フォルダに対して実行した例)
nutanix@NTNX-192-168-45-125-A-FSVM:~$ afs share.list sharename="CA Test" Filtering the share list based on 'CA Test' Share name: CA Test Share UUID: 1fe8e2c2-8bff-4f65-823e-f2302cd4fd87 File server name: omrisFiles01 Share type: GENERAL Protocol type: SMB Secondary Protocol type: None Self-service Restore: ENABLED Volume group set UUID: 84ffa0cc-76f8-4f12-a80e-074fb446bd9b Share path: /CA Test File-Blocking patterns: Share Workload Type: Default SMB3 Encryption: DISABLED Compression : ENABLED Files-at-root : NOT APPLICABLE Continuous Availability: DISABLED Status type: Available
この状態でファイルコピーを実施していた共有フォルダに紐付いたFSVMを強制停止すると、コピー処理は停止され再実行を求めるウィンドウが表示されてしまいます。
SMB CAを有効化
共有フォルダに以下のコマンドを実行します。
afs share.edit "{共有フォルダ名}" continuous_availability=true
nutanix@NTNX-192-168-45-125-A-FSVM:~$ afs share.list sharename="CA Test" Filtering the share list based on 'CA Test' Share name: CA Test Share UUID: 1fe8e2c2-8bff-4f65-823e-f2302cd4fd87 File server name: omrisFiles01 Share type: GENERAL Protocol type: SMB Secondary Protocol type: None Self-service Restore: ENABLED Volume group set UUID: 84ffa0cc-76f8-4f12-a80e-074fb446bd9b Share path: /CA Test File-Blocking patterns: Share Workload Type: Default SMB3 Encryption: DISABLED Compression : ENABLED Files-at-root : NOT APPLICABLE Continuous Availability: ENABLED Status type: Available
一時的にコピー処理が止まりますが・・・
数十秒するとコピー処理が再開されました。
このようにSMB CAを利用することで予期しないノード障害によって、FSVMが停止してしまった場合に処理を中断することなく、ファイルサーバーを利用することが可能になります。
通常用途の共有フォルダとして利用するなら単純にコピーの再実行をすれば良いですが、アプリケーションなどと連携して利用するなど、処理の中断が許されない用途で利用する場合に活用できる機能になります。