移行時のシャドウファイルシステムのセマンティクス
クライアントがまだ移行されていないファイルまたはディレクトリにアクセスする場合、次のような動作への影響が確認できます。
-
ディレクトリの場合、クライアントリクエストはディレクトリ全体が移行されるまでブロックされます。ファイルの場合、ファイルのリクエストされている部分だけが移行されるため、複数のクライアントが同時にファイルのさまざまな部分を移行できます。
-
シャドウファイルシステムでのファイルおよびディレクトリの名前変更、削除、または上書きは、移行プロセスに影響を及ぼすことなく任意に実行できます。
-
ハードリンクを持つファイルの場合、移行が完了するまでハードリンク数がソースと一致しないことがあります。
-
ファイル属性のほとんどはディレクトリが作成されるときに移行されますが、ディスク上のサイズ (UNIX stat 構造体の st_nblocks) はそのファイルに対する読み取りまたは書き込み操作が完了するまでわかりません。論理サイズは正しくなりますが、ファイルの内容が実際に移行されるまで、du(1) などのコマンドはサイズ 0 を報告します。
-
ZFSSA をリブートした場合、移行はそれがもともと中止された場所を取り出します。データを再移行する必要はありませんが、場合によってはローカルファイルシステムの移行済みの部分をトラバースする必要があり、その割り込みのために移行の合計時間にいくらか影響が及ぶ可能性があります。
-
データ移行では、ファイルに対して非公開の拡張属性を使用します。これらは通常、ファイルシステムのルートディレクトリ上で、またはスナップショットを通じてしか確認できません。SUNWshadow で始まる拡張属性の追加、変更、または削除は、移行プロセスに予測できない影響を及ぼし、不完全な状態または破壊された状態をもたらします。また、ファイルシステム全体の状態はファイルシステムのルートにある .SUNWshadow ディレクトリに格納されます。この内容に何らかの変更を加えると、同様の影響があります。
-
ファイルシステムの移行が完了すると、警告が送信され、シャドウ属性が適切なメタデータとともに削除されます。その後、このファイルシステムは通常のファイルシステムと見分けがつかなくなります。
-
NFSv4 自動クライアントマウント (「ミラーマウント」と呼ばれることもある) または入れ子のローカルマウントを使用すると、データを複数のファイルシステムから 1 つのファイルシステムに移行できます。