En este documento, se describen las opciones de configuración avanzadas para las transferencias del sistema de archivos, incluidas las siguientes:
- Copia de datos en los volúmenes CIFS o SMB
- Uso de las credenciales de cuenta de servicio
- Ajuste de la cantidad máxima de memoria que usan los agentes
- Restricción del acceso a directorios del agente
- Coordinación de agentes con Kubernetes
- Usa un proxy de reenvío
- Copia en un bucket con una política de retención
- Opciones para obtener más ancho de banda de red
Copia datos en los volúmenes CIFS o SMB
Los agentes de transferencia no son compatibles directamente con los servidores de Windows. Sin embargo, puedes mover los datos almacenados en cualquier sistema de archivos compatible con POSIX si lo activas en un servidor de Linux o en una máquina virtual (VM) y, luego, ejecutas un agente desde el servidor de Linux o la VM para copiar los datos en Cloud Storage.
Para mover datos desde un volumen CIFS o SMB, haz lo siguiente:
Aprovisiona un servidor de Linux o una VM.
Para obtener información sobre los sistemas operativos compatibles, consulta Requisitos previos.
Ejecuta el siguiente comando en el servidor de Linux o la VM que aprovisionaste para activar el volumen:
sudo mount -t cifs -o username=WINDOWS-SHARE-USER,password=WINDOWS-SHARE-PASSWORD //IP-ADDRESS/SHARE-NAME /mnt
Reemplaza lo siguiente:
IP-ADDRESS
: Es la dirección IP del servidor de Microsoft Windows en el que se encuentra el volumen CIFS o SMB.SHARE-NAME
: Es el nombre del recurso compartido que activas.WINDOWS-SHARE-USER
: Es el usuario autorizado que puede acceder al volumen CIFS o SMB.WINDOWS-SHARE-PASSWORD
: Es la contraseña del usuario autorizado del volumen CIFS o SMB.
Para confirmar que el volumen CIFS se active, ejecuta el siguiente comando:
findmnt -l
Confirma que el usuario que ejecutará el agente pueda enumerar y copiar los archivos en el volumen activado mediante la ejecución de los siguientes comandos:
sudo -u USERNAME cp /mnt/FILE1 /mnt/FILE2
Reemplaza lo siguiente:
USERNAME
: Es el usuario que ejecutará el agente.FILE1
: Es el archivo del que se debe copiar.FILE2
: Es el nombre del archivo al que se copiará.
Usa las credenciales de cuenta de servicio
Puedes usar las credenciales de cuenta de servicio para ejecutar el agente. Usar las credenciales de cuenta de servicio te proporciona una forma de autenticar el agente de transferencia sin depender de una sola cuenta de usuario. Para obtener más información sobre los tipos de cuenta, consulta Principales.
Crea una clave de cuenta de servicio. Para obtener más información, consulta Crea y administra claves de cuentas de servicio.
Pasa 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
activa automáticamente el archivo de credenciales y no es necesario especificarlo con la marca--mount-directories
.
Ajusta la cantidad máxima de memoria que usan los agentes
De forma predeterminada, los agentes de transferencia usan un máximo de 8 GiB de memoria del sistema. Puedes ajustar la cantidad máxima de memoria que usan los agentes a fin de que se ajuste a tu entorno. Para ello, pasa --max-physical-mem=MAXIMUM-MEMORY
y reemplazasMAXIMUM-MEMORY
por un valor que se ajuste al entorno.
- Memoria mínima: 1 GiB
- Memoria mínima para admitir cargas de alto rendimiento: 6 GiB
Recomendamos que el valor predeterminado sea de 8 GiB.
En la siguiente tabla, se describen ejemplos de formatos aceptables para MAXIMUM-MEMORY
:
Valor max-physical-mem |
Configuración del uso máximo de memoria |
---|---|
6g |
6 gigabytes |
6gb |
6 gigabytes |
6GiB |
6 gibibytes |
Restringe el acceso a directorios del agente
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 descargarlos en él.
Si los agentes se ejecutan como raíz y se les otorga acceso a todo el sistema de archivos, una persona o entidad maliciosa podría hacerse cargo 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, haz lo siguiente:
gcloud
Para especificar directorios a los que el agente puede acceder 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
activa automáticamente el archivo de credenciales. No se activan otros archivos del mismo directorio que el archivo de credenciales.
docker run
Para especificar directorios a los que el agente puede acceder mientras realiza una transferencia, pasa -v HOST_DIRECTORY:CONTAINER_DIRECTORY
al agente. En el ejemplo anterior, se ilustra lo siguiente:
HOST_DIRECTORY
es el directorio en la máquina anfitrión desde el que deseas copiar.CONTAINER_DIRECTORY
es el directorio asignado dentro del contenedor del agente.
HOST_DIRECTORY
y CONTAINER_DIRECTORY
deben ser los mismos para que el agente pueda ubicar los archivos que se copiarán.
Ten en cuenta la siguiente información cuando uses esta opción:
- No especifiques
--enable-mount-directory
. - No antepongas la ruta de acceso al archivo con
/transfer_root
.
Con la opción --enable-mount-directory
, se activa 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 cuales 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 activar el archivo de credenciales en el contenedor y pasar --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
Reemplaza lo siguiente:
HOST_DIRECTORY
: Es el directorio en la máquina anfitrión desde el que deseas copiar.CONTAINER_DIRECTORY
: Es el directorio asignado dentro del contenedor del agente.FULL_CREDENTIAL_FILE_PATH
: Es la ruta de acceso completamente calificada al archivo de credenciales.PROJECT_ID
: Es el ID del proyecto que aloja los recursos de transferencia que se crean y facturan.CREDENTIAL_FILE
: Es un archivo de credenciales de cuenta de servicio con formato JSON. Si deseas obtener más información sobre cómo generar un archivo de credenciales de cuenta de servicio, consulta Crea y administra claves de cuentas de servicio.ID_PREFIX
: Es un prefijo que se antepone al ID del agente para ayudar a identificar al agente o su máquina en la consola de Google Cloud. Cuando se usa un prefijo, el ID del agente tiene el formatoprefix + hostname + Docker container ID
.
Coordina agentes con Kubernetes
Docker es un entorno de ejecución de contenedores compatible con Kubernetes. Puedes usar Kubernetes para organizar el inicio y la detención de varios agentes de forma simultánea. 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 implementar una aplicación sin estado.
Usa extremos de API privada en Cloud Interconnect
Para usar extremos de API privada en Cloud Interconnect, sigue estos pasos:
Accede al host local en el que deseas ejecutar el agente.
Configura el Acceso privado a Google. Si deseas obtener más información, consulta Configura el Acceso privado a Google de los hosts locales.
Confirma que puedes conectarte a las APIs de Cloud Storage:
- Para las API de Cloud Storage, ejecuta el siguiente comando desde la misma máquina del agente de transferencia a fin de probar la transferencia de un archivo al depósito de Cloud Storage:
gcloud storage cp test.txt gs://MY-BUCKET
. En el ejemplo anterior,MY-BUCKET
es el nombre de ese depósito. Si la transferencia funciona, la prueba se realizó de forma correcta.
- Para las API de Cloud Storage, ejecuta el siguiente comando desde la misma máquina del agente de transferencia a fin de probar la transferencia de un archivo al depósito de Cloud Storage:
Usa 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
Reemplaza lo siguiente:
PROXY
: La URL HTTP y el puerto del servidor proxy Asegúrate de especificar la URL HTTP, y no una URL HTTPS, para evitar la duplicación de solicitudes en la encriptación TLS. Las solicitudes duplicadas impiden que el servidor proxy envíe solicitudes de salida válidas.PROJECT_ID
: Es el ID del proyecto que aloja los recursos de transferencia que se crean y facturan.ID_PREFIX
: Es un prefijo que se antepone al ID del agente para ayudar a identificar al agente o su máquina en la consola de Google Cloud. Cuando se usa un prefijo, el ID del agente tiene el formatoprefix + hostname + Docker container ID
.
Copia en un bucket con una política de retención
Para transferir a un bucket con una política de retención, recomendamos el siguiente proceso:
Crea un bucket de Cloud Storage dentro de la misma región que el bucket final. Asegúrate de que este bucket temporal no tenga una política de retención.
Para obtener más información sobre las regiones, consulta Ubicaciones de buckets.
Usa el Servicio de transferencia de almacenamiento para transferir tus datos al bucket temporal que creaste sin una política de retención.
Realiza una transferencia de bucket a bucket para transferir los datos al bucket con una política de retención.
Borra el bucket de Cloud Storage que creaste para almacenar tus datos de forma temporal.
Opciones para obtener más ancho de banda de red
Existen 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 disminuir los tiempos de transferencia, especialmente para conjuntos de datos grandes.
Intercambio de tráfico con Google: el intercambio de tráfico es cuando te interconectas directamente con Google para admitir el intercambio de tráfico. Tenemos ubicaciones de intercambio de tráfico directo en todo el mundo. Para conocer los beneficios y nuestras políticas, consulta Intercambio de tráfico.
Cloud Interconnect: la interconexión de la nube es similar al intercambio de tráfico, pero utilizarás una interconexión para conectarte a Google. Hay dos tipos de interconexiones para elegir:
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 dedicada. Para obtener más información, consulta la Descripción general de la interconexión dedicada.
Interconexión de socio: trabaja 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 socio de servicios. Para obtener más información, consulta la Descripción general de la interconexión de socios.
Obtén ancho de banda de tu ISP: tu proveedor de servicios de Internet (ISP) puede ofrecerte más ancho de banda para tus necesidades. Considera contactarlos para consultar qué opciones tienen disponibles.