Panoramica dei backup di Bigtable

Questa pagina fornisce una panoramica dei backup di Bigtable. I contenuti presentati qui sono destinati agli amministratori e agli sviluppatori di Bigtable.

I backup ti consentono di salvare una copia dello schema e dei dati di una tabella e di ripristinarli dal backup in una nuova tabella in un secondo momento. Bigtable offre due tipi di backup. Il tipo di backup che crei dipende dai requisiti di ripristino di emergenza (RE) e dal tipo di archiviazione (HDD o SSD) utilizzato dal tuo cluster Bigtable.

  • I backup standard sono ottimizzati per la conservazione a lungo termine. Quando esegui il ripristino da un backup standard a un cluster SSD, l'operazione di ripristino richiede un'ottimizzazione aggiuntiva da parte di Bigtable per portare la tabella a prestazioni di livello di produzione. Per ulteriori informazioni, consulta Rendimento durante il ripristino
  • Gli hot backup offrono il ripristino più efficiente per le prestazioni di produzione e la pubblicazione a bassa latenza. Per ulteriori informazioni, consulta Backup caldi

Puoi creare i backup nei seguenti modi:

  • Attiva il backup automatico per consentire a Bigtable di creare backup giornalieri per tuo conto
  • Crea un backup on demand utilizzando la console Google Cloud, l'gcloud CLI o una libreria client Bigtable
  • Creare una copia di un backup

Prima di leggere questa pagina, devi conoscere la panoramica di Bigtable e Gestire le tabelle.

Funzionalità

  • Completamente integrato: i backup vengono gestiti interamente dal servizio Bigtable, senza necessità di importazione o esportazione.
  • Incrementale: un backup condivide lo spazio di archiviazione fisico con la tabella di origine e con altri backup della tabella.
  • Economico: l'utilizzo dei backup di Bigtable ti consente di evitare i costi associati all'esportazione, allo stoccaggio e all'importazione dei dati utilizzando altri servizi.
  • Scadenza automatica: ogni backup ha una data di scadenza definita dall'utente che può essere fino a 90 giorni dopo la creazione del backup. Puoi memorizzare una copia di un backup per un massimo di 30 giorni.
  • Opzioni di ripristino flessibili: puoi eseguire il ripristino da un backup in una tabella di un'istanza diversa da quella in cui è stato creato il backup.
  • Backup automatico: abilita il backup automatico per consentire a Bigtable di creare backup giornalieri.
  • Backup a caldo: pianifica il ripristino di emergenza con backup a caldo pronti per la produzione.

Casi d'uso

I backup sono utili per i seguenti casi d'uso:

  • Continuità aziendale
  • Conformità normativa
  • Test e sviluppo
  • Ripristino di emergenza

Considera i seguenti scenari di ripristino di emergenza:

Obiettivo Strategia di backup Strategia di restauro
Protezione da errori umani: è consigliabile avere sempre a disposizione un backup recente dei dati in caso di eliminazione o danneggiamento accidentale. Determina la pianificazione della creazione dei backup più adatta alle esigenze della tua attività, ad esempio giornaliera. Se vuoi, crea copie periodiche dei backup e archiviale in un progetto o una regione diversa per una maggiore isolamento e protezione. Per una protezione ancora maggiore, archivia le copie di backup in un progetto o un'istanza con autorizzazioni di accesso limitate. Ripristina una nuova tabella dal backup o dalla copia, quindi reindirizza le richieste alla nuova tabella.
Mancata disponibilità della zona: devi assicurarti che, nell'improbabile caso in cui una zona Google Cloud non sia più disponibile, i tuoi dati siano ancora disponibili. Abilita il backup automatico per consentire a Bigtable di creare un backup giornaliero su ogni cluster dell'istanza. In alternativa, crea i backup su base regolare, poi crea periodicamente una copia del backup più recente e archiviala su uno o più cluster in zone diverse (facoltativo in un'istanza o un progetto diverso). Se la zona in cui si trova il cluster di pubblicazione diventa non disponibile, esegui il ripristino dalla copia di backup remota in una nuova tabella e reindirizza le richieste alla nuova tabella.
Corruzione dei dati: utilizza un backup per recuperare alcuni dati di una tabella, ad esempio quando parte della tabella di origine è stata danneggiata. Abilita la replica e il backup automatico per creare backup giornalieri in più regioni, in modo che, se una tabella viene danneggiata su un cluster, tu abbia uno o più backup che non condividono lo spazio di archiviazione sul cluster danneggiato. Ripristina dal backup in una nuova tabella nel nuovo cluster o nella nuova istanza. Quindi, scrivi un'applicazione che utilizza una libreria client Bigtable o Dataflow che legga dalla nuova tabella e poi scriva nuovamente i dati nella tabella di origine. Quando i dati sono stati copiati nella tabella originale, elimina la nuova tabella.
Recupero rapido: ripristina rapidamente i livelli di prestazioni di produzione completi, riducendo al minimo i tempi di riposo. Mantieni sempre un backup caldo recente della tabella. Ripristina in una nuova tabella dal backup caldo e poi reindirizza le richieste alla nuova tabella.

Hot backup

Un hot backup è un backup pronto per la produzione ottimizzato per un recupero rapido, con una latenza inferiore durante la lettura dalla nuova tabella poco dopo il ripristino. Il ripristino delle prestazioni di produzione da un hot backup è più rapido rispetto al ripristino da un backup standard.

Puoi convertire un backup caldo in un backup standard, ma non puoi convertire un backup standard in un backup caldo.

Non puoi creare backup caldi utilizzando il backup automatico e non puoi creare un backup caldo su un cluster HDD.

Utilizzo dei backup di Bigtable

Per i backup di Bigtable sono disponibili le seguenti azioni. In tutti i casi, il progetto, l'istanza e il cluster di destinazione devono già esistere. Non puoi creare queste risorse nell'ambito di un'operazione di backup.

  1. Non puoi creare una copia di una copia di backup.
  2. Una copia di un backup è sempre un backup standard, anche se l'origine è un hot backup.
Azione Opzioni di destinazione
Creare un backup standard
  • Qualsiasi cluster nella stessa istanza della tabella di origine
Creare un hot backup
  • Qualsiasi cluster nella stessa istanza della tabella di origine. L'istanza deve utilizzare lo spazio di archiviazione SSD.
Ripristino da un backup standard o hot in una nuova tabella
  • Qualsiasi istanza
  • Qualsiasi regione Bigtable
  • Qualsiasi progetto
Copiare un backup1, 2
  • Qualsiasi istanza
  • Qualsiasi regione Bigtable
  • Qualsiasi progetto

Per istruzioni dettagliate su queste azioni, nonché su operazioni come l'aggiornamento e l'eliminazione dei backup, consulta Gestire i backup.

Spazio di archiviazione dei backup

Un backup della tabella creato on demand viene archiviato in un singolo cluster specificato. Quando il backup automatico è abilitato, viene creato e archiviato un backup su ogni cluster dell'istanza.

Un backup di una tabella include tutti i dati presenti al momento della creazione del backup nel cluster in cui viene creato. Le dimensioni di un backup non superano mai quelle della tabella di origine al momento della creazione del backup.

I backup standard sono incrementali. La quantità di spazio di archiviazione consumata da un backup standard dipende dalle dimensioni della tabella e dal grado in cui può condividere lo spazio di archiviazione dei dati invariati con la tabella originale o altri backup della stessa tabella. Per questo motivo, le dimensioni di un backup dipendono dalla quantità di dati divergenti dal backup precedente.

Un hot backup, invece, è una copia completa che consuma la stessa quantità di spazio di archiviazione al momento del backup, indipendentemente dalle modifiche apportate alla tabella di origine. Il backup è considerato attivo a causa dell'archiviazione ottimizzata, che consente di ripristinare in modo efficiente i livelli di prestazioni di produzione.

Puoi creare fino a 150 copie di backup per tabella per ogni cluster.

Puoi eliminare una tabella di cui esiste un backup. Per proteggere i backup, non puoi eliminare un cluster che contiene un backup e non puoi eliminare un'istanza che ha uno o più backup in qualsiasi cluster.

Un backup esiste ancora dopo il ripristino in una nuova tabella. Puoi eliminarlo o lasciarlo scadere quando non ti serve più. Lo spazio di archiviazione dei backup non viene conteggiato ai fini del limite di spazio di archiviazione del nodo per un progetto.

I dati nei backup sono criptati.

Conservazione

Puoi specificare un periodo di conservazione fino a 90 giorni per un backup. Se crei una copia di un backup, il periodo di conservazione massimo della copia è di 30 giorni dalla data di creazione.

Per le tabelle per le quali è abilitato il backup automatico, il periodo di conservazione predefinito è di tre giorni. Puoi modificare il periodo di conservazione di un backup in modo da conservarlo per un massimo di 90 giorni dopo la data di creazione del backup.

Spazio di archiviazione post-ripristino

Il costo dello spazio di archiviazione per una nuova tabella ripristinata da un backup è uguale a quello di qualsiasi tabella.

Una tabella ripristinata da un backup potrebbe non consumare la stessa quantità di spazio di archiviazione della tabella originale e potrebbe diminuire di dimensioni dopo il ripristino. La differenza di dimensione dipende da quanto di recente è avvenuta la compazione nel cluster di origine e nel cluster di destinazione.

Poiché la compattazione avviene in modo continuo, è possibile che si verifichi non appena viene creata la tabella. Tuttavia, la compattazione può richiedere fino a una settimana.

Una nuova tabella ripristinata da un backup non eredita i criteri di garbage collection della tabella di origine. Configura i criteri di garbage collection nella nuova tabella prima di iniziare a scrivere nuovi dati al suo interno. Per ulteriori informazioni, consulta Configurare il garbage collection.

Costi

Quando lavori con i backup, vengono applicati i costi di rete standard. Non ti vengono addebitati costi per le operazioni di backup, tra cui creazione, copia o ripristino da un backup.

Costi di archiviazione

I costi di archiviazione sono diversi per i backup standard e gli hot backup.

Costi di archiviazione dei backup standard

Per archiviare un backup standard o una copia di un backup, ti viene addebitata la tariffa di archiviazione dei backup standard per la regione in cui si trova il cluster contenente il backup o la copia del backup.

Un backup standard è una copia logica completa di una tabella. Dietro le quinte, Bigtable ottimizza l'utilizzo dello spazio di archiviazione di backup standard. Questa ottimizzazione indica che un backup standard è incrementale: condivide lo spazio di archiviazione fisico con la tabella originale o con altri backup della tabella, se possibile. Grazie alle ottimizzazioni dello spazio di archiviazione integrato di Bigtable, il costo per archiviare un backup standard o una copia di un backup potrebbe talvolta essere inferiore al costo di una copia fisica completa del backup della tabella.

Nelle istanze replicate in cui è abilitato il backup automatico, i costi di archiviazione potrebbero essere più elevati perché ogni giorno viene creato un backup su ogni cluster.

Costi di archiviazione per i backup caldi

Per archiviare un backup a caldo, ti viene addebitato il costo della tariffa di archiviazione dei backup a caldo per la regione in cui si trova il cluster contenente il backup a caldo.

Poiché un backup a caldo viene archiviato in uno stato di attesa, ottimizzato per il ripristino rapido, ti viene addebitato lo spazio di archiviazione dell'intera copia logica della tabella anziché delle parti incrementali, come accade con un backup standard.

Costi per la copia di un backup

Quando crei una copia di un backup in una regione diversa da quella del backup di origine, ti vengono addebitate le tariffe di rete standard per il costo della copia dei dati nel cluster di destinazione. Non ti viene addebitato alcun costo per il traffico di rete quando crei una copia nella stessa regione del backup di origine.

Costi durante il ripristino

Quando ripristini una nuova tabella da un backup, ti viene addebitato il costo della rete per la replica. Se la nuova tabella si trova in un'istanza che utilizza la replica, ti viene addebitato un costo una tantum per la replica per la copia dei dati in tutti i cluster dell'istanza.

Se esegui il ripristino in un'istanza diversa da quella in cui è stato creato il backup e l'istanza di backup e l'istanza di destinazione non hanno almeno un cluster nella stessa regione, ti viene addebitato un costo una tantum per la copia iniziale dei dati nel cluster di destinazione alle tariffe di rete standard.

CMEK

Quando crei un backup in un cluster protetto da una chiave di crittografia gestita dal cliente (CMEK), il backup viene bloccato alla versione principale della chiave CMEK del cluster al momento dell'acquisizione. Una volta creato il backup, la chiave e la relativa versione non possono essere modificate, anche se la chiave KMS viene ruotata.

Quando esegui il ripristino da un backup, la versione della chiave a cui è bloccato il backup deve essere attivata affinché la procedura di decrittografia del backup vada a buon fine. La nuova tabella è protetta con la versione principale più recente della chiave CMEK per ogni cluster nell'istanza di destinazione. Se vuoi eseguire il ripristino da un backup protetto da CMEK in un'altra istanza, anche l'istanza di destinazione deve essere protetta da CMEK, ma non deve avere la stessa configurazione CMEK dell'istanza di origine.

Considerazioni sulla replica

Questa sezione descrive altri concetti da comprendere quando esegui il backup e il ripristino di una tabella in un'istanza che utilizza la replica.

Replica e backup

Quando esegui manualmente il backup di una tabella in un'istanza replicata, scegli il cluster in cui vuoi creare e archiviare il backup. Nel caso delle tabelle per le quali è abilitato il backup automatico, viene creato un backup giornaliero su ogni cluster nell'istanza.

Non devi interrompere la scrittura nel cluster che contiene il backup, ma devi comprendere in che modo Bigtable gestisce le scritture replicate nel cluster.

Un backup è una copia della tabella nel suo stato sul cluster in cui viene archiviato al momento della creazione. I dati delle tabelle che non sono stati ancora replicati da un altro cluster nell'istanza non sono inclusi nel backup.

Ogni backup ha un'ora di inizio e di fine. Le scritture inviate al cluster poco prima o durante l'operazione di backup potrebbero non essere incluse nel backup. A questa incertezza contribuiscono due fattori:

  • Un'operazione di scrittura potrebbe essere inviata a una sezione della tabella già copiata dal backup.
  • Una scrittura in un altro cluster potrebbe non essere stata replicata nel cluster che contiene il backup.

In altre parole, è possibile che alcune scritture con timestamp precedenti all'ora del backup non siano incluse nel backup.

Se questa incoerenza non è accettabile per i requisiti della tua attività, puoi utilizzare un token di coerenza con le richieste di scrittura per assicurarti che tutte le scritture replicate siano incluse in un backup.

I backup delle tabelle replicate creati nell'ambito del backup automatico non sono copie esatte l'una dell'altra, perché i tempi di backup possono variare da cluster a cluster.

Replica e ripristino

Quando ripristini un backup in una nuova tabella, la replica verso e da altri cluster nell'istanza inizia immediatamente al termine dell'operazione di ripristino sul cluster di destinazione.

Prestazioni

Durante la creazione dei backup, segui le best practice riportate di seguito per garantire che il rendimento rimanga ottimale.

Prestazioni durante il backup

La creazione di un backup richiede in genere meno di un minuto, anche se può richiedere fino a un'ora. In circostanze normali, la creazione dei backup non influisce sulle prestazioni della pubblicazione.

Per ottenere un rendimento ottimale, non creare un backup di una singola tabella più di una volta ogni cinque minuti. La creazione di backup più di frequente può potenzialmente portare a un aumento osservabile della latenza di pubblicazione.

Prestazioni durante il ripristino

Il ripristino da un backup a una tabella in un'istanza a cluster singolo richiede alcuni minuti. Nelle istanze replicate, il ripristino richiede più tempo perché i dati devono essere copiati in tutti i cluster. Bigtable sceglie sempre il percorso più efficiente per copiare i dati.

Se esegui il ripristino in un'istanza diversa da quella in cui è stato creato il backup, l'operazione di ripristino richiede più tempo rispetto al ripristino nella stessa istanza. Questo accade soprattutto se l'istanza di destinazione non ha un cluster nella stessa zona del cluster in cui è stato creato il backup.

Il ripristino di una tabella più grande richiede più tempo rispetto a una tabella più piccola.

Se hai un'istanza SSD, inizialmente potresti riscontrare una latenza in lettura più elevata, anche al termine di un ripristino, mentre la tabella viene ottimizzata. Puoi controllare lo stato in qualsiasi momento durante l'operazione di ripristino per verificare se l'ottimizzazione è ancora in corso.

Se esegui il ripristino in un'istanza diversa da quella in cui è stato creato il backup, l'istanza di destinazione può utilizzare lo spazio di archiviazione HDD o SSD. Non è necessario utilizzare lo stesso tipo di archiviazione dell'istanza di origine.

Controllo degli accessi

Le autorizzazioni IAM controllano l'accesso alle operazioni di backup e ripristino. Le autorizzazioni di backup sono a livello di istanza e si applicano a tutti i backup nell'istanza.

L'account che utilizzi per creare un backup di una tabella deve disporre dell'autorizzazione per leggere la tabella e creare backup nell'istanza in cui si trova la tabella (l'istanza di origine).

L'account utilizzato per copiare un backup deve avere l'autorizzazione per leggere il backup di origine e per creare un backup nell'istanza e nel progetto di destinazione.

L'account utilizzato per ripristinare una nuova tabella da un backup deve avere l'autorizzazione per creare una tabella nell'istanza in cui esegui il ripristino.

Azione Autorizzazione IAM obbligatoria
Crea backup bigtable.tables.readRows, bigtable.backups.create
Ricevere un backup bigtable.backups.get
Elenco dei backup bigtable.backups.list
Eliminare un backup bigtable.backups.delete
Aggiornare un backup bigtable.backups.update
Copiare un backup bigtable.backups.read, bigtable.backups.create
Ripristino da un backup in una nuova tabella bigtable.tables.create, bigtable.backups.restore
Recupera un'operazione bigtable.instances.get
Elenca operazioni bigtable.instances.get

Best practice

Prima di creare una strategia di backup, devi tenere presente le seguenti best practice.

Creazione dei backup

  • Non eseguire il backup di una tabella più di una volta ogni cinque minuti.
  • Quando esegui il backup di una tabella che utilizza la replica, scegli il cluster in cui memorizzare il backup dopo aver considerato i seguenti fattori:
    • Costo. Un cluster della tua istanza potrebbe trovarsi in una regione con costi inferiori rispetto alle altre.
    • Vicinanza al server delle applicazioni. Ti consigliamo di archiviare il backup il più vicino possibile all'applicazione di pubblicazione.
    • Utilizzo dello spazio di archiviazione. Devi disporre di spazio di archiviazione sufficiente per conservare i backup man mano che si accumulano. A seconda del carico di lavoro, potresti avere cluster di dimensioni diverse o con un diverso utilizzo del disco. Questo può influire sul cluster che scegli.
  • Se devi assicurarti che tutte le scritture replicate siano incluse in un backup quando effettui il backup di una tabella in un'istanza che utilizza la replica, utilizza un token di coerenza con le richieste di scrittura.

Ripristino dai backup

  • Pianifica in anticipo il nome della nuova tabella se devi eseguire il ripristino da un backup. Il punto chiave è prepararsi in anticipo in modo da non dover decidere quando si verifica un problema.
  • Se stai ripristinando una tabella per un motivo diverso dall'eliminazione accidentale, assicurati che tutte le letture e le scritture vengano eseguite nella nuova tabella prima di eliminare la tabella originale.
  • Se prevedi di eseguire il ripristino in un'istanza diversa, crea l'istanza di destinazione prima di avviare l'operazione di ripristino del backup.

Quote e limiti

Le richieste di backup e ripristino e lo spazio di archiviazione dei backup sono soggetti alle quote e ai limiti di Bigtable.

Limitazioni

Ai backup di Bigtable si applicano le seguenti limitazioni:

Generali

  • Non puoi leggere direttamente da un backup.
  • Un backup è una versione di una tabella in un singolo cluster in un momento specifico. I backup non rappresentano uno stato coerente. Lo stesso vale per i backup della stessa tabella in cluster diversi.
  • Non puoi eseguire il backup di più tabelle in un'unica operazione.
  • Non puoi esportare, copiare o spostare un backup di Bigtable in un altro servizio, ad esempio Cloud Storage.
  • I backup di Bigtable contengono solo dati di Bigtable e non sono integrati o correlati ai backup di altri servizi Google.

Ripristino

  • Non puoi eseguire il ripristino da un backup in una tabella esistente.
  • Puoi eseguire il ripristino solo in un'istanza esistente. Bigtable non crea una nuova istanza durante il ripristino da un backup. Se l'istanza di destinazione specificata in una richiesta di ripristino non esiste, l'operazione di ripristino non riesce.
  • Se esegui il ripristino da un backup in una tabella di un cluster SSD ed elimini la tabella appena ripristinata, l'eliminazione della tabella potrebbe richiedere del tempo perché Bigtable attende il completamento dell'ottimizzazione della tabella.

Copia

  • Non puoi creare una copia di un backup che scade entro 24 ore.
  • Non puoi creare una copia di una copia di backup.

CMEK

  • Un backup protetto da CMEK deve essere ripristinato in una nuova tabella di un'istanza protetta da CMEK.
  • Quando crei una copia di un backup protetto da CMEK, anche il cluster di destinazione deve essere protetto da CMEK.

Passaggi successivi