Parallelstore 可以从 Cloud Storage 导入数据,也可以将数据导出到 Cloud Storage。借助数据传输,您可以快速将数据加载到 Parallelstore 实例中,并使用 Cloud Storage 作为 Parallelstore 实例的持久性备份层。
数据导入和导出是增量操作;它们只会复制目标位置中尚不存在的文件,或自上次传输以来发生更改的文件。
如需了解预期转移速度,请参阅性能。
所需权限
用于发起转移的用户或服务账号需要以下权限:
parallelstore.instances.exportData,以便从 Parallelstore 转移到 Cloud Storage。parallelstore.instances.importData,以便转移到 Cloud Storage。
roles/parallelstore.admin 角色可提供这两项权限。您可以创建自定义角色,以便单独授予权限。
此外,Parallelstore 服务账号还需要具有以下权限:
- 对 Cloud Storage 存储桶的
roles/storage.admin权限。
如需授予此权限,请运行以下 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。 - 项目编号是系统为项目自动生成的唯一标识符,仅包含数字。例如
1234567890。
如需获取给定项目 ID 的 PROJECT_NUMBER,请使用 gcloud projects describe 命令:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
将数据导入 Parallelstore
您可以从 Cloud Storage 存储桶导入数据。存储桶可以位于同一项目中,也可以位于其他项目中。存储桶可以位于与 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指定 Cloud Storage 存储桶的 URI 或存储分区内的路径,格式为gs://<bucket_name>/<optional_path_inside_bucket>。--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"
示例 c网址 命令如下所示:
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 存储桶。存储桶可以与 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用于指定 Cloud Storage 存储桶的 URI 或存储分区内的路径,格式为gs://<bucket_name>/<optional_path_inside_bucket>。--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"
示例 c网址 命令如下所示:
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]
示例 c网址 命令如下所示:
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]
示例 c网址 命令如下所示:
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