Una duplicación de Cloud Storage proporciona un servicio de sincronización automatizado y controlado por eventos que duplica de forma continua los archivos de un bucket de Cloud Storage en un directorio de Managed Lustre. La duplicación solo se admite en una dirección, de Cloud Storage a Managed Lustre.
Los mirrors de Cloud Storage solo están disponibles si se solicitan. Para indicar tu interés, envía el formulario de solicitud de duplicación de Cloud Storage.
Para obtener asistencia con las duplicaciones activas de Cloud Storage, comunícate con google-cloud-managed-lustre-support@google.com.
Duplicaciones de Cloud Storage en comparación con las transferencias de datos a pedido
Managed Lustre admite dos mecanismos para mover datos con Cloud Storage:
| Función | Duplicados de Cloud Storage | Transferencias de datos a pedido |
|---|---|---|
| Dirección | De Cloud Storage a Managed Lustre | De Cloud Storage a Managed Lustre De Managed Lustre a Cloud Storage |
| Activador | Se basa en eventos y se sincroniza automáticamente cuando se crea, actualiza y borra un objeto. | Manual |
| Espacio de nombres jerárquico | No compatible | Se admite y se recomienda para acelerar las velocidades de transferencia |
| Buckets de Rapid Storage | No compatible | No compatible |
Para obtener información sobre las transferencias a pedido, consulta Transfiere datos hacia o desde Cloud Storage.
Cómo funciona una duplicación de Cloud Storage
Una duplicación de Cloud Storage ejecuta transferencias controladas por eventos entre una fuente de Cloud Storage y un directorio de Managed Lustre de destino. La fuente de Cloud Storage puede ser un bucket o un prefijo de objeto específico dentro de un bucket. La duplicación se realiza en dos fases: una sincronización inicial cuando creas la duplicación, seguida de una replicación continua de los cambios posteriores.
Sincronización inicial
Cuando creas una duplicación de Cloud Storage, el servicio realiza una sincronización inicial para copiar todos los objetos existentes de la ruta de acceso de origen de Cloud Storage al directorio de destino de Managed Lustre.
Replicación continua basada en eventos
Después de la sincronización inicial, el servicio de duplicación escucha las notificaciones del bucket y replica los cambios.
La mayoría de los objetos se pueden replicar en cuestión de minutos. Cuando se crea o modifica un objeto, se copia todo el archivo.
Cuando creas un objeto nuevo en Cloud Storage, se crea automáticamente el archivo correspondiente en Managed Lustre.
Si modificas un objeto existente en Cloud Storage, se reemplaza el archivo en Managed Lustre y se descartan las modificaciones locales realizadas en el sistema de archivos.
Los cambios en los atributos de metadatos personalizados de POSIX en los objetos de Cloud Storage, como UID, GID, modo o
mtime, se actualizan en el archivo de Managed Lustre correspondiente.Si borras un objeto en Cloud Storage, se borra el archivo duplicado en Managed Lustre de forma predeterminada. Puedes cambiar este comportamiento con la marca
--deleted-files-retained. Los directorios superiores vacíos permanecen en el sistema de archivos después de que se borra el último archivo que se encuentra debajo de ellos.Las modificaciones que se realicen en Managed Lustre en los archivos duplicados no se copian de vuelta al bucket de origen. Si el objeto de origen se actualiza más adelante, el archivo de Managed Lustre se reemplaza por el contenido del objeto de origen y se descartan las modificaciones locales.
Borrar un archivo duplicado en Managed Lustre no borra el objeto correspondiente en Cloud Storage.
Velocidades de transferencia
Las siguientes velocidades de transferencia se aplican a las duplicaciones de Cloud Storage cuyos buckets y instancias se encuentran en la misma región de Google Cloud :
La sincronización inicial copia los datos existentes a una velocidad de hasta 100 GBps para archivos de más de 32 MB y hasta 10,000 objetos por segundo para archivos pequeños.
La replicación continua sincroniza automáticamente los cambios en curso, y el rendimiento de la transferencia varía según el tamaño del archivo:
- Los archivos grandes de 10 MB o más se transfieren con una capacidad de procesamiento máxima de hasta 3.5 GBps.
- Los archivos pequeños de 4 KB o menos se transfieren a una velocidad de hasta 4,900 objetos por segundo.
Si los datos se escriben en Cloud Storage más rápido de lo que la duplicación puede copiarlos, los eventos se ponen en cola en un trabajo pendiente, lo que aumenta el tiempo que tardan en aparecer los cambios en Lustre administrado. La réplica se pone al día automáticamente una vez que disminuye la tasa de cambio.
La velocidad de transferencia está limitada por lo siguiente:
La capacidad de procesamiento máxima de una instancia, que es la capacidad de la instancia multiplicada por el nivel de rendimiento.
Ancho de banda de salida de Cloud Storage, que está limitado a 200 Gbps o 25 GBps por región y por proyecto. Para obtener un ancho de banda de salida más alto, solicita un aumento de cuota.
Latencia de red para transferencias entre regiones. Coloca el bucket de origen y la instancia en la misma región para obtener un rendimiento óptimo.
Precios
Un duplicado de Cloud Storage genera cargos estándar de Cloud Storage, que se facturan al proyecto que contiene el bucket de origen:
- La sincronización inicial realiza operaciones de lista de clase A y operaciones de lectura de clase B en el bucket de origen, y la replicación continua realiza operaciones de lectura de clase B, lo que genera cargos operativos de Cloud Storage.
- La duplicación de datos de un bucket de origen en una región diferente de la instancia de Managed Lustre genera cargos por transferencia de datos entre regiones.
Antes de comenzar
Para crear una duplicación de Cloud Storage, se requiere lo siguiente:
- Una instancia de Managed Lustre en estado
ACTIVE. - Un bucket de Cloud Storage existente para usar como fuente de duplicación. No se admiten los buckets con el espacio de nombres jerárquico habilitado, los buckets de Rapid Storage ni los buckets con Pagos del solicitante habilitados.
Permisos, roles y recursos obligatorios
Se requieren los siguientes permisos, roles y recursos de IAM para crear y administrar duplicaciones de Cloud Storage.
Permisos de usuario
Para crear y administrar duplicaciones, tu cuenta de usuario o de servicio necesita el rol de administrador de Managed Lustre, roles/lustre.admin.
Si usas un rol personalizado, este requiere los siguientes permisos:
lustre.mirrors.createpara crear una duplicación.lustre.mirrors.getpara describir un espejo.lustre.mirrors.listpara enumerar las duplicaciones.lustre.mirrors.updatepara actualizar una duplicaciónlustre.mirrors.deletepara borrar una duplicación
Inicialización del agente de servicio de Cloud Storage
El agente de servicio de Cloud Storage debe existir en tu proyecto para que pueda publicar eventos de notificación de bucket:
gcloud storage service-agent --project=PROJECT_ID
Reemplaza PROJECT_ID por el ID del proyecto de Google Cloud .
Permisos del agente de servicio de Managed Lustre
El agente de servicio de Managed Lustre administrado por Google requiere acceso a tu bucket de Cloud Storage de origen. Para obtener instrucciones sobre cómo encontrar o inicializar la identidad de tu agente de servicio, consulta Agente de servicio de Managed Lustre.
El agente de servicio requiere los siguientes permisos en el bucket de Cloud Storage de origen:
storage.buckets.getstorage.buckets.updatestorage.objects.getstorage.objects.list
Crea un rol personalizado que contenga estos permisos:
gcloud iam roles create lustreMirrorUser \
--project=PROJECT_ID \
--title="Lustre mirror user" \
--permissions=storage.buckets.get,storage.buckets.update,storage.objects.get,storage.objects.list
Otorga el rol personalizado al agente de servicio de Managed Lustre en el bucket de origen:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-lustre.iam.gserviceaccount.com" \
--role="projects/PROJECT_ID/roles/lustreMirrorUser"
Reemplaza lo siguiente:
- PROJECT_ID: Es el ID del proyecto de Google Cloud .
- BUCKET_NAME: Es el nombre de tu bucket de Cloud Storage de origen.
- PROJECT_NUMBER: Es el número del proyecto de Google Cloud .
Crea una duplicación de Cloud Storage
Puedes crear una duplicación de Cloud Storage por instancia de Managed Lustre.
No se puede crear una duplicación de Cloud Storage mientras se realiza una operación de importación o exportación en la instancia.
gcloud
Ejecuta el comando mirrors create:
gcloud lustre instances mirrors create MIRROR_NAME \
--instance=INSTANCE_ID \
--location=LOCATION \
--direction=from-cloud-storage \
--gcs-path-uri="gs://BUCKET_NAME/PREFIX/" \
--lustre-path="/LUSTRE_DIRECTORY"
Aquí:
- MIRROR_NAME es el nombre de este recurso de duplicación. Debe tener entre 1 y 63 caracteres, contener solo letras minúsculas, números y guiones, comenzar con una letra y terminar con una letra o un número.
- INSTANCE_ID es el ID de tu instancia de Managed Lustre.
- LOCATION es la zona de tu instancia. Por ejemplo,
us-central1-a. --directionespecifica la dirección de duplicación. Debe serfrom-cloud-storage.--gcs-path-uries el bucket de Cloud Storage de origen y el prefijo de objeto opcional. Si especificas un prefijo de objeto, la ruta de acceso debe terminar con una barra diagonal:gs://<var>BUCKET_NAME</var>/<var>PREFIX</var>/.--lustre-pathes el directorio de destino en el sistema de archivos de Managed Lustre. Debe ser una ruta de acceso absoluta que comience con/, por ejemplo,/datao/data/subdir. La configuración predeterminada es el directorio raíz,/. Si el directorio especificado no existe, se creará.
Están disponibles los siguientes parámetros opcionales:
--deleted-files-retainedo--no-deleted-files-retained: Controla si los archivos borrados en Cloud Storage se conservan en Managed Lustre. El valor predeterminado es--no-deleted-files-retained.--description=DESCRIPTION_TEXT: Es una descripción opcional para la duplicación.
REST
Envía una solicitud POST al método instances.mirrors.create:
POST https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/mirrors?mirrorId=MIRROR_NAME
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
{
"gcsPath": {
"uri": "gs://BUCKET_NAME/PREFIX/"
},
"lustrePath": {
"path": "/LUSTRE_DIRECTORY"
},
"direction": "FROM_CLOUD_STORAGE"
}
Aquí:
- PROJECT_ID es el ID del proyecto de Google Cloud .
- LOCATION es la zona de tu instancia de Managed Lustre. Por ejemplo,
us-central1-a - INSTANCE_ID es el ID de la instancia.
- MIRROR_NAME es el nombre de este recurso de duplicación. Debe tener entre 1 y 63 caracteres, contener solo letras minúsculas, números y guiones, comenzar con una letra y terminar con una letra o un número.
gcsPathcontiene un campouricon el bucket de Cloud Storage de origen y el prefijo de objeto opcional. Si especificas un prefijo de objeto, la ruta de acceso debe terminar con una barra diagonal:gs://<var>BUCKET_NAME</var>/<var>PREFIX</var>/.lustrePathes el directorio de destino en el sistema de archivos de Managed Lustre. Debe ser una ruta de acceso absoluta que comience con/, por ejemplo,/datao/data/subdir. La configuración predeterminada es el directorio raíz,/. Si el directorio especificado no existe, se creará.directionespecifica la dirección de duplicación. Debe serFROM_CLOUD_STORAGE.
El cuerpo de la solicitud también admite los siguientes campos opcionales:
deletedFilesRetained: Se establece entruepara conservar los archivos en Managed Lustre después de que se borren los archivos correspondientes de Cloud Storage. El valor predeterminado esfalse.description: Es una descripción opcional para la duplicación.
Atributos de archivo
Cuando se copia un archivo de un bucket de Cloud Storage a una instancia de Managed Lustre, los atributos del archivo en la instancia de Managed Lustre se configuran de una de las siguientes dos maneras:
- Si el objeto de Cloud Storage tiene metadatos personalizados, como se describe para
exportar datos,
sucede lo siguiente:
- El UID, el GID, el modo y el
mtimedel archivo se configuran según los metadatos personalizados del objeto. - El
atimedel archivo se establece en el mismo valor que elmtime.
- El UID, el GID, el modo y el
- Si el objeto de Cloud Storage no tiene los metadatos personalizados, ocurrirá lo siguiente:
- El UID y el GID del archivo se establecen en 0 (
root). - El modo del archivo se establece en
rwxr-xr-x(755). - Los valores
atimeymtimedel archivo se establecen en la hora de creación del objeto de Cloud Storage.
- El UID y el GID del archivo se establecen en 0 (
En cualquier caso, haz lo siguiente:
- La
ctimede un archivo se establece en la hora en que se escribió el archivo en la instancia. - Los valores de
atime,ctimeymtimede un directorio se establecen en la hora en que se creó el directorio en la instancia.
Administra duplicados de Cloud Storage
Puedes enumerar, describir, actualizar y borrar duplicados de Cloud Storage con la herramienta de Google Cloud CLI o la API de REST. Para cambiar la ruta de acceso de origen o de destino de una duplicación existente, debes borrar la duplicación existente y crear una nueva.
Enumera una réplica
Para ver una duplicación configurada en una instancia, haz lo siguiente:
gcloud
gcloud lustre instances mirrors list \
--instance=INSTANCE_ID \
--location=LOCATION
REST
Envía una solicitud GET al método instances.mirrors.list:
GET https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/mirrors
Authorization: Bearer YOUR_ACCESS_TOKEN
Describe un espejo
Para ver la configuración y el estado operativo de una duplicación, haz lo siguiente:
gcloud
gcloud lustre instances mirrors describe MIRROR_NAME \
--instance=INSTANCE_ID \
--location=LOCATION
REST
Envía una solicitud GET al método instances.mirrors.get:
GET https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/mirrors/MIRROR_NAME
Authorization: Bearer YOUR_ACCESS_TOKEN
Estados de replicación
El campo state que devuelven los comandos list y describe informa dónde
se encuentra la duplicación en su ciclo de vida:
| Estado | Descripción |
|---|---|
CREATING |
Se está creando el recurso de duplicación. |
INITIAL_SYNC |
La sincronización inicial copia los objetos existentes de Cloud Storage. |
ACTIVE |
La duplicación sincroniza los cambios a medida que se producen. |
DELETING |
Se está borrando la duplicación. |
Actualiza una duplicación
Puedes actualizar la descripción y las etiquetas de una duplicación, y si se deben conservar los archivos borrados.
No se pueden cambiar las rutas de acceso de Cloud Storage y Managed Lustre. Para apuntar una duplicación a una ruta diferente, bórrala y crea una nueva.
Cuando se actualiza una duplicación, no se vuelve a ejecutar la sincronización inicial.
gcloud
gcloud lustre instances mirrors update MIRROR_NAME \
--instance=INSTANCE_ID \
--location=LOCATION \
--description="DESCRIPTION_TEXT"
REST
Envía una solicitud PATCH al método instances.mirrors.patch con un
parámetro de consulta updateMask:
PATCH https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/mirrors/MIRROR_NAME?updateMask=description
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/json
{
"description": "DESCRIPTION_TEXT"
}
Borra una duplicación
Para borrar una duplicación, haz lo siguiente:
gcloud
gcloud lustre instances mirrors delete MIRROR_NAME \
--instance=INSTANCE_ID \
--location=LOCATION
REST
Envía una solicitud DELETE al método instances.mirrors.delete:
DELETE https://lustre.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/mirrors/MIRROR_NAME
Authorization: Bearer YOUR_ACCESS_TOKEN
Si borras una duplicación, se detendrá la sincronización futura entre Cloud Storage y Managed Lustre. Los archivos que ya se copiaron en Managed Lustre no se borran cuando se quita la réplica.
Se cancelan las transferencias de archivos que están en curso cuando se borra una duplicación.
Las transferencias incompletas pueden dejar archivos temporales con el formato de nombre
FILENAME.cloud_transfer.UUID.NUMBER.tmp en el directorio de duplicación después de que
se borre la duplicación. Puedes borrar estos archivos.
Ver registros
Los registros de duplicación identifican los archivos individuales que no se pudieron sincronizar.
Los registros se enrutan a Cloud Logging en el recurso lustre.googleapis.com/Instance, con el nombre de registro mirror.
Para ver los registros de las operaciones de duplicación, haz lo siguiente:
- Ve al Explorador de registros.
Ingresa la siguiente consulta:
resource.type="lustre.googleapis.com/Instance" logName="projects/PROJECT_ID/logs/lustre.googleapis.com%2Fmirror" resource.labels.instance_id="INSTANCE_ID"
Soluciona problemas
Errores de PERMISSION_DENIED en el bucket de origen
Si la creación de la duplicación falla con un error PERMISSION_DENIED, los archivos no se
sincronizan o hay registros que muestran errores "PERMISSION_DENIED":
Verifica que se haya inicializado el agente de servicio de Cloud Storage:
gcloud storage service-agent --project=PROJECT_IDConfirma que se hayan otorgado los permisos necesarios al agente de servicio de Managed Lustre en el bucket de origen. Consulta Otorga permisos de agente de servicio para obtener más detalles.
Los cambios en Cloud Storage no se replican en Managed Lustre
Si el estado de duplicación es ACTIVE, pero los objetos nuevos o modificados en Cloud Storage
no aparecen en Managed Lustre, confirma que la configuración de notificaciones del bucket
exista en tu bucket de origen.
Enumera las notificaciones del bucket:
gcloud storage buckets notifications list --bucket=BUCKET_NAMESi el resultado está vacío, debes borrar la duplicación existente y crear una nueva:
gcloud lustre instances mirrors delete MIRROR_NAME \ --instance=INSTANCE_ID \ --location=LOCATIONUna vez que finalice la eliminación, crea una duplicación nueva.
Errores de conflictos de nombres
Si notas que faltan archivos en Managed Lustre después de agregarlos a Cloud Storage, revisa Cloud Logging para ver si hay errores de conflicto de nombres:
- Si un objeto creado en Cloud Storage tiene el mismo nombre que un directorio existente
en Managed Lustre, la transferencia falla con un
error
file existsy el directorio existente no se reemplaza. La transferencia fallida deja un archivo temporal con el formato de nombreFILENAME.cloud_transfer.UUID.NUMBER.tmpen el directorio superior. - Si un objeto creado en Cloud Storage contiene un prefijo de ruta de acceso que coincide
con un archivo normal existente en Managed Lustre, la transferencia falla
con un error
not a directoryy el archivo existente no se reemplaza. Por ejemplo, simodelses un archivo existente en Managed Lustre, la transferencia de un objeto llamadomodels/weights.bindesde Cloud Storage falla porque no se puede crear el directoriomodels/.
Para resolver estos conflictos, cambia el nombre o borra el directorio o archivo en conflicto
en Managed Lustre, quita los archivos .tmp restantes y
vuelve a subir el objeto en Cloud Storage para activar la sincronización.
ABORTED: unable to queue the operation
Si recibes un error ABORTED: unable to queue the operation cuando creas una duplicación o inicias un trabajo de transferencia a pedido, haz lo siguiente:
- Asegúrate de que no se estén ejecutando operaciones
import-dataoexport-dataexistentes en la instancia antes de crear una duplicación. - Espera a que se completen la creación de la duplicación y la sincronización inicial antes de intentar otras operaciones de datos administrativas en la instancia.
FILESYSTEM_NO_SPACE_ON_DEVICE
Si la duplicación se detiene y los registros indican errores de espacio, es posible que el sistema de archivos de Managed Lustre no tenga inodos ni capacidad de disco. Puedes borrar archivos innecesarios para liberar espacio o aumentar la capacidad de almacenamiento para expandir tu sistema de archivos.