Name

vfs_shadow_copy2 — Windows クライアントにスナップショットをシャドウコピーとして見せる

Synopsis

vfs objects = shadow_copy2

説明

この VFS モジュールは samba(7) システムの一部である。

vfs_shadow_copy2 VFS モジュールは Microsoft のシャドウコピーサービスと似た機能を提供する。 適切に設定されると、このモジュールにより Microsoft シャドウコピークライアントから Samba の共有上にある "シャドウコピー" をファイルシステムのスナップショット経由で参照できるようになる。

これは、(オリジナルのshadow_copy(8)モジュールと比較して) 以下の追加の機能を持つ、シャドウコピーの第2版となるモジュールである:

  1. ファイルシステムが他の場所でスナップショットを格納する場合、スナップショットへの シンボリックリンクがある、共有のルートディレクトリに対して事前設定する必要は ない。その代わり、ファイルシステムのスナップショットを探すように、 自在にモジュールを設定出来る。これは数千個の共有があったり [homes] を使ったりする場合にとても重要なことである。

  2. スナップショットディレクトリは、ある特定位置だけはなく、 ディレクトリツリー中のあらゆる場所置くことが出来る。このモードは、 たとえばGPFSの独立ファイルセットのような、任意のサブツリーでスナップショットを 取ることができるファイルシステムのサポートに有用である。

    Snapshot directories need not be in one fixed central place but can be located anywhere in the directory tree. This mode helps to support file systems that offer snapshotting of particular subtrees, for example the GPFS independent file sets.

  3. 目立つスナップショットのネーミング: スナップショットは str[fp]time 変換結果と互換のある任意の形式で名前を付けることができる。

    Vanity naming for snapshots: snapshots can be named in any format compatible with str[fp]time conversions.

  4. タイムスタンプはUTCの代わりにローカル時間で表現できる。

  5. ファイルの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.

  6. シャドウコピーの結果は、既定値ではクライアントに送られる前に整列 される。これはディレクトリをアルファベット順に読めないファイルシステム にとって便利である(通常の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 = MOUNTPOINT

このパラメータを使うと、共有パスを含む、ファイルシステムのマウント ポイントを指定できる。通常このマウントポイントは自動的に検出される。 しかし、特にテストのような、ある種の場面においては、 このように指定できることが好都合である。

例: shadow:mountpoint = /path/to/filesystem

既定値: shadow:mountpoint = 未定義

shadow:snapdir = SNAPDIR

共有のスナップショットを保持しているファイルシステムの、 ディレクトリへのパス。絶対パスが指定された場合、それはその通り に使われる。相対パスが指定された場合、ファイルシステムにおける 共有のルートのマウントポイントからの相対となる (shadow:mountpointを参照)。

shadow:snapdirseverywhereは、このパラメータ に依存し、相対パスが必要であることに注意。絶対パスで設定すると、 shadow:snapdirseverywhereは無効となる。

shadow:crossmountpointsオプションも、 相対snapdirを必要とすることに注意。絶対パスで設定すると、 shadow:crossmountpointsは無効となる。

例: shadow:snapdir = /some/absolute/path

既定値: shadow:snapdir = .snapshots

shadow:basedir = BASEDIR

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_filesnapshot_path/FS_GMT_TOKEN(TIME)/rel_share_root/rel_file に置かれる。このとき、FS_GMT_TOKEN(TIME)は、ファイルシステムが要求する 書式に沿った、TIMOのタイムスタンプである (shadow:formatコマンドを参照)。

basedirの既定値は共有ルートのファイルシステムにおけるマウントポイント である(shadow:mountpointを参照)。

shadow:snapdirseverywhereshadow:crossmountpointsオプションは、 shadow:basedirと非互換であり、 basedirの設定を無効にすることに注意。

shadow:snapsharepath = SNAPSHAREPATH

このパラメータを使うと、スナップショットのルートディレクトリ からの相対で、スナップショット中における共有のルートディレクトリ のパスを指定出来る。これは、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:snapdirseverywhereshadow:basedirオプションは、 shadow:snapsharepathと、 shadow:snapsharepathを無効にする 設定とは非互換であることに注意。

Example: shadow:snapsharepath = path/to/share

Default: shadow:snapsharepath = NOT SPECIFIED

shadow:sort = asc/desc

既定値では、このモジュールはクライアントにデータを送信する前に、 シャドウコピーデータをアルファベット順に整列する。このパラメータを 使う事で、整列の順番を指定できる。設定可能な値は desc (既定値で 降順)とasc (昇順)である。ファイルシステムがディレクトリをアルファベット順 に整列する場合、このパラメータに、その他の値を指定することで、 このモジュールの整列動作を止めることが出来る。

例: shadow:sort = asc

例: shadow:sort = none

既定値: shadow:sort = desc

shadow:localtime = yes/no

これは補助的なパラメーターで、スナップショットの名前をUTC/GMT か、ローカル時間にするかを指示する。これが無効な場合、UTC/GMTが使われる。

shadow:localtime = no

shadow:format = スナップショット名のフォーマット指定

これは補助的なパラメーターで、ファイルシステム中での、 スナップショットの名前を決めるための、書式を指定する。 書式はstr[fp]timeによって認識される変換形式と互換がなければならない。 既定値は、"@GMT-%Y.%m.%d-%H.%M.%S"である。

既定値: shadow:format = "@GMT-%Y.%m.%d-%H.%M.%S"

shadow:sscanf = yes/no

このパラメータは、strptime() が認識できる時間ではなく、 符号なしの long integer (%lu)として提供される書式での時間で 指定することができるようにする。 結果はunix time_t時間でなければならない。

This paramter can be used to specify that the time in format string is given as an unsigned long integer (%lu) rather than a time strptime() can parse. The result must be a unix time_t time.

既定値: shadow:sscanf = no

shadow:fixinodes = yes/no

shadow:fixinodes が有効の場合、このモジュールはスナップショット中のそれぞれの ファイルの見かけの inode 番号を、そのファイルのパスのハッシュ値で 修正する。これは(たとえば GPFS のスナップショットのように) スナップショットがオリジナルのファイルと同じデバイス名+ inode 番号を持つ場合に必要となる。(訳注:そのようなシステムにおいて) このオプションを設定しないでシャドウコピー UI の「リストア」 ボタンを押すと、共有違反で失敗してしまう。

shadow:snapdirseverywhere = yes/no

もしも 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:crossmountpoints = yes/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:crossmountpointsshadow:snapdirに依存し、それは相対パスが 必要なことに注意。絶対パスを設定すると、 shadow:crossmountpointsは無効になる。

このオプションは、shadow:basedir とは非互換で、shadow:basedirで 設定したものを無効化する事に注意。

例: shadow:crossmountpoints = yes

既定値: shadow:crossmountpoints = no

shadow:snapprefix

スナップショットがどんどん増えるため、ファイルシステムには、 あるスナップショットを、たとえば、月次、週次、マニュアル、 特別なイベントのようなものから、他と区別するような仕組みが 必要である。そのため、そのようなファイルシステムでは、 たとえば、時間ベースでない、変更可能な名前をスナップショットに つけるしくみのような、異なった方法でスナップショットにタグを つける方法を提供する。shadow:format のみでは、そのようなスナップショットを区別するのは困難である。 このオプションパラメータを使うことにより、ファイルシステム中 のスナップショットディレクトリの名前に対して、いろいろな プレフィックスを指定することができるようになる。 shadow:formatと、shadow:delimiter パラメータと一緒に、このパラメータが設定された場合、 ファイルシステム中のスナップショットディレクトリがとり得る 名前を決定する。オプションは、基本的な正規表現(BRE)のみを サポートする。

shadow:delimiter

このオプションパラメータは、shadow:snapprefixshadow: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 はエンドユーザーのための機能として設計されている。これはバックアップや アーカイブ機能を代替、もしくは拡張するものではないので、そのような認識 は禁物である。バージョン管理機能が必要であれば、バージョン管理機能を 実装する必要がある。

バージョン

このマニュアルページは Samba システムのバージョン 4.0 に適合する。

著者

オリジナルの Samba ソフトウェアと関連するユーティリティは、Andrew Tridgell によって作成された。現在 Samba は Samba Team に よって、Linuxカーネルの開発と同様にオープンソースプロジェクト として開発が行なわれている。

日本語訳

このマニュアルページは Samba 4.5.0 - 4.5.0 に対応する。

このドキュメントの Samba 3.2.4 - 4.5.0 対応の翻訳は

  • 堀田 倫英(hotta@net-newbie.com)

  • 太田俊哉(ribbon@samba.gr.jp)

によって行なわれた。