使用 Storage 移轉服務,將大型資料集從 Cloud Storage 移至 Filestore 檔案共用區。
Storage 移轉服務可協助您在物件和檔案儲存系統之間,快速安全地轉移大型資料集,無論資料是託管在 Cloud Storage、第三方雲端供應商或內部部署環境,都能輕鬆轉移。
Storage 移轉服務支援加速轉移大型資料集,可處理數百 TB 以上的資料。將大型資料集移至雲端,充分運用基礎 Compute Engine 執行個體提供的資料分析和機器學習作業,這些執行個體會掛接 Filestore 執行個體。
透過 Storage 移轉服務,您可以建立 Google 代管的轉移作業,或設定自行託管的轉移作業,全權管理網路轉送和頻寬用量。
將資料從 Cloud Storage bucket 移轉至 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
選用:
gcloud是 Google Cloud SDK 的主要元件,會安裝在每個 Compute Engine VM 上。如要從本機指令列執行下列任何步驟,請設定 Google Cloud SDK。安裝並初始化 Google Cloud SDK。
如果您先前已安裝 Google Cloud SDK,請執行下列指令,確認您擁有最新版本:
gcloud components update建立服務帳戶。 在「將專案存取權授予這個服務帳戶」部分,指派下列角色:
OwnerProject IAM AdminRole AdministratorPub/Sub EditorCloud Filestore EditorStorage Object AdminStorage Transfer AdminStorage Transfer Agent
複製並儲存您建立的服務帳戶名稱,以供後續步驟使用。
為剛建立的帳戶建立服務帳戶金鑰。為達到本指南的目的,請只建立一個金鑰。下載金鑰檔案並儲存,以供後續步驟使用。
將角色指派給使用者帳戶。在「IAM」頁面中,找出您的使用者帳戶,並指派下列角色:
OwnerProject IAM AdminRole AdministratorStorage Transfer AdminStorage Admin
詳情請參閱「使用者權限」。
設定 Filestore
建立 Filestore 執行個體。 建立執行個體時,請套用下列規格:
在用戶端電腦上掛接 Filestore 執行個體。
本指南說明如何使用四部 Compute Engine VM 做為 NFS 用戶端機器進行轉移。您將建立單一服務帳戶,代表四部用戶端電腦運作。每部用戶端電腦都會安裝三個 Storage 移轉服務代理程式。
建立可存取其他服務的 Compute Engine VM 執行個體。Google Cloud
設定 VM,規格如下:
指定位置時,請確保 Google Cloud 值區、用戶端 VM 和 Filestore 執行個體都位於相同地區。
每個 Storage Transfer Service 代理程式都需要 4 個 vCPU 和 8 GB RAM。如要獲得最佳效能,請在每個 VM 中執行多個代理程式。 在本指南中,請佈建
e2-standard-32Compute Engine 虛擬機器執行個體。在「身分及 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=524288,wsize=524288,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 執行個體掛接至每個執行個體。使用同一個服務帳戶管理所有四個 Compute Engine VM。將服務帳戶金鑰的本機副本暫時儲存至每個 VM。
設定 Storage 移轉服務
安裝轉移代理程式。
每個 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 bucket 移至 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
詳情請參閱「監控代理程式活動」或「檔案系統轉移詳細資料」。