En esta página se explica cómo transferir datos entre dos sistemas de archivos POSIX. Entre los casos de uso habituales, se incluyen los siguientes:
- Transferencia a la nube y HPC híbrida: transfiere rápidamente grandes conjuntos de datos de entornos locales a la nube para procesarlos.
- Migración y sincronización con Filestore: migra o sincroniza datos de un sistema de archivos local a Filestore.
- Transferencia de archivos gestionada: transfiere datos de forma segura y fiable entre centros de datos o entre dos sistemas de archivos en la nube.
Directrices de rendimiento de las transferencias
Las siguientes directrices pueden ayudarle a maximizar el rendimiento durante las transferencias de un sistema de archivos a otro.
Despliegue de agentes
Por lo general, recomendamos usar tres agentes en cada uno de los grupos de agentes de origen y de destino. Monitoriza la transferencia y añade más agentes si es necesario. Cada agente necesita 4 vCPUs y 8 GiB de RAM.
Si vas a migrar a una instancia de Filestore, Filestore recomienda usar el tipo de instancia n2-standard-8
para cada agente. Especifica nconnect=2
cuando montes la instancia en una VM de Compute Engine. Consulta las directrices de rendimiento de Filestore para obtener más información sobre cómo optimizar y probar el rendimiento de las instancias.
Transferir un gran número de archivos pequeños
Para mejorar el rendimiento al transferir un gran número de archivos pequeños, te recomendamos que dividas los archivos en varios directorios y que evites tener un solo directorio con millones de archivos.
Antes de empezar
Antes de realizar las tareas que se describen en esta página, completa los pasos previos.
Crear grupos de agentes e instalar agentes
Para las transferencias de un sistema de archivos a otro, debes crear grupos de agentes y agentes para los sistemas de archivos de origen y de destino. Los agentes del grupo de agentes de origen deben instalarse en máquinas o VMs que tengan acceso al sistema de archivos de origen. Los agentes del grupo de agentes de destino deben instalarse en máquinas o VMs que tengan acceso al sistema de archivos de destino.
No incluyas información sensible, como información personal identificable (IPI) o datos de seguridad, en el prefijo del ID del agente o en el nombre del grupo de agentes. Los nombres de recursos pueden propagarse a los nombres de otros recursos de Google Cloud y pueden exponerse a sistemas internos de Google fuera de tu proyecto.
Crear un grupo de agentes de origen
Crea un grupo de agentes de origen con uno de los siguientes métodos:
CLI de gcloud
Crea un grupo de agentes de origen ejecutando el siguiente comando:
gcloud transfer agent-pools create SOURCE_AGENT_POOL
Sustituye SOURCE_AGENT_POOL por el nombre que quieras asignar al grupo de agentes de origen.
Google Cloud consola
En la Google Cloud consola, ve a la página Grupos de agentes.
Se muestra la página Grupos de agentes, con los grupos de agentes que ya tienes.
Haz clic en Crear otro grupo.
Introduce un nombre para el grupo.
Haz clic en Crear.
Instalar agentes para el grupo de agentes de origen
Instala agentes para el grupo de agentes de origen en una máquina o una VM que tenga acceso al sistema de archivos de origen:
CLI de gcloud
Instala agentes para el grupo de agentes de origen ejecutando el siguiente comando:
gcloud transfer agents install --pool=SOURCE_AGENT_POOL --count=NUMBER_OF_AGENTS \
--mount-directories=MOUNT_DIRECTORIES
Haz los cambios siguientes:
- SOURCE_AGENT_POOL con el nombre del grupo de agentes de origen.
- NUMBER_OF_AGENTS con el número de agentes que quieras instalar en el grupo de agentes de origen. Para determinar el número óptimo de agentes para tu entorno, consulta los requisitos y las prácticas recomendadas para agentes.
- MOUNT_DIRECTORIES con una lista de directorios separados por comas en el sistema de archivos de origen desde el que se copiarán los archivos. Si se omite esta marca, se monta todo el sistema de archivos, lo que podría suponer un riesgo de seguridad.
Google Cloud consola
En la Google Cloud consola, ve a la página Grupos de agentes.
Se muestra la página Grupos de agentes, con los grupos de agentes que ya tienes.
Haga clic en el nombre del grupo de agentes de origen que acaba de crear.
En la pestaña Agentes, haga clic en Instalar agente.
Sigue las instrucciones de la Google Cloud consola para instalar Docker e iniciar el agente.
Crear un grupo de agentes de destino e instalar agentes
Repite los pasos anteriores para crear un grupo de agentes de destino e instalar agentes.
Crear un segmento de Cloud Storage como intermediario
Para transferir datos de un sistema de archivos a otro, se necesita un segmento de Cloud Storage como intermediario.
Crea un segmento de clase Standard de Cloud Storage con los siguientes ajustes:
- Cifrado: puedes especificar una clave de cifrado gestionada por el cliente (CMEK). De lo contrario, se usaGoogle-owned and Google-managed encryption key .
- Gestión de versiones de objetos, Bloqueo de segmentos y bloqueos de objetos predeterminados: mantén estas funciones inhabilitadas.
Asigna permisos y roles mediante uno de los siguientes métodos:
- Asigna a la cuenta de servicio de Servicio de transferencia de Storage el rol Administrador de Storage (
roles/storage.admin
) del segmento. Usa
gcloud transfer authorize
para autorizar tu cuenta en todas las funciones de Storage Transfer Service. Este comando concede permisos de administrador de Storage en todo el proyecto:gcloud transfer authorize --add-missing
- Asigna a la cuenta de servicio de Servicio de transferencia de Storage el rol Administrador de Storage (
Crear una tarea de transferencia
CLI de gcloud
Para crear una transferencia del sistema de archivos de origen al de destino, ejecuta
gcloud transfer jobs create SOURCE_DIRECTORY DESTINATION_DIRECTORY \
--source-agent-pool=SOURCE_AGENT_POOL \
--destination-agent-pool=DESTINATION_AGENT_POOL \
--intermediate-storage-path= gs://STORAGE_BUCKET/FOLDER/
Sustituye las siguientes variables:
- SOURCE_DIRECTORY con la ruta del directorio de origen.
- DESTINATION_DIRECTORY con la ruta del directorio de destino.
- SOURCE_AGENT_POOL con el nombre del grupo de agentes de origen.
- DESTINATION_AGENT_POOL con el nombre del grupo de agentes de destino.
- STORAGE_BUCKET con el nombre del segmento de Cloud Storage.
- FOLDER con el nombre de la carpeta a la que quieras transferir los datos.
Cuando inicias una tarea de transferencia, el sistema primero calcula los datos de origen y de destino para determinar los datos de origen que son nuevos o que se han actualizado desde la transferencia anterior. Solo se transfieren los datos nuevos.
Bibliotecas de cliente
Go
Java
Node.js
Python
Gestionar segmentos intermediarios
Una vez que se completa una tarea de transferencia, el Servicio de transferencia de Storage guarda registros de transferencia que muestran los datos transferidos y los que no se han podido transferir en el segmento. Una vez completada la transferencia, se inician automáticamente tareas de limpieza para eliminar los datos intermedios. En algunos casos, las tareas de limpieza no eliminan todos los datos del contenedor. Para eliminar los datos que no se borran durante la limpieza, sigue las instrucciones que se indican a continuación para eliminar los datos manualmente o para definir una regla de ciclo de vida que los elimine automáticamente.
Limpieza manual
Elimina los datos del contenedor intermediario ejecutando los siguientes comandos en función del tipo de datos que quieras eliminar.
Para borrar los datos del bucket intermediario que no se hayan eliminado durante la limpieza, ejecuta el siguiente comando:
gcloud storage rm gs://STORAGE_BUCKET/PREFIX**
Para eliminar todos los datos, incluidos los registros de transferencia, especifica la raíz del contenedor mediante el comodín que coincide con todo (*).
gcloud storage rm gs://STORAGE_BUCKET/*
Para eliminar el bucket, ejecuta el siguiente comando:
gcloud storage rm gs://STORAGE_BUCKET
Sustituye las siguientes variables:
STORAGE_BUCKET con el nombre del segmento intermediario.
PREFIX con el nombre de la carpeta a la que se transfirieron los datos en el bucket intermediario.
Definir una regla de ciclo de vida
Para eliminar los datos que no se borran durante el ciclo de limpieza automática, define una regla de ciclo de vida para el segmento de Cloud Storage. Usa la condición age
para borrar los datos intermedios del segmento. Para ello, especifica un periodo más largo que la tarea de transferencia más larga que use el segmento como intermediario. Si la condición de antigüedad especificada es inferior al tiempo necesario para descargar el archivo del bucket intermediario al destino, la transferencia del archivo fallará.
De forma opcional, puede usar la condición matchesPrefix
para borrar los datos de la carpeta que haya especificado para el segmento intermedio. Para eliminar los registros de transferencia junto con los datos del contenedor, no es necesario que se cumpla la condición matchesPrefix
.
Conservar los metadatos de los archivos
Para conservar los metadatos de los archivos, incluidos los UID y GID numéricos, el MODE y los enlaces simbólicos, sigue estos pasos:
CLI de gcloud
Usa el campo --preserve-metadata
para especificar el comportamiento de conservación de esta transferencia. Las opciones que se aplican a las transferencias del sistema de archivos son: gid
, mode
, symlink
y uid
.
API REST
Especifica las opciones adecuadas en un objeto
metadataOptions
.
Para obtener más información, consulta el artículo sobre cómo conservar atributos POSIX opcionales.
Ejemplo de transferencia con la CLI gcloud
En este ejemplo, transferimos datos del directorio /tmp/datasource
de la VM1 al directorio /tmp/destination
de la VM2.
Configura la fuente de la transferencia.
Crea el grupo de agentes de origen:
gcloud transfer agent-pools create source_agent_pool
En VM1, instala los agentes de
source_agent_pool
ejecutando el siguiente comando:gcloud transfer agents install --pool=source_agent_pool \ --count=1 \ --mount-directories="/tmp/datasource"
Configura el destino de la transferencia.
Crea el grupo de agentes de destino:
gcloud transfer agent-pools create destination_agent_pool
En VM2, instala los agentes de
destination_agent_pool
ejecutando el siguiente comando:gcloud transfer agents install --pool=destination_agent_pool \ --count=3 \ --mount-directories="/tmp/destination"
Crea un segmento de Cloud Storage intermediario.
Crea un segmento llamado
my-intermediary-bucket
:gcloud storage buckets create gs://my-intermediary-bucket
Autoriza tu cuenta para todas las funciones del Servicio de transferencia de Storage ejecutando el siguiente comando:
gcloud transfer authorize --add-missing
Para crear una tarea de transferencia, ejecuta el siguiente comando:
gcloud transfer jobs create posix:///tmp/datasource posix:///tmp/destination \ --source-agent-pool=source_agent_pool \ --destination-agent-pool=destination_agent_pool \ --intermediate-storage-path=gs://my-intermediary-bucket
Siguientes pasos
- Consulta más información sobre cómo gestionar trabajos.