本文介紹如何通過公網將本地數據上傳至SMB文件系統,或者將SMB文件系統內的數據下載到本地。
前提條件
- 已創建SMB文件系統
- 已創建掛載點
方案一:IIS FTP
配置ECS
從公網訪問阿里雲文件存儲NAS,需要配置ECS作為中轉節點。
上傳下載數據需要佔用ECS公網帶寬,建議購買一臺新的ECS實例專門負責這一功能,避免佔用業務帶寬。請參考新購ECS掛載NAS配置對SMB文件系統的掛載,推薦選擇Windows 2019鏡像,並在配置ECS的公網IP時勾選“分配公網 IPv4 地址”,選擇“按使用流量”帶寬計費模式,將帶寬峰值設為最大的100Mbps。
說明:彈性公網IP對入方向流量不收費,僅對出方向流量收費,也就是說,從公網上傳數據到NAS不會收取流量費用,而從NAS下載數據則會收取流量費用。流量計費詳情請參考文檔。
如果您要使用已有ECS掛載NAS作為中轉節點,請參考Windows系統掛載SMB文件系統。
在ECS上配置IIS FTP服務以及在本地系統配置FTP客戶端
注:需在VPC安全組打開對應的FTP TCP端口
對於少量文件的上傳和下載操作,可以通過IIS FTP服務來完成,這種方案的優點如下:
- 支持眾多操作系統平臺
- 提供圖形化操作界面
具體配置方式請參考文檔。
您也可以配置其他FTP服務端和客戶端進行公網上傳下載數據。
方案二:rsync
配置ECS
類似方案一中的ECS配置方式,選擇Linux鏡像,推薦選擇CentOS 8.0鏡像。參考通過雲服務器ECS(Linux)訪問SMB文件系統進行掛載。
在ECS上配置rsync服務
對於大量文件或頻繁需要的上傳和下載,推薦在本地系統安裝使用rsync命令行工具,這種方案的優點如下:
- 上傳下載後的文件元數據不變(包括屬主及權限信息)
- 支持數據增量同步
- 本地Linux或macOS系統可配置crontab向雲上NAS自動備份數據
在本地系統配置rsync客戶端
注:需在VPC安全組打開SSH(TCP 22)端口。
安裝工具
1. Windows
Windows用戶請下載安裝Cygwin模擬環境,您可以在安裝過程中搜索安裝rsync工具,也可以手動下載編譯安裝rsync。
2. Linux
如果您的本地系統是CentOS或Redhat,請執行以下命令,使用yum包管理器安裝rsync。
sudo yum install rsync
如果您的本地系統是Ubuntu或Debian,請執行以下命令,使用apt包管理器安裝rsync。
sudo apt-get install rsync
如果您使用了其他版本的Linux,請使用對應的包管理器安裝rsync。
3. MacOS
macOS用戶請下載安裝homebrew包管理器,然後執行以下命令安裝rsync。
brew install rsync
數據上傳
執行以下命令,將本地目錄以增量同步的方式,上傳到阿里雲NAS。
rsync -avP DirToSync/ [email protected]:/mnt/DirToSync/
說明:rsync命令中的源路徑結尾必須帶有/,否則同步後數據路徑不能匹配。
命令中的參數請根據實際值修改:
- DirToSync - 需要上傳的本地目錄名
- root - 上傳目標的NAS目錄屬主
- 1.2.3.4 - 已掛載NFS文件系統的Linux ECS公網IP(上文配置得到)
- /mnt - ECS中用來掛載NAS的路徑
數據下載
從阿里雲NAS下載數據到本地的方式與上傳類似,執行以下命令即可。
rsync -avP [email protected]:/mnt/DirToSync/ DirToSync/
命令中的參數請根據實際值修改。
自動上傳
本地Linux或macOS系統,可以基於rsync命令,通過crontab配置定時上傳備份任務。
打通SSH
參考使用SSH密鑰對連接Linux實例,打通從本地系統到ECS的無密碼通道。執行以下命令確認打通成功。
ssh -i ~/.ssh/ecs.pem [email protected]
命令中的參數請根據實際值修改:
- ~/.ssh/ecs.pem - 私鑰文件在本地機上的存儲路徑
配置crontab
執行命令“crontab -e”打開編輯器,配置定時上傳任務,輸入以下內容:
0 23 * * * rsync -av -e "ssh -i ~/.ssh/ecs.pem" ~/Documents/ [email protected]:/mnt/Documents/
這條crontab配置將會在每天23時0分把本機登錄用戶的Documents目錄自動上傳備份到阿里雲NAS。請根據實際需求替換配置中的參數。
說明:macOS用戶需要給/usr/sbin/cron配置硬盤訪問授權。請進入系統設置,點擊Security & Privacy > Privacy > Full Disk Access,點擊解鎖圖標,點擊“+”,選擇Macintosh HD目錄,按“cmd + shift + .”顯示隱藏目錄,最後選擇/usr/sbin/cron。
方案三:將數據上傳至OSS再遷移到NAS
如果您需要上傳大量數據到NAS,而公網訪問ECS的帶寬無法滿足您的需求,可以考慮先上傳數據到OSS,然後將OSS數據遷移到NAS。
說明:目前遷移服務仍在公測階段,需要申請白名單。
說明:遷移服務無法保證文件元數據不變,遷移完成後可以再執行rsync修復元數據信息。
方案四:本地數據中心掛載NAS
注:需在VPC安全組打開SMB(TCP 445)端口。
以上三種方案相對簡便,但如果需要從本地數據中心頻繁讀寫NAS上的大量數據,則需要打通網絡專線,從數據中心直接掛載NAS進行訪問。
VPN網關方案
請參考通過VPN網關實現本地數據中心訪問阿里雲NAS以及MacOS客戶端連接阿里雲NAS SMB文件系統。
打通之後,對於Windows客戶端可以採用robocopy進行多線程數據傳輸,比如
robocopy c:\dirA z:\dirB /e /z /b /mt:32
NAT網關方案
請參考通過NAT網關實現本地客戶端訪問NAS SMB文件系統。可能需要轉換SMB的TCP 445端口到其他端口,注意需要在安全組打開對應的端口。
訪問上傳數據
數據上傳完成後,您就可以在負責業務的ECS或容器上掛載NAS,共享訪問NAS上的數據了。
以ECS為例,您可以用Windows系統掛載SMB文件系統,然後就像訪問本地數據一樣訪問NAS上的數據。
您也可以在雲上搭建業務應用,在多臺計算節點上通過程序大量讀寫NAS上的數據,例如通過Windows IIS服務訪問阿里雲NAS。