Opzioni avanzate

Questo documento descrive le opzioni di configurazione avanzate per i trasferimenti del file system, tra cui:

Copia dei dati su volumi CIFS o SMB

Gli agenti di trasferimento non sono supportati direttamente sui server Windows. Tuttavia, puoi spostare i dati archiviati su qualsiasi file system compatibile con POSIX montandoli su un server Linux o su una macchina virtuale (VM), quindi eseguendo un agente dal server o dalla VM Linux per copiare i dati in Cloud Storage.

Per spostare i dati da un volume CIFS o SMB:

  1. Esegui il provisioning di un server o di una VM Linux.

    Per i sistemi operativi supportati, vedi Prerequisiti.

  2. Esegui il comando seguente sul server o sulla VM Linux di cui hai eseguito il provisioning per montare il volume:

    sudo mount -t cifs -o
    username=WINDOWS-SHARE-USER,password=WINDOWS-SHARE-PASSWORD //IP-ADDRESS/SHARE-NAME /mnt
    

    Sostituisci quanto segue:

    • IP-ADDRESS: l'indirizzo IP del server Microsoft Windows in cui si trova il volume CIFS o SMB.
    • SHARE-NAME: il nome della condivisione che stai montando.
    • WINDOWS-SHARE-USER: un utente autorizzato per accedere al volume CIFS o SMB.
    • WINDOWS-SHARE-PASSWORD: la password per l'utente autorizzato del volume CIFS o SMB.
  3. Verifica che il volume CIFS sia montato eseguendo questo comando:

    findmnt -l
    
  4. Verifica che l'utente che eseguirà l'agente possa elencare e copiare i file sul volume montato eseguendo questi comandi:

    sudo -u USERNAME cp /mnt/FILE1 /mnt/FILE2
    

    Sostituisci quanto segue:

    • USERNAME: l'utente che eseguirà l'agente.
    • FILE1: il file da cui eseguire la copia.
    • FILE2: nome file in cui copiare.
  5. Installa l'agente di trasferimento.

Utilizzo delle credenziali dell'account di servizio

Puoi utilizzare le credenziali dell'account di servizio per eseguire l'agente. L'utilizzo delle credenziali dell'account di servizio consente di autenticare l'agente di trasferimento senza affidarsi a un singolo account utente. Per maggiori informazioni sui tipi di account, consulta la sezione Entità.

  1. Creare una chiave dell'account di servizio. Per ulteriori informazioni, consulta Creazione e gestione delle chiavi degli account di servizio.

  2. Passa il percorso della chiave di servizio al comando di creazione dell'agente:

    gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
      --mount-directories=MOUNT_DIRECTORIES \
      --creds-file=RELATIVE_PATH_TO/KEY_FILE.JSON
    

    Il file delle credenziali viene montato automaticamente da gcloud transfer e non deve essere specificato con il flag --mount-directories.

Regolazione della memoria massima degli agenti in corso...

Gli agenti di trasferimento utilizzano per impostazione predefinita un massimo di 8 GiB di memoria di sistema. Puoi regolare la memoria massima utilizzata dagli agenti per adattarla al tuo ambiente passando --max-physical-mem=MAXIMUM-MEMORY, sostituendo MAXIMUM-MEMORY con un valore adatto al tuo ambiente.

Di seguito sono riportati i requisiti di memoria per Transfer Service for On Premises Data Agent:
  • Memoria minima: 1 GiB
  • Memoria minima per supportare caricamenti ad alte prestazioni: 6 GiB

Consigliamo il valore predefinito di 8 GiB.

La seguente tabella descrive esempi di formati accettabili per MAXIMUM-MEMORY:

max-physical-mem valore Impostazione memoria massima
6g 6 gigabyte
6gb 6 gigabyte
6GiB 6 gibibyte

Limitazione dell'accesso alla directory degli agenti

Gli utenti in grado di creare job di trasferimento possono recuperare e scaricare dati da qualsiasi directory del file system accessibile all'agente.

Se gli agenti vengono eseguiti come root e ricevono l'accesso all'intero file system, un utente malintenzionato potrebbe essere in grado di assumere il controllo dell'host. Ti consigliamo vivamente di limitare l'accesso dell'agente solo alle directory necessarie.

Per limitare l'accesso di un agente a directory specifiche:

gcloud

Per specificare le directory a cui l'agente può accedere su un file system, utilizza il flag --mount-directories con gcloud transfer agents install:

gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
  --mount-directories=MOUNT_DIRECTORIES

Specifica più directory separandole con una virgola e senza spazi:

gcloud transfer agents install --pool=POOL_NAME --count=NUM_AGENTS \
  --mount-directories=MOUNT_DIRECTORY_1,MOUNT_DIRECTORY_2

Se specifichi un file delle credenziali utilizzando il flag --creds-file, gcloud transfer monta automaticamente il file delle credenziali. Gli altri file che si trovano nella stessa directory del file delle credenziali non vengono montati.

docker run

Per specificare le directory a cui l'agente può accedere durante l'esecuzione di un trasferimento, passa -v HOST_DIRECTORY:CONTAINER_DIRECTORY all'agente, dove:

  • HOST_DIRECTORY è la directory della macchina host da cui intendi eseguire la copia.
  • CONTAINER_DIRECTORY è la directory mappata all'interno del container dell'agente.

HOST_DIRECTORY e CONTAINER_DIRECTORY devono essere uguali per consentire all'agente di individuare i file da copiare.

Quando utilizzi questa opzione:

  • Non specificare --enable-mount-directory.
  • Non inserire /transfer_root all'inizio del percorso del file.

L'opzione --enable-mount-directory monta l'intero file system nella directory /transfer_root del container. Se viene specificato --enable-mount-directory, le limitazioni della directory non vengono applicate.

Puoi utilizzare più di un flag -v per specificare ulteriori directory da cui eseguire la copia. Ad esempio:

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

Se utilizzi un account di servizio, assicurati di montare il file delle credenziali nel container e di passare il --creds-file=CREDENTIAL_FILE. Ad esempio:

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

Sostituisci quanto segue:

  • HOST_DIRECTORY: la directory sulla macchina host da cui intendi eseguire la copia.
  • CONTAINER_DIRECTORY: la directory mappata all'interno del container dell'agente.
  • FULL_CREDENTIAL_FILE_PATH: il percorso completo del file delle credenziali.
  • PROJECT_ID: l'ID progetto che ospita le risorse di trasferimento viene creato e fatturato.
  • CREDENTIAL_FILE: un file delle credenziali dell'account di servizioo in formato JSON. Per ulteriori informazioni sulla generazione di un file delle credenziali dell'account di servizio, consulta Creazione e gestione delle chiavi degli account di servizio.
  • ID_PREFIX: il prefisso anteposto all'ID agente per identificare l'agente o la relativa macchina nella console Google Cloud. Quando si utilizza un prefisso, l'ID agente viene formattato come prefix + hostname + Docker container ID.

Coordinare gli agenti con Kubernetes

Docker è un runtime dei container supportato per Kubernetes. Puoi usare Kubernetes per orchestrare l'avvio e l'arresto di molti agenti contemporaneamente. Dal punto di vista di Kubernetes, il container dell'agente è considerato un'applicazione stateless, perciò puoi seguire le istruzioni di Kubernetes per il deployment di un'applicazione stateless.

Utilizzo di endpoint API privati in Cloud Interconnect

Per utilizzare gli endpoint API privati in Cloud Interconnect:

  1. Accedi all'host on-premise su cui intendi eseguire l'agente.

  2. Configurare l'accesso privato Google. Per ulteriori informazioni, vedi Configurare l'accesso privato Google per gli host on-premise.

  3. Conferma di poterti connettere alle API Cloud Storage:

    1. Per le API Cloud Storage, esegui questo comando dalla stessa macchina dell'agente di trasferimento per testare lo spostamento di un file nel bucket Cloud Storage: gsutil cp test.txt gs://MY-BUCKET dove MY-BUCKET è il nome del bucket Cloud Storage. Se il trasferimento funziona, il test ha esito positivo.

Utilizzo di un proxy di inoltro

Gli agenti di trasferimento supportano l'utilizzo di un proxy di inoltro sulla rete passando la variabile di ambiente HTTPS_PROXY.

Ad esempio:

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

Sostituisci quanto segue:

  • PROXY: l'URL HTTP e la porta del server proxy. Assicurati di specificare l'URL HTTP e non un URL HTTPS per evitare il doppio wrapping delle richieste nella crittografia TLS. Le richieste con doppio wrapping impediscono al server proxy di inviare richieste in uscita valide.
  • PROJECT_ID: l'ID progetto che ospita le risorse di trasferimento viene creato e fatturato.
  • ID_PREFIX: il prefisso anteposto all'ID agente per identificare l'agente o la relativa macchina nella console Google Cloud. Quando si utilizza un prefisso, l'ID agente viene formattato come prefix + hostname + Docker container ID.

Copia in un bucket con un criterio di conservazione

Per eseguire il trasferimento a un bucket con un criterio di conservazione, consigliamo la seguente procedura:

  1. Crea un bucket Cloud Storage all'interno della stessa regione del bucket finale. Assicurati che questo bucket temporaneo non abbia un criterio di conservazione.

    Per ulteriori informazioni sulle regioni, consulta Località dei bucket.

  2. Utilizza Storage Transfer Service per trasferire i tuoi dati nel bucket temporaneo che hai creato senza un criterio di conservazione.

  3. Esegui un trasferimento da bucket a bucket per trasferire i dati nel bucket con un criterio di conservazione.

  4. Elimina il bucket Cloud Storage creato per archiviare temporaneamente i tuoi dati.

Opzioni per ottenere una maggiore larghezza di banda di rete

Esistono diverse opzioni per ottenere una larghezza di banda di rete maggiore per i trasferimenti di file system. L'aumento della larghezza di banda della rete contribuisce a ridurre i tempi di trasferimento, in particolare per set di dati di grandi dimensioni.

  • Peering con Google: il peering è il luogo in cui ti connetti direttamente con Google per supportare lo scambio di traffico. Disponiamo di località di peering diretto in tutto il mondo. Per scoprire i vantaggi e le nostre norme, consulta Peering.

  • Cloud Interconnect: Cloud Interconnect è simile al peering, ma utilizzerai un'interconnessione per connetterti a Google. Puoi scegliere tra due tipi di interconnessioni:

    • Dedicated Interconnect: ti connetti direttamente dal tuo data center a un data center Google tramite una connessione privata e dedicata. Per maggiori informazioni, consulta la panoramica di Dedicated Interconnect.

    • Partner Interconnect: collabori con un provider di servizi per stabilire una connessione a un data center Google tramite la rete di un partner di servizi. Per ulteriori informazioni, consulta la panoramica di Partner Interconnect.

  • Ottieni larghezza di banda dal tuo ISP: il tuo provider di servizi internet (ISP) potrebbe essere in grado di offrire una larghezza di banda maggiore per le tue esigenze. Valuta la possibilità di contattarli per chiedere quali opzioni hanno a disposizione.