Azure Data Box を使用したファイルの ACL、属性、およびタイムスタンプの保持

Azure Data Box を使用すると、Azure にデータを送信するときにアクセス制御リスト (ACL)、タイムスタンプ、ファイル属性を保持できます。 この記事では、Azure Files にアップロードするために、サーバー メッセージ ブロック (SMB) を介して Data Box にデータをコピーするときに転送できるメタデータについて説明します。

転送されるメタデータ

ACL、タイムスタンプ、およびファイル属性は、Data Box のデータが Azure Files にアップロードされるときに転送されるメタデータです。 この記事では、ACL、タイムスタンプ、ファイル属性を総称してメタデータと呼びます。

メタデータは、Windows および Linux データ コピー ツールを使用してコピーできます。 Blob Storage にデータを転送する場合、メタデータは保持されません。 NFS でデータをコピーする場合も、メタデータは転送されません。

この記事の以降のセクションでは、Data Box からのデータが 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 の転送は既定で有効になっています。 Data Box のローカル Web UI でこの設定を無効にすることができます。 詳しくは、「ローカル Web UI を使用して Data Box および Data Box Heavy を管理する」をご覧ください。

注意

ACL が条件付きアクセス制御エントリ (ACE) 文字列を含むファイルはコピーされません。 これは既知の問題です。 この問題を回避するには、共有をマウントしてから、ACL のコピーをサポートするコピー ツールを使用して、これらのファイルを Azure Files 共有に手動でコピーします。

SMB を介した ACL 転送

SMB ファイルの転送時に、次の ACL が転送されます。

  • Data Box にコピーするディレクトリとファイルの任意 ACL (DACL) とシステム ACL (SACL)。
  • Linux クライアントを使用する場合は、Windows NT ACL のみが転送されます。

データ コピー サービス経由での ACL の転送

データ コピー サービス ファイル転送中に、次の ACL が転送されます:

  • Data Box にコピーするディレクトリとファイルの任意 ACL (DACL) とシステム ACL (SACL)。

ファイルから SACL をコピーするには、 SeBackupPrivilege を使用するユーザーの資格情報を指定する必要があります。 管理者またはバックアップ オペレーター グループのユーザーには、既定でこの権限が付与されます

SeBackupPrivilege がない場合:

  • Azure Files コピー サービス ジョブの SACL をコピーすることはできません。
  • アクセスの問題が発生し、エラー ログでこのエラーが発生する可能性があります: 権限が不足しているため、共有から SACL を読み取れませんでした

詳細については、「SeBackupPrivilege」を参照してください。

NFS を介した ACL 転送

NFS を介してデータをコピーする場合、ACL (およびメタデータ属性) は転送されません。

既定 ACL の転送

データ コピー ツールで ACL がコピーされない場合でも、Windows クライアントを使用している場合には、ディレクトリおよびファイルの既定の ACL が Azure Files に転送されます。 Linux クライアントを使用している場合、既定の ACL は転送されません。

次の既定 ACL が転送されます。

  • アカウントのアクセス許可:

    • ビルトイン Administrator アカウント
    • システム アカウント
    • Data Box でのデータのマウントおよびコピーに使用される SMB 共有ユーザー アカウント
  • DACL、所有者、グループ、SACL の各プロパティがあるセキュリティ記述子

データとメタデータのコピー

データの ACL、タイムスタンプ、属性を転送するには、次の手順を使用して Data Box にデータをコピーします。

Windows データ コピー ツール

SMB 経由で Data Box にデータをコピーするには、robocopy などの SMB 互換ファイル コピー ツールを使用します。 次のサンプル コマンドは、すべてのファイルとディレクトリをコピーし、データと共にメタデータを転送します。

/copyall または /dcopy:DAT の各オプションを使用する場合は、必要なバックアップ オペレーター特権が無効になっていないことを確認してください。 詳しくは、「ローカル Web UI を使用して Data Box および Data Box Heavy を管理する」をご覧ください。

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 内のデータには読み取りアクセスしかできなくなります。 /copyall は、データと一緒にディレクトリとファイルの ACL をすべてコピーする場合にのみ使用してください。

robocopy を使用すると、Data Box 上のファイルの一覧表示、コピー、変更を行うことができます。

ここでは、robocopy を使用してデータをコピーするときに使用する一般的なシナリオについて説明します。

  • データのみを Data Box にコピーし、ディレクトリとファイルの ACL をコピーしない

    /dcopy:DAT オプションを使用して、データ、属性、タイムスタンプのみをコピーします。 ディレクトリとファイルの ACL はコピーされません。

  • ディレクトリとファイルのデータと ACL を Data Box にコピーする

    /copyall を使用して、ディレクトリとファイルの ACL を含むすべてのソース データをコピーします。

  • robocopy を使用して Data Box 上のファイルシステムを一覧表示する

    ディレクトリの内容を一覧表示するには、次のコマンドを使用します。

    robocopy <source-dir> NULL /l /s /xx /njh /njs /fp /B

    エクスプローラーではこれらのファイルを一覧表示できないことにご注意ください。

  • Data Box 上のフォルダーとファイルをコピーまたは削除する

    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 などのツールを使用してソース データをコピーします。これによってメタデータはコピーされません。 データをコピーした後、smbcaclscifsacl などのツールを使用してメタデータをコピーできます。

次のサンプル コマンドは、rsync を使用してデータをコピーする最初の手順を実行します。

cp -aR /etc /opt/ 
rsync -avP /etc /opt (-a copies a directory)

次のステップ