配置數據傳輸中轉節點后,您還要使用遷移工具遷移數據至阿里云文件存儲NAS。本文介紹如何通過遷移工具將非阿里云的數據遷移至文件存儲NAS。
前提條件
已配置數據傳輸中轉節點ECS實例。具體操作,請參見配置數據傳輸中轉節點。
使用SFTP客戶端遷移數據
當有少量文件需要一次性上傳時,建議您在本地系統上安裝使用SFTP客戶端來完成。此方案具有以下優點:
支持眾多操作系統平臺。
提供圖形化操作界面。
為本地操作系統安裝SFTP客戶端。
SFTP的客戶端工具有多種版本,以下示例中使用的是FileZilla,請選擇適合您本地操作系統的版本下載安裝SFTP客戶端。
建立SFTP客戶端與中轉節點ECS之間的連接。
打開FileZilla客戶端,按照如下說明進行配置。單擊Quickconnect,建立連接。
在本地客戶端與ECS服務端的連接建立之后,左側區域會顯示本地文件系統,右側區域會顯示服務端ECS的文件系統。
參數
說明
Host
中轉節點ECS的公網IP地址。例如,192.0.2.1。
Username
中轉節點ECS的用戶名,且該用戶擁有讀寫NAS文件系統目錄的權限。例如,root。
說明Linux ECS實例的默認用戶名為:root或ecs-user。
Windows ECS實例的默認用戶名為:administrator。
Password
中轉節點ECS的登錄密碼。例如,root登錄密碼。
說明如果您忘記了中轉節點ECS實例的密碼,可通過重置實例登錄密碼重新為中轉節點ECS實例設置登錄密碼。具體操作,請參見重置實例登錄密碼。
Port
SFTP端口號,默認為22。
在頁面右側區域,設置Remote site中的路徑為掛載了NAS文件系統的路徑(例如/mnt),單擊回車即可查看到NAS中的文件列表。
上傳數據。
將左側區域中的文件或目錄拖拽到右側區域,即完成數據上傳。
使用rsync命令行工具遷移數據
當有大量文件上傳或需要頻繁上傳任務時,建議您在本地系統安裝使用rsync命令行工具執行上傳任務,此方案具有以下優點:
上傳后的文件元數據不變(包括屬主及權限信息)。
支持數據增量同步。
本地Linux或macOS系統可配置crontab向云上NAS自動備份數據。
安裝rsync工具。
Linux操作系統
操作系統
執行命令
CentOS
使用yum包管理器安裝rsync。
sudo yum install rsync
Redhat
Ubuntu
使用apt包管理器安裝rsync。
sudo apt-get install rsync
Debian
說明如果您使用的其他版本Linux,請使用對應的包管理器安裝rsync工具。
macOS操作系統
請下載安裝homebrew包管理器,然后執行以下命令安裝rsync工具。
brew install rsync
Windows操作系統
請下載安裝Cygwin模擬環境,您可以在安裝過程中搜索安裝rsync工具,也可以手動下載編譯安裝rsync。
說明需在VPC安全組打開SSH(TCP 22)端口。
上傳數據。
執行以下命令,將本地目錄以增量同步的方式,上傳到阿里云NAS。
rsync -avP DirToSync/ root@192.0.2.0:/mnt/DirToSync/
命令中的參數請根據實際值修改,參數含義如下:
參數
說明
DirToSync
需要上傳的本地目錄名。
root
上傳目標NAS文件系統目錄的屬主。
192.0.2.0
已掛載文件存儲NAS文件系統的Linux/Windows ECS公網IP。
/mnt
ECS實例中用來掛載NAS的路徑。
說明rsync命令中的源路徑結尾必須帶有正斜線(/),否則同步后數據路徑不匹配。
您還可以利用rsync并發拷貝上傳數據到阿里云文件存儲NAS,命令如下。
threads=<線程數量>; src=<源路徑/>; dest=<目標路徑/>; rsync -av -f"+ */" -f"- *" $src $dest && (cd $src && find . -type f | xargs -n1 -P$threads -I% rsync -av % $dest/% )
例如,線程數量為10,原路徑為/abc ,目標路徑為
/mnt1
。threads=10; src=/abc/; dest=/mnt1/; rsync -av -f"+ */" -f"- *" $src $dest && (cd $src && find . -type f | xargs -n1 -P$threads -I% rsync -av % $dest/% )
可選:配置定時上傳備份任務。
本地Linux或macOS操作系統,可以基于rsync命令,通過crontab配置定時上傳備份任務。
Linux操作系統
創建本地系統到ECS的無密碼通道。具體操作,請參見通過密鑰認證登錄Linux實例。
執行以下命令,確認連接成功。
ssh -i ~/.ssh/ecs.pem root@1.2.3.4
說明~/.ssh/ecs.pem為密鑰文件在本地的存儲路徑。
配置crontab。
執行
crontab -e
命令打開編輯器,配置定時上傳任務,配置內容如下。0 23 * * * rsync -av -e "ssh -i ~/.ssh/ecs.pem" ~/Documents/ root@192.0.2.0:/mnt/Documents/
這項crontab配置將會在每天23時0分把本機登錄用戶的Documents目錄自動上傳備份數據到阿里云NAS。您可以根據實際需求替換配置中的參數。
macOS操作系統
為/usr/sbin/cron目錄配置硬盤訪問權限。
請進入系統設置,單擊/usr/sbin/cron。
,單擊解鎖,單擊+,選擇Macintosh HD目錄,按cmd+shift+.組合鍵顯示隱藏目錄,選擇創建本地系統到ECS的無密碼通道。具體操作,請參見通過密鑰認證登錄Linux實例。
執行以下命令,確認連接成功。
ssh -i ~/.ssh/ecs.pem root@1.2.3.4
說明~/.ssh/ecs.pem為密鑰文件在本地的存儲路徑。
配置crontab。
執行
crontab -e
命令打開編輯器,配置定時上傳任務,配置內容如下。0 23 * * * rsync -av -e "ssh -i ~/.ssh/ecs.pem" ~/Documents/ root@1.2.3.4:/mnt/Documents/
這項crontab配置將會在每天23時0分把本機登錄用戶的Documents目錄自動上傳備份數據到阿里云NAS。您可以根據實際需求替換配置中的參數。
說明當您使用rsync工具遷移數據性能較差時,可以嘗試使用fpsync工具實現多線程遷移。具體操作,請參見附錄:使用fpsync命令行工具遷移數據。
使用Robocopy工具遷移數據
Robocopy是Windows系統自帶的目錄復制命令,該功能可以創建兩個文件結構完全的鏡像副本而不復制任何不需要的重復文件,同時還允許您保留所有相關文件信息,包括日期、時間戳等等。同時您也可以通過在windows ECS上安裝最新的Python程序配置migration.py腳本實現海量數據遷移。
登錄用于遷移數據的阿里云ECS實例。
遷移數據。
執行以下命令,將源文件系統(Z盤)中的數據遷移到目標文件系統(Y盤)中。
robocopy Z:\ Y:\ /e /w:5 /z /mt:32
說明僅遷移指定目錄下的數據,不包括指定目錄。
重要字段說明如下,請根據實際情況替換。
參數
說明
/mt
設置并發的線程數。默認值為8。
取值為1~128。
本文示例32個線程進行多線程復制。
/w
設置每次錯誤重試的間隔秒數。
/z
開啟斷點續傳。
/e
拷貝所有子目錄(包括空目錄)。
/copyall
復制所有的文件信息。包含:
數據
屬性
時間戳
訪問控制列表(ACL)
所有者信息
審計信息
說明如果您想加速遷移海量數據(例如,10 T以上的上億小文件),可通過在windows ECS上安裝最新的Python程序執行遷移。具體操作,請參見如何加速遷移數據至NAS SMB協議文件系統。
檢查遷移結果。
遷移完后,執行以下Robocopy命令,檢查目標文件系統是否與源文件系統一致。
ROBOCOPY Z:\ Y:\ /e /l /ns /njs /njh /ndl /fp /log:reconcile.txt
重要字段說明如下,請根據實際情況替換。
參數
說明
/e
僅列出目錄(包括空目錄)。
/l
不修改或復制文件,僅記錄差異。
/fp
指在日志中包括文件的完整路徑(僅在省略/ndl時有必要)。
/ns
指不在日志中包括文件大小。
/ndl
指不在日志中包括文件夾。
/njs
指不包括作業摘要。
/njh
不包括作業頭。
/log:reconcile.txt
將遷移結果寫入reconcile.txt日志中。如果已存在,將覆蓋現有日志。
使用IIS FTP遷移數據
當有少量文件需要一次性上傳時,建議您在本地系統配置FTP客戶端來完成,此方案具有以下優點:
支持眾多操作系統平臺。
提供圖形化操作界面。
在ECS上配置IIS FTP服務以及在本地系統配置FTP客戶端,具體配置方式請參見設置Windows IIS Web服務。
需在VPC安全組打開對應的FTP TCP端口。
您也可以配置其他FTP服務端和客戶端進行公網上傳下載數據。
彈性公網IP對入方向流量不收費,僅對出方向流量收費。也就是說,從公網上傳數據到NAS不會收取流量費用,而從NAS下載數據則會收取流量費用。計費詳情請參見彈性公網IP按量付費。
附錄:使用fpsync命令行工具遷移數據
下載并安裝fpsync工具。
wget -N https://github.com/martymac/fpart/archive/fpart-1.1.0.tar.gz -P /tmp tar -C /tmp/ -xvf /tmp/fpart-1.1.0.tar.gz cd /tmp/fpart-fpart-1.1.0 sudo yum install -y automake libtool autoreconf -i ./configure make sudo make install sudo yum install parallel -y printf "will cite" | parallel --bibtex sudo yum install -y rsync
拷貝整個文件目錄。
fpsync -n 10 -f 10000 /data/src/ /data/dst/
說明更多關于fpsync工具的信息,請參見fpsync工具。
相關文檔
如果您需要從本地數據中心頻繁讀寫NAS上的大量數據,則需要創建網絡專線,從數據中心直接掛載NAS進行訪問。更多信息,請參見本地數據中心訪問文件系統。
如果您需要上傳大量數據到NAS,而公網訪問ECS的帶寬無法滿足您的需求,建議先上傳數據到OSS,然后將OSS數據遷移到NAS。具體操作,請參見控制臺上傳文件和遷移實施。
后續步驟
數據上傳后,您可以在業務所屬的ECS或容器上掛載NAS文件系統,共享訪問NAS文件系統上的數據。
以ECS為例,您可以用Linux系統掛載NFS文件系統或Windows系統掛載SMB文件系統,然后就像訪問本地數據一樣訪問NAS上的文件數據。具體操作,請參見掛載NFS協議文件系統和掛載SMB協議文件系統。
您也可以在云上搭建業務應用,在多臺計算節點上通過程序大量讀寫NAS上的數據,例如使用Nginx代理服務器代理阿里云NAS或通過Windows IIS服務訪問阿里云NAS。
如果您不再通過中轉節點ECS上傳或下載數據,可以將該ECS實例釋放。具體操作,請參見釋放實例。