Sposta un'istanza

Questa pagina descrive lo spostamento di un'istanza in Spanner.

Puoi spostare l'istanza Spanner da qualsiasi configurazione dell'istanza a qualsiasi altra configurazione dell'istanza, incluse configurazioni regionali e multiregionali. Lo spostamento dell'istanza non causa tempi di inattività e Spanner continua a fornire le consuete garanzie sulle transazioni, tra cui l'elevata coerenza, durante il trasferimento.

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 di istanze esistenti, devi prima creare una nuova configurazione di 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:

  • Aumenta la disponibilità: ottieni una disponibilità del 99,999% senza tempi di inattività dopo aver eseguito il trasferimento da una regione a più regioni.
  • Riduci la latenza: riduci la latenza e aumenta la copertura geografica con repliche di sola lettura aggiuntive attraverso il trasferimento da una a più regioni o da più regioni a più regioni.
  • Riduzione dei costi: riduci i costi orari passando da una configurazione per più regioni a una per una regione.
  • Colloca il database: sposta il database Spanner con l'applicazione client spostando l'istanza in una località più ottimizzata.

Prezzi

Quando sposti un'istanza, sia le configurazioni delle istanze di origine sia quelle di destinazione sono soggette a costi orari per calcolo e archiviazione. Una volta completato lo spostamento, ti verrà addebitato il costo per lo spazio di archiviazione dell'istanza nella configurazione di destinazione.

Se stai spostando l'istanza in una nuova configurazione di istanza a livello di una o più regioni, potresti incorrere in costi per il trasferimento di dati in uscita. Per ulteriori informazioni, consulta i prezzi di Spanner.

Limitazioni

  • Per spostare l'istanza, deve avere almeno 1 nodo (1000 unità di elaborazione).
  • Non puoi spostare l'istanza tra progetti e account Google Cloud.
  • Non puoi spostare un'istanza di prova gratuita di Spanner. Puoi spostare l'istanza dopo aver eseguito l'upgrade a un'istanza a pagamento.
  • Se hai richieste attive che utilizzano un endpoint di servizio a livello di regione su una qualsiasi delle risorse dell'istanza, il trasferimento dell'istanza influisce su tutte le richieste che utilizzano l'endpoint a livello di regione, poiché l'applicazione regionale blocca l'accesso alle istanze tra regioni. Le richieste che usano un endpoint globale non sono interessate.
  • I backup di Spanner sono specifici per la configurazione di un'istanza e non sono inclusi quando sposti un'istanza. Per maggiori informazioni, consulta la sezione Backup.
  • Le seguenti API vengono disabilitate durante lo spostamento di un'istanza:
    • InstanceAdmin.DeleteInstance
    • InstanceAdmin.UpdateInstance
    • DatabaseAdmin.CreateDatabase
    • DatabaseAdmin.UpdateDatabaseDdl (disabilitato se nella richiesta è specificato default_leader).
    • DatabaseAdmin.RestoreDatabase
    • DatabaseAdmin.CreateBackup
    • DatabaseAdmin.CopyBackup
  • Non puoi spostare istanze che contengono database abilitati per CMEK.
  • Se un database ha un Leader predefinito modificato, la selezione viene conservata se nomina una regione di lettura/scrittura nella configurazione dell'istanza di destinazione e questa configurazione è su più regioni. Se la configurazione di destinazione è a livello di regione o non include la regione di lettura e scrittura denominata, la selezione della leader predefinita viene cancellata.
  • Lo spostamento di un'istanza modifica l'attributo di configurazione dell'istanza stessa. Se gestisci le risorse Spanner tramite automazione, assicurati di preparare e risolvere eventuali incoerenze che potrebbero verificarsi.
    • Ad esempio, se utilizzi Terraform per gestire le istanze e i database di Spanner e abiliti terraform apply --auto-approve per mantenere sincronizzate le risorse, tutte le istanze e le risorse figlio vengono eliminate quando spostiamo l'istanza. Aggiorna la configurazione di conseguenza per evitare l'eliminazione e la perdita di dati. Consulta le opzioni di Terraform Applica per ulteriori informazioni sul comando apply.
  • Mentre l'istanza viene spostata, le metriche e i grafici di monitoraggio di Spanner potrebbero mostrare dati nelle configurazioni dell'istanza di origine e di destinazione oppure potrebbero riflettere le prestazioni solo nella configurazione di un'istanza.
  • Se hai configurato lo strumento della scalabilità automatica open source, non è necessario disabilitarlo. L'operazione non riesce perché InstanceAdmin.UpdateInstance (utilizzato per le modifiche di nodi e unità di elaborazione) è disattivato.
  • Non puoi spostare un'istanza se è abilitata la funzionalità di gestore della scalabilità automatica gestito di Spanner. Per spostare l'istanza, devi disabilitare il gestore della scalabilità automatica gestito, spostare l'istanza e poi abilitare di nuovo il gestore della scalabilità automatica gestito.

    Inoltre, se utilizzi la scalabilità automatica, devi eseguire il provisioning di un numero sufficiente di nodi per l'utilizzo massimo della CPU in base al numero massimo di suggerimenti indicato, quindi disabilitare la scalabilità automatica prima di spostare l'istanza.

Considerazioni sulle prestazioni

Quando un'istanza viene spostata, riscontra latenze di lettura e scrittura più elevate e una percentuale di interruzione delle transazioni più elevata. L'utilizzo della CPU durante il trasferimento potrebbe arrivare al 100% perché il trasferimento dell'istanza viene eseguito utilizzando la CPU di riserva di cui l'utente ha eseguito il provisioning. Tuttavia, lo spostamento di un'istanza non comporta tempi di inattività. Il tempo necessario per trasferire un'istanza dipende da vari fattori, tra cui le dimensioni dei database, il numero di nodi e il tipo di spostamento (ad esempio da una regione a più regioni).

Dopo aver spostato un'istanza, le sue prestazioni variano in base ai dettagli della configurazione dell'istanza. Ad esempio, le configurazioni multiregionali hanno in genere una latenza di scrittura e una latenza di lettura più alta rispetto alle configurazioni regionali.

Backup

Quando sposti un'istanza, i backup nell'istanza di origine non vengono spostati automaticamente nella nuova configurazione di destinazione. Lo spostamento dell'istanza viene interrotto se esistono dei backup nella configurazione dell'istanza di origine quando avvii il trasferimento dell'istanza. È importante copiare i backup e considerare il tuo piano di recupero dati prima di spostare l'istanza.

Se nell'istanza di origine sono presenti backup che devi conservare, ti consigliamo di copiarli nella configurazione dell'istanza di destinazione e in un'altra istanza con la stessa configurazione dell'istanza dell'istanza di origine da spostare. In questo modo:

  • Puoi copiare i tuoi backup nella configurazione dell'istanza di destinazione immediatamente dopo il completamento dello spostamento dell'istanza.
  • Se devi annullare lo spostamento dell'istanza, puoi anche ripristinare rapidamente i backup dall'istanza con la stessa configurazione di quella dell'istanza di origine.

Dopo aver copiato i backup in un'altra istanza, devi eliminare eventuali backup esistenti nell'istanza di origine prima di poter spostare l'istanza. Al termine dello spostamento dell'istanza, hai già una copia del backup nella configurazione di destinazione. Puoi anche creare un nuovo backup.

Per scoprire di più sulla copia dei backup e dei costi associati, consulta Copiare un backup.

Come spostare un'istanza

Puoi spostare un'istanza con Cloud Shell della console Google Cloud e gcloud CLI utilizzando i comandi gcloud.

Prerequisiti

Prima di spostare la configurazione dell'istanza, assicurati di aver letto le sezioni Limitazioni e Considerazioni sulle prestazioni. Quindi, segui questa procedura:

  1. Verifica di disporre dell'autorizzazione IAM spanner.instances.update per l'istanza di origine.
  2. Se applicabile, sposta le istanze non di produzione (ad esempio test e gestione temporanea) prima di spostare le istanze di produzione per valutare e comprendere l'impatto sulle prestazioni dei carichi di lavoro durante il trasferimento dell'istanza.
  3. Quando sposti un'istanza Spanner, il processo di spostamento elimina i tag di istanza creati in Data Catalog. Per conservare i tag, devi esportare i tag prima dello spostamento e importarli dopo lo spostamento. Per ulteriori informazioni, consulta Esportare e importare tag.

Per le best practice, segui anche queste linee guida:

  • Testa i carichi di lavoro prestazionali nelle istanze non di produzione nella configurazione dell'istanza di destinazione prima di spostare l'istanza di produzione. Prova a spostare un'istanza temporanea simile a quella di produzione per avere un'idea di quanto tempo ci vorrà per spostare l'istanza di produzione.
  • Controlla che non siano presenti hotspot nei database utilizzando Key Visualizer.
  • Controlla che la quota dei nodi nella configurazione dell'istanza di destinazione sia sufficiente per supportare il picco di utilizzo previsto dell'istanza. Per maggiori informazioni, consulta Quote e limiti di Spanner.
  • Assicurati che il picco di utilizzo 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 delle istanze, la modifica degli schemi dei database, la creazione o l'eliminazione di database e la creazione o l'eliminazione di backup.

Se sposti l'istanza in base a questi suggerimenti, in genere il trasferimento viene completato entro 24 ore. Tuttavia, a seconda del carico di lavoro dell'applicazione, il tempo di completamento potrebbe essere più lungo o più breve.

Sposta un'istanza

Console Google Cloud

  1. Fai clic su Attiva l'icona di Cloud Shell Attiva Cloud Shell nella parte superiore della console Google Cloud.

    All'interno di un nuovo frame nella parte inferiore della console Google Cloud si apre una sessione di Cloud Shell, che mostra un prompt della riga di comando. L'inizializzazione della sessione può richiedere alcuni secondi.

  2. Utilizza il comando gcloud spanner instances move per spostare l'istanza.

    gcloud spanner instances move INSTANCE_ID \
    --target-config=TARGET_CONFIG
    

    Sostituisci quanto segue:

    • INSTANCE_ID: l'identificatore permanente dell'istanza da spostare.
    • TARGET_CONFIG: un identificatore permanente della configurazione dell'istanza in cui vuoi spostare l'istanza. La nuova posizione geografica dell'istanza. Potrebbe essere una configurazione di istanza a livello di regione, più regioni o personalizzata (ad esempio nam3, us-central1 o custom-nam3-us-west2).

Ad esempio, per spostare l'istanza test-instance dalla configurazione attuale a nam3, esegui questo comando:

  gcloud spanner instances move test-instance --target-config=nam3

(Facoltativo) Se vuoi aggiungere una replica di sola lettura, us-west2, alla configurazione dell'istanza di base nam3, segui questi passaggi:

  1. Clona la configurazione di base e aggiungi la replica di sola lettura:

    gcloud spanner instance-configs create custom-nam3-us-west2 \
    --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLY
    
  2. Sposta l'istanza test-instance dalla configurazione attuale dell'istanza a questa nuova configurazione dell'istanza custom-nam3-us-west2:

    gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
    

Interfaccia a riga di comando gcloud

Utilizza il comando gcloud spanner instances move per spostare l'istanza.

gcloud spanner instances move INSTANCE_ID \
--target-config=TARGET_CONFIG

Sostituisci quanto segue:

  • INSTANCE_ID: l'identificatore permanente dell'istanza da spostare.
  • TARGET_CONFIG: un identificatore permanente della configurazione dell'istanza in cui vuoi spostare l'istanza. La nuova posizione geografica dell'istanza. Potrebbe essere una configurazione di un'istanza per una o più regioni (ad esempio nam3, us-central1 o custom-nam3-us-west2).

Ad esempio, per spostare l'istanza test-instance dalla configurazione attuale a nam3, esegui questo comando:

  gcloud spanner instances move test-instance --target-config=nam3

(Facoltativo) Se vuoi aggiungere una replica di sola lettura, us-west2, alla configurazione dell'istanza di base nam3, segui questi passaggi:

  1. Clona la configurazione di base e aggiungi la replica di sola lettura:

    gcloud spanner instance-configs create custom-nam3-us-west2 \
    --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLY
    
  2. Sposta l'istanza test-instance dalla configurazione attuale dell'istanza a questa nuova configurazione dell'istanza custom-nam3-us-west2:

    gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
    

Come monitorare l'avanzamento del trasferimento e dell'annullamento dell'istanza

Puoi usare gcloud spanner operations describe o creare una dashboard di Cloud Monitoring personalizzata per monitorare l'avanzamento del trasferimento di un'istanza.

Visualizza l'avanzamento dell'operazione di spostamento e annullamento

Per monitorare l'avanzamento di un'operazione di spostamento di un'istanza o di annullamento di un'istanza, utilizza il comando gcloud spanner operations describe. Questo comando richiede l'ID operazione dell'operazione di spostamento dell'istanza in corso.

  1. Esegui questo comando per ottenere l'ID operazione per l'operazione di spostamento dell'istanza:

    gcloud spanner operations list --instance="INSTANCE_ID"
    

    Sostituisci quanto segue:

    • INSTANCE-ID: l'identificatore permanente dell'istanza da spostare.

    L'output mostra un elenco di operazioni a lunga esecuzione, inclusa l'operazione di spostamento dell'istanza.

  2. Esegui il comando gcloud spanner operations describe per visualizzare la percentuale e lo stato di avanzamento:

    gcloud spanner operations describe OPERATION_ID --instance=INSTANCE_ID
    

    Sostituisci quanto segue:

    • OPERATION_ID: l'ID operazione dell'operazione di spostamento dell'istanza che vuoi controllare.
    • INSTANCE_ID: l'ID istanza per l'istanza che vuoi controllare.

Monitora un'operazione di spostamento dell'istanza

Puoi creare una dashboard di Cloud Monitoring personalizzata per visualizzare e monitorare le metriche durante lo spostamento dell'istanza, un'operazione a lunga esecuzione con potenziali implicazioni per i servizi.

I grafici Spazio di archiviazione totale e Spazio di archiviazione totale dei database per database nella dashboard sono utili per monitorare l'avanzamento dello spostamento. Puoi notare che lo spazio di archiviazione nella configurazione di origine diminuisce gradualmente mentre lo spazio di archiviazione nella configurazione di destinazione aumenta.

Console Google Cloud

  1. Scarica il file move-instance-dashboard.json. Questo file contiene le informazioni necessarie per compilare una dashboard personalizzata in Monitoring.
  2. Nella console Google Cloud, vai alla pagina Dashboard :

    Vai a Dashboard

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

  3. Nella pagina Panoramica delle dashboard, fai clic su Crea dashboard.
  4. Nella barra degli strumenti della dashboard, fai clic sul menu a discesa Impostazioni dashboard. Quindi, seleziona JSON e poi Editor JSON.
  5. Nel riquadro JSON Editor, copia i contenuti del file move-instance-dashboard.json che hai scaricato e incollalo nell'editor.
  6. Per applicare le modifiche alla dashboard, fai clic su Applica modifiche. Se non vuoi utilizzare questa dashboard, torna alla pagina Panoramica delle dashboard.
  7. Dopo aver creato la dashboard, fai clic su Aggiungi filtro. Quindi seleziona project_id o instance_id per monitorare l'avanzamento del trasferimento dell'istanza.

Interfaccia a riga di comando gcloud

  1. Scarica il file move-instance-dashboard.json. Questo file contiene le informazioni necessarie per compilare una dashboard personalizzata in Monitoring.
  2. Per creare una dashboard in un progetto, utilizza il comando gcloud monitoring dashboards create:

    gcloud monitoring dashboards create --config-from-file=move-instance-dashboard.json
    

    Per maggiori informazioni, consulta la documentazione di riferimento di gcloud monitoring dashboards create.

Annullare lo spostamento di un'istanza

Puoi annullare solo il trasferimento di un'istanza ancora in corso. Se vuoi ripristinare un trasferimento di un'istanza già completato, devi avviarne uno nuovo.

Puoi utilizzare gcloud spanner operations cancel per annullare le operazioni di spostamento dell'istanza. L'annullamento non è istantaneo e richiede all'incirca la stessa quantità di tempo trascorso dall'inizio del trasferimento. Questo perché i dati devono essere riportati nella configurazione dell'istanza di origine.

Questo comando richiede l'ID operazione dell'operazione di spostamento dell'istanza in corso.

  1. Per ottenere l'ID operazione, esegui:

    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 da spostare.

    L'output mostra un elenco di operazioni di spostamento dell'istanza in corso.

  2. Esegui il comando gcloud spanner operations cancel per annullare lo spostamento dell'istanza:

    gcloud spanner operations cancel OPERATION_ID
    

    Sostituisci quanto segue:

    • OPERATION_ID: l'ID operazione dell'operazione di spostamento dell'istanza che vuoi annullare.

Passaggi successivi