O Parallelstore pode importar dados do Cloud Storage e exportar dados para o mesmo. As transferências de dados permitem-lhe carregar rapidamente dados para a sua instância do Parallelstore e usar o Cloud Storage como uma camada de apoio duradoura para a sua instância do Parallelstore.
As importações e exportações de dados são incrementais. Copiam apenas os ficheiros que ainda não existem no destino ou que foram alterados desde que foram transferidos.
Para ver as velocidades de transferência esperadas, consulte a secção Desempenho.
Autorizações necessárias
O utilizador ou a conta de serviço usada para iniciar a transferência requer as seguintes autorizações:
parallelstore.instances.exportDatapara transferir do Parallelstore para o armazenamento na nuvem.parallelstore.instances.importDatapara transferir para o Cloud Storage.
Ambas as autorizações são concedidas com a função roles/parallelstore.admin. Pode criar uma função personalizada para conceder autorizações de forma independente.
Além disso, a conta de serviço Parallelstore requer a seguinte autorização:
roles/storage.adminno contentor do Cloud Storage.
Para conceder esta autorização, execute o seguinte comando 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
O seu PROJECT_NUMBER não é igual a um ID do projeto:
- Um ID do projeto é uma string única que pode ser uma combinação de letras,
números e hífens. Especifica um ID do projeto quando cria o seu projeto. Por exemplo,
example-project-123. - Um número do projeto é um identificador exclusivo gerado automaticamente para o seu projeto, que consiste apenas em números. Por exemplo,
1234567890.
Para obter o PROJECT_NUMBER para um determinado ID do projeto, use o comando
gcloud projects describe:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
Importe dados para o Parallelstore
Pode importar dados de um contentor do Cloud Storage. O contentor pode estar no mesmo projeto ou num projeto diferente. O contentor pode estar numa zona ou região diferente da sua instância do Parallelstore, mas as transferências entre regiões podem ser mais lentas do que as transferências na mesma região.
gcloud
gcloud beta parallelstore instances import-data INSTANCE_ID \
--location=LOCATION \
--source-gcs-bucket-uri=gs://BUCKET_NAME \
--destination-parallelstore-path=PS_PATH
Onde:
- INSTANCE_ID é o nome da instância do Parallelstore.
--locationtem de ser uma zona suportada.--source-gcs-bucket-uriespecifica o URI de um contentor do Cloud Storage, ou um caminho num contentor, usando o formatogs://<bucket_name>/<optional_path_inside_bucket>.--destination-parallelstore-pathespecifica o caminho do diretório raiz para o sistema de ficheiros Parallelstore. Tem de começar com/. A predefinição é/.
Os parâmetros seguintes são opcionais:
--request-idpermite-lhe atribuir um ID exclusivo a este pedido. Se tentar novamente este pedido com o mesmo ID do pedido, o servidor ignora o pedido se já tiver sido concluído. Tem de ser um UUID válido que não seja composto apenas por zeros. Por exemplo:--request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d--asyncdevolve uma resposta imediatamente, sem aguardar a conclusão da operação.
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"
}
}
Onde:
- PROJECT_ID é o ID do seu Google Cloud projeto.
- LOCATION tem de ser a zona suportada na qual a sua instância reside.
- INSTANCE_ID é o nome da instância do Parallelstore.
source-gcs-bucketcontém uma chaveuricujo valor especifica o URI para um contentor do Cloud Storage ou um caminho num contentor, usando o formatogs://<bucket_name>/<optional_path_inside_bucket>.destination-parallelstorecontém uma chavepathcujo valor especifica o caminho do diretório raiz para o sistema de ficheiros Parallelstore. Tem de começar com/. A predefinição é/.
Para usar a sua própria conta de serviço em vez do agente de serviço gerido pela Google, o pedido suporta um campo serviceAccount no objeto JSON:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
Um exemplo de comando cURL tem o seguinte aspeto:
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":"/"}}'
Exportar dados
Pode exportar dados da sua instância do Parallelstore para um contentor do Cloud Storage no mesmo projeto ou num projeto diferente. O contentor pode estar numa zona ou numa região diferente da sua instância do Parallelstore, mas as transferências entre regiões podem ser mais lentas do que as transferências na mesma região.
gcloud
gcloud beta parallelstore instances export-data \
INSTANCE_ID \
--location=LOCATION \
--destination-gcs-bucket-uri="gs://BUCKET_NAME" \
--source-parallelstore-path="/"
Onde:
- INSTANCE_ID é o nome da instância do Parallelstore.
--locationtem de ser uma zona suportada.--destination-gcs-bucket-uriespecifica o URI de um contentor do Cloud Storage ou um caminho num contentor, usando o formatogs://<bucket_name>/<optional_path_inside_bucket>.--source-parallelstore-pathespecifica o caminho do diretório raiz para o sistema de ficheiros Parallelstore. Tem de começar com/. A predefinição é/.
Os parâmetros seguintes são opcionais:
--request-idpermite-lhe atribuir um ID exclusivo a este pedido. Se tentar novamente este pedido com o mesmo ID do pedido, o servidor ignora o pedido se já tiver sido concluído. Tem de ser um UUID válido que não seja composto apenas por zeros. Por exemplo:--request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d--asyncdevolve uma resposta imediatamente, sem aguardar a conclusão da operação.
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/"
}
}
Onde:
- PROJECT_ID é o ID do seu Google Cloud projeto.
- INSTANCE_ID é o nome da instância do Parallelstore.
- LOCATION tem de ser a zona suportada na qual a sua instância do Parallelstore reside.
--source-parallelstorecontém uma chavepathcujo valor especifica o caminho do diretório raiz para o sistema de ficheiros Parallelstore. Tem de começar com/. A predefinição é/.--destination-gcs-bucketcontém uma chaveuricujo valor especifica o URI para um contentor do Cloud Storage ou um caminho num contentor, usando o formatogs://<bucket_name>/<optional_path_inside_bucket>.
Para usar a sua própria conta de serviço em vez do agente de serviço gerido pela Google, o pedido suporta um campo serviceAccount no objeto JSON:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
Um exemplo de comando cURL tem o seguinte aspeto:
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/"}}'
Obter operação
Para ver o estado de uma operação de importação ou exportação, precisa do ID da operação. Este ID é devolvido pelo serviço quando faz um pedido de importação ou exportação e usa o seguinte formato:
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]
Um exemplo de comando cURL tem o seguinte aspeto:
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
Cancelar operação
Para cancelar uma operação de importação ou exportação, precisa do ID da operação. Este ID é devolvido pelo serviço quando faz um pedido de importação ou exportação e usa o seguinte formato:
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]
Um exemplo de comando cURL tem o seguinte aspeto:
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