Parallelstore puede importar datos de Cloud Storage y exportarlos a este servicio. Las transferencias de datos te permiten cargar datos rápidamente en tu instancia de Parallelstore y usar Cloud Storage como capa de respaldo duradera para tu instancia de Parallelstore.
Las importaciones y exportaciones de datos son incrementales, es decir, solo copian los archivos que no existan en el destino o que hayan cambiado desde que se transfirieron.
Para consultar las velocidades de transferencia previstas, consulte Rendimiento.
Permisos obligatorios
El usuario o la cuenta de servicio que se utilice para iniciar la transferencia debe tener los siguientes permisos:
parallelstore.instances.exportDatapara transferir datos de Parallelstore a Cloud Storage.parallelstore.instances.importDatapara transferir los datos a Cloud Storage.
Ambos permisos se conceden con el rol roles/parallelstore.admin. Puedes crear un rol personalizado para conceder permisos de forma independiente.
Además, la cuenta de servicio de Parallelstore requiere el siguiente permiso:
roles/storage.adminen el segmento de Cloud Storage.
Para conceder este permiso, ejecuta el siguiente 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
Tu PROJECT_NUMBER no es lo mismo que un ID de proyecto:
- Un ID de proyecto es una cadena única que puede ser una combinación de letras, números y guiones. Cuando creas un proyecto, debes especificar un ID. Por ejemplo,
example-project-123. - El número de proyecto es un identificador único generado automáticamente para tu proyecto que solo consta de números. Por ejemplo,
1234567890.
Para obtener el PROJECT_NUMBER de un ID de proyecto concreto, usa el comando gcloud projects describe:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
Importar datos a Parallelstore
Puedes importar datos de un segmento de Cloud Storage. El contenedor puede estar en el mismo proyecto o en otro. El contenedor puede estar en una zona o región diferente a la de tu instancia de Parallelstore, pero las transferencias entre regiones pueden ser más lentas que las transferencias dentro de la misma región.
gcloud
gcloud beta parallelstore instances import-data INSTANCE_ID \
--location=LOCATION \
--source-gcs-bucket-uri=gs://BUCKET_NAME \
--destination-parallelstore-path=PS_PATH
Donde:
- INSTANCE_ID es el nombre de tu instancia de Parallelstore.
--locationdebe ser una zona admitida.--source-gcs-bucket-uriespecifica el URI de un segmento de Cloud Storage o una ruta de acceso dentro de un segmento con el formatogs://<bucket_name>/<optional_path_inside_bucket>.--destination-parallelstore-pathespecifica la ruta del directorio raíz del sistema de archivos Parallelstore. Debe empezar por/. El valor predeterminado es/.
Los siguientes parámetros son opcionales:
--request-idte permite asignar un ID único a esta solicitud. Si vuelves a intentar enviar esta solicitud con el mismo ID, el servidor la ignorará si ya se ha completado. Debe ser un UUID válido que no esté formado por ceros. Por ejemplo:--request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d--asyncdevuelve una respuesta inmediatamente, sin esperar a que se complete la operación.
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"
}
}
Donde:
- PROJECT_ID es el ID de tu proyecto Google Cloud .
- LOCATION debe ser la zona admitida en la que reside tu instancia.
- INSTANCE_ID es el nombre de tu instancia de Parallelstore.
source-gcs-bucketcontiene una claveuricuyo valor especifica el URI de un segmento de Cloud Storage o una ruta de acceso dentro de un segmento con el formatogs://<bucket_name>/<optional_path_inside_bucket>.destination-parallelstorecontiene una clavepathcuyo valor especifica la ruta del directorio raíz al sistema de archivos Parallelstore. Debe empezar por/. El valor predeterminado es/.
Para usar tu propia cuenta de servicio en lugar del agente de servicio gestionado por Google, la solicitud admite un campo serviceAccount en el objeto JSON:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
Un comando cURL de ejemplo tiene el siguiente aspecto:
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 datos
Puede exportar datos de su instancia de Parallelstore a un segmento de Cloud Storage del mismo proyecto o de otro. El segmento puede estar en una zona o región distinta de tu instancia de Parallelstore, pero las transferencias entre regiones pueden ser más lentas que las transferencias dentro de la misma región.
gcloud
gcloud beta parallelstore instances export-data \
INSTANCE_ID \
--location=LOCATION \
--destination-gcs-bucket-uri="gs://BUCKET_NAME" \
--source-parallelstore-path="/"
Donde:
- INSTANCE_ID es el nombre de tu instancia de Parallelstore.
--locationdebe ser una zona admitida.--destination-gcs-bucket-uriespecifica el URI de un segmento de Cloud Storage o una ruta de acceso dentro de un segmento con el formatogs://<bucket_name>/<optional_path_inside_bucket>.--source-parallelstore-pathespecifica la ruta del directorio raíz del sistema de archivos Parallelstore. Debe empezar por/. El valor predeterminado es/.
Los siguientes parámetros son opcionales:
--request-idte permite asignar un ID único a esta solicitud. Si vuelves a intentar enviar esta solicitud con el mismo ID, el servidor la ignorará si ya se ha completado. Debe ser un UUID válido que no esté formado por ceros. Por ejemplo:--request-id=c288b55f-f2f0-45fe-a8ce-8afe43876d6d--asyncdevuelve una respuesta inmediatamente, sin esperar a que se complete la operación.
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/"
}
}
Donde:
- PROJECT_ID es el ID de tu proyecto Google Cloud .
- INSTANCE_ID es el nombre de tu instancia de Parallelstore.
- LOCATION debe ser la zona admitida en la que se encuentra tu instancia de ParallelStore.
--source-parallelstorecontiene una clavepathcuyo valor especifica la ruta del directorio raíz al sistema de archivos Parallelstore. Debe empezar por/. El valor predeterminado es/.--destination-gcs-bucketcontiene una claveuricuyo valor especifica el URI de un segmento de Cloud Storage o una ruta de acceso dentro de un segmento con el formatogs://<bucket_name>/<optional_path_inside_bucket>.
Para usar tu propia cuenta de servicio en lugar del agente de servicio gestionado por Google, la solicitud admite un campo serviceAccount en el objeto JSON:
"serviceAccount" : "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID"
Un comando cURL de ejemplo tiene el siguiente aspecto:
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/"}}'
Obtener operación
Para ver el estado de una operación de importación o exportación, necesitas el ID de la operación. El servicio devuelve este ID cuando haces una solicitud de importación o exportación, y usa el siguiente 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]
Un comando cURL de ejemplo tiene el siguiente aspecto:
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 operación
Para cancelar una operación de importación o exportación, necesitarás el ID de la operación. El servicio devuelve este ID cuando haces una solicitud de importación o exportación, y usa el siguiente 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]
Un comando cURL de ejemplo tiene el siguiente aspecto:
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