共用方式為


教學:將資料複製到 Azure 資料箱磁碟 並驗證

重要

Azure 資料箱 現在支援在 blob 物件級別進行存取層的設定。 本教學課程中包含的步驟會反映更新的資料複製流程,而且是區塊 Blob 特有的步驟。

使用資料箱分割複製工具複製資料時,不支援存取層指派。 如果您的使用案例需要存取層指派,請依照將數據複製到磁碟一節中包含的步驟,使用 Robocopy 公用程式將數據複製到適當的存取層。

如需判斷區塊 Blob 資料的適當存取層說明,請參閱判斷區塊 Blob 的適當存取層一節。

本節包含的資訊適用於 2024 年 4 月 1 日之後下的訂單。

警告

本文參考了 CentOS,這是一個處於終止支援狀態的 Linux 發行版本。 請據此考慮您的使用方式和規劃。

本教學課程說明如何從主機電腦複製資料,然後產生總和檢查碼以確認資料完整性。

在本教學課程中,您會了解如何:

  • 確定 Block Blob 的適當存取層級
  • 將資料複製到 資料箱磁碟
  • 驗證資料

必要條件

在您開始前,請確定:

決定區塊 Blob 的適當存取層級

重要

本節包含的資訊適用於 2024 年 4 月 1 日之後下的訂單。

Azure 儲存體 允許你在同一個儲存帳號內,將區塊 blob 資料存放在多個存取層級。 這項功能可讓您根據資料存取的頻率,更有效地組織及儲存資料。 下表包含有關 Azure 儲存體 存取層級的資訊與建議。

建議 最佳做法
熱門 適合用於經常存取或修改的線上資料。 此階層儲存成本最高,但存取成本最低。 此層中的資料應定期且積極地使用。
適合用於不常存取或修改的線上資料。 相較於熱門層,這一層的儲存成本較低且存取成本較高。 此層中的資料至少應該儲存 30 天。
適合用於很少存取或修改的線上資料,但仍需要快速擷取。 相較於冷存取層,此層的儲存成本較低,而存取成本較高。 這一層中的資料至少應儲存 90 天。
封存 適合用於很少存取且延遲需求較低的離線資料。 這一層中的資料至少應儲存 180 天。 在 180 天內從封存層移除的資料需要支付提早刪除費用。

如需 Blob 存取層級的詳細資訊,請參閱 Blob 資料的存取層。 如需更詳細的最佳做法,請參閱使用 Blob 存取層的最佳做法

你可以將區塊 blob 資料複製到 資料箱磁碟 內對應的資料夾,轉移到適當的存取層級。 此程序會在將資料複製到磁碟一節中更詳細地討論。

將資料複製到磁碟

檢閱下列考量,然後再將資料複製到磁碟:

  • 您必須負責將本機資料複製到對應到適當資料格式的共用位置。 例如,將區塊 Blob 資料複製到 BlockBlob 共用。 將 VHD 複製到 Page Blob 儲存體。 如果本地資料格式與所選儲存類型的適當資料夾不符,資料上傳到 Azure 的步驟就會失敗。

  • 您無法將資料直接複製到共用的 root 資料夾。 相反地,在適當的共享位置建立資料夾,然後將您的資料複製到其中。

    • 位於 PageBlob 共用根目錄的資料夾會在您的儲存體帳戶中對應到容器。 系統會針對名稱不符合儲存體帳戶內現有容器的任何資料夾建立新的容器。

    • 位於 AzFile 共享資料夾的資料夾 root對應Azure檔案分享。 系統會針對名稱不符合儲存體帳戶內現有檔案共用的任何資料夾建立新的檔案共用。

    • BlockBlob 共用的 root 層級包含一個對應至每個存取層的資料夾。 將資料複製到 BlockBlob 共用時,請在對應至所需存取層的最上層資料夾內建立子資料夾。 與 PageBlob 共用一樣,系統會針對名稱不符合現有容器的任何資料夾建立新的容器。 容器內的資料會被複製到對應子資料夾頂層父資料夾的儲存階層。

      此外,也會針對位於 BlockBlob 共用的 root 的任何資料夾建立容器,而且其包含的資料會複製到容器的預設存取層。 為了確保資料已複製到所需的存取層,請勿在 root 層級建立資料夾。

    重要

    上傳至封存層的資料會保持離線狀態,且在讀取或修改之前必須先解除凍結。 複製到封存層的資料至少必須保留 180 天,否則須支付提前刪除費用。 ZRS、GZRS 或 RA-GZRS 帳戶不支援封存層。

  • 複製資料時,請確保資料大小符合 Azure 儲存體和 資料箱磁碟 限制 文章中所述的大小限制。

  • 請勿停用資料箱磁碟上的 BitLocker 加密。 停用 BitLocker 加密會導致在傳回磁碟之後上傳失敗。 停用 BitLocker 也會讓磁碟處於解除鎖定狀態,造成安全性疑慮。

  • 為了在傳輸資料到 Azure 檔案儲存體 時保留 ACL、時間戳記和檔案屬性等元資料,請遵循 保留檔案 ACL、屬性和時間戳記的 Azure 資料箱磁碟 文章中的指引。

  • 如果你同時使用 資料箱磁碟 和其他應用程式上傳資料,可能會遇到上傳工作失敗和資料損毀的問題。

    重要

    如果在建立順序時,將受控磁碟指定為其中一個儲存體目的地,則以下部分適用。

  • 確定上傳至預先建立資料夾的虛擬硬碟 (VHD) 在資源群組內具有唯一的名稱。 受管理磁碟必須在資源群組中擁有唯一名稱,涵蓋 資料箱磁碟 上所有預先建立的資料夾。 如果您使用多個資料箱磁碟,則受控磁碟名稱在所有資料夾和磁碟間都必須是唯一的。 發現具有重複名稱的 VHD 時,只有一個會轉換成具有該名稱的受控磁碟。 其餘的 VHD 會以分頁 Blob 的形式上傳至暫存儲存體帳戶。

  • 一律將 VHD 複製到其中一個預先建立的資料夾。 放在這些資料夾外或在您所建立之資料夾內的 VHD,會以分頁 Blob 的形式上傳到 Azure 儲存體帳號,而不是受控磁碟。

  • 只能上傳固定的 VHD 來建立受控磁碟。 不支援動態 VHD、差異 VHD 或 VHDX 檔案。

  • 資料箱磁碟拆分複製與確認工具 ,DataBoxDiskSplitCopy.exeDataBoxDiskValidation.cmd,會在處理長路徑時會回報失敗。 當用戶端上未啟用長路徑,且資料複製的路徑和檔案名稱長度超過 256 個字元時,常會出現這類失敗。 為避免這些失敗,請在你的 Windows 客戶端上依照啟用長路徑文章中的指引進行操作。

重要

PowerShell ISE 不支援資料箱磁碟工具

請執行以下步驟,將資料從電腦複製到 資料箱磁碟。

  1. 檢視已解除鎖定磁碟機的內容。 磁碟機中預設建立的資料夾和子資料夾清單會依你在 資料箱磁碟 排序時所選擇的選項而有所不同。 不允許建立額外的資料夾,因為將資料複製到使用者建立的資料夾,會導致上傳失敗。

    選取的儲存體目的地 記憶體帳戶類型 暫存儲存體帳戶類型 資料夾和子資料夾
    儲存體帳戶 GPv1 或 GPv2 NA BlockBlob
    • 封存
    • 非經常性存取
    • 熱的
    PageBlob
    AzureFile
    儲存體帳戶 Blob 儲存體帳戶 NA BlockBlob
    • 封存
    • 非經常性存取
    • 熱的
    受控磁碟 NA GPv1 或 GPv2 ManagedDisk
    • PremiumSSD
    • StandardSSD
    • StandardHDD
    儲存體帳戶
    受控磁碟
    GPv1 或 GPv2 GPv1 或 GPv2 BlockBlob
    • 封存
    • 非經常性存取
    • 熱的
    PageBlob
    AzureFile
    ManagedDisk
    • PremiumSSD
    • StandardSSD
    • StandardHDD
    儲存體帳戶
    受控磁碟
    Blob 儲存體帳戶 GPv1 或 GPv2 BlockBlob
    • 封存
    • 非經常性存取
    • 熱的
    ManagedDisk
    • PremiumSSD
    • StandardSSD
    • StandardHDD

    下列螢幕擷取畫面顯示 GPv2 儲存體帳戶和封存層的指定順序:

    磁碟機內容的螢幕擷取畫面。

  2. 將 VHD 或 VHDX 資料複製到 PageBlob 資料夾。 所有複製到 PageBlob 資料夾的檔案,都會被複製到Azure 儲存體帳號內的預設 $root 容器中。 Azure儲存帳號中會為 PageBlob 資料夾中的每個子資料夾建立容器。

    將要放入Azure檔案分享的資料複製到 AzureFile 資料夾中的子資料夾。 所有複製到 AzureFile 資料夾的檔案,都會以檔案的形式複製到 databox-format-[GUID] 類型的預設容器,例如 databox-azurefile-7ee19cfb3304122d940461783e97bf7b4290a1d7

    您無法將檔案直接複製到 BlockBlobroot 資料夾。 在根資料夾中,您會找到對應至每個可用存取層的子資料夾。 若要複製 Blob 資料,您必須先選取對應至其中一個存取層的資料夾。 接下來,在該階層的資料夾內建立子資料夾來儲存您的資料。 最後,將資料複製到新建立的子資料夾。 新的子資料夾代表在擷取期間於儲存體帳戶內建立的容器。 您的資料會以 Blob 的形式上傳到此容器。 如同 AzureFile 共用,系統會針對位於 BlockBlobroot 資料夾的每個子資料夾建立新的 Blob 儲存體容器。 這些資料夾中的資料會根據儲存體帳戶的預設存取層來儲存。

    開始複製資料之前,您必須先將任何存在於根目錄中的檔案和資料夾移至不同的資料夾。

    重要

    所有容器、blob 和檔名都應該符合 Azure 命名慣例。 若未遵守這些規則,資料上傳至 Azure 將失敗。

  3. 複製檔案時,請確保區塊 Blob 的檔案不超過 7 TiB,分頁 Blob 的檔案不超過 7 TiB,Azure 檔案儲存體的檔案不超過 4 TiB。

  4. 您可以使用檔案總管的拖放功能來複製資料。 您也可以使用任何 SMB 相容的檔案複製工具 (例如 Robocopy) 來複製資料。

    使用檔案複製工具的優點之一,是能夠起始多個複製作業,如下列使用 Robocopy 工具的範例所示:

    Robocopy <source> <destination> * /MT:64 /E /R:1 /W:1 /NFL /NDL /FFT /Log:c:\RobocopyLog.txt

    注意

    此範例中使用的參數以內部測試期間使用的環境為基礎。 您的參數和值可能不同。

    命令的參數和選項使用如下:

    參數/選項 描述
    來源 指定來源目錄的路徑。
    目的地 指定目的地目錄的路徑。
    /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:<記錄檔> 將狀態輸出寫入記錄檔。
    任何現有的記錄檔都會被覆寫。

    您可採平行方式使用多個磁碟,在每個磁碟上執行多項作業。 請記住,重複的檔案名稱會遭到覆寫或引發複製錯誤。

  5. 當作業正在進行中時,檢查複製狀態。 以下範例展示了 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 和數個範例一文。

  6. 開啟目標資料夾,然後檢視並確認已複製的檔案。 如果您在複製程序期間遇到任何錯誤,請下載記錄檔以進行疑難排解。 robocopy 命令的輸出會指定記錄檔的位置。

將資料分割並複製到磁碟

Data Box 分割複製工具有助於將資料分割並複製到兩個或多個 Azure 資料箱 磁碟之間。 此工具僅支援 Windows 電腦使用。 若您有需要在數個磁碟間分割和複製的大型資料集,這個選擇性程序會很有幫助。

重要

資料箱分割複製工具也可以驗證您的資料。 如果您使用「資料箱分割複製」工具來複製資料,您可以略過驗證步驟

使用資料箱分割複製工具複製資料時,不支援存取層指派。 如果您的使用案例需要存取層指派,請依照將數據複製到磁碟一節中包含的步驟,使用 Robocopy 公用程式將數據複製到適當的存取層。

受控磁碟不支援資料箱分割複製工具。

  1. 在你的 Windows 電腦上,確保你已下載 Data Box 分割複製工具,並將其解壓至本地資料夾中。 此工具包含在 Windows 版 資料箱磁碟 工具組中。

  2. 開啟檔案總管。 記下資料來源磁碟機及分配給 資料箱磁碟 的磁碟代號。

    資料來源磁碟機及指定予 資料箱磁碟 的磁碟代號截圖

  3. 識別要複製的來源資料。 例如,在這個例子中:

    • 已識別下列區塊 Blob 資料。

      螢幕擷取畫面顯示已識別區塊 Blob 資料以進行複製程序。

    • 已識別以下的 page blob 資料。

      顯示用於複製過程中已被識別的頁面 Blob 數據的螢幕擷取畫面。

  4. 瀏覽至解壓縮軟體的資料夾,並找出 SampleConfig.json 檔案。 此檔案是您可以修改並儲存的唯讀檔案。

    螢幕擷取畫面顯示範例組態檔的位置。

  5. 修改 SampleConfig.json 檔案。

    • 提供作業名稱。 資料箱磁碟 上會建立一個同名資料夾。 這個名稱也被用來在與這些磁碟相關的 Azure 儲存帳號中建立一個容器。 工作名稱必須遵循Azure容器命名慣例

    • 提供來源路徑,並記下 SampleConfigFile.json 中的路徑格式。

    • 輸入對應到目標磁碟的驅動器代號。 資料會取自來源路徑,並複製到多個磁碟。

    • 提供記錄檔的路徑。 根據預設,記錄檔會傳送至 .exe 檔案所在的目錄。

    • 若要驗證檔案格式,請移至 JSONlint

      螢幕擷取畫面顯示範例組態檔的內容。

    • 將檔案儲存為 ConfigFile.json

      螢幕擷取畫面顯示取代組態檔的位置。

  6. 使用較高的權限開啟命令提示字元視窗,然後使用下列命令執行 DataBoxDiskSplitCopy.exe

    DataBoxDiskSplitCopy.exe PrepImport /config:ConfigFile.json
    
  7. 出現提示時,請按任何按鍵繼續執行工具。

    螢幕擷取畫面顯示執行分割複製工具的命令提示字元視窗。

  8. 分割和複製資料集後,複製工作階段的分割複製工具摘要會隨即顯示,如下列範例輸出所示。

    螢幕擷取畫面顯示成功執行分割複製工具之後所呈現的摘要。

  9. 確認資料適當分散於目標磁碟間。

    指出在兩個目標磁碟中的第一個正確拆分之結果資料的螢幕截圖。

    指出在兩個目標磁碟中的第二個正確拆分之結果資料的螢幕截圖。

    檢查 H: 磁碟機內容,並確定已建立兩個子資料夾,分別對應至區塊 Blob 和分頁 Blob 格式資料。

    螢幕擷取畫面顯示已建立的兩個子資料夾,其對應至區塊 Blob 和分頁 Blob 格式資料。

  10. 如果複製工作階段動作失敗,請使用下列命令復原並繼續:

    DataBoxDiskSplitCopy.exe PrepImport /config:ConfigFile.json /ResumeSession

如果在使用分割複製工具時發生錯誤,請依照對分割複製工具錯誤進行疑難排解一文中的步驟操作。

重要

資料箱分割複製工具也會驗證您的資料。 如果您使用「資料箱分割複製」工具來複製資料,您可以略過驗證步驟。 受控磁碟不支援分割複製工具。

驗證資料

如果您未使用資料箱分割複製工具來複製資料,則必須驗證資料。 對每個資料箱磁碟執行下列步驟,以驗證資料。 如果在驗證期間發生錯誤,請依照對驗證錯誤進行疑難排解一文中的步驟操作。

  1. 在磁碟機的 DataBoxDiskImport 資料夾中執行 DataBoxDiskValidation.cmd,進行校驗。 此工具僅支援 Windows 環境。 Linux 使用者需要驗證複製到磁碟的原始資料是否符合 Azure 資料箱 的前提條件

    截圖顯示 資料箱磁碟 驗證工具的輸出。

  2. 出現提示時,請選擇適當的驗證選項。 我們建議您一律驗證檔案並產生檢查碼,選取選項 2。 在指令碼完成之後,結束命令視窗。 完成驗證所需的時間取決於您的資料大小。 此工具會在驗證和總和檢查碼產生期間發生任何錯誤時通知您,並提供錯誤記錄的連結。

    螢幕擷取畫面顯示失敗執行嘗試並指出對應記錄檔的位置。

    提示

    • 請在兩次的執行之間重設工具。
    • 如果您的大型資料集包含許多佔用相對較少儲存容量的檔案,則總和檢查碼程序可能需要更多時間。 如果您確認檔案並跳過校驗和建立,您應該在刪除任何副本前先單獨驗證資料箱磁碟的資料完整性。 此驗證在理想情況下包括產生總和校驗和。

下一步

在這個教學中,你學會了如何使用 Azure 資料箱磁碟 完成以下任務:

  • 將資料複製到 資料箱磁碟
  • 確認資料完整性

請繼續進入下一個教學,學習如何返回 資料箱磁碟 並驗證資料上傳到 Azure。