名前

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

書式

vfs objects = shadow_copy2

説明

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

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

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

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

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

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

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

  5. ファイルの inode 番号は、必要に応じて、オリジナルとは異なるように 変更できる。これは Windows GUI の 'リストア' ボタンが、GPFS のように、 スナップショットファイルとオリジナルに対して同じデバイスと inode 番号を返すファイルシステムを使っているときに共有違反がないように 動作するようにする。

  6. シャドウコピーの結果は、既定値ではクライアントに送られる前に整列 される。これはディレクトリをアルファベット順に読めないファイルシステム にとって便利である(通常の unix)。もしもファイルシステムが ディレクトリ表示時を整列するのであれば、ここでの整列順は、設定可能で 停止もできる。

このモジュールはスタック可能である。

設定

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 の代替方法であり、より多くの制御が出来る。

たとえば、もしも各スナップショット中で、共有中のファイルが path/to/share/ というパスを持つ場合、 shadow:snapsharepath は、 path/to/share に設定できる。

このパラメーターを使うと、スナップショットがオリジナルの ファイルシステムのイメージかその一部かを意味しなくなる。 たとえば、あるシステムが、共有中に含まれるファイルのみの バックアップを実行し、論理構造でバックアップ ファイルを公開できるようになる。

  • share1/

  • share2/

  • .../

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

例: shadow:snapsharepath = path/to/share

既定値: shadow:snapsharepath = 未定義

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

このパラメーターは、書式文字列中での時間が、 符号なしの long integer (%lu) ではなく、 strptime() が認識できる時間とする場合に使用する。 結果は unix time_t 時間でなければならない。

既定値: shadow:sscanf = no

shadow:fixinodes = yes/no

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

既定値: shadow:fixinodes = no

shadow:snapdirseverywhere = yes/no

もしも shadow:snapdirseverywhere を有効にした場合、 このモジュールは、現在のワーキングディレクトリに対する、 現在のワーキングディレクトリおよびすべての上位ディレクトリ に対して、スナップショットディレクトリを見つけ出し、 既定値のマウントポイントを使うのをやめる。このような 動作の詳細については shadow:crossmountpoints を参照のこと。

たとえば、これが必要なところは、IBM の GPFS 中で 独立したファイルセットであるが、その他のファイルシステムと同様、 ファイルシステム中における特定のサブディレクトリのみを スナップショットすることをサポートする場合がある。

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 つ 見つけた時点で(検索を)終了せず、あり得るパス全体を通して検索する。

例をあげると、これが必要なのは、IBM の GPFS 中の独立した ファイルセットだが、他のファイルシステムでも同様に、 ファイルシステムの特定のサブツリーのみのスナップショットをサポートする 可能性がある。

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.14.5 用である。

著者

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

日本語訳

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

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

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

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

によって行なわれた。