全部產品
Search
文件中心

Apsara File Storage NAS:遷移資料至阿里雲NAS

更新時間:Sep 14, 2024

配置資料轉送中轉節點後,您還要使用遷移工具遷移資料至阿里雲Apsara File Storage NAS。本文介紹如何通過遷移工具將非阿里雲的資料移轉至Apsara File Storage NAS。

前提條件

已配置資料轉送中轉節點ECS執行個體。具體操作,請參見配置資料轉送中轉節點

使用SFTP用戶端遷移資料

當有少量檔案需要一次性上傳時,建議您在本地系統上安裝使用SFTP用戶端來完成。此方案具有以下優點:

  • 支援眾多作業系統平台。

  • 提供圖形化操作介面。

  1. 為本地作業系統安裝SFTP用戶端。

    SFTP的用戶端工具有多種版本,以下樣本中使用的是FileZilla,請選擇適合您本地作業系統的版本下載安裝SFTP用戶端

  2. 建立SFTP用戶端與中轉節點ECS之間的串連。

    1. 開啟FileZilla用戶端,按照如下說明進行配置。單擊Quickconnect,建立串連。

      在本地用戶端與ECS服務端的串連建立之後,左側地區會顯示本地檔案系統,右側地區會顯示服務端ECS的檔案系統。U-D NFS0201

      參數

      說明

      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。

    2. 在頁面右側地區,設定Remote site中的路徑為掛載了NAS檔案系統的路徑(例如/mnt),單擊斷行符號即可查看到NAS中的檔案清單。

      UD-NFS0202

  3. 上傳資料。

    將左側地區中的檔案或目錄拖拽到右側地區,即完成資料上傳。

使用rsync命令列工具遷移資料

當有大量檔案上傳或需要頻繁上傳任務時,建議您在本地系統安裝使用rsync命令列工具執行上傳任務,此方案具有以下優點:

  • 上傳後的檔案中繼資料不變(包括屬主及許可權資訊)。

  • 支援資料增量同步處理。

  • 本地Linux或macOS系統可配置crontab向雲上NAS自動備份資料。

  1. 安裝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)連接埠。

  2. 上傳資料。

    執行以下命令,將本地目錄以增量同步處理的方式,上傳到阿里雲NAS。

    rsync -avP DirToSync/ root@192.0.2.0:/mnt/DirToSync/

    命令中的參數請根據實際值修改,參數含義如下:

    參數

    說明

    DirToSync

    需要上傳的本地目錄名。

    root

    上傳目標NAS檔案系統目錄的屬主。

    192.0.2.0

    已掛載Apsara File Storage NAS檔案系統的Linux/Windows ECS公網IP。

    /mnt

    ECS執行個體中用來掛載NAS的路徑。

    說明
    • rsync命令中的源路徑結尾必須帶有正斜線(/),否則同步後資料路徑不匹配。

    • 您還可以利用rsync並發拷貝上傳資料到阿里雲Apsara File Storage 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/% )
  3. 可選:配置定時上傳備份任務。

    本地Linux或macOS作業系統,可以基於rsync命令,通過crontab配置定時上傳備份任務。

    • Linux作業系統

      1. 建立本地系統到ECS的無密碼通道。具體操作,請參見通過密鑰認證登入Linux執行個體

        執行以下命令,確認串連成功。

        ssh -i ~/.ssh/ecs.pem root@1.2.3.4
        說明

        ~/.ssh/ecs.pem為密鑰檔案在本地的儲存路徑。

      2. 配置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作業系統

      1. /usr/sbin/cron目錄配置硬碟存取權限。

        請進入系統設定,單擊Security & Privacy > Privacy > Full Disk Access,單擊解鎖,單擊+,選擇Macintosh HD目錄,按cmd+shift+.按鍵組合顯示隱藏目錄,選擇/usr/sbin/cron

      2. 建立本地系統到ECS的無密碼通道。具體操作,請參見通過密鑰認證登入Linux執行個體

        執行以下命令,確認串連成功。

        ssh -i ~/.ssh/ecs.pem root@1.2.3.4
        說明

        ~/.ssh/ecs.pem為密鑰檔案在本地的儲存路徑。

      3. 配置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指令碼實現海量資料移轉。

  1. 登入用於遷移資料的阿里雲ECS執行個體。

  2. 遷移資料。

    執行以下命令,將源檔案系統(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協議檔案系統

  3. 檢查遷移結果。

    遷移完後,執行以下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服務端和用戶端進行公網上傳下載資料。

  • Elastic IP Address對入方向流量不收費,僅對出方向流量收費。也就是說,從公網上傳資料到NAS不會收取流量費用,而從NAS下載資料則會收取流量費用。計費詳情請參見Elastic IP Address隨用隨付

附錄:使用fpsync命令列工具遷移資料

  1. 下載並安裝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
  2. 拷貝整個檔案目錄。

    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上的資料,例如使用NginxProxy 伺服器代理阿里雲NAS通過Windows IIS服務訪問阿里雲NAS

如果您不再通過中轉節點ECS上傳或下載資料,可以將該ECS執行個體釋放。具體操作,請參見釋放執行個體