將資料移轉至 Cloud Storage 或從 Cloud Storage 移轉

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