使用 Storage 移轉服務,將大型資料集從 Cloud Storage 移至 Filestore 檔案共用區。
無論資料是託管在 Cloud Storage、第三方雲端供應商或地端部署,Storage 移轉服務都能協助您快速安全地在物件和檔案儲存系統之間轉移大量資料集。
Storage 轉移服務可加速處理大型資料集的轉移作業,處理數百 TB 以上的資料。將大型資料集移至雲端,充分利用掛接 Filestore 執行個體的基礎 Compute Engine 執行個體提供的資料分析和機器學習作業。
您可以使用 Storage 移轉服務建立 Google 代管的轉移作業,或設定自行託管的轉移作業,以便完全掌控網路轉送和頻寬用量。
將資料從 Cloud Storage 值區轉移至 Filestore 檔案共用區
使用 Storage 移轉服務將資料從 Cloud Storage 移轉至 Filestore 檔案共用區時,需要執行下列工作:
- 設定環境。
- 設定 Filestore。
- 設定 Storage 移轉服務。
- 建立並啟動轉移工作。
以下各節將逐步說明每項任務。
設定環境
選取或建立專案。
為符合本指南的目的,請確認來源和目的地資源位於同一個專案。
在 Google Cloud 控制台的專案選擇器頁面中,選取或建立Google Cloud 專案。
如果您要測試 Filestore,且不打算保留所建立的資源,建議您建立專案,不要選取現有專案。測試完成後,您可以刪除專案,移除與專案相關聯的所有資源。
啟用計費功能。
請確認您已為 Google Cloud 專案啟用計費功能。瞭解如何確認您已啟用專案的計費功能。
-
Filestore API
Resource Manager API
Pub/Sub API
Cloud Storage API
Storage Transfer API
Cloud Logging API
Compute Engine API
Service Usage API
Identity and Access Management API
選用:在每個 Compute Engine VM 上安裝 Google Cloud SDK 的主要元件
gcloud
。如果您要從本機指令列執行下列任何步驟,請先設定 Google Cloud SDK。安裝並初始化 Google Cloud SDK。
如果您之前已安裝 Google Cloud SDK,請執行以下指令,確認您擁有最新版本:
gcloud components update
建立服務帳戶。在「將專案存取權授予這個服務帳戶」部分,指派下列角色:
Owner
Project IAM Admin
Role Administrator
Pub/Sub Editor
Cloud Filestore Editor
Storage Object Admin
Storage Transfer Admin
Storage Transfer Agent
複製並儲存您建立的服務帳戶名稱,以利後續步驟使用。
為剛建立的帳戶建立服務帳戶金鑰。為了配合本指南的目的,請只建立一個鍵。下載金鑰檔案,並儲存以供後續步驟使用。
為使用者帳戶指派角色。在「IAM」頁面中找出使用者帳戶,然後指派下列角色:
Owner
Project IAM Admin
Role Administrator
Storage Transfer Admin
Storage Admin
詳情請參閱「使用者權限」。
設定 Filestore
建立 Filestore 執行個體。建立執行個體時,請套用下列規格:
在用戶端機器上掛接 Filestore 執行個體。
本指南說明如何使用四個 Compute Engine VM 做為 NFS 用戶端機器來進行轉移作業。您將建立一個服務帳戶,代表四部用戶端電腦運作。每台用戶端電腦都會安裝三個 Storage Transfer Service 代理程式。
建立可存取其他Google Cloud 服務的 Compute Engine VM 執行個體。
設定 VM,並採用下列規格:
指定位置時,請確保 Google Cloud 值區、用戶端 VM 和 Filestore 執行個體都位於相同地區。
每個 Storage Transfer Service 代理程式需要 4 個 vCPU 和 8 GB RAM。為獲得最佳效能,請在每個 VM 中執行多個代理程式。為了配合本指南的目的,請佈建
e2-standard-32
Compute Engine 虛擬機器執行個體。在「Identity and API Access」(身分及 API 存取權) 區段中,指定下列項目:
- 在「Service accounts」下拉式選單中,選取您剛剛建立的服務帳戶。
建立 Compute Engine VM 執行個體後,請使用 SSH 登入機器。在「Compute Engine VM 執行個體」頁面中找出您建立的執行個體,然後按一下「SSH」SSH。
使用 Vim 等文字編輯器建立服務帳戶金鑰檔案的副本,並暫時將其儲存至 VM 的本機。例如
service-account-key.json
。gcloud
已在 Compute Engine VM 執行個體上安裝。在 SSH 指令列中輸入下列指令,授權服務帳戶使用gcloud
:gcloud auth activate-service-account ACCOUNT --key-file=KEY_FILE
其中:
ACCOUNT 是您建立的服務帳戶電子郵件地址。例如:
my-service-account@my-project.iam.gserviceaccount.com
。KEY_FILE 是先前複製的金鑰檔案相對本機路徑。例如:
sa-key.json
。
請透過 SSH 指令列安裝 NFS:
sudo apt-get -y update && sudo apt-get install nfs-common
建立對應至 Filestore 檔案共用區的本機目錄。針對後續的 Compute Engine VM 執行個體重複執行這些步驟時,請使用相同的名稱和路徑:
sudo mkdir -p MY_DIRECTORY
其中:
- MY_DIRECTORY 是 Compute Engine VM 執行個體的本機 POSIX 目錄名稱。例如:
/usr/local/my_dir
。
- MY_DIRECTORY 是 Compute Engine VM 執行個體的本機 POSIX 目錄名稱。例如:
執行
mount
指令,掛接與 Filestore 執行個體相關聯的檔案共用區。您可以使用任何 NFS 掛接選項。為獲得最佳效能,請參閱「在 Compute Engine VM 執行個體上掛接檔案共用區」一文中的 NFS 掛接建議:sudo mount -o rw IP_ADDRESS:/FILE_SHARE MY_DIRECTORY
其中:
確認掛接點:
mount -l | grep nfs
這會傳回類似以下的內容:
10.66.55.194:/my_fs_instance on /home/usr/my_dir type nfs (rw,relatime,vers=3,rsize=262144,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.66.55.194,mountvers=3,mountport=2050,mountproto=udp,local_lock=none,addr=10.66.55.194)
或者,您也可以使用下列指令:
df -h --type=nfs
這會傳回類似以下的內容:
Filesystem Size Used Avail Use% Mounted on 10.66.55.194:/my_fs_instance 1.0T 0 1.0T 0% /home/usr/my_dir
請記下本機 POSIX 目錄路徑,並在後續步驟中使用。
重複執行上述步驟,建立另外三個 Compute Engine VM 執行個體,並將相同的 Filestore 例項掛接至每個 VM。使用相同的服務帳戶管理所有四個 Compute Engine VM。將服務帳戶金鑰的本機副本暫時儲存至每個 VM。
設定 Storage 移轉服務
-
輸入下列指令:
gcloud transfer authorize --add-missing --creds-file=KEY_FILE
其中:
- KEY_FILE 是先前複製的金鑰檔案相對本機路徑。例如:
sa-key.json
。
請注意服務專員的傳回通知,並儲存相關聯的電子郵件地址,以利下一個步驟。
- KEY_FILE 是先前複製的金鑰檔案相對本機路徑。例如:
幾分鐘後,您應該會在 IAM 頁面中看到服務代理。完成傳播後,請確認已指派下列角色:
Pub/Sub Editor
Storage Admin
安裝轉移代理程式。
每個 Storage Transfer Service 代理程式都需要 4 個 vCPU 和 8 GB RAM。
建議您安裝多個代理程式,以便盡量提高容錯能力,並充分利用 Storage Transfer Service 提供的動態調整功能。以下範例說明如何在用戶端電腦上安裝三個代理程式。在 SSH 指令列執行下列指令:
gcloud transfer agents install --pool=MY_AGENT_POOL --count=3 \ --creds-file=MY_SERVICE_ACCOUNT_KEY_FILE
其中:
MY_AGENT_POOL 是您先前建立的服務專員集區名稱。例如:
my-agent-pool
。MY_SERVICE_ACCOUNT_KEY_FILE 是服務帳戶金鑰的相對路徑。例如:
/relative/path/to/service-account-key.json
。
針對每部用戶端電腦重複執行這些步驟。
建立並啟動轉移工作
- 建立移轉工作,將資料從 Cloud Storage 值區移至 Filestore 執行個體。參照先前儲存的本機 POSIX 目錄,指定目的地路徑。例如:
/home/usr/my_dir
。
監控轉移狀態
控制台
指令列
您可以使用指令列監控狀態:
gcloud transfer jobs monitor JOB_NAME
其中:
- JOB_NAME 是轉移工作的名稱。例如:
transferJobs/OPI6300379522015192941
。
回應會顯示下列內容或類似內容:
Polling for latest operation name...done.
Operation name: my-sts-project_transferJobs/OPI6300379522015192941_0000000001660692377
Parent job: OPI6300379522015192941
Start time: 2022-08-16T23:26:17.600981Z
SUCCESS | 100% (731.9MiB of 731.9MiB) | Skipped: 129.8kiB | Errors: 0
End time: 2022-08-16T23:27:23.429472Z
詳情請參閱「監控代理程式活動」或「檔案系統轉移詳細資料」。
後續步驟
- 改善各項 Google Cloud 資源的效能。
- 建立可存取其他 Google Cloud 服務的 Compute Engine VM 執行個體。