Parallelstore 可以從 Cloud Storage 匯入資料,也可以將資料匯出至 Cloud Storage。資料移轉功能可讓您快速將資料載入 Parallelstore 執行個體,並將 Cloud Storage 做為 Parallelstore 執行個體的持久備份層。
資料匯入和匯出作業是增量作業,只會複製目的地中沒有的檔案,或是自上次轉移後變更的檔案。
如要瞭解預期傳輸速度,請參閱「效能」。
所需權限
用來啟動轉移作業的使用者或服務帳戶必須具備下列權限:
parallelstore.instances.exportData
,以便從 Parallelstore 轉移至 Cloud Storage。parallelstore.instances.importData
,以便轉移至 Cloud Storage。
這兩項權限都是透過 roles/parallelstore.admin
角色授予。您可以建立自訂角色,獨立授予權限。
此外,Parallelstore 服務帳戶也需要下列權限:
roles/storage.admin
Cloud Storage bucket。
如要授予這項權限,請執行下列 gcloud
指令:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-parallelstore.iam.gserviceaccount.com \
--role=roles/storage.admin
PROJECT_NUMBER 與專案 ID 不同:
- 專案 ID 是由字母、數字和連字號組成的專屬字串。建立專案時,您會指定專案 ID。例如:
example-project-123
。 - 專案編號是系統自動為專案產生的唯一 ID,僅由數字組成。例如:
1234567890
。
如要取得特定專案 ID 的 PROJECT_NUMBER,請使用 gcloud projects describe
指令:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
將資料匯入 Parallelstore
您可以從 Cloud Storage 值區匯入資料。bucket 可以位於相同或不同專案。值區可以與 Parallelstore 執行個體位於不同區域或地區,但跨區域傳輸速度可能比區域內傳輸慢。
gcloud
gcloud beta parallelstore instances import-data INSTANCE_ID \
--location=LOCATION \
--source-gcs-bucket-uri=gs://BUCKET_NAME \
--destination-parallelstore-path=PS_PATH
其中:
- INSTANCE_ID 是 Parallelstore 執行個體名稱。
--location
必須是支援的區域。--source-gcs-bucket-uri
會使用gs://<bucket_name>/<optional_path_inside_bucket>
格式,指定 Cloud Storage 值區的 URI,或值區中的路徑。--destination-parallelstore-path
指定 Parallelstore 檔案系統的根目錄路徑。必須以/
開頭。預設值為/
。
選用參數如下:
--request-id
可讓您為這項要求指派專屬 ID。如果使用相同要求 ID 重試這項要求,伺服器會忽略已完成的要求。必須是有效的 UUID,且不得全為零。 例如:--request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
--async
會立即傳回回應,不會等待作業完成。
REST
POST https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:importData
Authorization: Bearer [YOUR_ACCESS_TOKEN]
{
"source_gcs_bucket" : {
"uri" : "gs://BUCKET_NAME/"
},
"destination_parallelstore" : {
"path" : "/PATH"
}
}
其中:
- PROJECT_ID 是您的 Google Cloud 專案 ID。
- LOCATION 必須是執行個體所在的支援區域。
- INSTANCE_ID 是 Parallelstore 執行個體名稱。
source-gcs-bucket
包含uri
鍵,其值會指定 Cloud Storage 值區的 URI,或值區中的路徑,格式為gs://<bucket_name>/<optional_path_inside_bucket>
。destination-parallelstore
包含path
鍵,其值會指定 Parallelstore 檔案系統的根目錄路徑。必須以/
開頭。 預設值為/
。
如要使用自己的服務帳戶,而非 Google 管理的服務代理程式,要求支援 JSON 物件中的 serviceAccount
欄位:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
cURL 指令範例如下:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:importData \
-d '{"source_gcs_bucket": {"uri":"gs://BUCKET_NAME/"}, "destination_parallelstore": {"path":"/"}}'
匯出資料
您可以將資料從 Parallelstore 執行個體匯出至相同或不同專案中的 Cloud Storage bucket。值區可以與 Parallelstore 執行個體位於不同的區域或地區,但跨地區傳輸的速度可能比同地區傳輸慢。
gcloud
gcloud beta parallelstore instances export-data \
INSTANCE_ID \
--location=LOCATION \
--destination-gcs-bucket-uri="gs://BUCKET_NAME" \
--source-parallelstore-path="/"
其中:
- INSTANCE_ID 是 Parallelstore 執行個體名稱。
--location
必須是支援的區域。--destination-gcs-bucket-uri
會使用gs://<bucket_name>/<optional_path_inside_bucket>
格式,指定 Cloud Storage 值區的 URI,或值區內的路徑。--source-parallelstore-path
指定 Parallelstore 檔案系統的根目錄路徑。必須以/
開頭。預設值為/
。
選用參數如下:
--request-id
可讓您為這項要求指派專屬 ID。如果使用相同要求 ID 重試這項要求,伺服器會忽略已完成的要求。必須是有效的 UUID,且不得全為零。 例如:--request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d
--async
會立即傳回回應,不會等待作業完成。
REST
POST https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:exportData
Authorization: Bearer [YOUR_ACCESS_TOKEN]
{
"source_parallelstore" : {
"path" : "/"
},
"destination_gcs_bucket" : {
"uri" : "gs://BUCKET_NAME/"
}
}
其中:
- PROJECT_ID 是您的 Google Cloud 專案 ID。
- INSTANCE_ID 是 Parallelstore 執行個體名稱。
- LOCATION 必須是 Parallelstore 執行個體所在的支援區域。
--source-parallelstore
包含path
鍵,其值會指定 Parallelstore 檔案系統的根目錄路徑。必須以/
開頭。 預設值為/
。--destination-gcs-bucket
包含uri
鍵,其值會指定 Cloud Storage 值區的 URI,或值區中的路徑,格式為gs://<bucket_name>/<optional_path_inside_bucket>
。
如要使用自己的服務帳戶,而非 Google 管理的服務代理程式,要求支援 JSON 物件中的 serviceAccount
欄位:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
cURL 指令範例如下:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json"
https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:exportData \
-d '{"source_parallelstore": {"path":"/"}, "destination_gcs_bucket": {"uri":"gs://BUCKET_NAME/"}}'
取得作業
如要查看匯入或匯出作業的狀態,您需要作業 ID。您提出匯入或匯出要求時,服務會傳回這個 ID,格式如下:
operation-1234567890123-6127783ad26ea-88913969-02748053
gcloud
gcloud beta parallelstore operations describe OPERATION_ID \
--location=LOCATION
REST
GET https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Authorization: Bearer [YOUR_ACCESS_TOKEN]
cURL 指令範例如下:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
取消作業
如要取消匯入或匯出作業,您需要作業 ID。您提出匯入或匯出要求時,服務會傳回這個 ID,格式如下:
operation-1234567890123-6127783ad26ea-88913969-02748053
gcloud
gcloud beta parallelstore operations cancel OPERATION_ID \
--location=LOCATION
REST
POST https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel
Authorization: Bearer [YOUR_ACCESS_TOKEN]
cURL 指令範例如下:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://parallelstore.googleapis.com/v1beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel