共用方式為


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

將數據複製到 Azure 資料箱磁碟 並驗證

在磁碟連線並解除鎖定之後,您可以將數據從源數據源伺服器複製到磁碟。 數據複製完成後,您應該驗證數據,以確保數據會順利上傳至 Azure。

重要

Azure 資料箱現在支援 Blob 層級的存取層指派。 本教學課程中包含的步驟會反映更新的數據複製程式,而且是區塊 Blob 特有的步驟。

如需判斷區塊 Blob 數據適當存取層的說明,請參閱 判斷區塊 Blob 的適當存取層一節。 請遵循將數據複製到磁碟一節中包含的步驟,將數據複製到適當的存取層。

本節中包含的信息適用於 2024 年 4 月 1 日之後的訂單。

警告

本文參考 CentOS,這是接近生命週期結束 (EOL) 狀態的 Linux 發行版本。 請據此考慮您的使用方式和規劃。

本教學課程說明如何從主計算機複製數據,併產生總和檢查碼來驗證數據完整性。

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

  • 判斷區塊 Blob 的適當存取層
  • 將資料複製到 資料箱磁碟
  • 驗證數據

必要條件

在您開始前,請確定:

判斷區塊 Blob 的適當存取層

重要

本節中包含的信息適用於 2024 年 4 月 1之後的訂單。

Azure 儲存體 可讓您將區塊 Blob 資料儲存在相同記憶體帳戶內的多個存取層中。 這項功能可讓您根據數據存取的頻率,更有效率地組織及儲存數據。 下表包含 Azure 儲存體 存取層的相關信息和建議。

建議 最佳做法
經常性 適用於經常存取或修改的在線數據。 此階層儲存成本最高,但存取成本最低。 此層中的數據應為一般且使用中。
對於不常存取或修改的在線數據很有用。 此層的記憶體成本較低,存取成本高於經常性存取層。 此層中的數據至少應該儲存 30 天。
適用於很少存取或修改的在線數據,但仍需要快速擷取。 此層的記憶體成本較低,存取成本高於非經常性存取層。 此層中的數據至少應儲存 90 天。
封存 對於很少存取且延遲需求較低的離線數據很有用。 此層中的數據至少應儲存 180 天。 在 180 天內從封存層移除的數據受限於提早刪除費用。

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

您可以將區塊 Blob 資料複製到適當的存取層,方法是將它複製到 資料箱磁碟 內的對應資料夾。 此程式會在將數據複製到磁碟節中更詳細地討論。

將資料複製到磁碟

將資料複製到磁碟之前,請先檢閱下列考慮:

  • 您必須負責將本機資料複製到對應至適當數據格式的共用。 例如,將區塊 Blob 資料 複製到 BlockBlob 共用。 將 VHD 複製到 PageBlob 共用。 如果本機數據格式不符合所選記憶體類型的適當資料夾,則上傳至 Azure 的數據會在後續步驟中失敗。

  • 您無法將資料直接複製到共用的 資料夾。 相反地,請在適當的共用內建立資料夾,並將您的數據複製到其中。

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

    • 位於 AzFile 共用根目錄的資料夾會對應至 Azure 檔案共用。 系統會針對名稱不符合記憶體帳戶內現有檔案共用的任何資料夾建立新的檔案共用。

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

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

    重要

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

  • 複製數據時,請確定數據大小符合 Azure 記憶體和 資料箱磁碟 限制一文中所述的大小限制

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

  • 若要在將數據傳輸到 Azure 檔案儲存體 時保留元數據,例如 ACL、時間戳和檔案屬性,請遵循使用 Azure 資料箱磁碟 保留檔案 ACL、屬性和時間戳一文中的指引。

  • 如果您使用 資料箱磁碟 和其他應用程式同時上傳數據,您可能會遇到上傳作業失敗和數據損毀的情況。

    重要

    如果您在建立訂單期間將受控磁碟指定為其中一個記憶體目的地,則適用下一節。

  • 確定上傳至預先建立資料夾的虛擬硬碟 (VHD) 在資源群組內具有唯一的名稱。 受控磁碟在資源群組內必須具有跨 資料箱磁碟 上所有預先建立資料夾的唯一名稱。 如果您使用多個 資料箱磁碟,受控磁碟名稱在所有資料夾和磁碟上都必須是唯一的。 找到具有重複名稱的 VHD 時,只有一個會轉換成具有該名稱的受控磁碟。 其餘的 VHD 會以分頁 Blob 的形式上傳至預備記憶體帳戶。

  • 一律將 VHD 複製到其中一個預先建立的資料夾。 放置在這些資料夾外部的 VHD 或您建立的資料夾中,會上傳至 Azure 儲存體 帳戶作為分頁 Blob,而不是受控磁碟。

  • 只有固定的 VHD 可以上傳以建立受控磁碟。 不支援動態 VHD、差異 VHD 和 VHDX 檔案。

  • 資料箱磁碟 分割複製和驗證工具,DataBoxDiskSplitCopy.exe以及 DataBoxDiskValidation.cmd,會在處理長路徑時回報失敗。 當用戶端上未啟用長路徑,且數據複製的路徑和檔名超過 256 個字元時,這些失敗很常見。 若要避免這些失敗,請遵循 Windows 用戶端上啟用長路徑一文中的指引。

執行下列步驟,將數據從您的計算機連線並複製到 資料箱磁碟。

  1. 檢視已解除鎖定磁碟驅動器的內容。 磁碟驅動器中預先建立的資料夾和子資料夾清單會根據您在放置 資料箱磁碟 順序時選取的選項而有所不同。 不允許建立額外的資料夾,因為將數據複製到使用者建立的資料夾會導致上傳失敗。

    選取的記憶體目的地 Storage account type 預備記憶體帳戶類型 資料夾和子資料夾
    儲存體帳戶 GPv1 或 GPv2 NA BlockBlob
    • 封存
    • 沒有興趣
    • 非經常性存取
    • 經常性
    PageBlob
    AzureFile
    儲存體帳戶 Blob 記憶體帳戶 NA BlockBlob
    • 封存
    • 沒有興趣
    • 非經常性存取
    • 經常性
    受控磁碟 NA GPv1 或 GPv2 ManagedDisk
    • 進階版 SSD
    • StandardSSD
    • StandardHDD
    儲存體帳戶
    受控磁碟
    GPv1 或 GPv2 GPv1 或 GPv2 BlockBlob
    • 封存
    • 沒有興趣
    • 非經常性存取
    • 經常性
    PageBlob
    AzureFile
    ManagedDisk
    • 進階版 SSD
    • StandardSSD
    • StandardHDD
    儲存體帳戶
    受控磁碟
    Blob 記憶體帳戶 GPv1 或 GPv2 BlockBlob
    • 封存
    • 沒有興趣
    • 非經常性存取
    • 經常性
    ManagedDisk
    • 進階版 SSD
    • StandardSSD
    • StandardHDD

    下列螢幕快照顯示已指定 GPv2 記憶體帳戶和封存層的順序:

    磁碟驅動器內容的螢幕快照。

  2. 將 VHD 或 VHDX 資料複製到 PageBlob 資料夾。 複製到 PageBlob 資料夾的所有檔案都會複製到 Azure 儲存體 帳戶內的預設$root容器中。 容器會在 Azure 記憶體帳戶中針對 PageBlob 資料夾內的每個子資料夾建立。

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

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

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

    重要

    所有容器、Blob 和檔名都應該符合 Azure 命名慣例。 如果未遵循這些規則,上傳至 Azure 的數據將會失敗。

  3. 複製檔案時,請確定區塊 Blob 的檔案不超過 4.7 TiB、分頁 Blob 的 8 TiB,以及 1 TiB 用於 Azure 檔案儲存體。

  4. 您可以使用 檔案總管 的拖放功能來複製資料。 您也可以使用任何 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:<Log File> 將狀態輸出寫入記錄檔。
    會覆寫任何現有的記錄檔。

    多個磁碟可以與每個磁碟上執行的多個作業平行使用。 請記住,重複的檔名會遭到覆寫或產生複製錯誤。

  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 命令的輸出會指定記錄檔的位置。

將數據分割並複製到磁碟

數據箱分割複製工具可協助跨兩個以上的 Azure 資料箱磁碟 分割和複製數據。 此工具僅適用於 Windows 電腦上。 當您有需要分割和複製到數個磁碟的大型數據集時,這個選擇性程式會很有説明。

重要

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

  1. 在 Windows 電腦上,請確定您已在本機資料夾中下載並解壓縮資料箱分割複製工具。 此工具包含在適用於 Windows 的 資料箱磁碟 工具組中。

  2. 開啟檔案總管。 記下指派給 資料箱磁碟 的數據源磁碟驅動器和驅動器號。

    指派給 資料箱磁碟 之數據源磁碟驅動器和驅動器號的螢幕快照。

  3. 識別要複製的源數據。 例如,在此情況下:

    • 已識別下列區塊 Blob 數據。

      針對複製程序識別的區塊 Blob 資料的螢幕快照。

    • 已識別下列分頁 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. DataBoxDiskValidation.cmd 磁碟驅動器的 DataBoxDiskImport 資料夾中執行總和檢查碼驗證。 此工具僅適用於 Windows 環境。 Linux 使用者必須驗證複製到磁碟的源數據是否符合 Azure 資料箱必要條件。

    顯示 資料箱磁碟 驗證工具輸出的螢幕快照。

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

    顯示失敗執行嘗試並指出對應記錄檔位置的螢幕快照。

    提示

    • 在兩個回合之間重設工具。
    • 如果您的大型數據集包含許多佔用相對較少儲存容量的檔案,總和檢查碼程式可能需要更多時間。 如果您驗證檔案並略過總和檢查碼建立,您應該先獨立驗證 資料箱磁碟 上的數據完整性,再刪除任何複本。 此驗證在理想情況下包括產生總和檢查碼。

下一步

在本教學課程中,您已瞭解如何使用 Azure 資料箱磁碟 完成下列工作:

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

前進到下一個教學課程,瞭解如何傳回 資料箱磁碟,並確認數據上傳至 Azure。

將資料複製到磁碟

採取下列步驟,將數據從您的計算機連線並複製到 資料箱磁碟。

  1. 檢視已解除鎖定磁碟驅動器的內容。 磁碟驅動器中預先建立的資料夾和子資料夾清單會根據放置 資料箱磁碟 順序時選取的選項而有所不同。

  2. 將資料複製到對應至適當數據格式的資料夾。 例如,將非結構化數據 複製到 BlockBlob 資料夾、VHD 或 VHDX 資料至 PageBlob 資料夾,並將檔案複製到 AzureFile 資料夾。 如果數據格式不符合適當的資料夾(記憶體類型),則上傳至 Azure 的數據會在稍後的步驟失敗。

    • 請確定所有容器、Blob 和檔案都 符合 Azure 命名慣例Azure 物件大小限制。 如果未遵循這些規則或限制,則上傳至 Azure 的數據會失敗。
    • 如果您的訂單 受控磁碟 為其中一個記憶體目的地,請參閱受控磁碟命名慣例。
    • 容器會在 Azure 記憶體帳戶中針對 BlockBlob 和 PageBlob 資料夾中的每個子資料夾建立。 BlockBlob 和 PageBlob 資料夾中的所有檔案都會複製到 Azure 儲存體 帳戶內的預設$root容器。 $root容器內的任何檔案一律會上傳為區塊 Blob。
    • AzureFile 資料夾中建立子資料夾。 此子資料夾會對應至雲端中的檔案共用。 將檔案複製到子資料夾。 直接 複製到 AzureFile 資料夾的檔案會失敗,並上傳為區塊 Blob。
    • 如果檔案和資料夾存在於根目錄中,則必須先移至不同的資料夾,資料複製才能開始。
  3. 使用拖放功能搭配 檔案總管 或任何SMB相容的檔案複製工具,例如Robocopy來複製您的數據。 您可以使用下列命令來起始多個複製作業:

    Robocopy <source> <destination>  * /MT:64 /E /R:1 /W:1 /NFL /NDL /FFT /Log:c:\RobocopyLog.txt
    
  4. 開啟目標資料夾以檢視並驗證複製的檔案。 如果您在複製程式期間發生任何錯誤,請下載記錄檔以進行疑難解答。 記錄檔位於robocopy命令中指定的位置。

當您使用多個磁碟時,請使用分割和複製選擇性程式,並擁有需要跨所有磁碟分割和複製的大型數據集。

驗證資料

請遵循下列步驟來確認您的資料:

  1. DataBoxDiskValidation.cmd 磁碟驅動器的 DataBoxDiskImport 資料夾中執行 總和檢查碼驗證。

  2. 使用選項 2 來驗證您的檔案併產生總和檢查碼。 視您的數據大小而定,此步驟可能需要一些時間。 如果在驗證和總和檢查碼產生期間發生任何錯誤,您會收到通知,也會提供錯誤記錄的連結。

    如需數據驗證的詳細資訊,請參閱 驗證數據。 如果您在驗證期間遇到錯誤,請參閱 針對驗證錯誤進行疑難解答。