En este documento se describen las opciones de configuración avanzadas para las transferencias de sistemas de archivos, entre las que se incluyen las siguientes:
- Copiar datos en volúmenes CIFS o SMB
- Usar credenciales de cuenta de servicio
- Ajustar la memoria máxima del agente
- Restringir el acceso al directorio de agentes
- Coordinar agentes con Kubernetes
- Usar un proxy de reenvío
- Copiar en un segmento con una política de retención
- Opciones para obtener más ancho de banda de red
Copiar datos en volúmenes CIFS o SMB
Los agentes de transferencia no se admiten directamente en servidores Windows. Sin embargo, puedes mover los datos almacenados en cualquier sistema de archivos compatible con POSIX montándolo en un servidor Linux o en una máquina virtual (VM) y, a continuación, ejecutando un agente desde el servidor Linux o la VM para copiar los datos en Cloud Storage.
Para mover datos de un volumen CIFS o SMB, sigue estos pasos:
Aprovisiona un servidor o una máquina virtual Linux.
Para ver los sistemas operativos compatibles, consulta los requisitos previos.
Ejecuta el siguiente comando en el servidor o la VM de Linux que hayas aprovisionado para montar el volumen:
sudo mount -t cifs -o username=WINDOWS-SHARE-USER,password=WINDOWS-SHARE-PASSWORD //IP-ADDRESS/SHARE-NAME /mnt
Haz los cambios siguientes:
IP-ADDRESS
: la dirección IP del servidor Microsoft Windows en el que se encuentra el volumen CIFS o SMB.SHARE-NAME
: el nombre del recurso compartido que vas a montar.WINDOWS-SHARE-USER
: un usuario autorizado para acceder al volumen de CIFS o SMB.WINDOWS-SHARE-PASSWORD
: la contraseña del usuario autorizado del volumen de CIFS o SMB.
Para confirmar que el volumen de CIFS está montado, ejecuta el siguiente comando:
findmnt -l
Confirma que el usuario que ejecutará el agente puede enumerar y copiar archivos en el volumen montado ejecutando los siguientes comandos:
sudo -u USERNAME cp /mnt/FILE1 /mnt/FILE2
Haz los cambios siguientes:
USERNAME
: el usuario que ejecutará el agente.FILE1
: el archivo del que se va a copiar.FILE2
: nombre del archivo al que se va a copiar.
Usar credenciales de cuenta de servicio
Puedes usar las credenciales de la cuenta de servicio para ejecutar el agente. Si usas credenciales de cuenta de servicio, podrás autenticar el agente de transferencia sin depender de una única cuenta de usuario. Para obtener más información sobre los tipos de cuentas, consulta Principales.
Crea una clave de cuenta de servicio. Para obtener más información, consulta el artículo sobre cómo crear y gestionar claves de cuentas de servicio.
Transfiere la ubicación de la clave de servicio al comando de creación del agente:
gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \ --mount-directories=MOUNT_DIRECTORIES \ --creds-file=RELATIVE_PATH_TO/KEY_FILE.JSON
gcloud transfer
monta automáticamente el archivo de credenciales, por lo que no es necesario especificarlo con la marca--mount-directories
.
Ajustar la memoria máxima del agente
De forma predeterminada, los agentes de transferencia usan un máximo de 8 GiB de memoria del sistema. Puedes ajustar la memoria máxima que usan los agentes para adaptarla a tu entorno. Para ello, pasa --max-physical-mem=MAXIMUM-MEMORY
y sustituye MAXIMUM-MEMORY
por un valor que se ajuste a tu entorno.
- Memoria mínima: 1 GiB
- Memoria mínima para admitir subidas de alto rendimiento: 6 GiB
Te recomendamos que uses el valor predeterminado de 8 GiB.
En la siguiente tabla se describen ejemplos de formatos aceptables para MAXIMUM-MEMORY
:
Valor de max-physical-mem |
Ajuste de memoria máximo |
---|---|
6g |
6 gigabytes |
6gb |
6 gigabytes |
6GiB |
6 gibibytes |
Restringir el acceso al directorio de agentes
Los usuarios que pueden crear trabajos de transferencia pueden recuperar datos de cualquier directorio del sistema de archivos al que pueda acceder el agente y descargar datos en él.
Si los agentes se ejecutan como root y se les da acceso a todo el sistema de archivos, un agente malintencionado puede tomar el control del host. Te recomendamos que restrinjas el acceso del agente solo a los directorios necesarios.
Para restringir el acceso de un agente a directorios específicos, sigue estos pasos:
gcloud
Para especificar los directorios a los que puede acceder el agente en un sistema de archivos, usa la marca --mount-directories
con gcloud transfer agents install
:
gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
--mount-directories=MOUNT_DIRECTORIES
Para especificar varios directorios, separa cada uno con una coma y sin espacios:
gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
--mount-directories=MOUNT_DIRECTORY_1,MOUNT_DIRECTORY_2
Si especificas un archivo de credenciales con la marca --creds-file
, gcloud transfer
montará automáticamente el archivo de credenciales. No se montan otros archivos del mismo directorio que el archivo de credenciales.
docker run
Para especificar los directorios a los que puede acceder el agente mientras realiza una transferencia, pasa
-v HOST_DIRECTORY:CONTAINER_DIRECTORY
al agente, donde:
HOST_DIRECTORY
es el directorio de la máquina host desde el que quieres copiar.CONTAINER_DIRECTORY
es el directorio asignado en el contenedor del agente.
HOST_DIRECTORY
y CONTAINER_DIRECTORY
deben ser iguales para que el agente pueda localizar los archivos que se van a copiar.
Al usar esta opción:
- No especifiques
--enable-mount-directory
. - No incluyas
/transfer_root
al principio de la ruta del archivo.
La opción --enable-mount-directory
monta todo el sistema de archivos en el directorio /transfer_root
del contenedor. Si se especifica --enable-mount-directory
, no se aplican restricciones de directorio.
Puedes usar más de una marca -v
para especificar directorios adicionales desde los que copiar. Por ejemplo:
sudo docker run --ulimit memlock=64000000 -d -rm --volumes-from gcloud-config \ -v /usr/local/research:/usr/local/research \ -v /usr/local/billing:/usr/local/billing \ -v /tmp:/tmp \ gcr.io/cloud-ingest/tsop-agent:latest \ --project-id=PROJECT_ID \ --hostname=$(hostname) \ --agent-id-prefix=ID_PREFIX
Si usas una cuenta de servicio, asegúrate de montar el archivo de credenciales en el contenedor y de transferir el --creds-file=CREDENTIAL_FILE
. Por ejemplo:
sudo docker run --ulimit memlock=64000000 -d -rm \ -v HOST_DIRECTORY:CONTAINER_DIRECTORY \ -v /tmp:/tmp \ -v FULL_CREDENTIAL_FILE_PATH:FULL_CREDENTIAL_FILE_PATH \ gcr.io/cloud-ingest/tsop-agent:latest \ --project-id=PROJECT_ID \ --creds-file=CREDENTIAL_FILE \ --hostname=$(hostname) \ --agent-id-prefix=ID_PREFIX
Haz los cambios siguientes:
HOST_DIRECTORY
: el directorio de la máquina host del que quieres copiar.CONTAINER_DIRECTORY
: el directorio asignado en el contenedor del agente.FULL_CREDENTIAL_FILE_PATH
: la ruta completa al archivo de credenciales.PROJECT_ID
: el ID de proyecto en el que se crean los recursos de transferencia y se factura.CREDENTIAL_FILE
: un archivo de credenciales de cuenta de servicio en formato JSON. Para obtener más información sobre cómo generar un archivo de credenciales de cuenta de servicio, consulta el artículo sobre cómo crear y gestionar claves de cuentas de servicio.ID_PREFIX
: el prefijo que se añade al ID de agente para identificar al agente o su máquina en la Google Cloud consola. Cuando se usa un prefijo, el ID de agente tiene el formatoprefix + hostname + Docker container ID
.
Coordinar agentes con Kubernetes
Docker es un entorno de ejecución de contenedores compatible con Kubernetes. Puedes usar Kubernetes para orquestar el inicio y el cierre de muchos agentes simultáneamente. Desde la perspectiva de Kubernetes, el contenedor del agente se considera una aplicación sin estado, por lo que puedes seguir las instrucciones de Kubernetes para desplegar una aplicación sin estado.
Usar puntos finales de API privados en Cloud Interconnect
Para usar los endpoints de API privados en Cloud Interconnect, sigue estos pasos:
Inicia sesión en el host local en el que quieras ejecutar el agente.
Configura Acceso privado de Google. Para obtener más información, consulta el artículo Configurar Acceso privado de Google para hosts on-premise.
Confirma que puedes conectarte a las APIs de Cloud Storage:
- En el caso de las APIs de Cloud Storage, ejecuta el siguiente comando desde la misma máquina que el agente de transferencia para probar el movimiento de un archivo a tu segmento de Cloud Storage:
gcloud storage cp test.txt gs://MY-BUCKET
dondeMY-BUCKET
es el nombre de tu segmento de Cloud Storage. Si la transferencia funciona, la prueba se habrá realizado correctamente.
- En el caso de las APIs de Cloud Storage, ejecuta el siguiente comando desde la misma máquina que el agente de transferencia para probar el movimiento de un archivo a tu segmento de Cloud Storage:
Usar un proxy de reenvío
Los agentes de transferencia admiten el uso de un proxy de reenvío en tu red pasando la variable de entorno HTTPS_PROXY
.
Por ejemplo:
sudo docker run -d --ulimit memlock=64000000 --rm \ --volumes-from gcloud-config \ -v /usr/local/research:/usr/local/research \ --env HTTPS_PROXY=PROXY\ gcr.io/cloud-ingest/tsop-agent:latest \ --enable-mount-directory \ --project-id=PROJECT_ID \ --hostname=$(hostname) \ --agent-id-prefix=ID_PREFIX
Haz los cambios siguientes:
PROXY
: la URL HTTP y el puerto del servidor proxy. Asegúrate de especificar la URL HTTP, no la URL HTTPS, para evitar que las solicitudes se envuelvan dos veces en el cifrado TLS. Las solicitudes envueltas dos veces impiden que el servidor proxy envíe solicitudes salientes válidas.PROJECT_ID
: el ID de proyecto en el que se crean los recursos de transferencia y se factura.ID_PREFIX
: el prefijo que se añade al ID de agente para identificar al agente o su máquina en la Google Cloud consola. Cuando se usa un prefijo, el ID de agente tiene el formatoprefix + hostname + Docker container ID
.
Copiar en un segmento con una política de retención
Para transferir datos a un contenedor con una política de conservación, te recomendamos que sigas este proceso:
Crea un segmento de Cloud Storage en la misma región que el segmento final. Asegúrate de que este contenedor temporal no tenga una política de retención.
Para obtener más información sobre las regiones, consulta Ubicaciones de segmentos.
Usa el Servicio de transferencia de Storage para transferir tus datos al segmento temporal que has creado sin una política de conservación.
Realiza una transferencia entre segmentos para transferir los datos al segmento con una política de conservación.
Elimina el segmento de Cloud Storage que has creado para almacenar tus datos temporalmente.
Opciones para obtener más ancho de banda de red
Hay varias opciones para obtener más ancho de banda de red para las transferencias del sistema de archivos. Aumentar el ancho de banda de tu red te ayudará a reducir los tiempos de transferencia, sobre todo en el caso de conjuntos de datos de gran tamaño.
Emparejamiento con Google: el emparejamiento es el proceso por el que te interconectas directamente con Google para admitir el intercambio de tráfico. Tenemos ubicaciones de interconexión directa en todo el mundo. Para obtener más información sobre las ventajas y nuestras políticas, consulta Peering.
Cloud Interconnect: Cloud Interconnect es similar al peering, pero usarás una interconexión para conectarte a Google. Hay dos tipos de interconexiones:
Interconexión dedicada: te conectas directamente desde tu centro de datos a un centro de datos de Google a través de una conexión privada y dedicada. Para obtener más información, consulta la información general sobre la interconexión dedicada.
Partner Interconnect: trabajas con un proveedor de servicios para establecer una conexión con un centro de datos de Google a través de la red de un partner de servicios. Para obtener más información, consulta la información general de Partner Interconnect.
Obtener ancho de banda de tu proveedor de Internet: tu proveedor de Internet puede ofrecerte más ancho de banda para tus necesidades. Te recomendamos que te pongas en contacto con ellos para preguntarles qué opciones tienen disponibles.