附註:

使用 Fpsync 和 Rsync 將資料搬移至 OCI 雲端儲存服務

簡介

這是四個教學課程系列中的教學課程 4,其中顯示各種將資料移轉至 Oracle Cloud Infrastructure (OCI) 雲端儲存服務的方式。此系列已設定完成,您可以檢閱教學課程 1:使用移轉工具將資料搬移至 OCI 雲端儲存服務,深入瞭解各種工具,然後繼續進行與您移轉需求相關的教學課程或文件。本教學課程將著重於使用 fpsync 和 rsync 將檔案系統資料移轉至 OCI File 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 整合

Rsync 與 Fpsync 之間的差異

適用對象

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

目標

瞭解如何使用 rsync 和 fpsync 將資料複製和同步至 OCI 雲端儲存服務:

必要條件

將資料移轉至 OCI 檔案儲存

Fpsync 和 rsync 可以用來將檔案系統資料 (OCI 檔案儲存服務、OCI 區塊磁碟區服務、OCI 檔案儲存搭配 Lustre、內部部署檔案系統,以及內部部署網路檔案系統 (NFS) 移轉至其他檔案系統儲存類型 (包括 OCI 檔案儲存)。

使用 Rsync 移轉資料

  1. 使用 rsync 處理執行處理對執行處理的串流。

    對於最多可達數十 GB 和數千個檔案的小型資料集,可以使用 rsync 執行處理至執行處理串流。在網路內使用啟用 SSH 的本機 NFS,以及在來源與目的地網路之間使用 SSH 的執行處理至執行處理串流,藉此減少兩個網路之間的 NFS 延遲。使用以下命令。

    rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --ignore-errors --progress --log-file=$HOME/rsync/logs/test.log1 --quiet -e ssh /src/path/ root@<destination_instance>:/destination/path/
    
  2. 平行執行多個 rsync 處理作業。

    • 您可以使用 findxargs 指令來執行多個 rsync 程序。

      find /src/path/ -maxdepth 1 | xargs -P 24 -I {} rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --log-file=<logfile_path> -quiet -e ssh {} root@<destination_instance>:/destination/path/
      
    • 您也可以平行使用 GNU。

      find /src/path/ -maxdepth 1 | parallel -P24 rsync --archive --perms --owner --group --xattrs --acls --recursive --delete --compress --exclude=.snapshot --ignore-errors --progress --log-file=$HOME/rsync/logs/test.log1 --quiet -e ssh {} root@<destination_instance>:/destination/path/
      

    注意:在這兩個範例中,一次執行 24 個處理作業,系統會根據所使用執行處理的 CPU 容量選擇參數。

使用 Fpsync 移轉資料

fpsync 工具是 rsync 的平行包裝函式。它也可以使用 tar、tarify 和 cpio,但預設值為 rsync。

  1. 在您的 Linux 機器中安裝 fpsync。

    • 針對 Linux 8 執行下列命令。
    sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    sudo yum install fpart -y
    
    • 針對 Linux 9 執行下列命令。
    sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
    sudo yum install fpart -y
    
  2. 使用以下指令執行 fpsync 。

    舉例而言:

    fpsync -v -n `nproc` -o "-lptgoD -v --numeric-ids --logfile /tmp/fpsync.log1” /src/path/ root@<destination_instance>:/destination/path/
    

注意:如需更多 fpsync 選項和參數詳細資訊,請參閱 man fpsync

使用三個工作節點執行 Fpsync,將資料從內部部署檔案共用移轉至 OCI 檔案儲存服務

請依照高階步驟,使用三個工作節點執行 fpsync,將資料從內部部署檔案共用 (本機磁碟、SAN 或 NAS) 移轉至 OCI 檔案儲存服務。

下圖顯示元件架構圖。

元件架構圖

遵循其步驟:

  1. 識別三個工作節點與目標節點。

    識別三種可以存取以掛載來源檔案系統的本機系統。或者,您可以建立及啟動三個 OCI Compute VM 執行處理,以供測試之用。

    識別現有的 OCI VM 執行處理,或建立並啟動新的 OCI VM 執行處理作為目的地節點。

  2. 將來源 NAS 共用掛載至三個節點。

    使用 nordirplusnconnect=16 掛載選項,不指定其他 nfs 掛載選項。

    例如,在 Linux 系統上執行下列掛載命令。

    sudo mount -t nfs -o nordirplus,nconnect=16 10.x.x.x:/<EXPORT_PATH_NAME> /mnt/nfs-data
    

    例如,執行下列指令以確認掛載。

    mount | grep /mnt/nfs-data
    

    注意:基於測試目的,您可以使用 OCI 檔案儲存來建立、匯出及掛載檔案系統。您可以在掛載中建立測試資料,以嘗試使用 fpsync。

  3. 選取要執行 fpsync 的節點,並更新 /etc/hosts 檔案。

    您可以選擇三個節點中的其中一個或不同的節點來執行 fpsync 命令。執行 fpsync 命令的節點稱為執行程式節點。

    在執行 fpsync 的節點上,使用您偏好的文字編輯器,以 worker-src-1worker-src-2worker-src-3 的三個工作節點更新 /etc/hosts 檔案。

    舉例而言:

    vim /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.0.0.4 worker-src-1.subnet.vcn.oraclevcn.com worker-src-1
    10.0.0.5 worker-src-2
    10.0.0.6 worker-src-3
    
  4. 將目的地檔案系統掛載於目的地節點。

    識別目的地檔案系統並將其掛載於目的地節點。或者,建立 OCI 檔案儲存並將其掛載至目的地節點。

  5. 確定已建立內部部署至 OCI 連線。

    使用常見的網路工具 (例如 pingtraceroutessh 等) 來驗證系統、內部部署及 OCI 之間的連線。

  6. 在所有來源與目的地節點之間相互啟用無密碼 SSH,並驗證來源與目的地節點組之間的 SSH 連線。

    識別將在執行程式節點上執行 fpsync 命令之使用者的公用 SSH 金鑰。此金鑰通常位於 .ssh 目錄下的使用者本位目錄中,且通常名稱為 id_rsa.pub。使用 cat 命令顯示其內容、複製金鑰,以及將它貼到工作節點上的 $HOME/.ssh/authorized_keys 檔案中,將這個金鑰傳輸到所有工作節點。或者,如果啟用以密碼為基礎的 SSH,您可以使用 ssh-copy-id 命令,將金鑰分送至每個工作節點和目的地節點。舉例而言:

    [worker-src-1 ~]$ ssh-copy-id username@worker-src-2
    
  7. 在執行程式節點中執行 fpsync 命令。

    注意:只有透過工作節點透過 SSH 對目的地節點執行 rsync 命令的執行者節點才需要安裝 fpsync。

    舉例而言:

    fpsync -v -n X -f Y -o "-lptgoD -v --numeric-ids -e ssh -C" \
    -w username@worker-src-1 -w username@worker-src-2 -w username@worker-src-3 \
    -d /nfs-data/fpsync_wrkr /nfs-data/fpsync_src/ opc@worker-dest:/fpsync-fs/
    

    注意:將 X 和 Y 取代為 fpsync 選項 -n-f 的值。

    • 決定並行同步工作的值,即 -n

      • 選取 -n 值,使其等於來源中所有工作節點的 cpu_cores 數目,並保留相同 CPU 和記憶體的目的地工作節點數目。
      • 如果您有 3 個工作節點各有 16 個 CPU 核心,則其為 3 個工作節點乘以 16 cpu_cores = 48。
    • 決定每個同步工作 (-f) 要傳輸的檔案量值。

      • 例如,如果您有兩個具有大型目錄和總計 110 萬個檔案的資料夾,這兩個資料夾會包含平均檔案大小為 160KB 的 ~700K 檔案。
      • 每個工作節點都設定了:64GB = 6400000KB 記憶體,8 OCPU= 16 cpu_cores,每 cpu_core 的記憶體為:64000000/16 = 400000KB/cpu_core。每個工作節點中的記憶體 = 64GB = 6400000KB。
      • 計算 -f 的值,4000000KB/160 = 25000。

( 選擇性 ) 測試環境

若要模擬內部部署到 OCI 移轉,請使用下列資料集的 OCI 檔案儲存檔案系統 (Ashburn) 作為內部部署 NAS 共用,並使用 OCI 檔案儲存檔案系統 (Phoenix) 作為目的地。

這兩個區域都使用動態路由閘道進行遠端對等互連。

資料集目錄 大小 檔案計數 每個檔案的大小
目錄 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

VM 執行處理:在阿什本和鳳凰城區域中,使用三個 16 cpu_core、64GB 記憶體、8Gbps 頻寬 Linux9 VM 作為工作節點,以及一個 8 個 cpu_core VM 作為執行程式節點。

下列為所有執行處理的 TCP 設定值:

net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 87380 16777216
net.ipv4.tcp_window_scaling = 1

這兩個區域執行處理都有個別的 OCI 檔案儲存檔案系統,如使用三個工作節點執行 Fpsync,將資料從內部部署檔案共用移轉至 OCI 檔案儲存服務一節所述。

執行下列 fpsync 指令。X 和 Y 是 fpsync 選項。

fpsync -v -n X -f Y -o "-lptgoD -v --numeric-ids -e ssh -C" \
 -w opc@worker-src-1 -w opc@worker-src-2 -w opc@worker-src-3 \
 -d /fpsync-fs/fpsync_wrkr /fpsync-fs/x_region_fpsync_src/ opc@worker-dest:/fpsync-fs/

下表顯示 fpsync 為不同 X 和 Y 以及 rsync SSH 和壓縮組合完成 225 TB 和 100 萬個資料傳輸檔案所花費的時間。

fpsync 選項 來源和目的地工作節點上的 nfs 掛載選項 檔案儲存掛載目標效能類型 Time taken - 所花時間
-n 30 -f 2000 -e ssh nconnect=16,nordirplus 3 個標準掛接目標,1:1 對應至工作節點 237m28s
-n 48 -f 5000 -e ssh -C nconnect=16,nordirplus 來源和目的地,每個 HPMT 40 163m38.887s
-n 60 呎 20000 nconnect=16,nordirplus 3 個標準掛接目標,1:1 對應至工作節點 124m25.435s
-n 48 -f 400000 -e ssh -C nconnect=16,nordirplus 3 個標準掛接目標,1:1 對應至工作節點 122m55.458s
-n 100 -f 200000 -e ssh nconnect=16,nordirplus 3 個標準掛接目標,1:1 對應至工作節點 120m44s
-n 60 -f 200000 -e ssh 僅限 nordirplus,沒有 nconnect 3 個標準掛接目標,1:1 對應至工作節點 118m41.393s
-n 60 -f 200000 -e ssh nconnect=16,nordirplus 3 個標準掛接目標,1:1 對應至工作節點 118m3.845s
-n 48 -f 20000 -e ssh nconnect=16,nordirplus 來源和目的地,每個 HPMT 40 113m34.011s
-n 48 呎 200000 nconnect=16,nordirplus 來源和目的地,每個 HPMT 40 110m15.555s
-n 48 呎 200000 nconnect=16,nordirplus 來源和目的地,每個 HPMT 40 109m3.472s

我們可以看到任何 -n 超過 48 和 -f 超過 20000 的組合,讓區域的傳輸時間大約為 2 小時。即使具有高效能掛載目標 40 GBps,所花費的時間也大幅減少。

結果表示視要傳輸之實際資料集的大小而定,您可以為檔案系統選取多個標準或高效能掛載目標。如果來源資料集大部分是由大型檔案 (檔案大小 >= 1M) 所組成,且資料集總大小為 20TB 以上,則高效能掛載目標是一個不錯的選擇。此外,具有橫向擴展組態的標準掛載目標可以提供所需的效能以及符合成本效益。

接下來的步驟

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

認可

其他學習資源

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

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