2024年12月18日水曜日

Files5.1から実装された共有フォルダのクローン機能

Nutanix Advent Calendar 2024 18日目の記事になります。

Nutanix Advent Calendar 2024 

先日Filesのバージョン5.1がリリースされました。

いくつかの機能が追加されており、本記事では共有フォルダのクローン機能について紹介します。


共有フォルダのクローン

共有フォルダのクローンはその名の通り、Files内に存在する共有フォルダをクローンする機能です。

まずは手順を紹介します。
FilesConsoleからクローンを行いたい共有フォルダ右の「︙」をクリックし、「Clone Share」を選択します。

クローンにて作成される共有フォルダ名を指定し、[Select a Snapshot]からクローン元となる日時を選択することができます。
ここで選択できるものとしては現時点の共有フォルダをクローンする、またはスナップショットをもとにクローンする2つの方法が選択できます。
なお、スナップショットと表記されていますが、SSRで指定したスケジュールでクローンできるポイントが選択できるようです。

クローンが完了すると、一覧に共有フォルダが表示されます。

実際にWindowsクライアントからクローンされた共有フォルダにアクセスしてみます。
クローンもとの共有フォルダに存在していた各種ファイルが存在することはもちろん、事前にNTFSアクセス権でフルコントロール設定していたユーザー権限についても、クローンした共有フォルダで同様の権限が付与されていることが確認できます。
クローン元でもUser01に対してフルコントロールを与えてました。

次にFiles側で設定できる各種項目も見ていきます。
先程の共有フォルダ以外にいくつかのオプションを加えた共有フォルダをいくつかクローンしてみました。
確認がしやすい編集画面を表示していますが、共有フォルダに対するクオータ設定、SSRや圧縮、ABEなどの各種オプションはクローン先でも同様に設定が反映されていることが確認できました。

◯ユーザーごとのクオータ設定
クローン元に設定は紹介していませんが、同様の設定であることが確認できました。
また、共有フォルダ側のクオータ設定についても引き継がれていました。

◯その他、各種オプション

こちらもそれぞれ、クローン元のオプションが引き継がれていまいた。


共有フォルダのクローン制限事項

共有フォルダのクローンにはいくつか制限事項が存在します。
まず、クローンした共有フォルダ自体を更にクローンすることはできないようです。
クローンを行おうとすると、グレーアウトして選択ができないようになっています。

このことから、クローンで作成した共有フォルダは通常の共有フォルダとは異なる状態で稼働しているものと思われます。
少し、CLIからも状態を見てみました。
まず通常の共有フォルダ
<afs> share.list sharename=share01
Filtering the share list based on 'share01'
Share name                              : share01
Share UUID                              : fb04e492-7a7a-4c02-a6f4-1c6a82713221
File server name                        : files01
Share type                              : GENERAL
Protocol type                           : SMB
Secondary Protocol type                 : None
Self-service Restore                    : ENABLED
Volume group set UUID                   : b0f09300-5e1a-4713-bab2-4f9247c47559
Share path                              : /share01
File-Blocking patterns                  :
Share Workload Type                     : Default
SMB3 Encryption                         : DISABLED
Compression                             : ENABLED
Longname                                : DISABLED
Worm                                    : DISABLED
Files-at-root                           : NOT APPLICABLE
Continuous Availability                 : DISABLED
Status type                             : Available
次にクローンした共有フォルダです。
<afs> share.list sharename=Clone20241218-01-Share01
Filtering the share list based on 'Clone20241218-01-Share01'
Share name                              : Clone20241218-01-Share01
Share UUID                              : af11b1bc-33c4-40d6-67e1-4ae066c21d09
File server name                        : files01
Share type                              : GENERAL
Protocol type                           : SMB
Secondary Protocol type                 : None
Self-service Restore                    : ENABLED
Volume group set UUID                   : b0f09300-5e1a-4713-bab2-4f9247c47559
Share path                              : /Clone20241218-01-Share01
File-Blocking patterns                  :
Share Workload Type                     : Default
SMB3 Encryption                         : DISABLED
Compression                             : ENABLED
Longname                                : DISABLED
Worm                                    : DISABLED
Files-at-root                           : NOT APPLICABLE
Continuous Availability                 : DISABLED
Status type                             : Available
Origin Share                            : share01 (fb04e492-7a7a-4c02-a6f4-1c6a82713221)
Origin Snapshot                         : afs-auto-snap_hourly-2024-12-18-1500 (99b9439f-ec09-4b1c-638a-928489538d07)
このようにクローン元の共有フォルダ情報を内部で持っているようです。

また、CLIを見ていると恐らく昔は存在しなかったクローン関連のコマンドが増えているようで、以下のコマンドにてクローンした共有フォルダと利用したスナップショット情報を表示できるようです。
<afs> share.clone_list share01
|--share01 ()
   |--Clone20241218-01-Share01 (afs-auto-snap_hourly-2024-12-18-1500)
   |--Clone20241218-Share01-03 (share-clone_470ab5d2-4f9a-446d-9233-300645d5e5e8_1734543254)
   |--Clone20241218-Share01-04 (share-clone_13f02c40-75e6-4596-ba2b-195c99625afb_1734543264)
   |--Clone20241218-Share01-05 (share-clone_ed6daf92-a107-4de4-9aa3-5a47b2588118_1734543274)
   |--Clone20241218-Share01-06 (share-clone_b1f6b9c3-4c83-417d-a16c-a1b6f8415270_1734543281)
   |--Clone20241218-Share01-07 (share-clone_3f4c6814-bd09-4b5c-98a1-43a3e1554227_1734543289)
   |--Clone20241218-Share01-08 (share-clone_a9055ee7-42b0-4f1a-8236-bce3f495f421_1734543298)
   |--Clone20241218-Share01-09 (share-clone_b90e1a85-881f-4269-9962-252edb43dd61_1734543305)
   |--Clone20241218-Share01-10 (share-clone_cfee606a-cddb-4507-b8b5-d663135c5df7_1734543317)
   |--Clone20241218-Share01-11 (share-clone_35ae5e7a-33ad-4af8-b5b9-a606322c29e3_1734543350)
<afs> share.clone_list share02
|--share02 ()
   |--Clone-share01 (afs-auto-snap_hourly-2024-12-18-0900)
   |--Clone20241218-Share02 (afs-auto-snap_hourly-2024-12-18-1500)
   |--Clone20241218-Share01-02 (share-clone_0f11c3d7-c67e-46af-ac79-dde422affedc_1734543244)
※適当に操作したので、いくつかクローン元と違う命名規則で作成してしまっていますね…

クローンした共有フォルダをクローンできない以外は以下のような制限が存在します。
以下公式ドキュメントを機械翻訳。[※]は検証時に判明した情報を記載しています。
------------------------------------------------------------------------------------------
・1つの共有は最大10個の共有クローンを持つことができます。
 ※10を超えてクローンするとエラーになってしまいました。
・共有のクローン作成では以下の操作がサポートされていません:
 →クローンを持つ共有元(親)共有の復元
 →階層化されたファイルを含む共有のクローン作成
・以下の機能が有効な場合、共有のクローン作成はサポートされていません:
 →ネストされた共有
  ※クローン元にネスト共有が存在する場合は、通常のフォルダとしてクローンされました。
 →書き込み不可・読み取り専用(WORM: Write Once, Read Many)共有
  (注)WORM共有はエンタープライズモードでクローン作成が可能です。
------------------------------------------------------------------------------------------
※エンタープライズモードなるものが存在するようですが、軽く調べてみても特に情報がなく、個人的に気になるところです。

まとめ

共有フォルダのクローン機能について簡単に紹介させていただきました。
実は最近Filesを触ってなかったのですが、いろいろな機能が追加されているようで今回紹介した機能以外にも結構気になるものが増えているなと感じました。
※検証開始当初、このクローン機能を使えば共有フォルダレベルのリストアにも使えるなと考えていましたが、共有フォルダのリストアについては別でしっかり機能が用意されていました。すごい

全然関係のない話ですが、今回のAdvent Calendarに参加したことで来年からはFilesについて改めて検証したいと思える良い機会になったと思いました。