Prima di iniziare un trasferimento, devi creare un job di trasferimento e far installare e connettere uno o più agenti al job. Questo documento descrive come creare il job di trasferimento, installare agenti di trasferimento e come gestire i job di trasferimento.
Prerequisiti
Per utilizzare Transfer for on-premise, devi disporre di:
Una fonte conforme a POSIX.
Un server Linux o una macchina virtuale a Docker supportato da 64 bit in grado di accedere ai dati che intendi trasferire.
Docker Community Edition supporta i sistemi operativi CentOs, Debian, Fedora e Ubuntu.
Per utilizzare altri sistemi operativi Linux, consulta Docker Enterprise.
un bucket Cloud Storage senza un criterio di conservazione.
Per eseguire il trasferimento a un bucket con un criterio di conservazione, ti consigliamo di seguire questa procedura:
Crea un bucket Cloud Storage nella stessa area geografica del bucket finale. Assicurati che questo bucket temporaneo non abbia un criterio di conservazione.
Per saperne di più sulle aree geografiche, consulta la sezione Località dei bucket.
Usa Transfer Service for On Premises Data per trasferire i tuoi dati al bucket temporaneo che hai creato, senza criteri di conservazione.
Esegui un trasferimento da bucket a bucket per trasferire i dati al bucket con un criterio di conservazione.
Elimina il bucket Cloud Storage che hai creato per archiviare temporaneamente i tuoi dati.
Completa il trasferimento per la configurazione iniziale on-premise.
Prima di avviare un trasferimento, verifica quanto segue:
- Le porte TCP 80 (HTTP) e 443 (HTTPS) sono aperte per le connessioni in uscita.
Tutti i processi dell'agente all'interno di un singolo progetto Google Cloud hanno lo stesso filesystem montato nello stesso punto di montaggio.
Restrizioni di scalabilità su job e agenti
Il trasferimento per gli ambienti on-premise presenta le seguenti restrizioni in termini di scalabilità su job e agenti di trasferimento:
- Meno di un miliardo di file per job
- Massimo 100 agenti per progetto di trasferimento
- Il limite di larghezza di banda deve essere superiore a 1 MBps
Crea un job di trasferimento
Prima di iniziare un trasferimento, devi creare un job di trasferimento. Il lavoro di trasferimento si coordina e controlla gli agenti on-premise durante lo spostamento dei dati.
Per creare un job di trasferimento:
Interfaccia a riga di comando gcloud
Innanzitutto, se non hai già un pool di agenti e degli agenti per questo trasferimento:
Crea un pool di agenti:
gcloud transfer agent-pools create my-agent-pool
Installa agenti di trasferimento:
gcloud transfer agents install --pool=my-agent-pool --count=3
Consulta i requisiti e le best practice degli agenti per determinare il numero ottimale di agenti per il tuo ambiente.
Per eseguire gli agenti utilizzando una chiave dell'account di servizio, utilizza l'opzione
--creds-file
:gcloud transfer agents install --pool=my-agent-pool --count=3 \ --creds-file=/relative/path/to/service-account-key.json
Per un elenco completo dei flag facoltativi, esegui
gcloud transfer agents install --help
.
Quindi, usa il comando gcloud transfer jobs create
.
gcloud transfer jobs create \
SOURCE DESTINATION \
[--source-agent-pool=projects/$PROJECT_ID/agentPools/my-source-agent-pool] \
[--destination-agent-pool=projects/$PROJECT_ID/agentPools/my-destination-agent-pool] \
[--intermediate-storage-path=gs://INTERMEDIATE_BUCKET_NAME]
Dove:
SOURCE
è uno di:- Un file system POSIX, nel formato
posix:///path/to/folder
. Deve essere un percorso assoluto dalla radice della macchina host dell'agente. - Un bucket Cloud Storage, nel formato
gs://bucket-name
. - Un bucket Amazon S3 o un container Storage di Microsoft Azure.
- Un file system POSIX, nel formato
DESTINATION
è uno di:- Un filesystem POSIX, nel formato
posix:///path/to/folder
. Deve essere un percorso assoluto dalla radice della macchina host dell'agente. - Un bucket Cloud Storage, nel formato
gs://bucket-name
.
- Un filesystem POSIX, nel formato
--source-agent-pool
specifica il pool di agenti di origine da utilizzare per questo trasferimento, se si esegue il trasferimento da un file system.--destination-agent-pool
specifica il pool di agenti di destinazione da utilizzare per questo trasferimento, se esegue il trasferimento a un file system.--intermediate-storage-path
specifica il percorso di una cartella in un bucket Cloud Storage (gs://example-bucket/example-folder
) da utilizzare come archiviazione intermediaria durante il trasferimento tra due file system. Ti consigliamo di utilizzare una cartella vuota riservata a questo job di trasferimento per assicurarti che i dati trasferiti non interagiscano con i dati esistenti di Cloud Storage.
Altre opzioni sono:
Informazioni sul job: puoi specificare
name
edescription
.Programmazione: specifica
schedule-starts
,schedule-repeats-every
eschedule-repeats-until
oppuredo-not-run
.Opzioni di trasferimento: specifica se sovrascrivere i file di destinazione (
--overwrite-when=different
oalways
) e se eliminare determinati file durante o dopo il trasferimento (--delete-from=destination-if-unique
osource-after-transfer
); specificare i valori dei metadati da conservare (--preserve-metadata
) e, se vuoi, impostare una classe di archiviazione sugli oggetti trasferiti (--custom-storage-class
).Notifiche: configura le notifiche Pub/Sub per i trasferimenti con
notification-pubsub-topic
,notification-event-types
enotification-payload-format
.Logging: configura le azioni di trasferimento e gli stati delle azioni segnalati nei report generati per questo job.
Tieni presente che le condizioni degli oggetti (opzioni che iniziano con --include-
o
--exclude-
) non sono supportate per i trasferimenti che interessano i file system POSIX.
Ad esempio, per creare un job di trasferimento per spostare i dati da un file system locale a un bucket Google Cloud Storage denominato my-unique-bucket
, esegui:
gcloud transfer jobs create \
posix:///usr/local/my_dir gs://my-unique-bucket \
--source-agent-pool=projects/PROJECT_ID/agentPools/SOURCE_POOL`
Per visualizzare tutte le opzioni, esegui gcloud transfer jobs create --help
.
Cloud Console
Vai alla pagina Transfer Service for On Premises Data Console in Google Cloud Console.
Fai clic su Crea job di trasferimento.
Viene visualizzata la pagina Crea un job di trasferimento.
Seleziona un pool di agenti per il trasferimento. Per creare un nuovo pool di agenti:
Fai clic su Crea pool di agenti.
Viene visualizzato il modulo Crea un pool di agenti.
Compila il modulo, quindi fai clic su Crea.
Nella pagina Crea un job di trasferimento è evidenziato il nuovo pool di agenti. Selezionala per confermare.
Specifica un'origine inserendo il percorso completo della directory del file system di origine.
Specifica un bucket di destinazione Cloud Storage. Puoi inserire un nome bucket Cloud Storage o creare un nuovo bucket.
Per creare e selezionare un nuovo bucket:
Fai clic su Sfoglia.
Fai clic su Nuovo bucket.
Viene visualizzato il modulo Crea un bucket.
Compila il modulo, quindi fai clic su Crea e poi su Seleziona.
(Facoltativo) Per trasferire i file in una cartella anziché al bucket di primo livello, specifica il nome della cartella e il percorso completo per trovarla.
Descrivi il job di trasferimento. Inserisci una breve descrizione del trasferimento che ti aiuterà a tracciarlo.
(Facoltativo) Crea una pianificazione per il tuo lavoro.
Fai clic su Crea.
API REST
Utilizza transferJobs.create con
posixDataSource
:
POST https://storagetransfer.googleapis.com/v1/transferJobs
{
"name":"transferJobs/sample_transfer",
"description": "My First Transfer",
"status": "ENABLED",
"projectId": "my_transfer_project_id",
"schedule": {
"scheduleStartDate": {
"year": 2022,
"month": 5,
"day": 2
},
"startTimeOfDay": {
"hours": 22,
"minutes": 30,
"seconds": 0,
"nanos": 0
}
"scheduleEndDate": {
"year": 2022,
"month": 12,
"day": 31
},
"repeatInterval": {
"259200s"
},
},
"transferSpec": {
"posixDataSource": {
"rootDirectory": "/bar/",
},
"gcsDataSink": {
"bucketName": "destination_bucket"
"path": "foo/bar/"
},
}
}
Il campo schedule
è facoltativo; se non è incluso, il job di trasferimento deve essere avviato con una richiesta transferJobs.run
.
Per controllare lo stato del tuo trasferimento dopo aver creato un job, utilizza
transferJobs.get
:
GET https://storagetransfer.googleapis.com/v1/transferJobs/sample_transfer?project_id=my_transfer_project_id
Se non lo hai già fatto, installa ed esegui agenti di trasferimento on-premise su ciascuna delle tue macchine.
Controlla l'utilizzo della larghezza di banda per Transfer Service for On Premises Data
I limiti di larghezza di banda sono utili se devi limitare la quantità di dati utilizzati da Transfer Service per i dati on-premise per trasferire i dati in Cloud Storage. L'utilizzo di un limite di larghezza di banda garantisce che:
I tuoi uplink di rete non sono saturi a causa dell'utilizzo di Transfer Service per i dati on-premise.
Il comportamento dell'applicazione esistente dell'organizzazione non diminuisce durante il trasferimento.
Se stai utilizzando una connessione di rete che si ricarica in base all'utilizzo massimo della larghezza di banda, non c'è un aumento improvviso dei prezzi.
I limiti di larghezza di banda vengono applicati a livello di pool di agenti e sono divisi per tutti gli agenti nel pool.
Impostare un limite di larghezza di banda
Per impostare un limite di larghezza di banda:
Interfaccia a riga di comando gcloud
Puoi impostare un limite di larghezza di banda su un pool di agenti al momento della creazione o in qualsiasi momento una volta che il pool di agenti esiste.
Per impostare un limite di larghezza di banda quando crei un pool di agenti, specifica il flag --bandwidth-limit
:
gcloud transfer agent-pools create POOL_NAME --bandwidth-limit=BANDWIDTH_LIMIT
Per impostare un limite di larghezza di banda su un pool di agenti esistente, utilizza il comando
gcloud transfer agent-pools update
:
gcloud transfer agent-pools update POOL_NAME --bandwidth-limit=BANDWIDTH_LIMIT
Sostituisci POOL_NAME con il nome del pool da creare o aggiornare.
Sostituisci BANDWIDTH_LIMIT con un valore che rappresenta la larghezza di banda massima
in MB/s. Ad esempio, per impostare una larghezza di banda massima per tutti gli agenti nel pool
di 50 MB al secondo, specifica --bandwidth-limit=50
.
Cloud Console
In Cloud Console, vai alla pagina Servizio di trasferimento per dati on-premise.
Fai clic su Impostazioni di connessione.
Seleziona il pool di agenti da aggiornare.
Fai clic su Imposta limite larghezza di banda.
Inserisci il limite di rete desiderato in megabyte al secondo (MB/s) e fai clic su Set limit (Imposta limite).
Il limite della larghezza di banda viene visualizzato per il progetto.
Modifica un limite di larghezza di banda
Interfaccia a riga di comando gcloud
Per modificare il limite della larghezza di banda del pool di agenti, utilizza il comando
gcloud transfer agent-pools update
:
gcloud transfer agent-pools update POOL_NAME --bandwidth-limit=BANDWIDTH_LIMIT
Sostituisci POOL_NAME con il nome del pool da aggiornare. Sostituisci
BANDWIDTH_LIMIT con un valore che rappresenta la nuova larghezza di banda massima
in MB/s. Ad esempio, per impostare una larghezza di banda massima per tutti gli agenti nel pool
di 50 MB al secondo, specifica --bandwidth-limit=50
.
Per rimuovere un limite, utilizza il flag --clear-bandwidth-limit
:
gcloud transfer agent-pools update POOL_NAME --clear-bandwidth-limit
Cloud Console
Per modificare un limite di larghezza di banda esistente, fai clic su Modifica limite nella pagina Impostazioni di connessione.
Per rimuovere un limite, fai clic su Utilizza tutta la larghezza di banda.
Monitora job
Puoi monitorare il tuo servizio di trasferimento per i job dei dati on-premise per assicurarti che funzionino come previsto.
Per monitorare i job di trasferimento:
Interfaccia a riga di comando gcloud
Usa il comando transfer jobs monitor
:
gcloud transfer jobs monitor JOB_NAME
Per restituire maggiori dettagli, utilizza "nome operazione" restituito da questo comando come input per il comando operations describe
:
gcloud transfer operations describe OPERATION_NAME
Cloud Console
Vai alla pagina relativa a Transfer Service for On Premises Data in Google Cloud Console.
Vai alla pagina relativa a Transfer Service for On Premises Data
Viene visualizzato un elenco di job. Questo elenco include i job sia in esecuzione che completati.
Per visualizzare informazioni dettagliate su un job di trasferimento, fai clic sulla descrizione del job per il job che ti interessa.
Viene visualizzata la pagina Dettagli job.
Nella pagina Dettagli job sono visualizzate le seguenti informazioni:
Quantità di dati trasferiti.
Informazioni di configurazione sul job di trasferimento.
Informazioni job pianificate o ricorrenti.
Dettagli dell'esecuzione più recente.
Cronologia di tutte le esecuzioni dei job passate.
API REST
Utilizza transferJobs.list
per restituire un elenco di tutti i job di trasferimento.
Per ottenere ulteriori informazioni su un job di trasferimento specifico, utilizza
transferJobs.get
per restituire un oggetto
TransferJob
.
Per verificare lo stato di un trasferimento in corso, passa il valore TransferJob.latestOperationName
a transferOperations.get
.
Filtra job
Se hai molti lavori e vuoi monitorarne un sottoinsieme, valuta la possibilità di utilizzare i filtri per ordinare e visualizzare solo i lavori che ti interessano.
Per filtrare i job di trasferimento:
Interfaccia a riga di comando gcloud
Utilizza i flag --job-statuses
e --job-names
sul comando
transfer jobs list
per elencare i job con gli stati e/o i nomi specificati.
gcloud transfer jobs list --job-statuses=[JOB_STATUSES,…] --job-names=[JOB_NAMES,…]
I valori accettabili per JOB_STATUSES sono enabled
, disabled
e
deleted
. Separa gli stati con virgole.
Cloud Console
Fai clic su Elenco filtri filter_list.
Seleziona i filtri da applicare.
API REST
Per filtrare i job di trasferimento, fornisci il parametro di ricerca filter
a transferJobs.list
.
Modifica configurazioni job
Per modificare una configurazione del job:
Interfaccia a riga di comando gcloud
Per modificare un job esistente, utilizza il comando transfer jobs update
:
gcloud transfer jobs update NAME
Per un elenco completo dei campi che possono essere aggiornati, consulta il riferimento transfer jobs update
.
Cloud Console
Vai alla pagina relativa a Transfer Service for On Premises Data in Google Cloud Console.
Vai alla pagina relativa a Transfer Service for On Premises Data
Fai clic su Descrizione del job per il job che stai modificando.
Viene visualizzata la pagina Dettagli job.
Fai clic su Configurazione.
Fai clic sulla edit accanto all'elemento di configurazione che vuoi modificare.
API REST
Puoi aggiornare un job di trasferimento dopo averlo creato utilizzando
transferJobs.patch
.
Esegui nuovamente i job
Transfer Service for On Premises Data supporta l'esecuzione di un job completato ancora una volta. Questo può essere utile se hai alcuni dati aggiuntivi da spostare e vuoi riutilizzare una configurazione del job esistente.
Per eseguire di nuovo un job:
Interfaccia a riga di comando gcloud
Utilizza il comando transfer jobs run
:
gcloud transfer jobs run NAME
Per eseguire il job e bloccare altre attività nel terminale, fino al completamento dell'operazione di trasferimento,
includi il flag --no-async
. Se non sono incluse,
le attività vengono eseguite in modo asincrono.
gcloud transfer jobs run NAME --no-async
Cloud Console
Vai alla pagina relativa a Transfer Service for On Premises Data in Google Cloud Console.
Vai alla pagina relativa a Transfer Service for On Premises Data
Fai clic su Descrizione del job per il job che stai modificando.
Viene visualizzata la pagina Dettagli job.
Fai clic di nuovo su replayEsegui.
Il job inizia.
API REST
Puoi eseguire nuovamente un job di trasferimento utilizzando
transferJobs.run
e fornendo
jobName
.
Visualizza errori
Per visualizzare un esempio di errori riscontrati durante il trasferimento:
Interfaccia a riga di comando gcloud
Usa il comando transfer jobs monitor
:
gcloud transfer jobs monitor JOB_NAME
Per restituire ulteriori dettagli, passa il comando "quot nome dell'operazione" restituito dal comando gcloud transfer jobs monitor JOB_NAME
come input per il comando operations describe
:
gcloud transfer operations describe OPERATION_NAME
Cloud Console
Vai alla pagina relativa a Transfer Service for On Premises Data in Google Cloud Console.
Vai alla pagina relativa a Transfer Service for On Premises Data
Fai clic su Descrizione del job per il job che stai modificando.
Viene visualizzata la pagina Dettagli job.
Fai clic su Visualizza dettagli errore.
Viene visualizzata la pagina Dettagli errore, che mostra un campione di errori riscontrati durante il trasferimento.
API REST
Puoi visualizzare il job di errore di trasferimento utilizzando
transferOperations.get
.
Visualizza log di trasferimento
Transfer Service per i dati on-premise produce log di trasferimento dettagliati che puoi utilizzare per verificare i risultati del tuo job di trasferimento. Ogni job produce una raccolta di log di trasferimento archiviati nel bucket Cloud Storage di destinazione.
I log vengono generati quando il job di trasferimento è in esecuzione. I log completi sono in genere disponibili entro 15 minuti dal completamento del job.
Puoi visualizzare i log in uno dei seguenti modi:
Visualizzare gli errori in Google Cloud Console
Per visualizzare tutti gli errori riscontrati durante il trasferimento all'interno di Google Cloud Console:
Fai clic su Visualizza i log del trasferimento.
Viene visualizzata la pagina Dettagli bucket. Questa è una destinazione nel tuo bucket Cloud Storage.
Fai clic sul log di trasferimento che ti interessa.
Vengono visualizzati i log di trasferimento. Per ulteriori informazioni, consulta Formato del log di trasferimento.
Visualizza i log nel bucket di destinazione
I log di trasferimento sono archiviati nel bucket di destinazione al seguente percorso:
destination-bucket-name/storage-transfer/logs/transferJobs/job-name/transferOperations/operation-name
dove:
destination-bucket-name
è il nome del bucket Cloud Storage di destinazione del job.job-name
è il nome del job, così come viene visualizzato nell'elenco dei job.operation-name
è il nome dell'operazione di trasferimento singola, compreso come timestamp IS08601 e ID generato.
I log vengono aggregati e archiviati come oggetti. A ogni batch dei log viene assegnato il nome all'ora di creazione. Ad esempio:
my
bucket/storage-transfer/logs/transferOperations/job1/2019-10-19T10_52_56.519081644-07_00.log
Vengono visualizzati i log di trasferimento. Per ulteriori informazioni, consulta Formato del log di trasferimento.
Eseguire query BigQuery sui log di trasferimento
Per eseguire le query BigQuery sui log di trasferimento:
Esegui la query BigQuery.
Esempi di query
Numero di file che sono stati tentati il trasferimento e che si sono verificati senza errori
select ActionStatus, count(*) as num_files from big-query-table where Action="TRANSFER" group by 1;
Dove big-query-table
è il nome della tabella
BigQuery che contiene il log di trasferimento.
Visualizza tutti i file che non sono stati trasferiti
select Src_File_Path from big-query-table where Action="TRANSFER" and ActionStatus="FAILED";
Dove big-query-table
è il nome della tabella
BigQuery che contiene il log di trasferimento.
Checksum e timestamp di visualizzazione per ogni file trasferito correttamente
select Timestamp, Action, ActionStatus, Src_File_Path, Src_File_Size, Src_File_Crc32C, Dst_Gcs_BucketName, Dst_Gcs_ObjectName, Dst_Gcs_Size, Dst_Gcs_Crc32C, Dst_Gcs_Md5 from big-query-table where Action="TRANSFER" and ActionStatus="SUCCEEDED";
Dove big-query-table
è il nome della tabella
BigQuery che contiene il log di trasferimento.
Visualizza tutte le informazioni sugli errori per le directory che non è stato possibile trasferire
select FailureDetails_ErrorType, FailureDetails_GrpcCode, FailureDetails_Message from big-query-table where Action="FIND" and ActionStatus="FAILED";
Dove big-query-table
è il nome della tabella
BigQuery che contiene il log di trasferimento.
Passaggi successivi
Per informazioni sull'ottimizzazione della configurazione dell'agente, consulta i requisiti e le best practice degli agenti.