En este documento, se describen las opciones de configuración avanzadas del Servicio de transferencia de datos locales, 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 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:
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.
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:
Para usar las credenciales de cuenta de servicio con los agentes, realiza las siguientes acciones:
Crea claves de cuenta de servicio. Para obtener más información, consulta Crea y administra claves de cuentas de servicio.
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 formatoprefix + 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.
- 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 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 API de Cloud Storage y a las API de Pub/Sub:
- 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. - 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.
- 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
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 formatoprefix + hostname + Docker container ID
.