En esta página, se muestra cómo transferir datos entre dos sistemas de archivos POSIX. Los casos de uso comunes incluyen los siguientes:
- Aumento de actividad a la nube y HPC híbrido: Transfiere rápidamente grandes conjuntos de datos desde la ubicación local a la nube para su procesamiento.
- Migración y sincronización a Filestore: migra o sincroniza datos de un sistema de archivos local a Filestore.
- Transferencia de archivos administrados: Transfiere datos de forma segura y confiable entre centros de datos o entre dos sistemas de archivos en la nube.
Lineamientos de rendimiento de la transferencia
Los siguientes lineamientos pueden ayudar a maximizar el rendimiento durante las transferencias de un sistema de archivos a otro.
Implementación de agentes
En general, recomendamos usar tres agentes en cada uno de los grupos de agentes de origen y destino. Supervisa la transferencia y agrega más agentes si es necesario. Cada agente necesita 4 CPU virtuales y 8 GiB de RAM.
Si migras a una instancia de Filestore, Filestore recomienda usar el tipo de instancia n2-standard-8
para cada agente. Especifica nconnect=2
cuando actives la instancia en una VM de Compute Engine. Consulta los lineamientos de rendimiento de Filestore para obtener más información sobre cómo optimizar y probar el rendimiento de las instancias.
Transferencia de grandes cantidades de archivos pequeños
Para obtener un mejor rendimiento cuando transfieras una gran cantidad de archivos pequeños, te recomendamos que dividas los archivos en varios directorios y evites un solo directorio con millones de archivos.
Antes de comenzar
Antes de realizar las tareas descritas en esta página, completa los pasos previos.
Crea grupos de agentes e instala agentes
Para las transferencias de sistema de archivos a sistema de archivos, debes crear grupos de agentes y agentes para los sistemas de archivos de origen y de destino. Los agentes para el grupo de agentes de origen deben instalarse en máquinas o VM que tengan acceso al sistema de archivos de origen. Los agentes del grupo de agentes de destino deben instalarse en máquinas o VM que tengan acceso al sistema de archivos de destino.
No incluyas información sensible, como información de identificación personal (PII) ni datos de seguridad, en el prefijo del ID de agente o el nombre del grupo de agentes. Los nombres de los recursos se pueden propagar a los nombres de otros recursos de Google Cloud y pueden exponerse a sistemas internos de Google fuera de tu proyecto.
Crea un grupo de agentes de origen
Crea un grupo de agentes de origen mediante uno de los siguientes métodos:
CLI de gcloud
Para crear un grupo de agentes de origen, ejecuta el siguiente comando:
gcloud transfer agent-pools create SOURCE_AGENT_POOL
Reemplaza SOURCE_AGENT_POOL por el nombre que deseas asignar al grupo de agentes de origen.
Consola de Google Cloud
En la consola de Google Cloud, ve a la página Grupos de agentes.
Se mostrará la página Grupos de agentes, que enumera tus grupos de agentes existentes.
Haz clic en Crear otro grupo.
Ingresa un nombre para el grupo.
Haga clic en Crear.
Instala agentes para el grupo de agentes de origen
Instala los agentes para el grupo de agentes de origen en una máquina o VM que tenga acceso al sistema de archivos de origen:
CLI de gcloud
Para instalar los agentes del grupo de agentes de origen, ejecuta el siguiente comando:
gcloud transfer agents install --pool=SOURCE_AGENT_POOL --count=NUMBER_OF_AGENTS \
--mount-directories=MOUNT_DIRECTORIES
Reemplaza lo siguiente:
- SOURCE_AGENT_POOL por el nombre del grupo de agentes de origen
- NUMBER_OF_AGENTS por la cantidad de agentes que deseas instalar para el grupo de agentes de origen. Para determinar la cantidad óptima de agentes para tu entorno, consulta Requisitos y prácticas recomendadas para los agentes.
- MOUNT_DIRECTORIES con una lista separada por comas de directorios del sistema de archivos de origen desde el que se copia. Si se omite esta marca, se activa todo el sistema de archivos, lo que podría presentar un riesgo de seguridad.
Consola de Google Cloud
En la consola de Google Cloud, ve a la página Grupos de agentes.
Se mostrará la página Grupos de agentes, que enumera tus grupos de agentes existentes.
Haz clic en el nombre del grupo de agentes de origen que acabas de crear.
En la pestaña Agentes, haz clic en Instalar agente.
Sigue las instrucciones en la consola de Google Cloud para instalar Docker y, luego, iniciar el agente.
Crea un grupo de agentes de destino y, luego, instala agentes
Repite los pasos anteriores para crear un grupo de agentes de destino y, luego, instalar agentes.
Crea un bucket de Cloud Storage como intermediario
Las transferencias de sistema de archivos a sistema de archivos requieren un bucket de Cloud Storage como intermediario para la transferencia de datos.
Crea un bucket de clase Estándar de Cloud Storage con la siguiente configuración:
- Encriptación: Puedes especificar una clave de encriptación administrada por el cliente (CMEK). De lo contrario, se usa una clave de Google y administrada por Google.
- Control de versiones de los objetos, bloqueo del bucket y conservaciones de objetos predeterminadas: Mantén estas funciones inhabilitadas.
Otorga permisos y funciones mediante uno de los siguientes métodos:
- Otorga a la cuenta de servicio del Servicio de transferencia de almacenamiento el rol de administrador de almacenamiento (
roles/storage.admin
) para el bucket. Usa
gcloud transfer authorize
a fin de autorizar tu cuenta para todas las funciones del Servicio de transferencia de almacenamiento. Este comando otorga permisos de administrador de almacenamiento a nivel de proyecto:gcloud transfer authorize --add-missing
- Otorga a la cuenta de servicio del Servicio de transferencia de almacenamiento el rol de administrador de almacenamiento (
Crear un trabajo de transferencia
gcloud CLI
Para crear una transferencia desde el sistema de archivos de origen al sistema de archivos de destino, ejecuta lo siguiente:
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/
Reemplaza las siguientes variables:
- SOURCE_DIRECTORY por la ruta del directorio fuente
- DESTINATION_DIRECTORY por la ruta de acceso del directorio de destino
- SOURCE_AGENT_POOL por el nombre del grupo de agentes de origen
- DESTINATION_AGENT_POOL por el nombre del grupo de agentes de destino
- STORAGE_BUCKET con el nombre del bucket de Cloud Storage.
- FOLDER con el nombre de la carpeta a la que deseas que se transfieran los datos.
Cuando inicias un trabajo de transferencia, el sistema primero calcula los datos en la fuente y el destino para determinar los datos de origen nuevos o actualizados desde la transferencia anterior. Solo se transfieren los datos nuevos.
Bibliotecas cliente
Go
Java
Node.js
Python
Administra buckets intermediarios
Después de que se completa un trabajo de transferencia, el Servicio de transferencia de almacenamiento guarda registros de transferencia en el bucket que enumeran los datos transferidos y los que no se pudieron transferir. Después de la transferencia, las tareas de limpieza se inician automáticamente para borrar los datos intermedios. En algunos casos, las tareas de limpieza no borran todos los datos del bucket. Para borrar los datos que no se borran durante la limpieza, sigue las instrucciones que se indican a continuación para borrarlos de forma manual o establecer una regla de ciclo de vida para borrarlos automáticamente.
Limpieza manual
Ejecuta los siguientes comandos según el tipo de datos que quieras borrar para borrar los datos del bucket intermedio.
Para borrar los datos del bucket intermedio que no se borraron durante la limpieza, ejecuta el siguiente comando:
gcloud storage rm gs://STORAGE_BUCKET/PREFIX**
Para borrar todos los datos, incluidos los registros de transferencia, especifica la raíz del bucket con el comodín que coincide con todo (*).
gcloud storage rm gs://STORAGE_BUCKET/*
Para borrar el bucket, ejecuta el siguiente comando:
gcloud storage rm gs://STORAGE_BUCKET
Reemplaza las siguientes variables:
STORAGE_BUCKET por el nombre del bucket intermedio.
PREFIX con el nombre de la carpeta a la que se transfirieron los datos dentro del bucket intermedio.
Establece una regla de ciclo de vida
Para borrar los datos que no se borran con el ciclo de limpieza automática, configura una
regla de ciclo de vida para el bucket de Cloud Storage. Usa la
condición age
para borrar los datos intermedios del
bucket. Para ello, especifica un período más largo que el trabajo de transferencia más largo que
usa el bucket como intermediario. Si la condición de antigüedad especificada es más corta que el tiempo requerido para descargar el archivo del bucket intermediario al destino, la transferencia del archivo fallará.
De forma opcional, usa la condición matchesPrefix
para borrar los datos de la carpeta que especificaste para el bucket intermedio. Para borrar los registros de transferencia junto con los datos del bucket, no se requiere la condición matchesPrefix
.
Conserva los metadatos del archivo
Para conservar los metadatos de archivo, incluidos el UID numérico, el GID, el MODE y los vínculos simbólicos:
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 de sistema de archivos son gid
, mode
, symlink
, uid
.
API de REST
Especifica las opciones adecuadas en un objeto metadataOptions
.
Consulta Conserva atributos opcionales de POSIX para obtener más información.
Ejemplo de transferencia mediante la CLI de gcloud
En este ejemplo, transfieres datos del directorio /tmp/datasource
en la VM1 a /tmp/destination
en la VM2.
Configura el origen de la transferencia.
Crea el grupo de agentes de origen:
gcloud transfer agent-pools create source_agent_pool
En VM1, instala los agentes para
source_agent_pool
mediante la ejecución del 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 para
destination_agent_pool
mediante la ejecución del siguiente comando:gcloud transfer agents install --pool=destination_agent_pool \ --count=3 \ --mount-directories="/tmp/destination"
Crea un bucket intermediario de Cloud Storage.
Crear un bucket llamado
my-intermediary-bucket
:gcloud storage buckets create gs://my-intermediary-bucket
Autoriza tu cuenta para todas las funciones del Servicio de transferencia de almacenamiento ejecutando el siguiente comando:
gcloud transfer authorize --add-missing
Para crear un trabajo de transferencia, ejecuta lo siguiente:
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
¿Qué sigue?
- Obtén más información sobre la administración de trabajos.