Parallelstore は、Cloud Storage との間でデータをインポートおよびエクスポートできます。データ転送を使用すると、Parallelstore インスタンスにデータをすばやく読み込み、Parallelstore インスタンスの耐久性の高いバッキング レイヤとして Cloud Storage を使用できます。
データのインポートとエクスポートは増分です。宛先にまだ存在しないファイル、または転送後に変更されたファイルのみがコピーされます。
想定される転送速度については、パフォーマンスをご覧ください。
必要な権限
転送の開始に使用するユーザーまたはサービス アカウントには、次の権限が必要です。
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
には、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
キーが含まれます。このキーの値は、gs://<bucket_name>/<optional_path_inside_bucket>
形式を使用して、Cloud Storage バケットの URI またはバケット内のパスを指定します。destination-parallelstore
には、Parallelstore ファイル システムのルート ディレクトリ パスを指定するpath
キーが含まれています。/
で始まる必要があります。デフォルトは/
です。
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 バケットにデータをエクスポートできます。バケットは 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
には、Parallelstore ファイル システムのルート ディレクトリ パスを指定するpath
キーが含まれています。/
で始まる必要があります。デフォルトは/
です。--destination-gcs-bucket
には、uri
キーが含まれます。このキーの値は、gs://<bucket_name>/<optional_path_inside_bucket>
形式を使用して、Cloud Storage バケットの URI またはバケット内のパスを指定します。
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