Questa pagina fornisce una panoramica del trasferimento dei bucket, dei relativi vantaggi, dei casi d'uso, del funzionamento e delle limitazioni.
Panoramica
Il trasferimento dei bucket Cloud Storage consente la migrazione dei bucket tra località geografiche senza server. Con il trasferimento dei bucket, puoi:
Spostare un bucket esistente da una posizione a un'altra senza modificarne il nome o richiedere il trasferimento manuale dei dati all'interno del bucket.
Migliora le prestazioni e l'efficienza in termini di costi allineando la configurazione di Cloud Storage del tuo carico di lavoro a Compute Engine.
Vantaggi
I vantaggi del trasferimento dei bucket sono i seguenti:
Migrazione semplificata: puoi spostare i bucket con un sovraccarico operativo minimo. Non sono richiesti script complessi o processi in più fasi.
Funzionamento continuo: le applicazioni rimangono accessibili durante tutto il processo di rilocazione, senza tempi di riposo per le operazioni di lettura e tempi di riposo minimi per le operazioni di scrittura.
Miglioramento delle prestazioni: la co-localizzazione delle risorse Compute Engine e Cloud Storage all'interno della stessa regione può ridurre la latenza e migliorare le prestazioni.
Conservazione dei metadati: il processo di spostamento del bucket conserva i metadati degli oggetti. La conservazione dei metadati degli oggetti garantisce la compatibilità con le applicazioni e i flussi di lavoro esistenti dopo lo spostamento del bucket.
Configurazioni delle classi di archiviazione: puoi mantenere le impostazioni esistenti della classe di Cloud Storage, inclusa Autoclass. La conservazione della classe di archiviazione garantisce la coerenza della struttura dei costi dopo il trasferimento.
Perché dovresti utilizzare il trasferimento dei bucket?
Di seguito sono riportati alcuni casi d'uso per la rilocazione dei bucket:
Riduci i costi di trasferimento dei dati: se i dati vengono spesso usati da una posizione distante da dove sono archiviati, puoi spostare il bucket in una posizione vicina a quella da cui viene eseguito l'accesso, con una conseguente riduzione dei costi di trasferimento dei dati. Ad esempio, se i dati sono accessibili principalmente dall'Europa, ma sono archiviati negli Stati Uniti, puoi spostare il bucket in una località europea per ridurre i costi.
Migliora il rendimento: puoi migliorare la velocità e la risposta della tua applicazione avvicinando i dati a Compute Engine. Ad esempio, se la tua applicazione viene eseguita in
us-central1
, ma i dati si trovano inasia-east1
, puoi spostare il bucket inus-central1
per ridurre la latenza.Migliora la resilienza: puoi proteggere i tuoi dati critici da interruzioni regionali. Ad esempio, se i dati vengono archiviati in una singola regione, puoi trasferirli in località a due o più regioni per una maggiore disponibilità e un ripristino di emergenza.
Tipi di trasferimento
Il fatto che il trasferimento di un bucket implichi o meno un tempo di riposo per le scritture dipende dalle posizioni di origine e di destinazione del bucket. Per informazioni su come la località influisce sul tipo di scambio, consulta Determinare il tipo di scambio del bucket. I due tipi di spostamento dei bucket sono i seguenti:
Rilocazione del bucket con tempo di riposo per le scritture: durante la rilocazione del bucket con tempo di riposo per le scritture, esiste un periodo di tempo durante il quale non puoi eseguire operazioni di scrittura degli oggetti durante il processo di rilocazione del bucket.
Rilocazione del bucket senza tempo di riposo per le scritture: con la rilocazione del bucket senza tempo di riposo per le scritture, puoi continuare a eseguire operazioni di scrittura degli oggetti senza interruzioni mentre la rilocazione del bucket avviene in background.
La seguente tabella descrive le differenze importanti tra i tipi di spostamento con e senza tempo di riposo per le scritture:
Specifica | Spostamento del bucket con tempo di inattività per le scritture | Spostamento dei bucket senza tempi di inattività per le scritture |
---|---|---|
Disponibilità della scrittura | Impossibile eseguire operazioni di scrittura durante il passaggio di sincronizzazione finale. | Nessuna interruzione delle operazioni di scrittura. |
Coinvolgimento degli utenti | Richiede all'utente di avviare il passaggio di finalizzazione del tempo di inattività in scrittura. | Non è richiesto alcun passaggio di finalizzazione esplicito. |
Impatto sulle prestazioni | Impossibile scrivere o aggiornare gli oggetti all'interno del bucket durante il passaggio di sincronizzazione finale. | Potenziale aumento della latenza di lettura e scrittura degli oggetti durante il trasferimento. |
Annullamento dello spostamento del bucket | Più veloce delle migrazioni senza tempi di riposo per le scritture. | L'annullamento non è immediato. L'operazione può richiedere più tempo a causa della necessità di eseguire il completamento degli oggetti. |
Funzionalità supportate | Supporto delle funzionalità inferiore rispetto ai trasferimenti senza tempi di riposo per le scritture. | Limitazioni a funzionalità come i caricamenti suddivisi in più parti, i criteri di conservazione, Firebase e appspot. Per ulteriori informazioni su queste limitazioni, consulta la sezione Limitazioni. |
Determina il tipo di spostamento del bucket
Le posizioni dei bucket di origine e di destinazione determinano il tipo di trasferimento.
Quando sposti un bucket tra regioni, due regioni o più regioni, si verifica un tempo di riposo durante il quale non puoi scrivere nel bucket. Tuttavia, puoi riallocare un bucket senza tempi di inattività nei seguenti casi:
Esegui il trasferimento da una località a più regioni a una a due regioni configurabile se entrambe le località condividono lo stesso codice multiregione.
Spostare i dati tra regioni a due configurabili se entrambe le località condividono lo stesso codice per più regioni.
Spostare da una regione doppia configurabile a una multiregione se entrambe le località condividono lo stesso codice multiregione.
Informazioni sulla procedura di spostamento dei bucket
Il trasferimento dei bucket consente di spostare i dati da un bucket di origine a un bucket di destinazione. Il bucket di origine contiene i dati che vuoi spostare e il bucket di destinazione è la destinazione in cui vuoi spostarli.
Il seguente diagramma mostra il flusso della procedura di scambio del bucket.

I passaggi numerati fanno riferimento ai numeri nel diagramma. Il diagramma mostra i seguenti passaggi:
Copia dei dati incrementale: il passaggio di copia incrementale dei dati copia i dati dal bucket di origine al bucket di destinazione. I metadati del bucket sono bloccati per scrittura per impedire eventuali modifiche al bucket che potrebbero influire sul processo di trasferimento. Tuttavia, puoi scrivere, modificare ed eliminare gli oggetti nel bucket. I fattori che influiscono sulla durata sono i seguenti:
- La frequenza di aggiornamenti, eliminazioni o aggiunte di oggetti all'interno del
bucket influisce direttamente sulla durata della copia. Un tasso di variazione più elevato richiede più tempo. Esiste una frequenza massima di movimento degli oggetti pari a
Rm, objects/second
. ConN
oggetti totali e una frequenza di aggiornamento diR objects/second
, la durata del passaggio di copia può essere stimata inN / (Rm - R)
secondi.
I bucket di grandi dimensioni richiedono più tempo per il trasferimento a causa della larghezza di banda limitata.
Le dimensioni dei singoli oggetti influiscono sul tempo di copia. Il trasferimento di oggetti di dimensioni superiori a 10 GB richiede più tempo rispetto a quello di oggetti di dimensioni inferiori a 10 GB a causa di limitazioni della larghezza di banda. Ad esempio, la copia di un oggetto di 1 TB richiede un giorno. Ti consigliamo di suddividere gli oggetti di grandi dimensioni in oggetti più piccoli di dimensioni comprese tra 0,1 e 1 GB.
Per ulteriori informazioni su come avviare la copia incrementale dei dati, consulta Avviare il passaggio di copia incrementale dei dati.
- La frequenza di aggiornamenti, eliminazioni o aggiunte di oggetti all'interno del
bucket influisce direttamente sulla durata della copia. Un tasso di variazione più elevato richiede più tempo. Esiste una frequenza massima di movimento degli oggetti pari a
Monitora la copia dei dati incrementali: per visualizzare lo stato del passaggio di copia dei dati incrementali, puoi controllare regolarmente l'elenco delle operazioni in esecuzione prolungata. Per informazioni su come controllare lo stato del passaggio di copia dei dati incrementali, vedi Monitorare il passaggio di copia dei dati incrementali.
Sincronizzazione finale: per i trasferimenti con tempo di riposo per le scritture, al termine della copia incrementale dei dati dovrai attivare il passaggio di sincronizzazione finale. Il passaggio finale della sincronizzazione include un periodo durante il quale non puoi scrivere nel bucket per garantire la coerenza dei dati. Il passaggio di sincronizzazione finale include le seguenti azioni:
Il bucket è temporaneamente bloccato per le scritture. Di conseguenza, durante questo periodo non puoi scrivere o aggiornare gli oggetti all'interno del bucket, evitando così incoerenze nei dati.
Eventuali modifiche apportate ai dati dell'oggetto all'interno di un bucket dal passaggio di copia incrementale vengono copiate nel bucket di destinazione, garantendo che il bucket di destinazione abbia i dati più aggiornati. Al termine della copia degli oggetti, viene eseguito un confronto per garantire la parità dei dati tra i bucket di origine e di destinazione. Dopo il confronto dei dati, la posizione del bucket viene aggiornata e tutte le richieste vengono reindirizzate alla nuova posizione.
Una volta trasferiti e verificati tutti i dati e il bucket è operativo nella nuova posizione, il blocco scrittura viene rimosso. Puoi quindi riprendere la scrittura e l'aggiornamento degli oggetti nel bucket.
Per informazioni su come avviare il passaggio di sincronizzazione finale, vedi Avviare il passaggio di sincronizzazione finale.
Limitazioni
Il servizio di spostamento dei bucket supporta fino a cinque spostamenti contemporaneamente dalla stessa posizione all'interno di un progetto.
Le sezioni seguenti descrivono le limitazioni che si applicano ai trasferimenti con tempo di riposo per le scritture e senza tempo di riposo per le scritture.
Spostamento con limitazioni del tempo di inattività per le scritture
Il trasferimento con tempo di riposo per le scritture presenta le limitazioni elencate nelle sezioni seguenti.
Limitazioni di gestione dei dati
Di seguito sono riportate le limitazioni relative alla gestione dei dati durante il trasferimento:
- Mancata esecuzione delle tabelle: le tabelle esterne BigLake e le tabelle BigQuery che utilizzano Apache Iceberg non funzioneranno e dovranno essere rico create manualmente. Il rilevamento automatico delle tabelle interessate non è disponibile.
Gestione degli oggetti Autoclass: Autoclass utilizza i pattern di accesso per determinare quando eseguire la transizione degli oggetti alle classi di archiviazione meno frequenti. Durante la sincronizzazione finale del processo di trasferimento del bucket, Autoclass viene messo in pausa e gli oggetti non vengono trasferiti alle classi di archiviazione ad accesso meno frequente. Al termine della sincronizzazione finale, Autoclass riprende.
Gli oggetti in una classe di archiviazione standard vengono gestiti come segue:
- Gli oggetti della classe di archiviazione Standard hanno un periodo di blocco di 30 giorni prima che sia possibile eseguire la transizione a una classe meno frequente come Nearline Storage. Quando un oggetto della classe di archiviazione Standard viene spostato durante il trasferimento, viene trattato come se fosse stato eseguito l'accesso. Di conseguenza, la procedura di trasferimento reimposta il periodo di assenza di accesso e, anche se un oggetto era vicino alla transizione a Nearline Storage prima del trasferimento, deve attendere altri 30 giorni al termine del trasferimento.
Gli oggetti in una classe di archiviazione non standard vengono gestiti come segue:
La rilocazione di oggetti nelle classi di archiviazione Nearline, Coldline o Archive non viene considerata come accesso. Di conseguenza, il periodo di blocco dell'accesso per questi oggetti non è interessato.
Se leggi o scrivi un oggetto in un bucket con una classe di archiviazione non standard durante il trasferimento, non verrà eseguito automaticamente l'upgrade a una classe più calda come Standard Storage. In questo modo, puoi evitare transizioni non necessarie delle classi di archiviazione durante la procedura di trasferimento.
Se è stato pianificato il downgrade di un oggetto a una classe di archiviazione meno frequente, ad esempio da archiviazione Nearline a archiviazione Coldline, la procedura di scambio non interferirà con la pianificazione. Il downgrade procederà come previsto al termine del trasferimento.
Limite di dimensioni degli oggetti: per il trasferimento, le dimensioni degli oggetti non devono superare i 2 TB.
Funzionalità non supportate
I bucket che utilizzano le seguenti funzionalità non possono essere spostati:
- Chiavi di crittografia gestite dal cliente (CMEK) o chiavi di crittografia fornite dal cliente (CSEK).
- Criteri di conservazione bloccati.
- Oggetti con blocchi temporanei.
- Caricamenti multiparte. Devi completare o annullare eventuali caricamenti suddivisi in più parti non completati prima di avviare il processo di scambio del bucket.
- Tag. L'aggiunta di tag durante il trasferimento non è consigliata perché causa il fallimento del processo.
- Bucket Appspot. Valuta la possibilità di eseguire la migrazione di Container Registry ad Artifact Registry come soluzione alternativa per i bucket predefiniti creati da App Engine.
- Bucket Firebase. Non puoi spostare i bucket associati a Firebase.
Restrizioni operative
Il trasferimento del bucket con tempo di riposo per le scritture presenta le seguenti limitazioni operative:
- Limitazione del progetto: non puoi spostare i bucket tra i progetti.
- Caricamenti ripristinabili: i caricamenti ripristinabili in corso devono essere completati prima del passaggio di sincronizzazione finale per evitare la perdita di dati.
- Aggiornamenti dei metadati: non puoi aggiornare i metadati di un bucket durante il trasferimento.
- Aumento graduale della frequenza di richiesta: i bucket spostati sono soggetti alle stesse linee guida per l'aumento graduale della frequenza di richiesta dei bucket appena creati.
Spostamento senza limitazioni dei tempi di inattività per le scritture
Il trasferimento del bucket senza tempi di inattività per le scritture presenta le seguenti limitazioni:
- Caricamenti multiparte: i caricamenti multiparte non completati non sono supportati e devono essere completati o interrotti prima del trasferimento. I nuovi caricamenti suddivisi in più parti vengono bloccati durante il trasferimento.
- Criteri di conservazione: tutti i criteri di conservazione devono essere sbloccati prima del trasferimento.
- Bucket Firebase e Appspot: il trasferimento non è supportato per i bucket associati a Firebase o Appspot.
- Aggiornamenti sullo stato di avanzamento: gli aggiornamenti sullo stato di avanzamento del trasferimento potrebbero non essere lineari.
Regione non supportata
Il trasferimento dei bucket non è disponibile nella regione me-central1
per i bucket di origine o di destinazione.
Passaggi successivi
- Scopri come pianificare il trasferimento di un bucket.
- Scopri come rilocalizzare i bucket.