Questa pagina descrive come spostare un'istanza in Spanner.
Puoi spostare l'istanza Spanner da qualsiasi configurazione dell'istanza a qualsiasi altra configurazione dell'istanza, incluse le configurazioni regionali, a due regioni e multiregionali. Lo spostamento dell'istanza non causa tempi di inattività e Spanner continua a fornire le consuete garanzie di transazione, inclusa l'elevata coerenza, durante lo spostamento.
Puoi anche spostare l'istanza dalla configurazione dell'istanza di origine a una configurazione dell'istanza personalizzata (ad esempio, una configurazione di base nam3 con una replica di sola lettura us-west2). Poiché non puoi aggiornare la topologia delle configurazioni delle istanze esistenti, devi prima creare una nuova configurazione dell'istanza personalizzata con la topologia che preferisci. Dopo aver creato la nuova configurazione dell'istanza personalizzata, puoi spostare l'istanza dalla configurazione dell'istanza di origine alla nuova configurazione dell'istanza personalizzata.
Perché spostare l'istanza Spanner?
I vantaggi dello spostamento dell'istanza includono:
- Aumentare la disponibilità: ottieni una disponibilità del 99,999% senza tempi di inattività dopo aver eseguito uno spostamento da una regione a due regioni o multiregionale.
- Ridurre la latenza: riduci la latenza e aumenta la copertura geografica con repliche di sola lettura aggiuntive tramite uno spostamento da una regione a due regioni o multiregionale o da una regione multiregionale a una regione multiregionale.
- Ridurre i costi: riduci i costi orari passando da una configurazione a due regioni o multiregionale a una configurazione regionale.
- Collocare il database: colloca il database Spanner con l' applicazione client spostando l'istanza in una località più ottimizzata.
Prezzi
Quando sposti un'istanza, sia la configurazione dell'istanza di origine che quella di destinazione sono soggette a costi orari di calcolo e spazio di archiviazione. Al termine dello spostamento, ti viene addebitato lo spazio di archiviazione dell'istanza nella configurazione di destinazione.
Se sposti l'istanza in una nuova configurazione dell'istanza regionale, a due regioni o multiregionale, potresti essere soggetto a costi di trasferimento dei dati in uscita. Per ulteriori informazioni, consulta i prezzi di Spanner.
Limitazioni
- Per spostare l'istanza, deve avere un minimo di 1 nodo (1000 unità di elaborazione).
- Non puoi spostare l'istanza tra progetti e Google Cloud account.
- Non puoi spostare un'istanza che utilizza la versione Standard direttamente da una configurazione dell'istanza regionale a una configurazione dell'istanza a due regioni o multiregionale. Devi prima eseguire l'upgrade della versione dell'istanza alla versione Enterprise Plus e poi spostare l'istanza.
- Se hai richieste attive che utilizzano un endpoint di servizio regionale su una delle risorse dell'istanza, lo spostamento dell'istanza influisce su tutte le richieste che utilizzano l'endpoint regionale perché l'applicazione regionale blocca l'accesso alle istanze tra regioni. Le richieste che utilizzano un endpoint globale non sono interessate.
- I backup di Spanner sono specifici per una configurazione dell'istanza e non sono inclusi quando sposti un'istanza. Per ulteriori informazioni, vedi Backup.
- Le seguenti API sono disabilitate durante lo spostamento di un'istanza:
InstanceAdmin.DeleteInstanceInstanceAdmin.UpdateInstanceInstanceAdmin.CreateInstancePartitionInstanceAdmin.UpdateInstancePartitionInstanceAdmin.DeleteInstancePartitionDatabaseAdmin.CreateDatabaseDatabaseAdmin.UpdateDatabaseDdl(disabilitata sedefault_leaderè specificato nella richiesta.)DatabaseAdmin.RestoreDatabaseDatabaseAdmin.CreateBackupDatabaseAdmin.CreateBackupScheduleDatabaseAdmin.CopyBackup
- Se un database ha un leader predefinito modificato, la selezione viene mantenuta se nomina una regione di lettura/scrittura nella configurazione dell'istanza di destinazione e se la configurazione è multiregionale. Se la configurazione di destinazione è regionale o non include la regione di lettura/scrittura denominata, la selezione del leader predefinito viene cancellata.
- Lo spostamento di un'istanza modifica l'attributo di configurazione dell'istanza dell'istanza. Se gestisci le risorse Spanner tramite l'automazione, assicurati di preparare e risolvere eventuali incoerenze che potrebbero verificarsi.
- Ad esempio, se utilizzi Terraform per
gestire le istanze e i database Spanner e
abiliti
terraform apply --auto-approveper mantenere le risorse sincronizzate, tutte le istanze e le risorse secondarie vengono eliminate quando spostiamo l'istanza. Aggiorna la configurazione di conseguenza per evitare l'eliminazione e la perdita di dati. Per ulteriori informazioni sul comandoapply, consulta Opzioni di applicazione di Terraform.
- Ad esempio, se utilizzi Terraform per
gestire le istanze e i database Spanner e
abiliti
- Durante lo spostamento dell'istanza, le metriche e i grafici di monitoraggio di Spanner potrebbero mostrare i dati sia nella configurazione dell'istanza di origine che in quella di destinazione oppure potrebbero riflettere solo le prestazioni in una configurazione dell'istanza.
- Se hai configurato lo strumento Autoscaler open source, non devi disattivarlo. L'operazione non riesce perché
InstanceAdmin.UpdateInstance(utilizzata per le modifiche di nodi e unità di elaborazione) è disabilitata. - Non puoi spostare un'istanza se è abilitata la funzionalità di scalabilità automatica gestita di Spanner. Per spostare l'istanza, devi disabilitare la scalabilità automatica gestita, spostare l'istanza e poi riattivarla.
- Inoltre, se utilizzi la scalabilità automatica, devi eseguire il provisioning di un numero sufficiente di nodi per l'utilizzo massimo della CPU in base alle raccomandazioni massime indicate, quindi disattivare la scalabilità automatica prima di spostare l'istanza.
- Non puoi spostare un'istanza di prova senza costi di Spanner. Puoi spostare l'istanza dopo aver eseguito l'upgrade a un'istanza a pagamento.
- Se l'istanza utilizza il partizionamento geografico, allora lo spostamento dell'istanza sposta solo la partizione dell'istanza predefinita, non le partizioni dell'istanza aggiuntive.
Considerazioni sulle prestazioni
Quando un'istanza viene spostata, si verificano latenze di lettura/scrittura più elevate e un tasso di interruzione delle transazioni più elevato. L'utilizzo della CPU durante lo spostamento potrebbe raggiungere il 100% perché lo spostamento dell'istanza viene eseguito utilizzando la CPU di riserva di cui è stato eseguito il provisioning dall'utente. Tuttavia, lo spostamento di un'istanza non causa tempi di inattività. Il tempo necessario per spostare un'istanza dipende da vari fattori, tra cui le dimensioni dei database, il numero di nodi e il tipo di spostamento (ad es. da regionale a multiregionale).
Dopo aver spostato un'istanza, le prestazioni dell'istanza variano a seconda dei dettagli della configurazione dell'istanza. Ad esempio, le configurazioni a due regioni e multiregionali in genere hanno una latenza di scrittura più elevata e una latenza di lettura inferiore rispetto alle configurazioni regionali.
Backup
Quando sposti un'istanza, i backup nella configurazione originale dell'istanza non vengono spostati automaticamente nella nuova configurazione di destinazione. Lo spostamento dell'istanza viene interrotto se esistono backup nella configurazione originale dell'istanza quando avvii lo spostamento dell'istanza. È importante copiare i backup e considerare il piano di ripristino dei dati prima di spostare l'istanza.
Se nella configurazione originale dell'istanza sono presenti backup che devi
conservare, ti consigliamo di copiarli
in due piccole istanze temporanee (100 unità di elaborazione), placeholder-source e
placeholder-dest:
placeholder-source: un'istanza con la stessa configurazione dell'istanza della configurazione originale dell'istanza in movimento. In questo modo puoi ripristinare i backup nella configurazione originale se devi annullare lo spostamento.placeholder-dest: un'istanza con la stessa configurazione dell'istanza della configurazione dell'istanza di destinazione. In questo modo, avrai un backup disponibile nella nuova configurazione immediatamente dopo il completamento dello spostamento.
La funzionalità di ripristino non supporta i ripristini tra configurazioni, pertanto queste istanze segnaposto sono essenziali per un rollback o un ripristino rapido nella nuova configurazione, se necessario, fornendo una rete di sicurezza in caso di problemi con l'istanza spostata.
Dopo aver copiato i backup in placeholder-source e placeholder-dest, devi eliminare tutti i backup esistenti nella configurazione originale dell'istanza prima di poter spostare l'istanza. Poi, al termine dello spostamento dell'istanza, avrai già una copia del backup nella configurazione di destinazione. Puoi anche
creare un nuovo backup.
Seguendo questo approccio, garantisci la continuità operativa e riduci al minimo i potenziali tempi di inattività o la perdita di dati durante il processo di spostamento dell'istanza.
Come spostare un'istanza
Puoi spostare un'istanza con la Google Cloud console Cloud Shell e
gcloud CLI utilizzando i gcloud comandi.
Prerequisiti
Prima di spostare la configurazione dell'istanza, assicurati di aver letto le sezioni Limitazioni e Considerazioni sulle prestazioni. Quindi, segui questi passaggi:
- Verifica di disporre dell'
spanner.instances.updateautorizzazione IAM sull'istanza in movimento. - Se applicabile, sposta le istanze non di produzione (ad esempio test e staging) prima di spostare le istanze di produzione per valutare e comprendere l'impatto sulle prestazioni dei workload durante lo spostamento di un'istanza.
- Quando sposti un'istanza Spanner, il processo di spostamento elimina i tag dell'istanza che hai creato in Data Catalog. Per conservare i tag, devi esportarli prima dello spostamento e importarli dopo lo spostamento. Per ulteriori informazioni, vedi Esportare e importare tag.
Per le best practice, segui anche queste linee guida:
- Testa i workload di prestazioni nelle istanze non di produzione nella configurazione dell'istanza di destinazione prima di spostare l'istanza di produzione. Prova a spostare un'istanza di staging simile all'istanza di produzione per farti un'idea di quanto tempo ci vorrà per spostare l'istanza di produzione.
- Verifica che non ci siano hotspot nei database utilizzando il Key Visualizer.
- Esamina per assicurarti di avere una quota di nodi sufficiente nella configurazione dell'istanza di destinazione per supportare l'utilizzo massimo previsto dell'istanza. Per ulteriori informazioni, vedi Quote e limiti di Spanner.
- Assicurati che l'utilizzo massimo della CPU dell' istanza sia inferiore al 40% per la configurazione dell'istanza che hai spostato e che la quantità di spazio di archiviazione per nodo sia inferiore a 1 tebibyte (TiB).
- Non apportare modifiche all'istanza durante lo spostamento. Ciò include la modifica del numero di nodi dell'istanza, la modifica degli schemi di database, la creazione o l'eliminazione di database e la creazione o l'eliminazione di backup.
Se sposti l'istanza in base a queste raccomandazioni, in genere lo spostamento viene completato entro 24 ore. Tuttavia, a seconda del workload dell'applicazione, il tempo di completamento potrebbe essere più lungo o più breve.
Sposta un'istanza
Google Cloud Console
Vai alla pagina Istanze nella Google Cloud console.
Seleziona l'istanza che vuoi spostare.
Nella pagina Panoramica dell'istanza, accanto a Configurazione, fai clic su Sposta l'istanza in una nuova configurazione.
Nel riquadro Sposta il database in una nuova configurazione, seleziona la nuova configurazione dell'istanza per l'istanza.
Fai clic su Salva.
gcloud CLI
Utilizza il gcloud spanner instances move
comando per spostare l'istanza.
gcloud spanner instances move INSTANCE_ID \
--target-config=TARGET_CONFIG
Sostituisci quanto segue:
- INSTANCE_ID: l'identificatore permanente dell'istanza che vuoi spostare.
- TARGET_CONFIG: un identificatore permanente della configurazione dell'istanza
in cui vuoi spostare l'istanza. La nuova posizione geografica dell'istanza. Può trattarsi di una configurazione dell'istanza regionale, a due regioni o
multiregionale (ad esempio,
nam3,regional-us-central1, ocustom-nam3-us-west2).
Ad esempio, per spostare l'istanza test-instance dalla configurazione dell'istanza attuale a nam3, esegui il comando seguente:
gcloud spanner instances move test-instance --target-config=nam3
(Facoltativo) Se vuoi aggiungere una replica di sola lettura nella regione us-west2 alla configurazione dell'istanza di base in nam3:
Clona la configurazione di base e aggiungi la replica di sola lettura alla nuova configurazione dell'istanza personalizzata
custom-nam3-us-west2:gcloud spanner instance-configs create custom-nam3-us-west2 \ --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLYSposta l'istanza
test-instancedalla configurazione dell'istanza attuale a questa nuova configurazione dell'istanzacustom-nam3-us-west2:gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
(Facoltativo) Sposta un'istanza con database abilitati per CMEK
Utilizza il gcloud spanner instances move
comando per spostare un'istanza con database abilitati per CMEK.
Devi includere il flag --target-database-move-configs e i valori della chiave KMS nel comando oppure configurare un file JSON o YAML con le chiavi KMS necessarie.
Note sull'utilizzo:
- Se hai più database abilitati per CMEK nell'istanza che vuoi spostare, devi specificare
--target-database-move-configsper ognuno di essi. Puoi utilizzare le stesse chiavi per ogni database, ma devi specificare le chiavi per ogni database abilitato per CMEK. - Le chiavi devono coprire tutte le regioni nella configurazione dell'istanza di destinazione. Ad esempio, se la configurazione dell'istanza di destinazione è in
nam3, devi impostare le chiavi inregional-us-east4,regional-us-east1eregional-us-central1. - Non puoi impostare le chiavi KMS per i database non abilitati per CMEK durante lo spostamento dell'istanza.
- Non devi disabilitare o eliminare le chiavi CMEK nella configurazione dell'istanza di origine o di destinazione durante lo spostamento dell'istanza. La migrazione non procede se provi.
gcloud spanner instances move INSTANCE_ID \
--target-config=TARGET_CONFIG \
--target-database-move-configs=^:^database-id=DATABASE_ID_1:kms-key-names=KMS_KEY_1[, KMS_KEY_2 ... ] \
[--target-database-move-configs=^:^database-id=DATABASE_ID_2:kms-key-names=KMS_KEY_1 ... ]
o
gcloud spanner instances move INSTANCE_ID \
--target-config=TARGET_CONFIG \
--target-database-move-configs=CONFIG_FILE_PATH
Configura il file CONFIG_FILE_PATH con gli ID database
e le chiavi KMS. Il seguente esempio di file di configurazione contiene le chiavi KMS per due database, database-1 e database-2, con le stesse chiavi in regional-us-east4, regional-us-east1 e regional-us-central1 per coprire tutte le regioni in nam3.
[
{
database-id: database-1,
kms-key-names:
"projects/[your-project]/locations/us-east4/keyRings/[your-keyring]/cryptoKeys/[your-key],projects/[your-project]/locations/us-east1/keyRings/[your-keyring]/cryptoKeys/[your-key],projects/[your-project]/locations/us-central1/keyRings/[your-keyring]/cryptoKeys/[your-key]",
},
{
database-id: database-2,
kms-key-names:
"projects/[your-project]/locations/us-east4/keyRings/[your-keyring]/cryptoKeys/[your-key],projects/[your-project]/locations/us-east1/keyRings/[your-keyring]/cryptoKeys/[your-key],projects/[your-project]/locations/us-central1/keyRings/[your-keyring]/cryptoKeys/[your-key]",
},
]
Come monitorare lo stato di avanzamento dello spostamento e dell'annullamento dell'istanza
Puoi utilizzare gcloud spanner operations describe o creare una dashboard personalizzata di Cloud Monitoring per monitorare lo stato di avanzamento dello spostamento di un'istanza.
Visualizza lo stato di avanzamento dell'operazione di spostamento e annullamento
Per monitorare lo stato di avanzamento di un'operazione di spostamento o annullamento dello spostamento di un'istanza, utilizza il gcloud spanner operations describe
comando. Questo comando richiede l'ID operazione dell'operazione di spostamento dell'istanza in corso.
Recupera l'ID operazione per l'operazione di spostamento dell'istanza eseguendo:
gcloud spanner operations list --instance="INSTANCE_ID"Sostituisci quanto segue:
- INSTANCE_ID: l'identificatore permanente dell'istanza che tu vuoi spostare.
L'output mostra un elenco di operazioni a lunga esecuzione, inclusa l'operazione di spostamento dell'istanza.
Esegui il comando
gcloud spanner operations describeper visualizzare la percentuale di avanzamento e lo stato:gcloud spanner operations describe OPERATION_ID --instance=INSTANCE_IDSostituisci quanto segue:
- OPERATION_ID: l'ID operazione dell'operazione di spostamento dell'istanza che vuoi controllare.
- INSTANCE_ID: l'ID istanza dell'istanza che vuoi controllare.
Monitora un'operazione di spostamento dell'istanza
Puoi creare una dashboard personalizzata di Cloud Monitoring per visualizzare e monitorare le metriche durante lo spostamento dell'istanza, un'operazione a lunga esecuzione con potenziali implicazioni per il servizio.
I grafici Spazio di archiviazione totale e Spazio di archiviazione totale del database per database nella dashboard sono utili per monitorare lo stato di avanzamento dello spostamento. Puoi vedere che lo spazio di archiviazione nella configurazione di origine diminuisce gradualmente mentre lo spazio di archiviazione nella configurazione di destinazione aumenta.
Google Cloud Console
- Scarica il
move-instance-dashboard.jsonfile. Questo file contiene le informazioni necessarie per popolare una dashboard personalizzata in Monitoring. -
Nella Google Cloud console, vai alla pagina Dashboard:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Nella pagina Panoramica delle dashboard, fai clic su Crea dashboard.
- Nella barra degli strumenti della dashboard, fai clic sul menu a discesa Impostazioni dashboard. Seleziona JSON, quindi Editor JSON.
- Nel riquadro Editor JSON, copia i contenuti del file
move-instance-dashboard.jsonche hai scaricato e incollali nell'editor. - Per applicare le modifiche alla dashboard, fai clic su Applica modifiche. Se non vuoi utilizzare questa dashboard, torna alla pagina Panoramica delle dashboard.
- Dopo aver creato la dashboard, fai clic su Aggiungi filtro. Quindi seleziona
project_idoinstance_idper monitorare lo stato di avanzamento dello spostamento dell'istanza.
gcloud CLI
- Scarica il
move-instance-dashboard.jsonfile. Questo file contiene le informazioni necessarie per popolare una dashboard personalizzata in Monitoring. Per creare una dashboard in un progetto, utilizza il comando
gcloud monitoring dashboards create:gcloud monitoring dashboards create --config-from-file=move-instance-dashboard.jsonPer ulteriori informazioni, consulta il
gcloud monitoring dashboards createriferimento.
Come annullare lo spostamento di un'istanza
Puoi annullare solo lo spostamento di un'istanza ancora in corso. Se vuoi ripristinare uno spostamento dell'istanza già completato, devi avviare un nuovo spostamento.
Puoi utilizzare gcloud spanner operations cancel
per annullare le operazioni di spostamento dell'istanza. L'annullamento non è immediato e richiede all'incirca lo stesso tempo trascorso dall'inizio dello spostamento. Questo perché i dati devono essere spostati di nuovo nella configurazione dell'istanza di origine.
Questo comando richiede l'ID operazione dell'operazione di spostamento dell'istanza in corso.
Recupera l'ID operazione eseguendo:
gcloud spanner operations list --type=INSTANCE --instance="INSTANCE_ID" --filter="done:False AND metadata.@type:MoveInstanceMetadata"Sostituisci quanto segue:
- INSTANCE_ID: l'identificatore permanente dell'istanza che tu vuoi spostare.
L'output mostra un elenco di operazioni di spostamento dell'istanza in corso.
Esegui il comando
gcloud spanner operations cancelper annullare lo spostamento dell'istanza:gcloud spanner operations cancel OPERATION_IDSostituisci quanto segue:
- OPERATION_ID: l'ID operazione dell'operazione di spostamento dell'istanza che vuoi annullare.
Passaggi successivi
- Scopri di più sulle configurazioni regionali, a due regioni e multiregionali di Spanner .
- Scopri di più su Google Cloud regioni e zone.