Questo documento descrive le opzioni di configurazione avanzate per i trasferimenti di file system, tra cui:
- Copia dei dati su volumi CIFS o SMB
- Utilizzo account di servizio account
- Modifica della memoria massima dell'agente
- Limitazione dell'accesso alla directory dell'agente
- Coordinamento degli agenti con Kubernetes
- Utilizzo di un proxy di inoltro
- Copia in un bucket con una policy di conservazione
- Opzioni per ottenere più larghezza di banda della rete
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 conforme a POSIX montandolo su un server o una macchina virtuale (VM) Linux, 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:
Provisiona un server o 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 Windows su 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 dell'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 sul volume montato eseguendo i seguenti comandi:
sudo -u USERNAME cp /mnt/FILE1 /mnt/FILE2
Sostituisci quanto segue:
USERNAME: l'utente che eseguirà l'agente.FILE1: il file da cui copiare.FILE2: il nome del file in cui copiare.
Utilizzo delle credenziali del account di servizio
Puoi utilizzare le credenziali del account di servizio per eseguire l'agente. L'utilizzo delle credenziali del account di servizio ti consente di autenticare l'agente di trasferimento senza dover fare affidamento su un singolo account utente. Per ulteriori informazioni sui tipi di account, vedi Entità.
Crea una chiave del account di servizio. Per ulteriori informazioni, vedi Creazione e gestione account di servizio account.
Passa la posizione 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.JSONIl file delle credenziali viene montato automaticamente da
gcloud transfere non deve essere specificato con il flag--mount-directories.
Modifica della memoria massima dell'agente
Per impostazione predefinita, gli agenti di trasferimento utilizzano un massimo di 8 GiB di memoria di sistema. Puoi
modificare la memoria massima utilizzata dagli agenti in base al tuo ambiente passando
--max-physical-mem=MAXIMUM-MEMORY, sostituendo
MAXIMUM-MEMORY con un valore adatto al tuo ambiente.
Questo flag è supportato solo dal
docker run comando.
- Memoria minima: 1 GiB
- Memoria minima per supportare i caricamenti ad alte prestazioni: 6 GiB
Ti consigliamo di utilizzare il valore predefinito di 8 GiB.
La tabella seguente descrive esempi di formati accettabili per MAXIMUM-MEMORY:
Valore di max-physical-mem |
Impostazione della memoria massima |
|---|---|
6g |
6 gigabyte |
6gb |
6 gigabyte |
6GiB |
6 gibibyte |
Limitazione dell'accesso alla directory dell'agente
Gli utenti in grado di creare job di trasferimento possono recuperare e scaricare i dati in qualsiasi directory del file system accessibile all'agente.
Se gli agenti vengono eseguiti come root e hanno 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 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 e specifica quanto segue:
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 in modo che l'agente possa individuare i file da copiare.
Quando utilizzi questa opzione:
- Non specificare
--enable-mount-directory. - Non anteporre
/transfer_rootal 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 delle directory non vengono applicate.
Puoi utilizzare più flag -v per specificare altre directory da cui copiare. 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
--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 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: l'ID progetto in cui vengono create e fatturate le risorse di trasferimento.CREDENTIAL_FILE: un file delle credenziali del account di servizio in formato JSON. Per ulteriori informazioni sulla generazione di un account di servizio file delle credenziali, vedi Creazione e gestione delle account di servizio account.ID_PREFIX: il prefisso anteposto all'ID dell'agente per aiutare a identificare l'agente o la relativa macchina nella console. Google Cloud Quando viene utilizzato un prefisso, l'ID dell'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 container dell'agente è considerato un' applicazione senza stato, quindi puoi seguire le istruzioni di Kubernetes per il deployment di un'applicazione senza stato.
Utilizzo di endpoint di API privati in Cloud Interconnect
Per utilizzare gli endpoint di API privati in Cloud Interconnect:
Accedi all'host on-premise su cui intendi eseguire l'agente.
Configura l'accesso privato Google. Per ulteriori informazioni, vedi Configurazione dell'accesso privato Google per gli host on-premise.
Verifica di poter connetterti 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
bucket Cloud Storage:
gcloud storage cp test.txt gs://MY-BUCKETdoveMY-BUCKETè il nome del bucket Cloud Storage. Se il trasferimento funziona, il test è riuscito.
- Per le API Cloud Storage, esegui il seguente comando 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 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 in cui vengono create e fatturate le risorse di trasferimento.ID_PREFIX: il prefisso anteposto all'ID dell'agente per aiutare a identificare l'agente o la relativa macchina nella console. Google Cloud Quando viene utilizzato un prefisso, l'ID dell'agente viene formattato comeprefix + hostname + Docker container ID.
Copia in un bucket con una policy di conservazione
Per eseguire il trasferimento in un bucket con una policy di conservazione, ti consigliamo di seguire questa procedura:
Crea un bucket Cloud Storage nella stessa regione del bucket finale. Assicurati che questo bucket temporaneo non abbia una policy di conservazione.
Per ulteriori informazioni sulle regioni, vedi Località dei bucket.
Utilizza Storage Transfer Service per trasferire i dati nel bucket temporaneo che hai creato senza una policy di conservazione.
Esegui un trasferimento da bucket a bucket per trasferire i dati nel bucket con una policy di conservazione.
Elimina il bucket Cloud Storage che hai creato per archiviare temporaneamente i dati.
Opzioni per ottenere più larghezza di banda della rete
Esistono diverse opzioni per ottenere più larghezza di banda della rete per i trasferimenti di file system. L'aumento della larghezza di banda della rete contribuirà a ridurre i tempi di trasferimento, soprattutto per i set di dati di grandi dimensioni.
Peering con Google: il peering è una connessione diretta con Google per supportare lo scambio di traffico. Disponiamo di località di peering diretto in tutto il mondo. Per scoprire di più sui vantaggi e sulle nostre norme, vedi Peering.
Cloud Interconnect: Cloud Interconnect è simile al peering, ma utilizzerai un'interconnessione per connetterti a Google. Puoi scegliere tra due tipi di interconnessioni tra cui scegliere:
Dedicated Interconnect: ti connetti direttamente dal tuo data center a un data center Google tramite una connessione privata e dedicata. Per ulteriori informazioni, vedi 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, vedi Panoramica di Partner Interconnect.
Ottieni larghezza di banda dal tuo ISP: il tuo provider di servizi internet (ISP) potrebbe essere in grado di offrirti più larghezza di banda per le tue esigenze. Ti consigliamo di contattarlo per chiedere quali opzioni sono disponibili.