附註:

使用 OCI 物件儲存同步和 s5cmd 工具將資料搬移至 OCI 雲端儲存服務

簡介

這是四個教學課程系列中的教學課程 3,其中顯示各種將資料移轉至 Oracle Cloud Infrastructure (OCI) 雲端儲存服務的方式。此系列已設定完成,您可以檢閱教學課程 1:使用移轉工具將資料搬移至 OCI 雲端儲存服務,深入瞭解各種工具,然後繼續進行與您移轉需求相關的教學課程或文件。本教學課程將著重於使用 OCI Object Storage Sync (os sync),以及使用 s5cmd 將檔案系統資料 (包括 OCI File Storage) 移轉至 OCI Object Storage。

OCI 為客戶提供高效能運算和低成本雲端儲存選項。Oracle 透過按需本機、物件、檔案、區塊和封存儲存,滿足關鍵儲存工作負載需求和使用案例。

OCI 雲端儲存服務可針對您的所有企業需求,提供快速、安全且持久的雲端儲存選項。從具有 Lustre 和 OCI Block Volumes 服務的 OCI File Storage 等高效能選項開始;從具有高效能掛接目標的 OCI File Storage 服務,可完全受管理的 EB 規模檔案系統;到高持久且可擴展的 OCI Object Storage。我們的解決方案可以滿足您的需求,範圍從 AI/ML 工作負載等效能密集型應用程式,到 EB 級資料湖。

判斷需要移轉的資料量,以及可切換至新 OCI 儲存平台的停機時間。批次移轉是將移轉細分為可管理增量的好選擇。批次移轉可讓您排定不同時段間特定應用程式的停機時間。有些客戶可以靈活地在 2-4 天內透過排定的維護時段進行一次性移轉。OCI FastConnect 可用於建立 OCI 與您環境之間的專用專用連線,連接埠速度從 1G 加速至 400G,以加速資料傳輸處理作業。OCI FastConnect 可以與合作夥伴解決方案 (例如 Megaport 和 ConsoleConnect) 整合,以建立與資料中心或雲端至雲端相互連線的專用連線,將資料直接從其他雲端廠商移轉至 OCI 雲端儲存服務。如需詳細資訊,請參閱 FastConnect 與 Megaport Cloud Router 整合

適用對象

DevOps 工程師、開發人員、OCI 雲端儲存管理員和使用者、IT 管理員、OCI 超級使用者和應用程式管理員。

目標

瞭解如何使用 OCI CLI 與 os sync 和 s5cmd 工具,將檔案系統資料複製和 (或) 同步至 OCI Object Storage。

必要條件

將網路檔案系統與本機檔案系統資料同步至 OCI 物件儲存

OCI 物件儲存同步是 OCI 命令行介面 (CLI) 的一部分,可將檔案系統目錄與儲存桶中的物件同步。此命令會周遊子目錄,將新的和修改過的檔案或物件從來源複製到目標,並選擇性地刪除來源中不存在的檔案。這是保持檔案系統資料和 OCI 物件儲存的儲存桶同步的便利工具。我們的測試環境發現,OCI Object Storage Sync 對混合資料集執行得很好,而且對大型檔案執行得更好 (1TB 以上)。

OCI Object Storage 支援 Amazon S3 相容 API。熟悉各種 Amazon S3 工具的客戶可以繼續使用這些工具。s5cmd 工具是免費的開源專案。它可以讓您瀏覽和傳輸資料至 S3 相容的物件存放區。它是以 Go 語言撰寫,並針對平行處理量進行最佳化。在測試期間,我們發現 s5cmd 工具最適合用於小型檔案 (小於 1MB 至 30MB 的檔案),並執行所有其他移動小型檔案的工具。將資料從檔案系統搬移至 OCI Object Storage 時,s5cmd 工具也適用於混合資料集。

如果您的資料可依目錄或前置碼組織成子集,您也可以橫向擴展作業系統同步,而 s5cmd 可跨多個 VM 執行,以改善傳輸時間。

使用作業系統同步來同步

  1. 將本機檔案系統資料同步至 OCI 物件儲存。

    執行下列基本 os sync 命令,將檔案從來源目錄同步至目的地儲存桶。

    oci os object sync --src-dir <path to migration-files> --bucket-name <bucket name>
    

    注意:此相同命令可用於內部部署本機檔案系統、內部部署 NFS 檔案系統,以及具有 OCI 檔案儲存 NFS 掛載的 OCI Compute 執行處理,將資料從 OCI 檔案儲存搬移至 OCI 物件儲存的儲存桶。

  2. 將資料從 OCI 物件儲存移轉至本機檔案系統。

    執行下列基本 os sync 命令,從目的地檔案系統中的來源儲存桶同步檔案 / 物件。

    oci os object sync --dest-dir <path to migration-target directory> --bucket-name <bucket name>
    

    注意:此相同命令可用於內部部署本機檔案系統、內部部署 NFS 檔案系統,以及具有 OCI 檔案儲存 NFS 掛載的 OCI Compute 執行處理,將資料從 OCI 檔案儲存服務搬移至 OCI 物件儲存的儲存桶。

  3. 增加平行作業。

    依照預設,只有 10 個作業會平行執行,增加平行作業可改善資料傳輸速度,同時也會耗用更多的系統資源和頻寬。在我們的測試環境中,我們將 VM.Standard.E4.Flex 與 24 個 OCPU、24Gbps 網路頻寬、384GB 的記憶體搭配使用,並發現 100 個平行作業最適合用於傳輸速度。較大的 VM 可一次增加 10 個作業,直到達到最佳傳輸速度或達到 1,000 個平行傳輸為止。較小的 VM 資源配置應從 10 個作業開始,並以 5 到 10 的增量增加,直到達到良好的傳輸量為止。使用下列旗標增加或減少平行作業。

    --parallel-operations-count <integer range>
    

    注意:如果在增加平行作業之後開始發生錯誤 (特別是 429 "TooManyRequests" 發生錯誤),請將平行作業降低 2,直到錯誤停止為止。

  4. 使用 pattern 命令篩選相符的檔案。

    樣式可以用來包括或排除相符的檔案。樣式命令可以在命令行多次使用,以符合多個樣式。

    • 若要包括符合樣式的檔案,請使用以下指令。

      --include
      
    • 若要排除符合樣式的檔案,請使用下列指令。

      --exclude
      

    注意:

    • *符合所有項目
    • ?比對任何單一字元
    • [sequence]符合序列中的任何字元
    • [!sequence]符合任何非序列字元
  5. 使用 --prefix 旗標。

    使用 --src-dir 命令將檔案上傳至物件儲存時使用的 --prefix 旗標會上傳物件,並將目錄路徑新增至物件名稱作為前置碼。用於從 OCI 物件儲存下載物件時,只會下載具有指定前置碼的物件,不會顯示為物件 / 檔案名稱的一部分。

  6. 執行前先驗證移轉。

    開始傳輸之前,您可以藉由讓 os 同步僅執行列印,決定要將哪些檔案上傳 / 下載至 OCI Object Storage。以下列旗標執行命令行。

    --dry-run
    

使用 s5cmd 來同步化

  1. 同步並複製命令。

    • s5cmd 的 sync 選項可單向同步化來源至目標,而不修改任何來源檔案,也不會刪除來源上不存在的檔案。新增 --delete 旗標,以移除來源上不存在的檔案。

    • copy 命令只會將物件從來源複製到目的地。

  2. 樣式比對。

    s5cmd 工具支援同步和複製作業的多層萬用字元。列出前置碼為第一個萬用字元的所有物件,然後在記憶體中篩選結果,即可達到此目的。

    當來源為檔案系統時,也適用萬用字元。使用 * 字元時,有時會解譯為 globing 萬用字元,以單引號括住,以避免發生未預期的結果。

    例如,若要將目錄中的所有壓縮檔案複製到儲存桶,請執行下列命令。

    s5cmd cp '*.gz' s3:/<bucket name>
    
  3. 基本同步指令 。

    • 將本機檔案系統資料同步至 OCI 物件儲存。執行下列基本 s5cmd 命令,將檔案從來源目錄同步至目的地儲存桶。

      s5cmd sync /<path to migration-files> s3://<bucket name>
      
    • 將 OCI 物件儲存的資料同步至本機檔案系統。執行下列基本 s5cmd 命令,從目的地檔案系統中的來源儲存桶同步檔案 / 物件。

      s5cmd sync s3:/<bucket name>/* /<path to migration-target directory>
      

    注意:相同的命令可用於內部部署本機檔案系統、內部部署 NFS 檔案系統,以及具有 OCI File Storage NFS 掛載的 OCI Compute 執行處理,以便將資料從 OCI File Storage 搬移至 OCI Object Storage 儲存的儲存桶。

  4. 基本複製命令。

    執行下列基本 s5cmd 命令,將檔案從本機檔案系統來源目錄複製到 OCI 物件儲存目的地儲存桶。

    s5cmd cp /<path to migration-files> s3://<bucket name>
    

    將資料從 OCI 物件儲存複製到本機檔案系統。

    s5cmd cp "s3:/<bucket name>/*" /<path to migration-target directory>
    

    注意:這些命令可用於內部部署本機檔案系統、內部部署 NFS 檔案系統,以及具有 OCI 檔案儲存 NFS 掛載的 OCI 運算執行處理,以將資料從 OCI 檔案儲存搬移至 OCI 物件儲存的儲存桶。我們的測試主要使用複製命令搭配 s5cmd。

  5. 增加併行執行。

    s5cmd 工具預設會平行執行 256 個工作節點。視 VM 的大小而定,您可能會想要增加或減少平行程度。在我們的測試環境中,我們將 VM.Standard.E4.Flex 與 24 個 OCPU、24Gbps 網路頻寬、384GB 的記憶體搭配使用,並發現 1,000 個平行作業最適合用於傳輸速度。較大的 VM 可一次增加 10 個作業,直到達到最佳傳輸速度或達到 1,000 個平行傳輸為止。較小的 VM 資源配置應從 10 個作業開始,並以 5 到 10 的增量增加,直到達到良好的傳輸量為止。使用下列旗標增加或減少平行作業。

    --numworkers <interger>
    

    備註:如果在增加職工數後開始發生錯誤 (特別是 429 "TooManyRequests" 發生錯誤),請將職工人數減少 2,直到錯誤停止發生為止。

    例如,將貯體中的所有物件複製到本機檔案系統目錄。

    s5cmd --numworkers 1000 cp "s3://MyBucket/*" /my/directory
    

    備註:我們向多達 1,500 名員工進行測試,但看不到任何顯著改善。由於我們的測試發現 s5cmd 工具最適合用於小型檔案,因此我們沒有為需要多部分上傳的檔案使用 concurrency 旗標,且使用大量工作者顯示最佳整體效能。

( 選擇性 ) 測試環境

建議是根據測試和客戶互動進行。

注意:包括 Rclone 結果以提供更多資訊,如需使用 Rclone 的詳細資訊,請參閱教學課程 2:使用 Rclone 將資料移至 OCI 雲端儲存服務

測試環境 1:

1 個 VM 執行處理 VM.Standard.E4.Flex、1 個 OCPU、1Gbps 網路頻寬、16GB 的記憶體。模擬內部部署至 OCI 的移轉,將資料從 PHX NFS 複製到 IAD。

資料集

測試環境 2:

VM 執行處理:每次測試使用 1-2 個 VM 執行處理,使用 VM.Standard.E4.Flex 搭配 24 個 OCPU、24Gbps 網路頻寬、384GB 的記憶體。Oracle Linux 8 已用於 Linux 測試。

資料集

接下來的步驟

繼續前往與您移轉需求相關的相關教學課程。若要將資料移至 OCI 雲端儲存服務:

認可

其他學習資源

探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center