同賬號不同資源池間的數據遷移
更新時間 2024-12-04 18:25:03
最近更新時間: 2024-12-04 18:25:03
分享文章
本文主要介紹基于天翼云海量文件服務,如何在不同資源池之間實現海量文件系統之間的數據遷移。
應用場景
本文適用于在不同地域(資源池)不同VPC的海量文件系統之間的數據遷移。例如當您需要將業務從A省遷移至B省的資源池,以提高訪問效率。
前提條件
- 已擁有兩個NFS協議的海量文件系統。兩個資源池的海量文件系統分別作為源文件系統和目標文件系統,源文件系統指含業務數據的源文件系統,目標文件系統指即將投入使用的新文件系統。
- 準備一臺與源文件系統在同一VPC網絡下的彈性云主機和一臺與目標文件系統在同一VPC網絡下的彈性云主機,并為這兩臺彈性云主機配置彈性IP,以實現基于公網的數據遷移。
準備工作
- 在兩個資源池分別創建一個海量文件系統和一臺彈性云主機,具體操作請參考創建海量文件系統、創建彈性云主機。
- 將文件系統分別掛載海量文件系統至彈性云主機,具體操作請參考使用彈性云主機掛載海量文件系統。
操作步驟
不同資源池的兩個海量文件系統之間的數據遷移可以分為幾個關鍵步驟: 掛載文件系統 > 安裝遷移工具 >遷移存量數據> 遷移增量數據源> 遷移結果檢查 。具體操作步驟如下:
-
將兩個資源池的海量文件系統分別掛載到對應云主機。
將海量文件系統掛載至云主機中,這里設定資源池1為源文件系統,將其掛載到同一資源池彈性云主機的“/mnt/localpath/”目錄上,資源池2為目標文件系統,同樣將其掛載到同一資源池的彈性云主機的 “/mnt/localpath/”目錄上。 -
安裝遷移工具。
執行以下命令安裝rsync命令工具:yum install -y rsync -
遷移存量數據。
執行以下命令,將資源池1海量文件系統中的數據遷移到資源池2中:
rsync -avP /mnt/localpath/ root@IP:/mnt/localpath/我們還可以利用rsync并發拷貝遷移數據,由于并發操作,每個ssh連接操作均要求輸入密碼,因此在并發遷移數據過程中會要求多次輸入密碼,這里我們配置無需密碼通過ssh執行rsync來遷移文件。在資源池1中的彈性云主機中執行 ssh-keygen命令生成密鑰,之后使用ssh-copy-id將公鑰拷貝至資源池2的彈性云主機,執行以下命令:
ssh-keygenssh-copy-id -i ~/.ssh/id_rsa.pub IP![]()執行以下命令,實現并發數據遷移:
threads=<線程數量>; src=<源路徑/>; dest=<目標路徑/>; rsync -av -f"+ */" -f"- *" $src $dest && (cd $src && find . -type f | xargs -n1 -P$threads -I% rsync -av % $dest/%) -
遷移增量數據。
執行以下命令,實現增量數據的遷移:
rsync -avP --delete /mnt/localpath/ root@IP:/mnt/localpath/
-
檢查遷移結果。
在完成數據遷移后,執行以下命令:
rsync -rvn /mnt/localpath/ root@IP:/mnt/localpath/
如果源文件系統與目標文件系統數據一致,則應顯示上面信息,中間不包含任何文件路徑。