檔案系統轉移作業的最佳做法

本頁說明檔案系統轉移的最佳做法。

效能最佳做法

以下是確保轉移作業順利進行的最佳做法:

  • 發揮轉移代理程式的最佳效能

  • 如要評估效能,請轉移大型資料集,通常至少要有 100 GB。

    Storage 移轉服務是經過處理量最佳化的大規模服務,因此在極小的測試資料集上執行的效能,無法代表在大型生產資料集上執行的效能。

  • 每個來源資料夾最多只能有 100 萬個檔案。如果目錄包含數百萬個檔案,整個傳輸作業可能會變慢。

  • 在不同的虛擬機器 (VM) 中執行代理程式,以便更有效率地調整資源用量。

  • 確認代理程式機器的網路介面大小符合讀取/寫入頻寬需求。

    舉例來說,如果您打算充分利用 20 Gbps 的廣域網路 (WAN),代理程式機器的網路介面就必須支援 20 Gbps,才能從網路檔案系統讀取資料,並支援另外 20 Gbps,才能將資料傳輸至 Cloud Storage,也就是總頻寬為 40 Gbps。

  • 監控代理程式機器的 CPU、記憶體和網路,確保機器不會因其他工作負載而過度負擔,因為這可能會對效能造成負面影響。如需建議的記憶體和 CPU 數據,請參閱代理程式硬體需求

多部分上傳

如果轉移作業是從 POSIX 檔案系統轉移至 Cloud Storage,或是從一個 POSIX 檔案系統轉移至另一個,請考慮啟用多部分上傳。 多部分上傳功能可將大型檔案 (>1 GiB) 拆分成較小的部分,並平行上傳這些部分,因此可加快包含大型檔案的轉移作業,速度最多可提升 300%。

HDFS 和 S3 相容檔案系統不支援多部分上傳。

啟用多部分上傳作業

如要啟用多部分上傳作業,請按照下列步驟操作:

啟用後,儲存空間移轉服務會在可能加快移轉速度時,自動使用多部分上傳功能。

設定多部分物件生命週期規則

您可以使用 Cloud Storage 物件生命週期管理功能,中止未完成的多部分上傳作業,並刪除相關部分。請參閱 Cloud Storage 說明文件中的「中止未完成的多部分上傳作業」。

建議將 age 值設為 7 天。

停用多部分上傳作業

如要停用多部分上傳功能,請使用 docker run 重新安裝轉移代理程式,並傳遞 --enable-multipart=false

sudo docker run --ulimit memlock=64000000 -d --rm \
-v /usr/local/research:/usr/local/research \
gcr.io/cloud-ingest/tsop-agent:latest \
--project-id=PROJECT_ID \
--agent-pool=AGENT_POOL \
--creds-file=CREDENTIAL_FILE \
--hostname=$(hostname) \
--enable-multipart=false

更改下列內容:

  • PROJECT_ID 指定代管移轉作業的專案 ID。
  • CREDENTIAL_FILE:如果移轉代理程式使用服務帳戶進行驗證,請指定 JSON 格式服務帳戶憑證檔案的路徑。

或者,您也可以撤銷授權移轉代理程式的帳戶 (使用者帳戶或服務帳戶) 的必要權限。

發揮轉移代理程式的最佳效能

轉移成效會受到下列變數影響:

  • 檔案系統功能。

  • 底層硬體限制。

    硬碟媒體類型、輸入/輸出匯流排和區域網路 (LAN) 連線能力都會影響效能。

  • WAN 處理量和使用率。

    WAN 速度較慢或使用率過高,都會導致效能降低。

  • 檔案特徵。

    舉例來說,由於網路負擔,許多大型檔案的網路輸送量會高於許多小型檔案。

由於這些變數的存在,我們無法預測實際成效,也無法提供最佳的客服人員人數。

建議您至少使用三部代理程式,並盡可能在不同電腦上執行,確保轉移作業容錯。您可以在轉移作業執行期間新增轉移代理程式,因為效能會動態提升。

如要觀察新增代理程式的影響,並選擇最適合您環境的代理程式數量,請按照下列步驟操作:

  1. 開始執行大型轉移作業,至少需要 1 小時。舉例來說,開始轉移至少 10 萬個檔案,且總大小至少為 100 GB。

  2. 使用 Cloud Monitoring 觀察代理程式的整體輸送量

  3. 等待總處理量趨於穩定,並判斷您是否受到 WAN 容量或頻寬上限的限制。

  4. 如果 WAN 容量尚未飽和,且尚未達到所需傳輸上限,請新增其他代理程式。額外代理程式會自動提高移轉總處理量。等待約 3 分鐘,讓 Cloud Monitoring 中的輸送量穩定下來。

重複步驟 3 和 4,一次新增一位服務專員,直到達到所需上限為止。只要有可用的運算、檔案系統和網路資源,每個代理程式集區最多可同時執行 100 個代理程式。

如果在達到所需限制前,輸出頻寬已飽和,您可以採取下列任一做法:

如果已新增代理程式,但總處理量並未增加,且 WAN 未達飽和,請調查檔案系統總處理量。在極少數情況下,檔案系統輸送量會達到飽和,導致您無法提高傳輸效能。

命名代理程式

為代理程式命名時,建議您採取下列做法:

  • 請務必在代理程式中加入主機名稱。這有助於找出代理程式執行的機器。建議您將 --hostname=$(hostname) 傳遞至 Docker run 指令。

  • 選擇代理程式前置字元配置,協助您在監控和基礎架構組織的環境中識別代理程式。例如:

    • 如果您有三個不同的轉移專案,不妨在代理程式中加入團隊名稱。例如 logistics

    • 如果您要為兩個不同的資料中心執行兩個不同的轉移專案,建議在代理程式前置字元中加入資料中心名稱。例如 omaha