教學課程:將資料複製到 Azure 資料箱磁碟並確認
將資料複製到 Azure 資料箱磁碟並驗證
連接磁碟並將其解除鎖定之後,您可以將資料從來源資料伺服器複製到磁碟。 資料複製完成之後,請驗證資料以確保其會成功上傳至 Azure。
重要
Azure 資料箱現在支援 Blob 層級的存取層指派。 本教學課程中包含的步驟會反映更新的資料複製程序,而且是區塊 Blob 特有的步驟。
使用資料箱分割複製工具複製資料時,不支援存取層指派。 如果您的使用案例需要存取層指派,請遵循將資料複製到磁碟一節內包含的步驟,使用 Robocopy 公用程式將資料複製到適當的存取層。
如需判斷區塊 Blob 資料的適當存取層說明,請參閱判斷區塊 Blob 的適當存取層一節。
本節包含的資訊適用於 2024 年 4 月 1 日之後下的訂單。
警告
本文參考 CentOS,這是處於終止服務 (EOL) 狀態的 Linux 發行版。 請據此考慮您的使用方式和規劃。
本教學課程說明如何從主機電腦複製資料,然後產生總和檢查碼以確認資料完整性。
在本教學課程中,您會了解如何:
- 判斷區塊 Blob 的適當存取層
- 將資料複製到資料箱磁碟
- 驗證資料
必要條件
在您開始前,請確定:
- 您已完成教學課程:安裝及設定您的 Azure 資料箱磁碟。
- 您的磁碟已解除鎖定,並連線到用戶端電腦。
- 用來將資料複製到磁碟的用戶端電腦執行支援的作業系統。
- 資料的預定儲存體類型符合支援的儲存體類型。
- 您已檢閱 Azure 物件大小限制中的受控磁碟限制。
判斷區塊 Blob 的適當存取層
重要
本節包含的資訊適用於 2024 年 4 月 1 日之後下的訂單。
Azure 儲存體可讓您將區塊 Blob 資料儲存在相同儲存體帳戶內的多個存取層中。 這項功能可讓您根據資料存取的頻率,更有效地組織及儲存資料。 下表包含 Azure 儲存體存取層的相關資訊和建議。
層 | 建議 | 最佳做法 |
---|---|---|
經常性 | 適合用於經常存取或修改的線上資料。 此階層儲存成本最高,但存取成本最低。 | 此層中的資料應為定期且積極使用。 |
非經常性 | 適合用於不常存取或修改的線上資料。 相較於經常性存取層,這一層的儲存成本較低且存取成本較高。 | 此層中的資料至少應該儲存 30 天。 |
極非經常性存取 | 適合用於很少存取或修改的線上資料,但仍需要快速擷取。 相較於非經常性存取層,這一層的儲存成本較低且存取成本較高。 | 這一層中的資料至少應儲存 90 天。 |
封存 | 適合用於很少存取且延遲需求較低的離線資料。 | 這一層中的資料至少應儲存 180 天。 在 180 天內從封存層移除的資料需要支付提早刪除費用。 |
如需 Blob 存取層的詳細資訊,請參閱 Blob 資料的存取層 (部分機器翻譯)。 如需更詳細的最佳做法,請參閱使用 Blob 存取層的最佳做法。
您可以將區塊 Blob 資料複製到資料箱磁碟內的對應資料夾,以將區塊 Blob 資料傳輸到適當的存取層。 此程序會在將資料複製到磁碟一節中更詳細地討論。
將資料複製到磁碟
檢閱下列考量,然後再將資料複製到磁碟:
您必須負責將本機資料複製到對應至適當資料格式的共用。 例如,將區塊 Blob 資料複製到 BlockBlob 共用。 將 VHD 複製到 PageBlob 共用。 如果本機資料格式不符合所選儲存體類型的適當資料夾,在後續步驟中將資料上傳至 Azure 的作業將會失敗。
您無法將資料直接複製到共用的 root 資料夾。 反而,在適當的共用內建立資料夾,並將您的資料複製到其中。
位於 PageBlob 共用的 root 的資料夾會對應至儲存體帳戶內的容器。 系統會針對名稱不符合儲存體帳戶內現有容器的任何資料夾建立新的容器。
位於 AzFile 共用的 root 的資料夾會對應至 Azure 檔案共用。 系統會針對名稱不符合儲存體帳戶內現有檔案共用的任何資料夾建立新的檔案共用。
BlockBlob 共用的 root 層級包含一個對應至每個存取層的資料夾。 將資料複製到 BlockBlob 共用時,請在對應至所需存取層的最上層資料夾內建立子資料夾。 與 PageBlob 共用一樣,系統會針對名稱不符合現有容器的任何資料夾建立新的容器。 容器內的資料會複製到對應至子資料夾最上層父代的階層。
此外,也會針對位於 BlockBlob 共用的 root 的任何資料夾建立容器,而且其包含的資料會複製到容器的預設存取層。 為了確保資料已複製到所需的存取層,請勿在 root 層級建立資料夾。
重要
上傳至封存層的資料會保持離線狀態,且在讀取或修改之前必須先解除凍結。 複製到封存層的資料至少必須保留 180 天,否則須支付提前刪除費用。 ZRS、GZRS 或 RA-GZRS 帳戶不支援封存層。
複製資料時,請確定資料大小符合 Azure 儲存體和資料箱磁碟限制一文所述的大小限制。
請勿停用資料箱磁碟上的 BitLocker 加密。 停用 BitLocker 加密會導致在傳回磁碟之後上傳失敗。 停用 BitLocker 也會讓磁碟處於解除鎖定狀態,造成安全性疑慮。
若要在將資料傳輸至 Azure 檔案儲存體時保留中繼資料 (例如 ACL、時間戳記和檔案屬性),請依照使用 Azure 資料箱磁碟保留檔案 ACL、屬性和時間戳記一文中的指引操作。
如果您同時使用資料箱磁碟和其他應用程式上傳資料,則可能會發生上傳作業失敗和資料損毀的情況。
重要
如果在建立順序時,將受控磁碟指定為其中一個儲存體目的地,則以下部分適用。
確定上傳至預先建立資料夾的虛擬硬碟 (VHD) 在資源群組內具有唯一的名稱。 對於資料箱磁碟上所有預先建立的資料夾,受控磁碟在資源群組中必須具有唯一的名稱。 如果您使用多個資料箱磁碟,則受控磁碟名稱在所有資料夾和磁碟間都必須是唯一的。 發現具有重複名稱的 VHD 時,只有一個會轉換成具有該名稱的受控磁碟。 其餘 VHD 會以分頁 Blob 的形式上傳至暫存儲存體帳戶中。
一律將 VHD 複製到其中一個預先建立的資料夾。 VHD 若放置在這些資料夾外部或您建立的資料夾中,就會以分頁 Blob (而非受控磁碟) 的形式上傳至 Azure 儲存體帳戶。
只能上傳固定的 VHD 來建立受控磁碟。 不支援動態 VHD、差異 VHD 或 VHDX 檔案。
資料箱磁碟分割複製和驗證工具
DataBoxDiskSplitCopy.exe
和DataBoxDiskValidation.cmd
會在處理長路徑時回報失敗。 當用戶端上未啟用長路徑,且資料複製的路徑和檔案名稱長度超過 256 個字元時,常會出現這類失敗。 若要避免這類失敗,請依照在 Windows 用戶端上啟用長路徑一文中的指引操作。
重要
資料箱磁碟工具不支援 Powershell ISE
執行下列步驟以從電腦連線到資料箱磁碟,並且複製資料。
檢視已解除鎖定磁碟機的內容。 根據您在建立資料箱磁碟訂單時選取的選項,磁碟中預先建立的資料夾和子資料夾清單會有所不同。 不允許建立額外的資料夾,因為將資料複製到使用者建立的資料夾,會導致上傳失敗。
選取的儲存體目的地 Storage account type 暫存的儲存體帳戶類型 資料夾和子資料夾 儲存體帳戶 GPv1 或 GPv2 NA BlockBlob - 封存
- 沒有興趣
- 非經常性存取
- 經常性
AzureFile儲存體帳戶 Blob 儲存體帳戶 NA BlockBlob - 封存
- 沒有興趣
- 非經常性存取
- 經常性
受控磁碟 NA GPv1 或 GPv2 ManagedDisk - PremiumSSD
- StandardSSD
- StandardHDD
儲存體帳戶
受控磁碟GPv1 或 GPv2 GPv1 或 GPv2 BlockBlob - 封存
- 沒有興趣
- 非經常性存取
- 經常性
AzureFile
ManagedDisk- PremiumSSD
- StandardSSD
- StandardHDD
儲存體帳戶
受控磁碟Blob 儲存體帳戶 GPv1 或 GPv2 BlockBlob - 封存
- 沒有興趣
- 非經常性存取
- 經常性
- PremiumSSD
- StandardSSD
- StandardHDD
下列螢幕擷取畫面顯示 GPv2 儲存體帳戶和封存層的指定順序:
將 VHD 或 VHDX 資料複製到 PageBlob 資料夾。 複製到 PageBlob 資料夾的所有檔案都會複製到 Azure 儲存體帳戶內的預設
$root
容器中。 系統會在 Azure 儲存體帳戶中,為 PageBlob 資料夾中的每個子資料夾建立一個容器。將要放在 Azure 檔案共用中的資料複製到 AzureFile 資料夾內的子資料夾。 所有複製到 AzureFile 資料夾的檔案,都會以檔案的形式複製到
databox-format-[GUID]
類型的預設容器,例如databox-azurefile-7ee19cfb3304122d940461783e97bf7b4290a1d7
。您無法將檔案直接複製到 BlockBlob 的 root 資料夾。 在根資料夾中,您會找到對應至每個可用存取層的子資料夾。 若要複製 Blob 資料,您必須先選取對應至其中一個存取層的資料夾。 接下來,在該階層的資料夾內建立子資料夾來儲存您的資料。 最後,將資料複製到新建立的子資料夾。 新的子資料夾代表擷取期間在儲存體帳戶內建立的容器。 您的資料會以 Blob 的形式上傳到此容器。 如同 AzureFile 共用,系統會針對位於 BlockBlob 的 root 資料夾的每個子資料夾建立新的 Blob 儲存體容器。 這些資料夾中的資料會根據儲存體帳戶的預設存取層來儲存。
開始複製資料之前,您必須先將任何存在於根目錄中的檔案和資料夾移至不同的資料夾。
重要
所有的容器、Blob 及檔案名稱都應符合 Azure 命名慣例。 如果未遵循這些規則,則將資料上傳至 Azure 會失敗。
複製檔案時,請確定檔案的區塊 Blob 不超過 4.7 TiB、分頁 Blob 不超過 8 TiB,而 Azure 檔案儲存體不超過 1 TiB。
您可以使用檔案總管的拖放功能來複製資料。 您也可以使用任何 SMB 相容的檔案複製工具 (例如 Robocopy) 來複製資料。
使用檔案複製工具的優點之一,是能夠起始多個複製作業,如下列使用 Robocopy 工具的範例所示:
Robocopy <source> <destination> * /MT:64 /E /R:1 /W:1 /NFL /NDL /FFT /Log:c:\RobocopyLog.txt
注意
此範例中使用的參數以內部測試期間使用的環境為基礎。 您的參數和值可能不同。
命令的參數和選項使用如下:
參數/選項 描述 來源 指定來源目錄的路徑。 Destination 指定目的地目錄的路徑。 /E 複製子目錄,包含空的目錄。 /MT[:n] 建立具有 n 個執行緒的多執行緒複本,其中 n 是介於 1 到 128 之間的整數。
n 的預設值是 8。/R: <n> 指定失敗複製的重試次數。
n 的預設值是 1,000,000 個項目。/W: <n> 指定重試之間的等待時間 (以秒為單位)。
n 的預設值為 30,相當於等候時間 30 秒。/NFL 指定不記錄檔案名稱。 /NDL 指定不會記錄目錄名稱。 /FFT 假設 FAT 檔案時間的解析精確度為 2 秒。 /Log:<記錄檔> 將狀態輸出寫入記錄檔。
任何現有的記錄檔都會被覆寫。您可採平行方式使用多個磁碟,在每個磁碟上執行多項作業。 請記住,重複的檔案名稱會遭到覆寫或引發複製錯誤。
當作業正在進行中時,檢查複製狀態。 下列範例顯示將檔案複製到資料箱磁碟的 robocopy 命令輸出。
C:\Users>robocopy ------------------------------------------------------------------------------- ROBOCOPY :: Robust File Copy for Windows ------------------------------------------------------------------------------- Started : Thursday, March 8, 2018 2:34:53 PM Simple Usage :: ROBOCOPY source destination /MIR source :: Source Directory (drive:\path or \\server\share\path). destination :: Destination Dir (drive:\path or \\server\share\path). /MIR :: Mirror a complete directory tree. For more usage information run ROBOCOPY /? **** /MIR can DELETE files as well as copy them ! C:\Users>Robocopy C:\Repository\guides \\10.126.76.172\AzFileUL\templates /MT:64 /E /R:1 /W:1 /FFT ------------------------------------------------------------------------------- ROBOCOPY :: Robust File Copy for Windows ------------------------------------------------------------------------------- Started : Thursday, March 8, 2018 2:34:58 PM Source : C:\Repository\guides\ Dest : \\10.126.76.172\devicemanagertest1_AzFile\templates\ Files : *.* Options : *.* /DCOPY:DA /COPY:DAT /MT:8 /R:1000000 /W:30 ------------------------------------------------------------------------------ 100% New File 206 C:\Repository\guides\article-metadata.md 100% New File 209 C:\Repository\guides\content-channel-guidance.md 100% New File 732 C:\Repository\guides\index.md 100% New File 199 C:\Repository\guides\pr-criteria.md 100% New File 178 C:\Repository\guides\pull-request-co.md 100% New File 250 C:\Repository\guides\pull-request-ete.md 100% New File 174 C:\Repository\guides\create-images-markdown.md 100% New File 197 C:\Repository\guides\create-links-markdown.md 100% New File 184 C:\Repository\guides\create-tables-markdown.md 100% New File 208 C:\Repository\guides\custom-markdown-extensions.md 100% New File 210 C:\Repository\guides\file-names-and-locations.md 100% New File 234 C:\Repository\guides\git-commands-for-master.md 100% New File 186 C:\Repository\guides\release-branches.md 100% New File 240 C:\Repository\guides\retire-or-rename-an-article.md 100% New File 215 C:\Repository\guides\style-and-voice.md 100% New File 212 C:\Repository\guides\syntax-highlighting-markdown.md 100% New File 207 C:\Repository\guides\tools-and-setup.md ------------------------------------------------------------------------------ Total Copied Skipped Mismatch FAILED Extras Dirs : 1 1 1 0 0 0 Files : 17 17 0 0 0 0 Bytes : 3.9 k 3.9 k 0 0 0 0 Times : 0:00:05 0:00:00 0:00:00 0:00:00 Speed : 5620 Bytes/sec. Speed : 0.321 MegaBytes/min. Ended : Thursday, August 31, 2023 2:34:59 PM
若要將效能最佳化,複製資料時請使用下列 robocopy 參數。
平台 大部分是 < 512 KB 的小型檔案 大部分是 512 KB-1 MB 的中型檔案 大部分是 > 1 MB 的大檔案 資料箱磁碟 4 個 Robocopy 工作階段*
每個工作階段 16 個執行緒2 個 Robocopy 工作階段*
每個工作階段 16 個執行緒2 個 Robocopy 工作階段*
每個工作階段 16 個執行緒*每個 Robocopy 工作階段最多可以有 7,000 個目錄和 1 億 5 千萬個檔案。
如需 Robocopy 命令的詳細資訊,請閱讀 Robocopy 和數個範例一文。
開啟目標資料夾,然後檢視並確認已複製的檔案。 如果您在複製程序期間遇到任何錯誤,請下載記錄檔以進行疑難排解。 robocopy 命令的輸出會指定記錄檔的位置。
將資料分割並複製到磁碟
利用資料箱分割複製工具,可以在兩個或更多 Azure 資料箱磁碟間分割及複製資料。 此工具只能在 Windows 電腦上使用。 若您有需要在數個磁碟間分割和複製的大型資料集,這個選擇性程序會很有幫助。
重要
資料箱分割複製工具也可以驗證您的資料。 如果您使用「資料箱分割複製」工具來複製資料,您可以略過驗證步驟。
使用資料箱分割複製工具複製資料時,不支援存取層指派。 如果您的使用案例需要存取層指派,請遵循將資料複製到磁碟一節內包含的步驟,使用 Robocopy 公用程式將資料複製到適當的存取層。
受控磁碟不支援資料箱分割複製工具。
在您的 Windows 電腦上,請確定已下載「資料箱分割複製」工具,並且已在本機資料夾中解壓縮。 此工具包含在適用於 Windows 的資料箱磁碟工具組中。
開啟檔案總管。 請記下指派給資料箱磁碟的資料來源磁碟機和磁碟機代號。
識別要複製的來源資料。 例如,在此案例中是:
瀏覽至解壓縮軟體的資料夾,並找出
SampleConfig.json
檔案。 此檔案是您可以修改並儲存的唯讀檔案。修改
SampleConfig.json
檔案。提供作業名稱。 系統會在資料箱磁碟上建立具有此名稱的資料夾。 名稱也用於在與這些磁碟相關聯的 Azure 儲存體帳戶中建立容器。 作業名稱必須遵循 Azure 容器命名慣例。
提供來源路徑,並記下
SampleConfigFile.json
中的路徑格式。輸入對應到目標磁碟的磁碟機代號。 資料會取自來源路徑,並複製到多個磁碟。
提供記錄檔的路徑。 根據預設,記錄檔會傳送至
.exe
檔案所在的目錄。若要驗證檔案格式,請移至
JSONlint
。將檔案儲存為
ConfigFile.json
。
使用較高的權限開啟命令提示字元視窗,然後使用下列命令執行
DataBoxDiskSplitCopy.exe
。DataBoxDiskSplitCopy.exe PrepImport /config:ConfigFile.json
出現提示時,請按任何按鍵繼續執行工具。
分割和複製資料集後,複製工作階段的分割複製工具摘要會隨即顯示,如下列範例輸出所示。
確認資料適當分散於目標磁碟間。
檢查
H:
磁碟機內容,並確定已建立兩個子資料夾,分別對應至區塊 Blob 和分頁 Blob 格式資料。如果複製工作階段動作失敗,請使用下列命令復原並繼續:
DataBoxDiskSplitCopy.exe PrepImport /config:ConfigFile.json /ResumeSession
如果在使用分割複製工具時發生錯誤,請依照對分割複製工具錯誤進行疑難排解一文中的步驟操作。
重要
資料箱分割複製工具也會驗證您的資料。 如果您使用「資料箱分割複製」工具來複製資料,您可以略過驗證步驟。 受控磁碟不支援分割複製工具。
驗證資料
如果您未使用資料箱分割複製工具來複製資料,則必須驗證資料。 對每個資料箱磁碟執行下列步驟,以驗證資料。 如果在驗證期間發生錯誤,請依照對驗證錯誤進行疑難排解一文中的步驟操作。
在磁碟機的 DataBoxDiskImport 資料夾中執行
DataBoxDiskValidation.cmd
,以進行總和檢查碼驗證。 此工具僅適用於 Windows 環境。 Linux 使用者必須驗證複製到磁碟的來源資料是否符合 Azure 資料箱必要條件。出現提示時,請選擇適當的驗證選項。 我們建議您選取選項 2,一律驗證檔案並產生總和檢查碼。 在指令碼完成之後,結束命令視窗。 完成驗證所需的時間取決於您的資料大小。 此工具會在驗證和總和檢查碼產生期間發生任何錯誤時通知您,並提供錯誤記錄的連結。
提示
- 請在兩次的執行之間重設工具。
- 如果您的大型資料集包含許多佔用相對較少儲存容量的檔案,則總和檢查碼程序可能需要更多時間。 如果您驗證檔案並略過總和檢查碼建立,則應先單獨驗證資料箱磁碟上的資料完整性,再刪除任何複本。 此驗證在理想情況下包括產生總和檢查碼。
下一步
在本教學課程中,您已了解如何使用 Azure 資料箱磁碟完成下列工作:
- 將資料複製到資料箱磁碟
- 確認資料完整性
請前進到下一個教學課程,以了解如何寄回資料箱磁碟,並確認資料上傳至 Azure。
將資料複製到磁碟
執行下列步驟以從電腦連線到資料箱磁碟,並且複製資料。
檢視已解除鎖定磁碟機的內容。 根據建立資料箱磁碟訂單時所選取的選項而定,磁碟中預先建立的資料夾和子資料夾清單會有所不同。
將資料複製到與適當資料格式相對應的資料夾。 例如,將非結構化資料複製到 BlockBlob 資料夾、將 VHD 或 VHDX 資料複製到 PageBlob 資料夾,以及將檔案複製到 AzureFile 資料夾。 如果資料格式與適當資料夾 (儲存體類型) 不相符,則在稍後步驟中,資料上傳至 Azure 的作業將會失敗。
- 確定所有容器、Blob 和檔案都符合 Azure 命名慣例和 Azure 物件大小限制。 如果未遵循這些規則或限制,則將資料上傳至 Azure 的作業會失敗。
- 如果訂單的其中一個儲存體目的地為受控磁碟,請參閱受控磁碟的命名慣例。
- 系統會在 Azure 儲存體帳戶中,為 BlockBlob 和 PageBlob 資料夾中的每個子資料夾建立一個容器。 BlockBlob 和 PageBlob 資料夾內的所有檔案都會複製到 Azure 儲存體帳戶內的預設 $root 容器中。 $root 容器內的任何檔案一律會上傳為區塊 Blob。
- 在 AzureFile 資料夾內建立子資料夾。 這個子資料夾會對應至雲端中的檔案共用。 將檔案複製到子資料夾。 直接複製到 AzureFile 資料夾的檔案會失敗並上傳為區塊 Blob。
- 如果檔案和資料夾存在於根目錄中,則必須先移至不同的資料夾,才能開始複製資料。
請使用檔案總管的拖放功能,或任何與 SMB 相容的檔案複製工具 (例如 Robocopy),來複製資料。 您可以使用下列命令起始多個複製作業:
Robocopy <source> <destination> * /MT:64 /E /R:1 /W:1 /NFL /NDL /FFT /Log:c:\RobocopyLog.txt
開啟目標資料夾,以檢視並確認已複製的檔案。 如果您在複製程序期間遇到任何錯誤,請下載記錄檔以進行疑難排解。 記錄檔位於 robocopy 命令所指定的位置。
如果您使用多個磁碟,而且具有必須分割並複製到所有磁碟上的大型資料集,請使用分割和複製的選擇性程序。
驗證資料
請遵循下列步驟來確認您的資料:
在磁碟機的 DataBoxDiskImport 資料夾中執行
DataBoxDiskValidation.cmd
,以進行總和檢查碼驗證。使用選項 2 來驗證您的檔案並產生總和檢查碼。 視您的資料大小而定,此步驟可能需要一段時間。 如果在驗證和產生總和檢查碼期間發生任何錯誤,您會收到通知及錯誤記錄的連結。
如需有關資料驗證的詳細資訊,請參閱驗證資料。 如果您在驗證期間遇到錯誤,請參閱針對驗證錯誤進行疑難排解。