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, anche tra configurazioni a livello di una o più regioni. Lo spostamento dell'istanza non comporta tempi di inattività e Spanner continua a fornire le solite garanzie relative alle transazioni, tra cui un'elevata coerenza, durante lo spostamento.

Puoi anche spostare l'istanza dalla configurazione dell'istanza di origine a una configurazione di 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 delle istanze 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 di Spanner?

I vantaggi dello spostamento dell'istanza includono:

  • Aumenta la disponibilità: ottieni una disponibilità del 99,999% senza tempi di inattività dopo aver eseguito uno spostamento da una regione a un'altra.
  • Riduci la latenza: riduci la latenza e aumenta la copertura geografica con ulteriori repliche di sola lettura tramite un trasferimento da una singola regione 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 configurazione a livello di regione.
  • Assegna database: colocation del database Spanner con l'applicazione client spostando l'istanza in una posizione più ottimizzata.

Prezzi

Quando sposti un'istanza, entrambe le configurazioni dell'istanza di origine e di destinazione sono soggette a costi di calcolo e archiviazione orari. Una volta completato il trasferimento, ti verrà addebitato il costo dello spazio di archiviazione dell'istanza in base alla configurazione di destinazione.

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

Limitazioni

  • Per spostare l'istanza, 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, lo spostamento dell'istanza influisce su tutte le richieste che utilizzano l'endpoint a livello di regione perché l'applicazione forzata a livello di regione blocca l'accesso alle istanze tra regioni. Le richieste che usano un endpoint globale non sono interessate.
  • I backup di Spanner sono specifici per una configurazione di istanza e non sono inclusi quando si sposta un'istanza. Per ulteriori informazioni, consulta la sezione Backup.
  • Le seguenti API sono 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 una leader predefinita modificata, la selezione viene mantenuta se nomina una regione di lettura/scrittura nella configurazione dell'istanza di destinazione e questa configurazione è su più regioni. Se la configurazione della destinazione è a livello di regione o non include la regione di lettura e scrittura denominata, la selezione predefinita della variante principale viene cancellata.
  • Lo spostamento di un'istanza ne modifica l'attributo di configurazione. 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-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. Per ulteriori informazioni sul comando apply, consulta Opzioni di applicazione Terraform.
  • Durante lo spostamento dell'istanza, 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 in una configurazione dell'istanza.
  • Se lo hai configurato, non è necessario disabilitare questo strumento. Non riesce perché InstanceAdmin.UpdateInstance (utilizzato per le modifiche di nodi ed unità di elaborazione) è disabilitato.
  • Non puoi spostare un'istanza se è abilitata la funzionalità 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 nuovamente il gestore della scalabilità automatica gestito.

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

Considerazioni sulle prestazioni

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

Dopo aver spostato un'istanza, le sue prestazioni variano in base ai dettagli della relativa configurazione. Ad esempio, le configurazioni per più regioni in genere hanno una latenza di scrittura più elevata e una latenza di lettura inferiore rispetto alle configurazioni a livello di regione.

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 sono presenti backup nella configurazione dell'istanza di origine quando avvii lo spostamento dell'istanza. È importante copiare i backup e valutare il piano di recupero dei dati prima di spostare l'istanza.

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

  • Puoi copiare i backup nella configurazione dell'istanza di destinazione subito 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 dell'istanza di origine.

Dopo aver copiato i backup in un'altra istanza, prima di poter spostare l'istanza devi eliminare tutti i backup esistenti nell'istanza di origine. Una volta completato lo spostamento dell'istanza, disponi già di una copia del backup nella configurazione di destinazione. Puoi anche creare un nuovo backup.

Per scoprire di più sulla copia dei backup e sui relativi costi, vedi 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. Assicurati di disporre dell'autorizzazione IAM spanner.instances.update sull'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 lo spostamento di un'istanza.
  3. Quando sposti un'istanza di Spanner, il processo di spostamento elimina i tag di istanza creati in Data Catalog. Per conservare i tag, devi esportarli prima dello spostamento e importarli dopo lo spostamento. Per maggiori informazioni, consulta la sezione Esportare e importare tag.

Per le best practice, segui anche queste linee guida:

  • Testa i carichi di lavoro per le prestazioni 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 alla tua istanza di produzione per avere un'idea di quanto tempo sarà necessario per spostare l'istanza di produzione.
  • Verifica che non siano presenti hotspot nei database utilizzando Key Visualizer.
  • Rivedi per assicurarti di disporre di una quota di nodi sufficiente nella configurazione dell'istanza di destinazione per supportare l'utilizzo massimo 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 spostata 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 dei nodi delle istanze, la modifica degli schemi dei database, la creazione o l'eliminazione dei database e la creazione o l'eliminazione dei backup.

Se sposti l'istanza in base a questi suggerimenti, in genere lo spostamento 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 Icona Attiva Cloud Shell Attiva Cloud Shell nella parte superiore della console Google Cloud.

    Si apre una sessione Cloud Shell all'interno di un nuovo frame nella parte inferiore della console Google Cloud e viene visualizzato 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 che vuoi 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-us-c1).

    Ad esempio, vuoi aggiungere una replica di sola lettura us-west2 alla configurazione dell'istanza di base nam3.

    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 la tua istanza test-instance dalla sua configurazione attuale a questa nuova configurazione di 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 che vuoi 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 dell'istanza a una o più regioni (ad esempio nam3, us-central1 o custom-us-c1).

Ad esempio, vuoi aggiungere una replica di sola lettura us-west2 alla configurazione dell'istanza di base nam3.

  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 la tua istanza test-instance dalla sua configurazione attuale a questa nuova configurazione di istanza custom-nam3-us-west2:

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

Come monitorare l'avanzamento dello spostamento e dell'annullamento delle istanze

Puoi utilizzare gcloud spanner operations describe o creare una dashboard di Cloud Monitoring personalizzata per monitorare l'avanzamento dello spostamento di un'istanza.

Visualizza l'avanzamento dell'operazione di spostamento e annullamento

Per monitorare l'avanzamento di un'operazione di annullamento o spostamento 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. Per ottenere l'ID operazione per l'operazione di spostamento dell'istanza, esegui:

    gcloud spanner operations list --instance="INSTANCE-ID"
    

    Sostituisci quanto segue:

    • INSTANCE-ID: l'identificatore permanente dell'istanza che vuoi 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
    

    Sostituisci quanto segue:

    • OPERATION-ID: l'ID dell'operazione di spostamento dell'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 lo stato di 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 completare 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 il cui 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 Editor JSON.
  5. Nel riquadro dell'Editor JSON, copia e incolla i contenuti del file move-instance-dashboard.json che hai scaricato.
  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 dello spostamento dell'istanza.

Interfaccia a riga di comando gcloud

  1. Scarica il file move-instance-dashboard.json. Questo file contiene le informazioni necessarie per completare 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 saperne di più, consulta la documentazione di gcloud monitoring dashboards create.

Come annullare lo spostamento di un'istanza

Puoi annullare solo lo spostamento di un'istanza ancora in corso. Se vuoi ripristinare lo spostamento di un'istanza già completato, devi iniziarne 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 dello spostamento. Il motivo è che i dati devono essere spostati nuovamente 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 che vuoi 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 dell'operazione di spostamento dell'istanza che vuoi annullare.

Passaggi successivi