Parallelstore는 Cloud Storage에서 데이터를 가져오고 Cloud Storage로 데이터를 내보낼 수 있습니다. 데이터 전송을 사용하면 Parallelstore 인스턴스에 데이터를 빠르게 로드하고 Cloud Storage를 Parallelstore 인스턴스의 내구성 있는 백업 레이어로 사용할 수 있습니다.
데이터 가져오기 및 내보내기는 증분 방식입니다. 대상에 아직 존재하지 않거나 전송된 이후 변경된 파일만 복사됩니다.
예상 전송 속도는 성능을 참고하세요.
필수 권한
전송을 시작하는 데 사용되는 사용자 또는 서비스 계정에는 다음 권한이 필요합니다.
parallelstore.instances.exportData
를 사용해야 합니다.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를 사용하여 이 요청을 다시 시도하면 서버에서 이미 완료된 요청을 무시합니다. 0으로만 이루어지지 않은 유효한 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를 사용하여 이 요청을 다시 시도하면 서버에서 이미 완료된 요청을 무시합니다. 0으로만 이루어지지 않은 유효한 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