vfs_shadow_copy2 — Windows クライアントにスナップショットをシャドウコピーとして見せる
vfs objects = shadow_copy2
この VFS モジュールは samba(7) システムの一部である。
vfs_shadow_copy2
VFS モジュールは
Microsoft のシャドウコピーサービスと似た機能を提供する。
適切に設定されると、このモジュールにより Microsoft
シャドウコピークライアントから Samba の共有上にある "シャドウコピー"
をファイルシステムのスナップショット経由で参照できるようになる。
これは、(オリジナルのshadow_copy(8)モジュールと比較して) 以下の追加の機能を持つ、シャドウコピーの第2版となるモジュールである:
ファイルシステムが他の場所でスナップショットを格納する場合、スナップショットへの シンボリックリンクがある、共有のルートディレクトリに対して事前設定する必要は ない。その代わり、ファイルシステムのスナップショットを探すように、 自在にモジュールを設定出来る。これは数千個の共有があったり [homes] を使ったりする場合にとても重要なことである。
スナップショットディレクトリは、ある特定位置だけはなく、 ディレクトリツリー中のあらゆる場所置くことが出来る。このモードは、 たとえばGPFSの独立ファイルセットのような、任意のサブツリーでスナップショットを 取ることができるファイルシステムのサポートに有用である。
スナップショット名の目立たせ方: スナップショットは str[fp]time 変換結果と互換のある任意の形式で名前を付けることができる。
Vanity naming for snapshots: snapshots can be named in any format compatible with str[fp]time conversions.
タイムスタンプはUTCの代わりにローカル時間で表現できる。
ファイルのinode番号は、必要に応じて、オリジナルとは異なるように 変更できる。これはWindows GUIの'リストア'ボタンが、GPFSのように、 スナップショットファイルとオリジナルに対して同じデバイスとinode 番号を返すファイルシステムを使っているときに共有違反がないように 動作するようにする。
The inode number of the files can optionally be altered to be different from the original. This fixes the 'restore' button in the Windows GUI to work without a sharing violation when serving from file systems, like GPFS, that return the same device and inode number for the snapshot file and the original.
シャドウコピーの結果は、既定値ではクライアントに送られる前に整列 される。これはディレクトリをアルファベット順に読めないファイルシステム にとって便利である(通常のunix)。もしもファイルシステムが ディレクトリ表示時を整列するのであれば、ここでの整列順は、設定可能で 停止もできる。
Shadow copy results are by default sorted before being sent to the client. This is beneficial for filesystems that don't read directories alphabetically (the default unix). Sort ordering can be configured and sorting can be turned off completely if the file system sorts its directory listing.
このモジュールはスタック可能である。
vfs_shadow_copy2
は、ファイルシステムが
スナップショットを実装していることを前提にしている。
一般的なファイルシステムの多くが標準でこれをサポートしている。
vfs_shadow_copy2
が認識できるように、
ファイルシステムのスナップショットが特定の名称のディレクトリ配下で有効になっている
必要がある。スナップショットディレクトリは通常共有のルートディレクトリ
直下にあるサブディレクトリであるが、以下で詳細が説明されている、
パラメータで設定される、他のモードもある。
特定の時点でのスナップショットはスナップショットディレクトリの
サブディレクトリ中にあることが期待されていて、それは、スナップショット
取得時間を表現する書式になっている。
shadow:format
オプションによって変更できるその書式は、
@GMT-YYYY.MM.DD-hh.mm.ss であり、それぞれ
YYYY
は4桁の年
MM
は2桁の月
DD
は2桁の日
hh
は2桁の時
mm
>は2桁の分
ss
>は2桁の秒
で指定する。
vfs_shadow_copy2
のスナップショットの名前形式は、
以下のdate(1)コマンドで生成できる:
TZ=GMT date +@GMT-%Y.%m.%d-%H.%M.%S
このパラメータを使うと、共有パスを含む、ファイルシステムのマウント ポイントを指定できる。通常このマウントポイントは自動的に検出される。 しかし、特にテストのような、ある種の場面においては、 このように指定できることが好都合である。
例: shadow:mountpoint = /path/to/filesystem
既定値: shadow:mountpoint = 未定義
共有のスナップショットを保持しているファイルシステムの、
ディレクトリへのパス。絶対パスが指定された場合、それはその通り
に使われる。相対パスが指定された場合、ファイルシステムにおける
共有のルートのマウントポイントからの相対となる
(shadow:mountpoint
を参照)。
shadow:snapdirseverywhere
は、このパラメータ
に依存し、相対パスが必要であることに注意。絶対パスで設定すると、
shadow:snapdirseverywhere
は無効となる。
shadow:crossmountpoints
オプションも、
相対snapdirを必要とすることに注意。絶対パスで設定すると、
shadow:crossmountpoints
は無効となる。
例: shadow:snapdir = /some/absolute/path
既定値: shadow:snapdir = .snapshots
basedirオプションは共有のマウントポイントと、ファイルシステムの 共有のルートとの間で、ファイルシステムのスナップショットが取られる 所からの相対で、ディレクトリを指定できるようにする。
たとえば、もしも
basedir = mountpoint/rel_basedir
share_root = basedir/rel_share_root
snapshot_path = mountpoint/snapdir
または snapdirが絶対パスの場合
snapshot_path = snapdir
TIMEにおけるスナップショット
file = mountpoint/rel_basedir/rel_share_root/rel_file
は
snapshot_path/FS_GMT_TOKEN(TIME)/rel_share_root/rel_file
に置かれる。このとき、FS_GMT_TOKEN(TIME)は、ファイルシステムが要求する
書式に沿った、TIMOのタイムスタンプである
(shadow:format
コマンドを参照)。
basedirの既定値は共有ルートのファイルシステムにおけるマウントポイント
である(shadow:mountpoint
を参照)。
shadow:snapdirseverywhere
と
shadow:crossmountpoints
オプションは、
shadow:basedir
と非互換であり、
basedirの設定を無効にすることに注意。
このパラメータを使うと、スナップショットのルートディレクトリ
からの相対で、スナップショット中における共有のルートディレクトリ
のパスを指定出来る。これは、shadow:basedir
の代替方法であり、より多くの制御が出来る。
With this parameter, one can specify the path of the share's
root directory in snapshots, relative to the snapshot's
root directory. It is an alternative method to
shadow:basedir
, allowing greater control.
たとえば、もしも各スナップショット中で、共有中のファイルが
path/to/share/
というパスを持つ場合、
shadow:snapsharepath
は、
path/to/share
に設定出来る。
このパラメータを使うと、スナップショットがオリジナルの ファイルシステムのイメージかその一部かを意味しなくなる。 たとえば、あるシステムが、共有中に含まれるファイルのみの バックアップを実行し、論理構造でバックアップ ファイルを公開できるようになる。
With this parameter, it is no longer assumed that a snapshot represents an image of the original file system or a portion of it. For example, a system could perform backups of only files contained in shares, and then expose the backup files in a logical structure:
share1/
share2/
.../
shadow:snapdirseverywhere
と
shadow:basedir
オプションは、
shadow:snapsharepath
と、
shadow:snapsharepath
を無効にする
設定とは非互換であることに注意。
Example: shadow:snapsharepath = path/to/share
Default: shadow:snapsharepath = NOT SPECIFIED
既定値では、このモジュールはクライアントにデータを送信する前に、 シャドウコピーデータをアルファベット順に整列する。このパラメータを 使う事で、整列の順番を指定できる。設定可能な値は desc (既定値で 降順)とasc (昇順)である。ファイルシステムがディレクトリをアルファベット順 に整列する場合、このパラメータに、その他の値を指定することで、 このモジュールの整列動作を止めることが出来る。
例: shadow:sort = asc
例: shadow:sort = none
既定値: shadow:sort = desc
これは補助的なパラメーターで、スナップショットの名前をUTC/GMT か、ローカル時間にするかを指示する。これが無効な場合、UTC/GMTが使われる。
shadow:localtime = no
これは補助的なパラメーターで、ファイルシステム中での、 スナップショットの名前を決めるための、書式を指定する。 書式はstr[fp]timeによって認識される変換形式と互換がなければならない。 既定値は、"@GMT-%Y.%m.%d-%H.%M.%S"である。
既定値: shadow:format = "@GMT-%Y.%m.%d-%H.%M.%S"
このパラメータは、書式文字列中での時間が、 符号なしの long integer (%lu)ではなく、 strptime() が認識できる時間とする場合に使用する。 結果はunix time_t時間でなければならない。
既定値: shadow:sscanf = no
shadow:fixinodes
が有効の場合、このモジュールはスナップショット中のそれぞれの
ファイルの見かけの inode 番号を、そのファイルのパスのハッシュ値で
修正する。これは(たとえば GPFS のスナップショットのように)
スナップショットがオリジナルのファイルと同じデバイス名+ inode
番号を持つ場合に必要となる。(訳注:そのようなシステムにおいて)
このオプションを設定しないでシャドウコピー UI の「リストア」
ボタンを押すと、共有違反で失敗してしまう。
もしも
shadow:snapdirseverywhere
を有効にした場合、
このモジュールは、現在のワーキングディレクトリに対する、
現在のワーキングディレクトリおよびすべての上位ディレクトリ
に対して、スナップショットディレクトリを見つけ出し、
既定値のマウントポイントを使うのをやめる。このような
動作の詳細についてはshadow:crossmountpoints
を参照のこと。
たとえば、これが必要なところは、IBMのGPFS中で 独立したファイルセットであるが、その他のファイルシステムと同様、 ファイルシステム中における特定のサブディレクトリのみを スナップショットすることをサポートする場合がある。
An example where this is needed are independent filesets in IBM's GPFS, but other filesystems might support snapshotting only particular subtrees of the filesystem as well.
shadow:snapdirseverywhere
は、
shadow:snapdir
に依存し、それは相対パスが
必要なことに注意。絶対パスを設定すると、
shadow:snapdirseverywhere
は無効になる。
このオプションは、shadow:basedir
とは非互換で、shadow:basedir
で
設定したものを無効化する事に注意。
例: shadow:snapdirseverywhere = yes
既定値: shadow:snapdirseverywhere = no
このオプションは、shadow:snapdirseverywhere = yes
の場合に有効となる。
このオプションを設定すると、snapdirを捜す時、マウントポイントを1つ
見つけた時点で(検索を)終了せず、あり得るパス全体を通して検索する。
This option is effective in the case of
shadow:snapdirseverywhere = yes
.
Setting this option makes the module not stop at the
first mount point encountered when looking for snapdirs,
but lets it search potentially all through the path
instead.
例をあげると、これが必要なのは、IBMのGPFS中の独立した ファイルセットだが、他のファイルシステムでも同様に、 ファイルシステムの特定のサブツリーのみのスナップショットをサポートする 可能性がある。
An example where this is needed are independent filesets in IBM's GPFS, but other filesystems might support snapshotting only particular subtrees of the filesystem as well.
shadow:crossmountpoints
は
shadow:snapdir
に依存し、それは相対パスが
必要なことに注意。絶対パスを設定すると、
shadow:crossmountpoints
は無効になる。
このオプションは、shadow:basedir
とは非互換で、shadow:basedir
で
設定したものを無効化する事に注意。
例: shadow:crossmountpoints = yes
既定値: shadow:crossmountpoints = no
スナップショットがどんどん増えるため、ファイルシステムには、
あるスナップショットを、たとえば、月次、週次、マニュアル、
特別なイベントのようなものから、他と区別するような仕組みが
必要である。そのため、そのようなファイルシステムでは、
たとえば、時間ベースでない、変更可能な名前をスナップショットに
つけるしくみのような、異なった方法でスナップショットにタグを
つける方法を提供する。shadow:format
のみでは、そのようなスナップショットを区別するのは困難である。
このオプションパラメータを使うことにより、ファイルシステム中
のスナップショットディレクトリの名前に対して、いろいろな
プレフィックスを指定することができるようになる。
shadow:format
と、shadow:delimiter
パラメータと一緒に、このパラメータが設定された場合、
ファイルシステム中のスナップショットディレクトリがとり得る
名前を決定する。オプションは、基本的な正規表現(BRE)のみを
サポートする。
このオプションパラメータは、shadow:snapprefix
と
shadow:format
間のデリミタとして
使われる。このパラメータは、shadow:snapprefix
が設定されているときにのみ使われる。
既定値: shadow:delimiter = "_GMT"
ユーザーのホームディレクトリでシャドウコピーをサポートするには 以下の設定を行なう:
[homes]
vfs objects = shadow_copy2
shadow:snapdir = /data/snapshots
shadow:basedir = /data/home
shadow:sort = desc
これはバックアップでも、アーカイブでも、バージョン管理のための 機能でもないことに注意。
Samba と Windows の双方において、vfs_shadow_copy2
はエンドユーザーのための機能として設計されている。これはバックアップや
アーカイブ機能を代替、もしくは拡張するものではないので、そのような認識
は禁物である。バージョン管理機能が必要であれば、バージョン管理機能を
実装する必要がある。