Questa pagina mostra come trasferire dati da due file system POSIX. I casi d'uso comuni includono:
- burst a cloud e HPC ibrido: trasferisci rapidamente grandi set di dati da on-premise al cloud per l'elaborazione.
- Migrazione e sincronizzazione con Filestore: esegui la migrazione o la sincronizzazione dei dati da un file system on-premise a Filestore.
- Trasferimento file gestito: trasferisci in modo sicuro e affidabile i dati tra i data center o tra due file system in-cloud.
Linee guida sulle prestazioni del trasferimento
Le seguenti linee guida possono aiutarti a massimizzare le prestazioni durante i trasferimenti tra file system.
Deployment dell'agente
In generale, consigliamo di utilizzare tre agenti in ciascuno dei pool di agenti di origine e di destinazione. Monitora il trasferimento e, se necessario, aggiungi altri agenti. Ogni agente ha bisogno di 4 vCPU e 8 GiB di RAM.
Se stai eseguendo la migrazione a un'istanza Filestore, ti consigliamo di utilizzare il tipo di istanza n2-standard-8
per ogni agente. Specifica nconnect=2
quando installi l'istanza su una VM di Compute Engine. Per ulteriori informazioni su come ottimizzare e testare le prestazioni delle istanze, consulta le linee guida sulle prestazioni di Filestore.
Trasferimento di grandi quantità di file piccoli
Per prestazioni migliori durante il trasferimento di un numero elevato di file di piccole dimensioni, ti consigliamo di suddividere i file in più directory ed evitare di utilizzare un'unica directory con milioni di file.
Prima di iniziare
Prima di eseguire le attività descritte in questa pagina, completa i passaggi preliminari.
Crea pool di agenti e installa gli agenti
Per i trasferimenti tra file system e file system, devi creare pool di agenti e agenti per i file system di origine e di destinazione. Gli agenti per il pool di agenti di origine devono essere installati sulle macchine o sulle VM che hanno accesso al file system di origine. Gli agenti per il pool di agenti di destinazione devono essere installati sulle macchine o sulle VM che hanno accesso al file system di destinazione.
Crea un pool di agenti di origine
Crea un pool di agenti di origine utilizzando uno dei seguenti metodi:
Interfaccia a riga di comando gcloud
Crea un pool di agenti di origine eseguendo questo comando:
gcloud transfer agent-pools create SOURCE_AGENT_POOL
Sostituisci SOURCE_AGENT_POOL con il nome che vuoi assegnare al pool di agenti di origine.
Console Google Cloud
Nella console Google Cloud, vai alla pagina Pool di agenti.
Viene visualizzata la pagina Pool di agenti, in cui sono elencati i pool di agenti esistenti.
Fai clic su Crea un altro pool.
Inserisci un nome per il pool.
Fai clic su Crea.
Installa gli agenti per il pool di agenti di origine
Installa gli agenti per il pool di agenti di origine su una macchina o una VM che ha accesso al file system di origine:
Interfaccia a riga di comando gcloud
Installa gli agenti per il pool di agenti di origine eseguendo:
gcloud transfer agents install --pool=SOURCE_AGENT_POOL --count=NUMBER_OF_AGENTS \
--mount-directories=MOUNT_DIRECTORIES
Sostituisci quanto segue:
- SOURCE_AGENT_POOL con il nome del pool di agenti di origine.
- NUMBER_OF_AGENTS con il numero di agenti che vuoi installare per il pool di agenti di origine. Per determinare il numero ottimale di agenti per il tuo ambiente, consulta Requisiti e best practice per gli agenti.
- MOUNT_DIRECTORIES con un elenco separato da virgole di directory nel file system di origine da cui copiare. L'omissione di questo flag monta l'intero file system, che potrebbe presentare un rischio per la sicurezza.
Console Google Cloud
Nella console Google Cloud, vai alla pagina Pool di agenti.
Viene visualizzata la pagina Pool di agenti, in cui sono elencati i pool di agenti esistenti.
Fai clic sul nome del pool di agenti di origine appena creato.
Nella scheda Agenti, fai clic su Install agent (Installa agente).
Segui le istruzioni nella console Google Cloud per creare la risorsa Pub/Sub, installare Docker e avviare l'agente.
Crea un pool di agenti di destinazione e installa gli agenti
Ripeti i passaggi precedenti per creare un pool di agenti di destinazione e installare gli agenti.
Crea un bucket Cloud Storage come intermediario
I trasferimenti tra file system e file system richiedono un bucket Cloud Storage come intermediario per il trasferimento di dati.
Crea un bucket di classe Standard di Cloud Storage con le seguenti impostazioni:
- Crittografia: puoi specificare una chiave di crittografia gestita dal cliente (CMEK). In caso contrario, viene utilizzata una chiave di crittografia gestita da Google.
- Controllo delle versioni degli oggetti, blocco di bucket e blocchi degli oggetti predefiniti: mantieni disattivate queste funzionalità.
Concedi le autorizzazioni e i ruoli utilizzando uno dei seguenti metodi:
- Concedi all'account di servizio Storage Transfer Service il ruolo Amministratore Storage (
roles/storage.admin
) per il bucket. Utilizza
gcloud transfer authorize
per autorizzare il tuo account per tutte le funzionalità di Storage Transfer Service. Questo comando concede le autorizzazioni Amministratore Storage a livello di progetto:gcloud transfer authorize --add-missing
- Concedi all'account di servizio Storage Transfer Service il ruolo Amministratore Storage (
Creare un job di trasferimento
Interfaccia a riga di comando gcloud
Per creare un trasferimento dal file system di origine al file system di destinazione, esegui
gcloud transfer jobs create SOURCE_DIRECTORY DESTINATION_DIRECTORY \
--source-agent-pool=SOURCE_AGENT_POOL \
--destination-agent-pool=DESTINATION_AGENT_POOL \
--intermediate-storage-path= gs://STORAGE_BUCKET/FOLDER/
Sostituisci le seguenti variabili:
- SOURCE_DIRECTORY con il percorso della directory di origine.
- DESTINATION_DIRECTORY con il percorso della directory di destinazione.
- SOURCE_AGENT_POOL con il nome del pool di agenti di origine.
- DESTINATION_AGENT_POOL con il nome del pool di agenti di destinazione.
- STORAGE_BUCKET con il nome del bucket Cloud Storage.
- FOLDER con il nome della cartella in cui vuoi che vengano trasferiti i dati.
Quando avvii un job di trasferimento, il sistema esegue innanzitutto il calcolo dei dati nell'origine e nella destinazione per determinare quelli nuovi o aggiornati dal trasferimento precedente. Vengono trasferiti solo i nuovi dati.
Librerie client
Go
Java
Node.js
Python
Gestisci bucket intermedi
Al termine di un job di trasferimento, Storage Transfer Service salva i dati dei log di trasferimento trasferiti e i dati non trasferiti nel bucket. Dopo il trasferimento, le attività di pulizia vengono avviate automaticamente per eliminare i dati intermedi. In alcuni casi, le attività di pulizia non eliminano tutti i dati nel bucket. Per eliminare i dati che non vengono cancellati durante la pulizia, segui le istruzioni riportate di seguito per eliminare i dati manualmente o per impostare una regola del ciclo di vita per eliminarli automaticamente.
Pulizia manuale
Elimina i dati dal bucket intermediario eseguendo i seguenti comandi gsutil
in base al tipo di dati che vuoi eliminare.
Per cancellare i dati nel bucket intermediario che non sono stati eliminati durante la pulizia, esegui il comando seguente:
gsutil -m rm gs://STORAGE_BUCKET/PREFIX**
Per eliminare tutti i dati, inclusi i log di trasferimento, specifica la radice del bucket utilizzando il carattere jolly match-all (*).
gsutil -m rm gs://STORAGE_BUCKET/*
Per eliminare il bucket, esegui questo comando:
gsutil -m rm gs://STORAGE_BUCKET
Sostituisci le seguenti variabili:
STORAGE_BUCKET con il nome del bucket intermediario.
PREFIX con il nome della cartella in cui sono stati trasferiti i dati all'interno del bucket intermediario.
Imposta una regola del ciclo di vita
Per eliminare i dati che non vengono cancellati dal ciclo di pulizia automatica, imposta una regola del ciclo di vita per il bucket Cloud Storage. Utilizza la condizione age
per cancellare i dati intermedi nel bucket specificando un periodo più lungo del job di trasferimento più lungo che utilizza il bucket come intermediario. Se la condizione di età specificata è più breve del tempo necessario per scaricare il file dal bucket dell'intermediario alla destinazione, il trasferimento del file non riesce.
Facoltativamente, utilizza la condizione matchesPrefix
per cancellare i dati nella cartella specificata per il bucket intermedio. Per eliminare i log di trasferimento insieme ai dati nel bucket, la condizione matchesPrefix
non è obbligatoria.
Conservazione dei metadati dei file
Per conservare i metadati dei file, inclusi UID, GID, MODE e link simbolici numerici:
Interfaccia a riga di comando gcloud
Utilizza il campo --preserve-metadata
per specificare il comportamento di conservazione per questo trasferimento. Le opzioni che si applicano ai trasferimenti di file system sono: gid
,
mode
, symlink
, uid
.
API REST
Specifica le opzioni appropriate in un oggetto metadataOptions
.
Per ulteriori informazioni, consulta Preservazione degli attributi POSIX facoltativi.
Trasferimento di esempio che utilizza l'interfaccia a riga di comando gcloud
In questo esempio, trasferiamo i dati dalla directory /tmp/datasource
su VM1 a /tmp/destination
su VM2.
Configura l'origine del trasferimento.
Crea il pool di agenti di origine:
gcloud transfer agent-pools create source_agent_pool
Su VM1, installa gli agenti per
source_agent_pool
eseguendo questo comando:gcloud transfer agents install --pool=source_agent_pool \ --count=1 \ --mount-directories="/tmp/datasource"
Configura la destinazione del trasferimento.
Crea il pool di agenti di destinazione:
gcloud transfer agent-pools create destination_agent_pool
Su VM2, installa gli agenti per
destination_agent_pool
eseguendo questo comando:gcloud transfer agents install --pool=destination_agent_pool \ --count=3 \ --mount-directories="/tmp/destination"
Creare un bucket Cloud Storage intermediario.
Crea un bucket denominato
my-intermediary-bucket
:gsutil mb gs://my-intermediary-bucket
Autorizza il tuo account per tutte le funzionalità di Storage Transfer Service eseguendo questo comando:
gcloud transfer authorize --add-missing
Crea un job di trasferimento eseguendo:
gcloud transfer jobs create posix:///tmp/datasource posix:///tmp/destination \ --source-agent-pool=source_agent_pool \ --destination-agent-pool=destination_agent_pool \ --intermediate-storage-path=gs://my-intermediary-bucket
Passaggi successivi
- Scopri di più sulla gestione dei job.