應用場景
本文適用于同地域同一VPC不同文件系統之間的數據遷移。
前提條件
已擁有兩個NFS協議文件系統,并且準備一臺與源文件系統在同一VPC網絡下的彈性云主機。兩個文件系統分別作為源文件系統和目標文件系統,源文件系統指含業務數據的源文件系統,目標文件系統指即將投入使用的新文件系統。
準備工作
- 注冊天翼云官網賬號,并完成實名認證,具體操作請參考注冊天翼云賬號。
- 登錄天翼云官網頁面,找到控制中心,具體操作請參考。
- 分別創建一個文件系統和一臺彈性云主機,具體操作請參考創建彈性文件系統、創建彈性云主機。
- 掛載文件系統至彈性云主機,具體操作請參考使用彈性云主機掛載文件系統。
操作步驟
兩個文件系統之間的數據遷移可以分為幾個關鍵步驟: 掛載文件系統 >遷移存量數據>遷移增量數據>遷移應用 。具體操作步驟如下:
1. 將文件系統掛載到云主機
將文件系統掛載至云主機中,為了方便區分,源文件系統掛載到“/mnt/src/“路徑上,目標文件系統掛載到“/mnt/dst/“路徑上。
2. 安裝遷移工具
執行以下命令安裝遷移工具rsync和tmux。rsync負責執行復制,tmux是幫助查看進度的工具。
sudo yum install -y rsync tmux


3. 遷移存量數據
依次執行以下兩條命令,將源文件系統中的存量數據同步到目標文件系統中。
tmux
sudo rsync -avP /mnt/src/ /mnt/dst/

您還可以利用rsync并發拷貝遷移數據,命令如下:
threads=<線程數量>;
src=<源路徑/>;
dest=<目標路徑/>;
rsync -av -f"+ */" -f"- *" $src $dest && (cd $src && find . -type f | xargs -n1 -P$threads -I% rsync -av % $dest/% )

說明rsync命令中的源路徑結尾必須帶有斜杠“/”,否則同步后數據路徑不能匹配。
4. 遷移增量數據
在存量數據遷移過程中,如果源文件系統被其它云主機上運行的業務應用寫入,那么在存量數據遷移結束后,需要進行增量數據同步。
1)停止業務應用:為了避免不斷有新數據寫入,需要在同步增量數據之前,在所有云主機客戶端上停止使用源文件系統的業務應用。
注意
客戶端停止業務應用使用后,請不要手動刪除源文件系統的任何數據,否則在下一步會造成數據丟失。
請妥善選擇業務低峰期間操作,可使用fuser -mv< dir >命令找到讀寫NFS文件系統的進程。
2)執行rsync命令,將存量數據遷移開始后的增量數據同步到目標文件系統。
rsync -avP --delete /mnt/src/ /mnt/dst/


5. 檢查遷移結果
在遷移完成后,執行如下命令,檢查源文件系統與目標文件系統是否一致。
rsync -rvn /mnt/src/ /mnt/dst/
如果兩者數據一致,應該顯示以下信息,中間不包含任何文件路徑。


6. 切換應用至新文件系統
在數據遷移完成后,如果您需要將源文件系統上的業務切換到目標文件系統,即新的文件系統上,請在所有云主機客戶端上卸載源文件系統,然后掛載新文件系統至您業務使用的云主機。
1)在業務使用的云主機中執行 df -h,查看源文件系統掛載的本地掛載路徑,參數說明請參考掛載NFS文件系統到彈性云主機。
2)根據實際業務選擇合適方法停止源文件系統上的業務進程。
3)執行 umount 本地掛載路徑 卸載源文件系統目錄。
4)掛載新文件系統到步驟1)中查到的本地掛載路徑,掛載方式參考使用彈性云主機掛載文件系統。
5)啟動訪問文件系統的業務,確認讀寫正常。
說明本實踐中的云主機僅作為數據遷移的“中轉站”,而非用于業務實際使用。數據遷移和切換應用到新文件系統完成后,應將新文件系統掛載至實際業務使用的云主機中。