Azure 資料箱磁碟可讓您在將數據傳送至 Azure 時保留存取控制清單(ACL)、時間戳和檔案屬性。 本文說明在將數據複製到 Data Box Disk 以便上傳至 Azure Files 時,您可以傳輸的中繼資料。
傳輸的元數據
ACL、時間戳和檔案屬性是將數據從數據箱磁碟上傳至 Azure 檔案記憶體時所傳輸的元數據。 在本文中,ACL、時間戳和檔案屬性會統稱為 元數據。
您可以使用 Windows 資料複製工具來複製元資料。 將數據傳輸到 Blob 記憶體時,不會保留元數據。
本文後續各節會詳細討論當數據箱磁碟的數據上傳至 Azure 檔案服務時,時間戳、檔案屬性和 ACL 的傳輸方式。
時間戳記
傳輸下列時間戳:
- 創建時間
- 最後寫入時間
不會傳輸下列時間戳:
- 最後存取時間
檔案屬性
除非另有說明,否則會傳輸檔案和目錄上的檔案屬性。
傳輸下列檔案屬性:
- FILE_ATTRIBUTE_READONLY(僅限於檔案)
- 檔案屬性_隱藏
- FILE_ATTRIBUTE_SYSTEM (檔案屬性系統)
- FILE_ATTRIBUTE_DIRECTORY (僅限目錄)
- 文件屬性_檔案儲存
- FILE_ATTRIBUTE_TEMPORARY (僅限於檔案)
- FILE_ATTRIBUTE_NO_SCRUB_DATA
不會傳輸下列檔案屬性:
- 文件屬性_離線 (FILE_ATTRIBUTE_OFFLINE)
- 文件屬性_不被內容索引
目錄上的唯讀屬性不會傳送。
替代數據流和擴充屬性
Azure 檔案記憶體、分頁 Blob 或區塊 Blob 記憶體不支援替代數據流和擴充屬性,因此在複製數據時不會傳輸它們。
ACL
根據所使用的傳輸方法,以及您是否使用 Windows 或 Linux 用戶端,在檔案和資料夾上的部分或所有任意和預設存取控制清單(ACL)可能會在資料複製到 Azure 檔案服務期間傳輸。
備註
不會複製具有條件式存取控制項目(ACE)字串的 ACL 檔案。 這是已知問題。 若要解決此問題,請手動掛接共用區,然後使用支援複製存取控制清單 (ACL) 的工具,將這些檔案複製到 Azure 文件共用區。
複製數據和元數據
若要傳輸資料的 ACL、時間戳和屬性,請使用下列程式將資料複製到資料箱。
Windows 資料複製工具
若要將資料複製到資料箱磁碟,請使用檔案複製工具,例如 robocopy。 下列範例命令會複製所有檔案和目錄,並將元數據連同數據一起傳輸。
robocopy <Source> <Target> * /copyall /e /dcopy:DAT /B /r:3 /w:60 /is /nfl /ndl /np /MT:32 or 64 /fft /log+:<LogFile>
哪裡
| 選項 | 說明 |
|---|---|
/copyall |
複製所有屬性。 |
/e |
複製子目錄,包括空白目錄。 |
/dcopy:DAT |
複製資料、屬性和時間戳。 注意:/dcopy:DAT 選項必須用來在目錄上傳輸 CreationTime 。 |
/B |
以備份模式複製檔案。 |
/r:3 |
指定在複製失敗時進行三次重試。 |
/w:60 |
指定重試之間的等候時間 60 秒。 |
/is |
包含相同的檔案。 |
/nfl |
不會記錄檔名稱。 |
/ndl |
不會記錄目錄名稱。 |
/np |
不會顯示複製作業的進度。 |
/MT:32 or 64 |
使用多線程,搭配 32 或 64 個線程。 |
/fft |
減少任何檔案系統的時間標記細微度。 |
/log+:<LogFile> |
將輸出附加至現有的記錄檔。 |
如需這些 robocopy 參數的詳細資訊,請參閱 教學課程:透過SMB將資料複製到 Azure 資料箱
備註
如果您使用 /copyall 來複製數據,目錄和檔案上的來源 ACL 會傳輸至 Azure 檔案記憶體。 如果您僅有源數據的讀取權限,且無法修改源數據,那麼在數據塊磁碟中的數據您也只能具有讀取權限。
/copyall只有當您要複製目錄和檔案上的所有 ACL 以及資料時,才使用 。
使用 robocopy 列出、複製、修改資料箱磁碟上的檔案
當您使用robocopy時,以下是您在複製數據時可能遇到的一些常見情況。
僅將資料複製到數據箱磁碟,目錄和檔案上沒有 ACL
使用
/dcopy:DAT選項僅複製資料、屬性、時間戳。 不會複製目錄和檔案上的 ACL。將目錄和檔案上的數據和 ACL 複製到資料箱磁碟
使用
/copyall來複製所有源數據,包括目錄和檔案上的所有 ACL。使用 robocopy 列出資料箱磁碟上的文件系統
使用此指令來列出目錄內容:
robocopy <source-dir> NULL /l /s /xx /njh /njs /fp /B請注意,檔案總管不允許列出這些檔案。
複製或刪除資料箱磁碟上的資料夾和檔案
使用此指令複製單一檔案:
robocopy <source-dir> <destination-dir> <file-name> /B使用此指令移除單一檔案:
robocopy <source-dir> <destination-dir> <file-name> /purge /B在上述命令中
<source-dir>,不應該有 檔案:<file-name>。 然後,上述命令會將目的地與來源同步,導致從目的地移除檔案。請注意,檔案總管可能不允許您執行上述作業。
如需詳細資訊,請參閱 使用 robocopy 命令。
Linux 資料複製工具
在 Linux 中傳輸元數據是一個兩個步驟的過程。 首先,您會使用 之類的工具複製源數據,而 rsync此工具不會複製元數據。 複製資料之後,您可以使用例如smbcacls 或 cifsacl之類的工具來複製元數據。
下列範例命令會執行第一個步驟,使用 rsync複製數據。
cp -aR /etc /opt/
rsync -avP /etc /opt (-a copies a directory)