Questo documento descrive le opzioni di configurazione avanzata per i trasferimenti del file system, tra cui:
- Copia di dati su volumi CIFS o SMB
- Utilizzare le credenziali dell'account di servizio
- Regolazione della memoria massima dell'agente
- Limitare l'accesso alla directory degli agenti
- Coordinare gli agenti con Kubernetes
- Utilizzare un proxy di inoltro
- Copia in un bucket con un criterio di conservazione
- Opzioni per ottenere una maggiore larghezza di banda di rete
Copia dei dati su volumi CIFS o SMB
Gli agenti di trasferimento non sono supportate direttamente sui server Windows. Tuttavia, puoi spostare i dati archiviati su qualsiasi file system conforme a POSIX montandolo su un server Linux o una macchina virtuale (VM) e poi eseguendo un agente dal server Linux o dalla VM per copiarli in Cloud Storage.
Per spostare i dati da un volume CIFS o SMB:
Esegui il provisioning di un server o di una VM Linux.
Per i sistemi operativi supportati, vedi Prerequisiti.
Esegui il seguente comando 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 Server Windows su cui si trova il volume CIFS o SMB.SHARE-NAME
: il nome della condivisione da montare.WINDOWS-SHARE-USER
: un utente autorizzato per accedere al volume CIFS o SMB.WINDOWS-SHARE-PASSWORD
: la password per utente autorizzato del volume CIFS o SMB.
Verifica che il volume CIFS sia montato eseguendo il seguente comando:
findmnt -l
Verifica che l'utente che eseguirà l'agente possa elencare e copiare i file su il 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 del file di destinazione.
Utilizzo delle credenziali dell'account di servizio
Puoi utilizzare le credenziali dell'account di servizio per eseguire l'agente. Utilizzo dell'account di servizio le credenziali consentono di autenticare l'agente di trasferimento senza basandosi su un unico account utente. Per ulteriori informazioni sui tipi di account, consulta Principali.
Creare una chiave dell'account di servizio. Per ulteriori informazioni, consulta Creare e gestire le 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 non deve essere specificato con il flag--mount-directories
.
Regolazione della memoria massima degli agenti in corso...
Per impostazione predefinita, gli agenti di trasferimento utilizzano un massimo di 8 GB di memoria di sistema. Puoi
regolare la memoria massima utilizzata dagli agenti per adattarla al tuo ambiente passando
--max-physical-mem=MAXIMUM-MEMORY
, in sostituzione
MAXIMUM-MEMORY
con un valore adatto al tuo ambiente.
- Memoria minima: 1 GB
- Memoria minima per supportare caricamenti ad alte prestazioni: 6 GiB
Consigliamo il valore predefinito di 8 GiB.
La tabella seguente descrive alcuni esempi di formati accettabili per
MAXIMUM-MEMORY
:
Valore max-physical-mem |
Impostazione della 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 i dati da scaricare i dati in qualsiasi directory di file system accessibile all'agente.
Se gli agenti vengono eseguiti come root e viene concesso loro l'accesso all'intero file system, un malintenzionato potrebbe essere in grado di assumere il controllo dell'host. È fortemente consigliato 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 in 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 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 vuoi eseguire la copia.CONTAINER_DIRECTORY
è la directory mappata all'interno il container dell'agente.
HOST_DIRECTORY
e
CONTAINER_DIRECTORY
devono essere uguali affinché l'agente possa individuare i file da copiare.
Quando utilizzi questa opzione:
- Non specificare
--enable-mount-directory
. - Non anteporre il percorso del file con
/transfer_root
.
L'opzione --enable-mount-directory
monta l'intero file system sotto la
/transfer_root
sul container. Se --enable-mount-directory
è
specificato, le restrizioni della directory non vengono applicate.
Puoi utilizzare più di un flag -v
per specificare directory aggiuntive
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 contenitore e di passare --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 eseguire la copia.CONTAINER_DIRECTORY
: la directory mappata all'interno di un container di agenti in tempo reale.FULL_CREDENTIAL_FILE_PATH
: il percorso completo al file delle credenziali.PROJECT_ID
: il ID progetto che ospita le risorse di trasferimento vengono create e fatturate.CREDENTIAL_FILE
: un account di servizio in formato JSON delle credenziali dell'utente. Per ulteriori informazioni sulla generazione di un file delle credenziali dell'account di servizio, consulta la sezione sulla creazione e gestione delle chiavi degli account di servizio.ID_PREFIX
: il prefisso anteposto all'agente ID che consente di identificare l'agente o la relativa macchina nella console Google Cloud. Quando viene utilizzato un prefisso, l'ID agente viene formattato comeprefix + hostname + Docker container ID
.
Coordinamento degli agenti con Kubernetes
Docker è un runtime del container supportato per Kubernetes. Puoi utilizzare Kubernetes per orchestrare l'avvio e l'arresto di molti agenti contemporaneamente. Dal punto di vista di Kubernetes, il contenitore 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 gli 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 Configurare l'accesso privato Google per gli host on-premise.
Verifica di poterti connettere alle API Cloud Storage:
- Per le API Cloud Storage, esegui il seguente comando dalla stessa
macchina dell'agente di trasferimento per testare lo spostamento di un file nel
tuo bucket Cloud Storage:
gcloud storage 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 seguente comando dalla stessa
macchina dell'agente di trasferimento per testare lo spostamento di un file nel
tuo bucket Cloud Storage:
Utilizzo di un proxy di inoltro
Il supporto degli agenti di trasferimento mediante un proxy di inoltro sulla rete viene trasmesso
HTTPS_PROXY
variabile di ambiente.
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 delle richieste con doppio wrapping nella crittografia TLS. Le richieste con doppio wrapping impediscono al server proxy di inviare richieste in uscita valide.PROJECT_ID
: il ID progetto che ospita le risorse di trasferimento vengono create e fatturate.ID_PREFIX
: il prefisso che viene anteposto all'ID agente per identificare l'agente o la relativa macchina nella console Google Cloud. Quando viene utilizzato un prefisso, l'ID agente viene formattato comeprefix + hostname + Docker container ID
.
Copia in un bucket con un criterio di conservazione
Per eseguire il trasferimento in un bucket con un criterio di conservazione, consigliamo la seguente procedura:
Crea un bucket Cloud Storage nella stessa regione del bucket finale. Assicurati che l'applicazione del bucket non ha un criterio di conservazione.
Per saperne di più sulle regioni, consulta Località dei .
Utilizza Storage Transfer Service per trasferire i dati nel bucket temporaneo che hai creato senza un criterio di conservazione.
Esegui un trasferimento da bucket a bucket a e trasferire i dati al bucket con un criterio di conservazione.
Elimina il bucket Cloud Storage che hai creato per archiviare temporaneamente i dati.
Opzioni per ottenere una maggiore larghezza di banda di rete
Esistono diverse opzioni per ottenere una larghezza di banda di rete maggiore per il file system trasferimenti. L'aumento della larghezza di banda della rete contribuisce a ridurre tempi di trasferimento più lunghi, soprattutto per set di dati di grandi dimensioni.
Peering con Google: il peering consente di eseguire l'interconnessione diretta con Google per supportare lo scambio di traffico. Abbiamo località di peering diretto in tutto il mondo. Per scoprire i vantaggi e le nostre norme, consulta la sezione Peering.
Cloud Interconnect: Cloud Interconnect è simile al peering, ma utilizzerai un'interconnessione per connetterti a Google. Esistono due tipi di interconnect tra cui scegliere:
Dedicated Interconnect: ti connetti direttamente dal tuo data center a un data center Google tramite una piattaforma privata connessione. Per ulteriori informazioni, consulta la panoramica di Dedicated Interconnect.
Partner Interconnect: collabori con un fornitore di servizi per stabilire una connessione a un data center Google tramite la rete di un fornitore di servizi partner. Per ulteriori informazioni, vedi Panoramica di Partner Interconnect.
Richiedi la larghezza di banda al tuo ISP: il tuo provider di servizi internet (ISP) potrebbe essere in grado di offrire una larghezza di banda maggiore per le tue esigenze. Ti consigliamo di contattarli per chiedere quali opzioni hanno a disposizione.