[Amazon FSx for NetApp ONTAP] SMBファイル共有のパスに含まれるディレクトリの名前を変更する時の対応方法を確認してみた

[Amazon FSx for NetApp ONTAP] SMBファイル共有のパスに含まれるディレクトリの名前を変更する時の対応方法を確認してみた

SMBファイル共有のパスに含まれるディレクトリの名前を変更する時は注意しよう
Clock Icon2024.09.23

SMBファイル共有のパスに含まれるディレクトリの名前を変更したい

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

皆さんはSMBファイル共有のパスに含まれるディレクトリの名前が変わった時の影響が気になったことはありますか? 私はあります。

ファイルサーバーを運用する中でディレクトリ名の変更は十分起こりうるでしょう。それでは、名前を変更したディレクトリがSMBファイル共有のパスに含まれている場合はどのような挙動をするのでしょうか。

WindowsだとSMBファイル共有にアクセスできなくなる認識ですが、Amazon FSx for NetApp ONTAP(以降FSxN)では良きようにやってくれるのでしょうか。

実際に試してみました。

いきなりまとめ

  • SMBファイル共有のパスに含まれるディレクトリ名を変更しても、SMBファイル共有のパスは自動で更新されない
    • 結果、パスを修正するまでアクセスできなくなる
  • SMBファイル共有のパスに含まれるディレクトリ名を変更する際は以下2ステップが必要
    1. ディレクトリ名の変更
    2. ONTAP CLIもしくはONTAP REST APIでSMBファイル共有のパスを変更する
  • fsmgmt.mscではSMBファイル共有のパスおよび共有名を変更することはできない
  • ONTAP CLIでもSMBファイル共有の共有名を変更することはできない
  • SMBファイル共有の共有名を変更したい場合は、新しい名前でSMBファイル共有を作り直す必要がある

やってみた

qtreeの作成

まず、qtreeを作成します。作成するqtreeはSMBファイル共有のパスに含まれるような形にします。

::*> qtree show -volume vol_ntfs
Vserver    Volume        Qtree        Style        Oplocks   Status
---------- ------------- ------------ ------------ --------- --------
svm        vol_ntfs      ""           ntfs         enable    normal

::*> qtree create -volume vol_ntfs -qtree qtree1

::*> qtree create -volume vol_ntfs -qtree qtree2

::*> qtree show -volume vol_ntfs
Vserver    Volume        Qtree        Style        Oplocks   Status
---------- ------------- ------------ ------------ --------- --------
svm        vol_ntfs      ""           ntfs         enable    normal
svm        vol_ntfs      qtree1       ntfs         enable    normal
svm        vol_ntfs      qtree2       ntfs         enable    normal
3 entries were displayed.

qtree1qtree2の2つのqtreeを作成しました。

SMBファイル共有パスで指定するディレクトリの作成

SMBファイル共有のパスにqtreeだけでなく、通常のディレクトリが含まれる場合も検証したいです。

SMBファイル共有パスで指定するディレクトリの作成します。

> ls \\SMB-SERVER.corp.non-97.net\c$\vol_ntfs


    Directory: \\SMB-SERVER.corp.non-97.net\c$\vol_ntfs


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         8/30/2024   6:39 AM                dir1
d-----         9/22/2024   9:04 PM                qtree1
d-----         9/22/2024   9:05 PM                qtree2
-a----         8/30/2024   6:53 AM             38 test.txt


> mkdir \\SMB-SERVER.corp.non-97.net\c$\vol_ntfs\qtree2\dir


    Directory: \\SMB-SERVER.corp.non-97.net\c$\vol_ntfs\qtree2


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         9/22/2024   9:09 PM                dir

qtree2配下にdirというディレクトリを作成しました。

SMBファイル共有の作成

SMBファイル共有の作成をします。

::*> cifs share show
Vserver        Share         Path              Properties Comment  ACL
-------------- ------------- ----------------- ---------- -------- -----------
svm            c$            /                 oplocks    -        BUILTIN\Administrators / Full Control
                                               browsable
                                               changenotify
                                               show-previous-versions
svm            ipc$          /                 browsable  -        -
svm            share         /vol_ntfs         oplocks    -        Everyone / Full Control
                                               browsable
                                               changenotify
                                               show-previous-versions
3 entries were displayed.

::*> cifs share create -vserver svm -share-name share_qtree -path /vol_ntfs/qtree1

::*> cifs share create -vserver svm -share-name share_qtree_dir -path /vol_ntfs/qtree2/dir

::*> cifs share show
Vserver        Share         Path              Properties Comment  ACL
-------------- ------------- ----------------- ---------- -------- -----------
svm            c$            /                 oplocks    -        BUILTIN\Administrators / Full Control
                                               browsable
                                               changenotify
                                               show-previous-versions
svm            ipc$          /                 browsable  -        -
svm            share         /vol_ntfs         oplocks    -        Everyone / Full Control
                                               browsable
                                               changenotify
                                               show-previous-versions
svm            share_qtree   /vol_ntfs/qtree1  oplocks    -        Everyone / Full Control
                                               browsable
                                               changenotify
                                               show-previous-versions
svm            share_qtree_  /vol_ntfs/qtree2/ oplocks    -        Everyone / Full Control
               dir           dir               browsable
                                               changenotify
                                               show-previous-versions
5 entries were displayed.

share_qtreeshare_qtree_dirの2つのSMBファイル共有を作成しました。

なお、SMBファイル共有のパスに存在しないパスを指定しようとすると、以下のように怒られます。

::*> cifs share create -vserver svm -share-name share_qtree -path /vol_ntfs/qtree

Error: command failed: The specified path "/vol_ntfs/qtree" does not exist in the namespace belonging to Vserver "svm".

SMBファイル共有のパスに含まれるディレクトリ名の変更

SMBファイル共有のパスに含まれるディレクトリ名の変更を行います。

変更前の状態は以下のとおりです。

1.変更前の状態.png

エクスプローラーで以下のようにディレクトリ名を変更します。

2.リネーム後.png

変更時は警告や拒否はされませんでした。

リネーム後のSMBファイル共有とqtreeの情報は以下のとおりです。

::*> cifs share show
Vserver        Share         Path              Properties Comment  ACL
-------------- ------------- ----------------- ---------- -------- -----------
svm            c$            /                 oplocks    -        BUILTIN\Administrators / Full Control
                                               browsable
                                               changenotify
                                               show-previous-versions
svm            ipc$          /                 browsable  -        -
svm            share         /vol_ntfs         oplocks    -        Everyone / Full Control
                                               browsable
                                               changenotify
                                               show-previous-versions
svm            share_qtree   /vol_ntfs/qtree1  oplocks    -        Everyone / Full Control
                                               browsable
                                               changenotify
                                               show-previous-versions
svm            share_qtree_  /vol_ntfs/qtree2/ oplocks    -        Everyone / Full Control
               dir           dir               browsable
                                               changenotify
                                               show-previous-versions
5 entries were displayed.

::*> qtree show -volume vol_ntfs
Vserver    Volume        Qtree        Style        Oplocks   Status
---------- ------------- ------------ ------------ --------- --------
svm        vol_ntfs      ""           ntfs         enable    normal
svm        vol_ntfs      qtree1_renamed
                                      ntfs         enable    normal
svm        vol_ntfs      qtree2_renamed
                                      ntfs         enable    normal
3 entries were displayed.

qtree名は変わっていますが、SMBファイル共有のパスは変わっていませんね。どうやらFSxNも自動でパスの追従はしてくれなさそうです。

SMBファイル共有にアクセス

SMBファイル共有にアクセスしてみましょう。

3.ディレクトリの名前を変更するとアクセスできない.png
4.もう一つも同じ.png

はい、作成したどちらのSMBファイル共有にもアクセスできませんでした。

SMBファイル共有のパスの変更

SMBファイル共有のパスの変更をした後、アクセスできることを確認します。

ONTAP CLIでパスを変更します。

::*> cifs share modify -share-name share_qtree -path /vol_ntfs/qtree1_renamed

::*> cifs share modify -share-name share_qtree_dir -path /vol_ntfs/qtree2_renamed/dir

::*> cifs share show
Vserver        Share         Path              Properties Comment  ACL
-------------- ------------- ----------------- ---------- -------- -----------
svm            c$            /                 oplocks    -        BUILTIN\Administrators / Full Control
                                               browsable
                                               changenotify
                                               show-previous-versions
svm            ipc$          /                 browsable  -        -
svm            share         /vol_ntfs         oplocks    -        Everyone / Full Control
                                               browsable
                                               changenotify
                                               show-previous-versions
svm            share_qtree   /vol_ntfs/qtree1_ oplocks    -        Everyone / Full Control
                             renamed           browsable
                                               changenotify
                                               show-previous-versions
svm            share_qtree_  /vol_ntfs/qtree2_ oplocks    -        Everyone / Full Control
               dir           renamed/dir       browsable
                                               changenotify
                                               show-previous-versions
5 entries were displayed.

変更後にSMBファイル共有にアクセスできることを確認します。

5.リネーム後はアクセスできる.png
6.リネーム後はアクセスできる2.png

はい、どちらもアクセスできるようになりました。

そのため、SMBファイル共有のパスに含まれるディレクトリ名を変更する際は以下2ステップが必要になります。

  1. ディレクトリ名の変更
    • qtreeであってもSMB経由での変更でOK
  2. ONTAP CLIもしくはONTAP REST APIでSMBファイル共有のパスを変更する

fsmgmt.mscからSMBファイル共有のパスを変更することはできません。以下のようにテキストボックスがグレーアウトにはなっていませんが変更できませんでした。

7.fsmgmt.png
8.fsmgmt.mscからファイル共有名とパスの変更を行うことはできない.png

qtree名をONTAP CLIから変更した場合

qtree名をONTAP CLIから変更した場合も確認します。

::*> qtree rename -volume vol_ntfs -qtree qtree1_renamed -newname qtree1_renamed2

::*> qtree rename -volume vol_ntfs -qtree qtree2_renamed -newname qtree2_renamed2

::*> qtree show -volume vol_ntfs
Vserver    Volume        Qtree        Style        Oplocks   Status
---------- ------------- ------------ ------------ --------- --------
svm        vol_ntfs      ""           ntfs         enable    normal
svm        vol_ntfs      qtree1_renamed2
                                      ntfs         enable    normal
svm        vol_ntfs      qtree2_renamed2
                                      ntfs         enable    normal
3 entries were displayed.

::*> cifs share show
Vserver        Share         Path              Properties Comment  ACL
-------------- ------------- ----------------- ---------- -------- -----------
svm            c$            /                 oplocks    -        BUILTIN\Administrators / Full Control
                                               browsable
                                               changenotify
                                               show-previous-versions
svm            ipc$          /                 browsable  -        -
svm            share         /vol_ntfs         oplocks    -        Everyone / Full Control
                                               browsable
                                               changenotify
                                               show-previous-versions
svm            share_qtree   /vol_ntfs/qtree1_ oplocks    -        Everyone / Full Control
                             renamed           browsable
                                               changenotify
                                               show-previous-versions
svm            share_qtree_  /vol_ntfs/qtree2_ oplocks    -        Everyone / Full Control
               dir           renamed/dir       browsable
                                               changenotify
                                               show-previous-versions
5 entries were displayed.

はい、qtree名をONTAP CLIで変更したからといってSMBファイル共有のパスは自動で更新はされませんでした。

qtree名変更後、SMBファイル共有にアクセスしようとすると弾かれました。

> ls \\SMB-SERVER.corp.non-97.net\share_qtree
ls : Cannot find path '\\SMB-SERVER.corp.non-97.net\share_qtree' because it does not exist.
At line:1 char:1
+ ls \\SMB-SERVER.corp.non-97.net\share_qtree
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (\\SMB-SERVER.corp.non-97.net\share_qtree:String) [Get-ChildItem], ItemN
   otFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

おまけ : SMBファイル共有の名前は変更できない

おまけとして、SMBファイル共有の名前を後から変更することはできません。

ONTAP CLIでSMBファイル共有関連のコマンドを覗いても、該当するオプションはありませんでした。

::*> cifs share ?
  access-control>             The access-control directory
  create                      Create a CIFS share
  delete                      Delete a CIFS share
  modify                      Modify a CIFS share
  properties>                 Manage share properties
  show                        Display CIFS shares


::*> cifs share modify -share-name share_qtree ?
  [ -vserver <vserver name> ]                                                                                      Vserver (default: svm)
  [ -path <text (size 1..256)> ]                                                                                   Path
  [ -symlink-properties {enable|hide|read-only|symlinks|symlinks-and-widelinks|disable|no-strict-security}, ... ]  Symlink Properties
  [ -file-umask <Octal Integer> ]                                                                                  File Mode Creation Mask
  [ -dir-umask <Octal Integer> ]                                                                                   Directory Mode Creation Mask
  [ -comment <text (size 1..256)> ]                                                                                Share Comment
  [ -attribute-cache-ttl <[<integer>d][<integer>h][<integer>m][<integer>s]> ]                                      File Attribute Cache Lifetime
  [ -offline-files {none|manual|documents|programs} ]                                                              Offline Files
  [ -vscan-fileop-profile {no-scan|standard|strict|writes-only} ]                                                  Vscan File-Operations Profile
  [ -max-connections-per-share <integer> ]                                                                         Maximum Tree Connections on Share
  [ -force-group-for-create <text> ]                                                                               UNIX Group for File Create

fsmgmt.mscも同様にSMBファイル共有名を変更することはできません。

部署名の変更などでSMBファイル共有名を変更したい場合は、SMBファイル共有を新しい名前で作り直す必要があります。

SMBファイル共有のパスに含まれるディレクトリの名前を変更する時は注意しよう

SMBファイル共有のパスに含まれるディレクトリの名前を変更した時の対応方法を確認してみました。

SMBファイル共有のパスに含まれるディレクトリの名前を変更する時は注意しましょう。特に複数のSMBファイル共有に含まれるディレクトリの場合、影響および修正範囲は大きくなります。ディレクトリ名を変更する際はSMBファイル共有のパス一覧を確認した上で行うのが安心です。

この記事が誰かの助けになれば幸いです。

以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.