附註:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱 Oracle Cloud Infrastructure Free Tier 入門。
- 它使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值取代為您雲端環境特定的值。
使用 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 Object Storage Sync (os sync) 是 Oracle Cloud Infrastructure 命令行介面 (OCI CLI) 的一部分,可將檔案系統目錄與儲存桶中的物件同步。此命令會周遊子目錄,將新的和修改過的檔案或物件從來源複製到目標,並選擇性地刪除來源中不存在的檔案。
-
s5cmd 工具是免費的開源專案。s5cmd 可讓您瀏覽資料,並將資料傳輸至 S3 相容物件存放區 (包括 OCI 物件儲存) 或從檔案系統資料 (包括 OCI 檔案儲存) 進行傳輸。它是以 Go 語言撰寫。
判斷需要移轉的資料量,以及可切換至新 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。
-
搭配使用
os sync
指令和各種參數和選項。 -
執行 s5cmd 工具以進行資料移轉與同步的各種方式。
必要條件
-
OCI 帳戶。
-
OCI 上的 VM 執行處理可部署移轉工具或可部署及使用移轉工具的系統。
-
OCI CLI 會在您的本位目錄中的工作組態檔安裝在名為
.oci
的子目錄中。如需詳細資訊,請參閱設定組態檔。 -
存取 OCI 物件儲存的儲存桶。
-
OCI 中使用 OCI 物件儲存的使用者權限,可存取管理儲存桶和物件,或管理至少 1 個儲存桶或區間的物件系列。如需詳細資訊,請參閱通用原則和原則參照。
-
建立、匯出及掛載 OCI 檔案儲存的使用者權限,或是存取已經掛載在 VM 上的 OCI 檔案儲存掛載目標,或者使用其他網路檔案系統 (NFS) 掛載或本機檔案系統來複製資料的使用者權限。如需詳細資訊,請參閱管理檔案儲存原則。
-
熟悉在 Mac OS、Linux、Berkeley Software Distribution (BSD) 或 Windows PowerShell、命令提示字元或 bash 上使用終端機或 Shell 介面。
-
請檢閱移轉資料至 OCI 雲端儲存的移轉基本要點,以安裝 OCI CLI 與 os sync 及 s5cmd 工具。
-
若要瞭解我們可以使用的移轉工具,請參閱教學課程 1:使用移轉工具將資料搬移至 OCI 雲端儲存服務。
將網路檔案系統與本機檔案系統資料同步至 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 執行,以改善傳輸時間。
使用作業系統同步來同步
-
將本機檔案系統資料同步至 OCI 物件儲存。
執行下列基本
os sync
命令,將檔案從來源目錄同步至目的地儲存桶。oci os object sync --src-dir <path to migration-files> --bucket-name <bucket name>
注意:此相同命令可用於內部部署本機檔案系統、內部部署 NFS 檔案系統,以及具有 OCI 檔案儲存 NFS 掛載的 OCI Compute 執行處理,將資料從 OCI 檔案儲存搬移至 OCI 物件儲存的儲存桶。
-
將資料從 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 物件儲存的儲存桶。
-
增加平行作業。
依照預設,只有 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,直到錯誤停止為止。
-
使用 pattern 命令篩選相符的檔案。
樣式可以用來包括或排除相符的檔案。樣式命令可以在命令行多次使用,以符合多個樣式。
-
若要包括符合樣式的檔案,請使用以下指令。
--include
-
若要排除符合樣式的檔案,請使用下列指令。
--exclude
注意:
*
:符合所有項目?
:比對任何單一字元[sequence]
:符合序列中的任何字元[!sequence]
:符合任何非序列字元
-
-
使用
--prefix
旗標。使用
--src-dir
命令將檔案上傳至物件儲存時使用的--prefix
旗標會上傳物件,並將目錄路徑新增至物件名稱作為前置碼。用於從 OCI 物件儲存下載物件時,只會下載具有指定前置碼的物件,不會顯示為物件 / 檔案名稱的一部分。 -
執行前先驗證移轉。
開始傳輸之前,您可以藉由讓 os 同步僅執行列印,決定要將哪些檔案上傳 / 下載至 OCI Object Storage。以下列旗標執行命令行。
--dry-run
使用 s5cmd 來同步化
-
同步並複製命令。
-
s5cmd 的
sync
選項可單向同步化來源至目標,而不修改任何來源檔案,也不會刪除來源上不存在的檔案。新增--delete
旗標,以移除來源上不存在的檔案。 -
copy
命令只會將物件從來源複製到目的地。
-
-
樣式比對。
s5cmd 工具支援同步和複製作業的多層萬用字元。列出前置碼為第一個萬用字元的所有物件,然後在記憶體中篩選結果,即可達到此目的。
當來源為檔案系統時,也適用萬用字元。使用
*
字元時,有時會解譯為 globing 萬用字元,以單引號括住,以避免發生未預期的結果。例如,若要將目錄中的所有壓縮檔案複製到儲存桶,請執行下列命令。
s5cmd cp '*.gz' s3:/<bucket name>
-
基本同步指令 。
-
將本機檔案系統資料同步至 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 儲存的儲存桶。
-
-
基本複製命令。
執行下列基本
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。
-
增加併行執行。
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。
資料集
-
資料集 1:
總大小 檔案計數 檔案大小範圍 3TB 3 1TB 方法 目的來源 Time 命令 旗標 os 同步 NFS/ 檔案 PHX 至物件 IAD 123m17.102s 無 --parallel-operations-count 100
s5cmd NFS/ 檔案 PHX 至物件 IAD 239m20.625s copy run commands.txt
,預設執行--numworkers 256
rclone NFS/ 檔案 PHX 至物件 IAD 178m27.101s copy --transfers=100 --oos-no-check-bucket --fast-list --checkers 64 --retries 2 --no-check-dest
注意:我們的測試顯示
os sync
對此資料集執行速度最快。 -
資料集 2:
總大小 檔案計數 檔案大小範圍 9.787GB 20,000 1MB 方法 目的來源 Time 命令 旗標 s5cmd NFS/ 檔案 PHX 至物件 IAD 1m12.746s copy 預設執行 --numworkers 256
os 同步 NFS/ 檔案 PHX 至物件 IAD 2m48.742s 無 --parallel-operations-count 1000
rclone NFS/ 檔案 PHX 至物件 IAD 1m52.886s copy --transfers=500 --oos-no-check-bucket --no-check-dest
注意:我們的測試顯示 s5cmd 對此資料集執行最佳效果。
測試環境 2:
VM 執行處理:每次測試使用 1-2 個 VM 執行處理,使用 VM.Standard.E4.Flex
搭配 24 個 OCPU、24Gbps 網路頻寬、384GB 的記憶體。Oracle Linux 8 已用於 Linux 測試。
資料集
-
資料集 1:
14 個主目錄的檔案計數和大小。
資料集目錄 大小 檔案計數 每個檔案的大小 目錄 1 107.658 GiB 110,242 1 MiB 目錄 2 1.687 GiB 110,569 15 MiB 目錄 3 222 GiB 111 2 GiB 目錄 4 1.265 TiB 1,295 1 GiB 目錄 5 26.359 GiB 1,687 16 MiB 目錄 6 105.281 MiB 26,952 4 KiB 目錄 7 29.697 MiB 30,410 1 KiB 目錄 8 83.124 GiB 340,488 256 KiB 目錄 9 21.662 GiB 354,909 64 KiB 目錄 10 142.629 GiB 36,514 4 MiB 目錄 11 452.328 MiB 57,898 8 MiB 目錄 12 144 GiB 72 2GiB 目錄 13 208.500 GiB 834 256 MiB 目錄 14 54.688 GiB 875 64 MiB 注意:
- 已在 2 個 VM 執行處理之間分割 14 個目錄。
- 每個 VM 會執行 7 個指令 / 程序,每個目錄各有 1 個,除非另有說明。
方法 目的來源 Time 命令 旗標 / 備註 s5cmd NFS/ 檔案 PHX 至物件 IAD 54m41.814s copy --numworkers 74
os 同步 NFS/ 檔案 PHX 至物件 IAD 65m43.200s 無 --parallel-operations-count 50
rclone NFS/ 檔案 PHX 至物件 IAD 111m59.704s copy --oos-no-check-bucket --no-check-dest --ignore-checksum --oos-disable-checksum --transfers 50
注意:我們的測試顯示 s5cmd 執行速度最快,與 Rclone 相較之下,Os 同步效能表現相當良好。
接下來的步驟
繼續前往與您移轉需求相關的相關教學課程。若要將資料移至 OCI 雲端儲存服務:
-
使用 Rclone 時,請參閱教學課程 2:使用 Rclone 將資料搬移至 OCI 雲端儲存服務。
-
使用 Fpsync 和 Rsync 進行檔案系統資料移轉,請參閱教學課程 4:使用 Fpsync 和 Rsync for File System Data Migrations 將資料移至 OCI Cloud Storage Services 。
相關連結
認可
- 作者 - Melinda Centeno (OCI Object Storage 資深首席產品經理)
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Move Data into OCI Cloud Storage Services using OCI Object Storage Sync and the s5cmd Tool
G25644-01
January 2025
Copyright ©2025, Oracle and/or its affiliates.