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

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

效能最佳做法

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

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

  • 傳輸大量資料庫 (通常至少 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 相容檔案系統不支援多部分上傳。

啟用多部分上傳功能

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

  • 您必須授予必要權限給授權轉移代理程式的帳戶 (使用者帳戶或服務帳戶)。

  • 目的地或中繼值區不得設有保留政策或物件保留設定。

啟用後,Storage Transfer Service 會在可能加快傳輸速度時自動使用多部分上傳功能。

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

您可以使用 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 小時的大型轉移作業。例如,啟動至少包含 100,000 個檔案且總大小至少為 100 GB 的傳輸作業。

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

  3. 請等待傳輸量趨於穩定,然後判斷是否受 WAN 容量或頻寬上限限制。

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

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

如果在達到所需上限之前,就已用盡傳出頻寬,您可以採取下列任一做法:

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

命名代理程式

建議您在命名代理人時採取下列做法:

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

  • 選擇代理程式前置字串配置,以便在監控和基礎架構組織的情況下識別代理程式。例如:

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

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