Azure Data Box ディスクを使用したファイル ACL、属性、タイムスタンプの保持
Azure Data Box Diskでは、Azure にデータを送信するときに、アクセス制御リスト (ACL)、タイムスタンプ、およびファイル属性を保持できます。 この記事では、データを Data Box Disk にコピーしてAzure Filesにアップロードするときに転送できるメタデータについて説明します。
転送されるメタデータ
ACL、タイムスタンプ、およびファイル属性は、Data Box DiskのデータがAzure Filesにアップロードされるときに転送されるメタデータです。 この記事では、ACL、タイムスタンプ、ファイル属性を総称してメタデータと呼びます。
メタデータは、Windows データ コピー ツールを使用してコピーできます。 Blob Storage にデータを転送する場合、メタデータは保持されません。
この記事の以降のセクションでは、Data Box DiskからのデータがAzure Filesにアップロードされるときにタイムスタンプ、ファイル属性、ACL がどのように転送されるかについて詳しく説明します。
タイムスタンプ
次のタイムスタンプが転送されます。
- CreationTime
- 最終書き込み時刻
次のタイムスタンプは転送されません。
- LastAccessTime
ファイル属性
ファイルとディレクトリの両方のファイル属性は、特に記載のない限り転送されます。
次のファイル属性が転送されます。
- FILE_ATTRIBUTE_READONLY (ファイルのみ)
- FILE_ATTRIBUTE_HIDDEN
- FILE_ATTRIBUTE_SYSTEM
- FILE_ATTRIBUTE_DIRECTORY (ディレクトリのみ)
- FILE_ATTRIBUTE_ARCHIVE
- FILE_ATTRIBUTE_TEMPORARY (ファイルのみ)
- FILE_ATTRIBUTE_NO_SCRUB_DATA
次のファイル属性は転送されません。
- FILE_ATTRIBUTE_OFFLINE
- FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
ディレクトリの読み取り専用属性は転送されません。
代替データ ストリームと拡張属性
代替データ ストリームと拡張属性は、Azure Files、ページ BLOB、ブロック BLOB ストレージではサポートされていないため、データのコピー時に転送されません。
ACL
Azure Files へのデータのコピー時に、使用する転送方法と、Windows と Linux のどちらのクライアントを使用するかに応じて、ファイルとフォルダーに関する任意および既定のアクセス制御リスト (ACL) が一部またはすべて転送されます。
注意
ACL が条件付きアクセス制御エントリ (ACE) 文字列を含むファイルはコピーされません。 これは既知の問題です。 この問題を回避するには、共有をマウントしてから、ACL のコピーをサポートするコピー ツールを使用して、これらのファイルを Azure Files 共有に手動でコピーします。
データとメタデータのコピー
データの ACL、タイムスタンプ、属性を転送するには、次の手順を使用して Data Box にデータをコピーします。
Windows データ コピー ツール
Data Box Diskにデータをコピーするには、 などのrobocopy
ファイル コピー ツールを使用します。 次のサンプル コマンドは、すべてのファイルとディレクトリをコピーし、データと共にメタデータを転送します。
robocopy <Source> <Target> * /copyall /e /dcopy:DAT /B /r:3 /w:60 /is /nfl /ndl /np /MT:32 or 64 /fft /log+:<LogFile>
where
オプション | 説明 |
---|---|
/copyall |
すべての属性をコピーします。 |
/e |
サブディレクトリをコピーします (空のディレクトリを含む)。 |
/dcopy:DAT |
データ、属性、タイムスタンプをコピーします。 注:ディレクトリの CreationTime を転送するには、/dcopy:DAT オプションを使用する必要があります。 |
/B |
バックアップ モードでファイルをコピーします。 |
/r:3 |
失敗したコピーの 3 回の再試行を指定します。 |
/w:60 |
再試行の間の待機時間を 60 秒に指定します。 |
/is |
同じファイルを含めます。 |
/nfl |
ファイル名をログしません。 |
/ndl |
ディレクトリ名をログしません。 |
/np |
コピー操作の進行状況を表示しません。 |
/MT:32 or 64 |
32 または 64 スレッドのマルチスレッドを使用します。 |
/fft |
任意のファイル システムのタイムスタンプの細分性を下げます。 |
/log+:<LogFile> |
既存のログ ファイルに出力を追加します。 |
これらの robocopy
パラメーターの詳細については、「チュートリアル: Azure Data Box に SMB 経由でデータをコピーする」をご覧ください
注意
/copyall
を使用してデータをコピーした場合、ディレクトリとファイルのソース ACL が Azure Files に転送されます。 ソース データに対してのみ読み取りアクセス権があり、ソース データを変更できなかった場合は、Data Box Disk内のデータに対してのみ読み取りアクセス権が付与されます。
/copyall
は、データと一緒にディレクトリとファイルの ACL をすべてコピーする場合にのみ使用してください。
robocopy を使用して Data Box ディスク上のファイルを一覧表示、コピー、変更する
ここでは、robocopy
を使用してデータをコピーするときに使用する一般的なシナリオについて説明します。
データのみをData Box Diskにコピーし、ディレクトリとファイルの ACL はコピーしません
/dcopy:DAT
オプションを使用して、データ、属性、タイムスタンプのみをコピーします。 ディレクトリとファイルの ACL はコピーされません。ディレクトリとファイルのデータと ACL を Data Box Disk にコピーする
/copyall
を使用して、ディレクトリとファイルの ACL を含むすべてのソース データをコピーします。robocopy を使用してData Box Diskにファイルシステムを一覧表示する
ディレクトリの内容を一覧表示するには、次のコマンドを使用します。
robocopy <source-dir> NULL /l /s /xx /njh /njs /fp /B
エクスプローラーではこれらのファイルを一覧表示できないことにご注意ください。
Data Box Diskのフォルダーとファイルをコピーまたは削除する
1 つのファイルをコピーするには、次のコマンドを使用します。
robocopy <source-dir> <destination-dir> <file-name> /B
1 つのファイルを削除するには、次のコマンドを使用します。
robocopy <source-dir> <destination-dir> <file-name> /purge /B
上記のコマンドでは、
<source-dir>
にファイル<file-name>
を指定することはできません。 その結果、上記のコマンドにより、宛先がソースと同期され、宛先からファイルが削除されます。エクスプローラーでは、上記の操作を実行できない場合があることにご注意ください。
詳細については、robocopy コマンドの使用に関するページを参照してください。
Linux データ コピー ツール
Linux でのメタデータの転送は、2 段階のプロセスです。 まず、rsync
などのツールを使用してソース データをコピーします。これによってメタデータはコピーされません。 データをコピーした後、smbcacls
や cifsacl
などのツールを使用してメタデータをコピーできます。
次のサンプル コマンドは、rsync
を使用してデータをコピーする最初の手順を実行します。
cp -aR /etc /opt/
rsync -avP /etc /opt (-a copies a directory)