Configuración avanzada del agente

En este documento, se describen las opciones de configuración avanzadas del Servicio de transferencia de datos locales, incluidas las siguientes:

Copia datos en los volúmenes CIFS o SMB

Los agentes de la transferencia de datos locales 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 de datos locales.

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.

Antes de usar las credenciales de cuenta de servicio con tus agentes, verifica que se cumpla lo siguiente para asegurarte de que el Servicio de transferencia de datos locales esté listo:

  1. Configura la transferencia a las bases de datos locales.

  2. Existe un trabajo de transferencia.

Para usar las credenciales de cuenta de servicio con los agentes, realiza las siguientes acciones:

  1. Detén todos los contenedores de agentes.

  2. Crea claves de cuenta de servicio. Para obtener más información, consulta Crea y administra claves de cuentas de servicio.

  3. Inicia el contenedor de Docker del agente mediante la ejecución del siguiente comando:

    sudo docker run --ulimit memlock=64000000 -d --rm -v /:/transfer_root \
    gcr.io/cloud-ingest/tsop-agent:latest \
    --enable-mount-directory \
    --project-id=PROJECT-ID \
    --creds-file=CREDENTIAL-FILE \
    --hostname=$(hostname) \
    --agent-id-prefix=ID-PREFIX
    

    Reemplaza lo siguiente:

  • PROJECT-ID: Es el ID del proyecto que aloja la transferencia y en el que se crean y facturan los recursos de Pub/Sub.
  • 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 el prefijo que se anexa al ID del agente para ayudar a identificar el agente o su máquina en Google Cloud Console. Cuando se usa un prefijo, el ID del agente tiene el formato prefix + hostname + Docker container ID.

Ajusta la cantidad máxima de memoria que usan los agentes

De forma predeterminada, los agentes del servicio de transferencia de datos locales 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-memory Configuración del uso máximo de memoria
6g 6 gigabytes
6gb 6 gigabytes
6GiB 6 gibibytes

Restringe el acceso a directorios del agente

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.

Puedes usar más de una marca -v a fin de especificar más directorios desde los que se 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 la transferencia y en el que se crean y facturan los recursos de Pub/Sub.
  • 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 el prefijo que se anexa al ID del agente para ayudar a identificar el agente o su máquina en Google Cloud Console. 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 API de Cloud Storage y a las API de Pub/Sub:

    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.
    2. Para las API de Pub/Sub, ejecuta el siguiente comando desde la misma máquina del agente de transferencia a fin de confirmar que puedes encontrar temas de Pub/Sub existentes: gcloud pubsub topics list --project=PROJECT-ID. En el ejemplo anterior, PROJECT-ID es el nombre del proyecto de Google Cloud. Si se muestra una lista de temas de Pub/Sub, la prueba se realizó de forma correcta.

Usa un proxy de reenvío

El servicio de transferencia para la asistencia de agentes de datos locales usa 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 /:/transfer_root \
--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 la transferencia y en el que se crean y facturan los recursos de Pub/Sub.
  • ID-PREFIX: Es el prefijo que se anexa al ID del agente para ayudar a identificar el agente o su máquina en Google Cloud Console. Cuando se usa un prefijo, el ID del agente tiene el formato prefix + hostname + Docker container ID.