雲計算

通過公網上傳下載數據到SMB文件系統

本文介紹如何通過公網將本地數據上傳至SMB文件系統,或者將SMB文件系統內的數據下載到本地。

前提條件

  1. 已創建SMB文件系統
  2. 已創建掛載點

方案一:IIS FTP

配置ECS

從公網訪問阿里雲文件存儲NAS,需要配置ECS作為中轉節點。
上傳下載數據需要佔用ECS公網帶寬,建議購買一臺新的ECS實例專門負責這一功能,避免佔用業務帶寬。請參考新購ECS掛載NAS配置對SMB文件系統的掛載,推薦選擇Windows 2019鏡像,並在配置ECS的公網IP時勾選“分配公網 IPv4 地址”,選擇“按使用流量”帶寬計費模式,將帶寬峰值設為最大的100Mbps。

分配公網IPv4地址.png

說明:彈性公網IP對入方向流量不收費,僅對出方向流量收費,也就是說,從公網上傳數據到NAS不會收取流量費用,而從NAS下載數據則會收取流量費用。流量計費詳情請參考文檔

如果您要使用已有ECS掛載NAS作為中轉節點,請參考Windows系統掛載SMB文件系統

在ECS上配置IIS FTP服務以及在本地系統配置FTP客戶端

注:需在VPC安全組打開對應的FTP TCP端口
對於少量文件的上傳和下載操作,可以通過IIS FTP服務來完成,這種方案的優點如下:

  1. 支持眾多操作系統平臺
  2. 提供圖形化操作界面

具體配置方式請參考文檔
您也可以配置其他FTP服務端和客戶端進行公網上傳下載數據。

方案二:rsync

配置ECS

類似方案一中的ECS配置方式,選擇Linux鏡像,推薦選擇CentOS 8.0鏡像。參考通過雲服務器ECS(Linux)訪問SMB文件系統進行掛載。

在ECS上配置rsync服務

對於大量文件或頻繁需要的上傳和下載,推薦在本地系統安裝使用rsync命令行工具,這種方案的優點如下:

  1. 上傳下載後的文件元數據不變(包括屬主及權限信息)
  2. 支持數據增量同步
  3. 本地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

Leave a Reply

Your email address will not be published. Required fields are marked *