Xsan:ファイルまたはフォルダを目的のアフィニティに確実に移動する方法

フォルダのアフィニティで指定されているストレージプールにファイルを強制移動するには、Finder または mv コマンドを使ってコピーするのではなく、該当のファイルを物理的にコピーまたは書き直す必要があります。

どのデータがどのストレージプールに書き込まれるかは、アフィニティによって決定されます。管理者は、ストレージプールにアフィニティを割り当て、アクセス権を通じて、ユーザが特定のプールにデータを書き込むよう指定できます。通常、これらのプールは、同じタイプの LUN で構成されるよう設定されています。管理者は、ストレージプールを設定する際、RAID 0 や RAID 5 など、パフォーマンスと冗長性のバランスが異なるプールを設定します。

Finder または mv コマンドを使って、同じボリュームにあるフォルダ間でファイルを移動した場合、データは実際にはコピーされていません。この場合、移動先のフォルダと移動元のフォルダの変更が、ファイルの新しい保存先に反映されるだけです (これを名前変更処理といいます)。ファイルのデータ自体は実際に移動されていないため、移動先のフォルダと移動元のフォルダのアフィニティが異なる場合や、アフィニティが割り当てられていない場合、予想外の動作が発生する可能性があります。

ファイルのコピー

Finder で、「option」キーを押しながら、アフィニティが割り当てられている目的のフォルダにファイルをドラッグしてコピーします。または、ditto や cvcp などのコマンドラインツールを使って、ファイルをコピーすることもできます。詳細とオプションについては、man ページを参照してください。

コピーが正常に完了したことを確認した後、必要に応じて、元のファイルを削除します。

ファイルの書き直し

snfsdefrag

コマンドを使います。snfsdefrag コマンドを使って、アフィニティのストレージプールにファイルを書き直すことができます。snfsdefrag コマンドでファイルを書き直した場合、ファイルへのパスは変更されません。詳細とオプションについては、snfsdefrag を参照してください。

ファイルの書き直し操作の例

ストレージプールに「Fast」という名前のアフィニティが割り当てられています。「moveme」という名前のファイルを、このストレージプールに移動します。Xsan ボリュームの名前は「MyVolume」で、ソースファイル (「moveme」) は folder1 に入っています。

この場合は、次のようなコマンドになります。

sudo snfsdefrag -k Fast -m 0 /Volumes/MyVolume/folder1/moveme

ファイルまたはフォルダにアフィニティが割り当てられているかどうか不明な場合

ファイルまたはフォルダにアフィニティが割り当てられているかどうか不明な場合は、ファイルおよびフォルダに対して cvaffinity コマンドを実行します。

cvaffinity -l <path to folder> cvaffinity -l <path to file>

注意:「-l」は L (リストの L) の小文字です(詳細とオプションについては、man cvaffinity を参照してください)。

以下に、コマンド例を 2 つ示します。イタリックの部分は出力例です。

cvaffinity -l /Volumes/MyVolume/folder1/Volumes/MyVolume/folder1: Fast (0x7265766f7473) cvaffinity -l /Volumes/MyVolume/folder1/moveme /Volumes/MyVolume/folder1/moveme: Fast (0x7265766f7473)

上の例で、フォルダとファイルには同じアフィニティ (FAST) が割り当てられており、同じストレージプール (0x7265766f7473) 内にあります。

注意:利用する方法によっては、ファイルの POSIX エントリまたは ACL エントリのリセットが必要になります。

関連情報

アフィニティの詳細については、『Xsan 管理者ガイド』を参照してください。

POSIX およびアクセス制御リストの詳細については、MacOS X Server の管理者ガイドを参照してください。

公開日: