Scala un deployment di VM

Per gestire lo spostamento del traffico del database o archiviare più partizioni, puoi modificare il numero di nodi server nell'ambiente della macchina virtuale. Utilizza queste procedure per gestire i deployment delle VM.

Prima di iniziare

Per scalare il deployment della VM:

Come best practice, consigliamo di scalare verticalmente fino a 32 GB di memoria per server prima di aggiungere altri server per scalare orizzontalmente.

Aggiungere server radice

Aggiungi un nuovo server radice a un deployment VM seguendo questi passaggi:

  1. Avvia un nuovo server in una nuova VM in una zona esistente. Inizializza il server utilizzando il comando spanner start. L'esempio seguente avvia un server root:

    spanner start \
      --root \
      --server-address=HOSTNAME \
      --zone=ZONE \
      --base-dir=BASE_DIR
    

    Sostituisci quanto segue:

    • HOSTNAME: il nome di dominio completo (FQDN) o il nome host risolvibile della nuova VM, ad esempio new-root-server.example.com.
    • ZONE: la zona di destinazione, ad esempio us-central1-a
    • BASE_DIR: il percorso della directory in cui sono archiviati i dati, ad esempio /spanner.
  2. Aggiungi il server al deployment esistente. Registra il nuovo server radice con il deployment principale. Assicurati che gli argomenti del nome host e della porta corrispondano ai parametri utilizzati nel comando spanner start e specifica la zona da assegnare al server radice.

    spanner deployment servers create SERVER_ENDPOINT \
      --zone=ZONE \
      --deployment-endpoint=ENDPOINT
    

    Sostituisci quanto segue:

    • SERVER_ENDPOINT: l'indirizzo del nuovo server radice, ad esempio new-root-server.example.com:15000.
    • ZONE: la zona di destinazione, ad esempio us-central1-a
    • ENDPOINT: l'endpoint del deployment principale, ad esempio my-spanner-deployment:15000.

    Il comando spanner deployment servers create avvia un'operazione a lunga esecuzione per aggiungere il server al deployment. Le operazioni a lunga esecuzione potrebbero richiedere un periodo di tempo considerevole per essere completate. Per saperne di più, consulta Gestire e osservare le operazioni a lunga esecuzione nella documentazione di Spanner.

  3. Verifica che il server sia stato aggiunto al deployment. Elenca i server per verificare che il server sia stato registrato e sia passato allo stato Ready:

    spanner deployment servers list \
      --zone=ZONE \
      --deployment-endpoint=ENDPOINT
    

Aggiungere server non root

Per aggiungere un server non root, avvia il processo spanner su una VM e configuralo per connettersi a uno o più server root nel cluster per partecipare al deployment.

Questo esempio avvia un server non root e lo aggiunge al deployment:

spanner start \
  --server-address=HOSTNAME \
  --join-servers=JOIN_SERVERS \
  --zone=ZONE \
  --base-dir=BASE_DIR

Sostituisci quanto segue:

  • HOSTNAME: il nome host della nuova VM, ad esempio new-non-root-server.example.com.
  • JOIN_SERVERS: un elenco separato da virgole di endpoint del server root esistenti, ad esempio root-server1.example.com:15000.
  • ZONE: il nome della zona, ad esempio us-central1-a.
  • BASE_DIR: il percorso della directory in cui sono archiviati i dati, ad esempio /spanner.

Rimuovere i server

Segui gli stessi passaggi per rimuovere un server root o un server non root. Se rimuovi un server radice, assicurati di mantenere un numero dispari di server radice totali nel deployment (tra 1 e 9).

Per dismettere un server VM, segui questi passaggi:

  1. Elimina il server dal deployment:

    spanner deployment servers delete SERVER_ENDPOINT \
      --zone=ZONE \
      --deployment-endpoint=ENDPOINT
    

    Sostituisci quanto segue:

    • SERVER_ENDPOINT: l'indirizzo del server da rimuovere, ad esempio server-to-remove:15000.
    • ZONE: la zona contenente il server, ad esempio us-central1-a.
    • ENDPOINT: l'endpoint del deployment principale, ad esempio my-spanner-deployment:15000.
  2. Attendi il completamento del trasferimento dei dati. Il trasferimento della partizione richiede tempo a seconda delle dimensioni del datastore ospitato sul server. Monitora lo stato del server finché non viene più visualizzato nell'output:

    spanner deployment servers list \
      --zone=ZONE \
      --deployment-endpoint=ENDPOINT
    
  3. Arresta il processo del server. Accedi alla VM e arresta il processo spanner.

    Per evitare il danneggiamento dei dati o la registrazione di aggiornamenti in conflitto da parte dei server disconnessi, non riavviare il processo spanner su questa VM utilizzando lo stesso base_dir senza prima eliminare le vecchie cartelle di dati.

Passaggi successivi