Opciones avanzadas

En este documento, se describen las opciones de configuración avanzada para las transferencias del sistema de archivos, incluidas las siguientes:

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:

  1. Aprovisiona un servidor de Linux o una VM.

    Para obtener información sobre los sistemas operativos compatibles, consulta Requisitos previos.

  2. 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.
  3. Para confirmar que el volumen CIFS se active, ejecuta el siguiente comando:

    findmnt -l
    
  4. 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á.
  5. Instala el agente de transferencia.

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.

  1. Crear una clave de cuenta de servicio. Para obtener más información, consulta Crea y administra claves de cuentas de servicio.

  2. 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.

Los siguientes son requisitos de memoria para los agentes del Servicio de transferencia de datos locales:
  • 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 el agente pueda acceder y descargarlos.

Si los agentes se ejecutan como raíz y se les otorga acceso a todo el sistema de archivos, es posible que una persona maliciosa pueda tomar el control del host. Se recomienda 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

Especifica varios directorios separando cada uno con una coma y sin espacio:

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 el archivo de credenciales de forma automática. No se activan otros archivos en el 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 formato prefix + 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:

  1. Accede al host local en el que deseas ejecutar el agente.

  2. Configura el Acceso privado a Google. Si deseas obtener más información, consulta Configura el Acceso privado a Google de los hosts locales.

  3. Confirma que puedes conectarte a las APIs de Cloud Storage:

    1. 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: gsutil 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.

Usa un proxy de reenvío

Los agentes de transferencia admiten el uso de un proxy de reenvío en tu red cuando pasan 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 formato prefix + 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:

  1. 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.

  2. Usa el Servicio de transferencia de almacenamiento para transferir tus datos al bucket temporal que creaste sin una política de retención.

  3. Realiza una transferencia de bucket a bucket para transferir los datos al bucket con una política de retención.

  4. 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.