Questo documento descrive le opzioni di configurazione avanzate per i trasferimenti del file system, tra cui:
- Copia dei dati su volumi CIFS o SMB
- Utilizzo delle credenziali dell'account di servizio
- Regolazione della memoria massima dell'agente
- Limitazione dell'accesso alla directory degli agenti
- Coordinare gli agenti con Kubernetes
- Utilizzo di un proxy di inoltro
- Copia in un bucket con un criterio di conservazione
- Opzioni per ottenere una larghezza di banda di rete maggiore
Copia di 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 conforme a POSIX montandoli su un server Linux o su una macchina virtuale (VM) ed eseguendo un agente dal server Linux o dalla VM per copiare i dati su Cloud Storage.
Per spostare i dati da un volume CIFS o SMB:
Eseguire il provisioning di un server Linux o di una VM.
Consulta i prerequisiti per i sistemi operativi supportati.
Esegui questo comando sul server Linux o sulla VM 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 ad accedere al volume CIFS o SMB.WINDOWS-SHARE-PASSWORD
: la password per l'utente autorizzato del volume CIFS o SMB.
Verifica che il volume CIFS sia montato eseguendo questo comando:
findmnt -l
Verifica che l'utente che eseguirà l'agente possa elencare e copiare i file nel 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.
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 fare affidamento su un singolo account utente. Per ulteriori informazioni sui tipi di account, consulta Entità.
Creare una chiave dell'account di servizio. Per maggiori informazioni, consulta Creazione e gestione delle chiavi degli account di servizio.
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 dell'agente 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.
- Memoria minima: 1 GiB
- Memoria minima per supportare caricamenti ad alte prestazioni: 6 GiB
Consigliamo l'impostazione predefinita 8 GiB.
La seguente tabella descrive alcuni esempi di formati accettabili per MAXIMUM-MEMORY
:
Valore max-physical-mem |
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 i dati da qualsiasi directory del file system accessibile dall'agente.
Se gli agenti vengono eseguiti come root e gli viene concesso l'accesso all'intero file system, un utente malintenzionato potrebbe assumere il controllo dell'host. Ti consigliamo vivamente di limitare l'accesso degli agenti 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 stai specificando un file delle credenziali utilizzando il flag --creds-file
, gcloud transfer
monta automaticamente il file delle credenziali. Gli altri file 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 sulla macchina host da cui intendi copiare.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
sul container. Se --enable-mount-directory
è specificato, le limitazioni di 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 trasmettere il codice --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 vuoi copiare.CONTAINER_DIRECTORY
: la directory mappata all'interno del container dell'agente.FULL_CREDENTIAL_FILE_PATH
: il percorso completo del file delle credenziali.PROJECT_ID
: viene creato e fatturato l'ID progetto che ospita le risorse di trasferimento.CREDENTIAL_FILE
: un file credenziali dell'account di servizio in formato JSON. Per saperne di più sulla generazione di un file di 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 sua macchina nella console Google Cloud. Quando viene utilizzato un prefisso, l'ID agente ha il formatoprefix + hostname + Docker container ID
.
Coordinare gli agenti con Kubernetes
Docker è un runtime di 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, quindi puoi seguire le istruzioni di Kubernetes per il deployment di un'applicazione stateless.
Utilizzo di endpoint API privati in Cloud Interconnect
Per utilizzare endpoint API privati in Cloud Interconnect:
Accedi all'host on-premise su cui intendi eseguire l'agente.
Configura l'accesso privato Google. Per ulteriori informazioni, consulta Configurazione dell'accesso privato Google per gli host on-premise.
Verifica di poter eseguire la connessione alle API Cloud Storage:
- Per le API Cloud Storage, esegui il comando seguente 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
doveMY-BUCKET
è il nome del tuo bucket Cloud Storage. Se il trasferimento funziona, il test ha esito positivo.
- Per le API Cloud Storage, esegui il comando seguente dalla stessa
macchina dell'agente di trasferimento per testare lo spostamento di un file nel
bucket Cloud Storage:
Utilizzo di un proxy di inoltro
Gli agenti di trasferimento supportano l'utilizzo di un proxy di inoltro sulla rete trasmettendo 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
: viene creato e fatturato l'ID progetto che ospita le risorse di trasferimento.ID_PREFIX
: il prefisso anteposto all'ID agente per identificare l'agente o la sua macchina nella console Google Cloud. Quando viene utilizzato un prefisso, l'ID agente è formattato comeprefix + 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 il seguente processo:
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 saperne di più sulle regioni, consulta Località dei bucket.
Utilizza Storage Transfer Service per trasferire i tuoi dati nel bucket temporaneo che hai creato senza un criterio di conservazione.
Esegui un trasferimento da bucket a bucket per trasferire i dati nel bucket con un criterio di conservazione.
Elimina il bucket Cloud Storage che hai creato per archiviare temporaneamente i dati.
Opzioni per ottenere una larghezza di banda di rete maggiore
Esistono diverse opzioni per ottenere una larghezza di banda di rete maggiore per i trasferimenti di file system. Aumentando la larghezza di banda della rete si riducono i tempi di trasferimento, soprattutto per i set di dati di grandi dimensioni.
Peering con Google: il peering è il punto in cui interconnetti direttamente con Google per supportare lo scambio di traffico. Abbiamo località di peering diretto in tutto il mondo. Per scoprire di più sui vantaggi e sulle norme, consulta la sezione 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 colleghi direttamente dal tuo data center a un data center Google tramite una connessione privata dedicata. Per ulteriori informazioni, consulta Panoramica di Dedicated Interconnect.
Partner Interconnect: collabori con un fornitore di servizi per stabilire una connessione a un data center di Google tramite la rete di un partner di servizi. Per ulteriori informazioni, consulta la panoramica di Partner Interconnect.
Ottenere larghezza di banda dal tuo ISP: il tuo provider di servizi internet (ISP) potrebbe essere in grado di offrire una larghezza di banda superiore per le tue esigenze. Considera di contattarli per chiedere quali opzioni hanno a disposizione.