Crea e gestisci dischi replicati in modo sincrono

L'alta disponibilità con Hyperdisk Balanced è un'opzione di archiviazione che ti consente di implementare servizi ad alta disponibilità in Compute Engine. Disponibilità elevata Hyperdisk bilanciata replica in modo sincrono i dati tra due zone nello stesso e garantisce l'alta disponibilità per i dati del disco per un massimo di un errore a livello di zona. Il disco replicato in modo sincrono può essere un disco di avvio su un disco non di avvio.

Questo documento spiega come eseguire le seguenti attività per i dischi replicati:

Prima di iniziare

  • Esamina le differenze tra diversi tipi di opzioni di archiviazione su disco.
  • Rivedi le informazioni di base replica sincrona del disco.
  • Informazioni Failover del disco replicato.
  • Se non l'hai già fatto, configura l'autenticazione. Autenticazione è Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

      gcloud init
    2. Set a default region and zone.
    3. Terraform

      Per utilizzare gli esempi di Terraform in questa pagina in un ambiente dell'ambiente di sviluppo, installare e inizializzare gcloud CLI quindi configura Credenziali predefinite dell'applicazione con le tue credenziali utente.

      1. Installa Google Cloud CLI.
      2. Per initialize gcloud CLI, esegui questo comando:

        gcloud init
      3. Crea credenziali di autenticazione locali per il tuo Account Google:

        gcloud auth application-default login

      Per ulteriori informazioni, vedi Set up authentication for a local development environment.

      REST

      Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.

        Installa Google Cloud CLI, quindi initialize eseguendo questo comando:

        gcloud init

      Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Ruoli e autorizzazioni richiesti

Per ottenere le autorizzazioni necessarie per creare un disco replicato in modo sincrono, chiedi all'amministratore di concederti seguenti ruoli IAM sul progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questi ruoli predefiniti le autorizzazioni necessarie per creare un disco replicato in modo sincrono. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per creare un disco replicato in modo sincrono sono necessarie le seguenti autorizzazioni:

  • compute.disks.create
  • compute.instances.attachDisk
  • compute.disks.use
  • Crea uno snapshot di un disco: compute.disks.createSnapshot
  • Visualizza i dettagli di un disco: compute.disks.get
  • Ottieni un elenco di dischi: compute.disks.list
  • Modifica le dimensioni di un disco: compute.disks.update

Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati e altri ruoli predefiniti.

Limitazioni

  • Puoi collegare l'alta disponibilità Hyperdisk Balanced solo ai supporti tipi di macchine.
  • Puoi solo aumentare la dimensione di un volume Hyperdisk Bilanciato ad alta disponibilità; non puoi ridurne le dimensioni.
  • iperdisco bilanciato ad alta disponibilità hanno prestazioni diverse rispetto ai dischi di zona corrispondenti. Per ulteriori informazioni, vedi Blocca le prestazioni dello spazio di archiviazione.
  • Se crei un disco replicato clonando un disco a livello di zona, le due repliche non sono completamente sincronizzati al momento della creazione. Dopo la creazione, puoi utilizzare il disco regionale clone entro 3 minuti, in media. Tuttavia, potresti dover attendere decine di minuti prima che il disco raggiunga uno stato completamente replicato Il Recovery Point Objective (RPO) è vicino allo zero. Scopri come verifica che il disco replicato sia completamente replicato.

Informazioni sull'utilizzo di un disco replicato come disco di avvio per una VM

Puoi allegare un Hyperdisk Balanced High-availability (Anteprima) come disco di avvio per per carichi di lavoro stateful di cui viene eseguito il provisioning in anticipo carico di lavoro di produzione. I dischi di avvio replicati non sono destinati a hot standby, perché i dischi di avvio replicati non possono essere collegati contemporaneamente a due VM.

Puoi creare solo Hyperdisk Bilanciato ad alta disponibilità da snapshot; non è possibile creare un disco replicato da un'immagine.

Per utilizzare un disco replicato come disco di avvio delle VM, usa uno dei seguenti dischi metodo:

  1. Crea una nuova VM con un disco di avvio replicato.
  2. Crea un disco di avvio replicato e poi collegalo a una VM:
    1. Crea un disco replicato da uno snapshot di un disco di avvio.
    2. Collega un disco di avvio replicato a una VM.

Se devi eseguire il failover di un disco di avvio replicato su una VM in standby in esecuzione replica una zona di replica, segui i passaggi descritti in Collega un disco di avvio replicato a una VM.

Crea un disco replicato in modo sincrono

Crea un Hyperdisk Balanced High-availability (anteprima). Il disco deve trovarsi nella stessa regione della VM a cui prevedi di collegarla.

Console

  1. Nella console Google Cloud, vai alla pagina Dischi.

    Vai a dischi

  2. Seleziona il progetto richiesto.

  3. Fai clic su Crea disco.

  4. Specifica un nome per il disco.

  5. In Località, scegli A livello di regione.

  6. Seleziona la regione e la zona. Devi selezionare la stessa regione quando crei la VM.

  7. Seleziona la Zona di replica nella stessa regione. Prendi nota delle zone selezionate perché devi collegare il disco alla VM in una di quelle zone.

  8. Seleziona il Tipo di origine del disco.

  9. Seleziona il Tipo di disco e le Dimensioni.

  10. Fai clic su Crea per completare la creazione del disco.

gcloud

Crea un disco replicato in modo sincrono utilizzando il metodo Comando compute disks create.

gcloud compute disks create DISK_NAME \
   --size=DISK_SIZE \
   --type=DISK_TYPE \
   --region=REGION \
   --replica-zones=ZONE1,ZONE2

Sostituisci quanto segue:

  • DISK_NAME: il nome del nuovo disco
  • DISK_SIZE: la dimensione, in GiB, del nuovo disco
  • DISK_TYPE: Per le regioni Persistent Disk, questo è il tipo sul disco replicato. Il valore predefinito è pd-standard. Per Hyperdisk, specifica il valore hyperdisk-balanced-high-availability.
  • REGION: la regione del disco replicato in cui risiedere, ad esempio: europe-west1
  • ZONE1,ZONE2: il valore zone all'interno della regione in cui si trovano le due repliche del disco, ad esempio: europe-west1-b,europe-west1-c

Terraform

Per creare un Hyperdisk Bilanciato ad alta disponibilità, puoi utilizzare google_compute_region_disk risorsa.

resource "google_compute_region_disk" "regiondisk" {
  name                      = "region-disk-name"
  snapshot                  = google_compute_snapshot.snapdisk.id
  type                      = "pd-ssd"
  region                    = "us-central1"
  physical_block_size_bytes = 4096
  size                      = 11

  replica_zones = ["us-central1-a", "us-central1-f"]
}

REST

Per creare un Hyperdisk Balanced High Speed, creare una richiesta POST metodo compute.regionDisks.insert.

Per creare un disco vuoto, non specificare un'origine snapshot.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks
{
  "name": "DISK_NAME",
  "region": "projects/PROJECT_ID/regions/REGION",
  "replicaZones": [
    "projects/PROJECT_ID/zones/ZONE1",
    "projects/PROJECT_ID/zones/ZONE2"
  ],
  "sizeGb": "DISK_SIZE",
  "type": "projects/PROJECT_ID/regions/REGION/diskTypes/DISK_TYPE"
}

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto
  • REGION: la regione del disco replicato in cui risiedere, ad esempio: europe-west1
  • DISK_NAME: il nome del nuovo disco
  • ZONE1,ZONE2: il valore zone in cui devono trovarsi le repliche del nuovo disco
  • DISK_SIZE: la dimensione, in GiB, del nuovo disco
  • DISK_TYPE: Per le regioni Persistent Disk, questo è il tipo Persistent Disk. Per Hyperdisk, specifica il valore hyperdisk-balanced-high-availability.

Collega un disco replicato alla tua VM

Per i dischi che non sono dischi di avvio, dopo aver creato un Hyperdisk Balanced High-availability (anteprima), puoi allegarlo in una VM. La VM deve trovarsi nella stessa regione del disco.

Per collegare un disco di avvio replicato a una VM, consulta Collega un disco di avvio replicato a una VM.

Console

  1. Per collegare un disco a una VM, vai alla pagina Istanze VM.

    Vai a Istanze VM

  2. Nella colonna Nome, fai clic sul nome della VM.

  3. Fai clic su Modifica .

  4. Fai clic su +Collega disco esistente.

  5. Scegli il disco replicato creato in precedenza da aggiungere alla tua VM.

  6. Se viene visualizzato un avviso che indica che il disco selezionato è già collegato a un'altra istanza, seleziona la casella Forza il collegamento del disco per eseguire il collegamento forzato del disco alla VM che stai modificando.

    Rivedi i casi d'uso per il collegamento forzato dei dischi replicati su Failover del disco replicato.

  7. Fai clic su Salva.

  8. Nella pagina Modifica VM, fai clic su Salva.

gcloud

Per collegare un disco replicato a una VM in esecuzione o arrestata, utilizza Comando compute instances attach-disk con il flag --disk-scope impostato su regional.

gcloud compute instances attach-disk VM_NAME \
    --disk=DISK_NAME \
    --disk-scope=regional

Sostituisci quanto segue:

  • VM_NAME: il nome della VM a cui aggiungi il disco replicato
  • DISK_NAME: il nome del nuovo disco che stai collegando alla VM

Terraform

Per allegare un Hyperdisk Bilanciato ad alta disponibilità regionale su una VM, puoi utilizzare google_compute_attached_disk risorsa.

resource "google_compute_instance" "test_node" {
  name         = "test-node"
  machine_type = "f1-micro"
  zone         = "us-west1-a"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }
  attached_disk {
    source      = google_compute_disk.default.id
    device_name = google_compute_disk.default.name
  }

  network_interface {
    network = "default"
    access_config {
      # Ephemeral IP
    }
  }

  # Ignore changes for persistent disk attachments
  lifecycle {
    ignore_changes = [attached_disk]
  }


}

REST

Per collegare un disco replicato a una VM in esecuzione o arrestata, creare una richiesta POST Metodo compute.instances.attachDisk e includi l'URL del disco replicato che hai creato.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/attachDisk
{
  "source": "/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME"
}

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto
  • ZONE: la località della VM
  • VM_NAME: il nome della VM a cui aggiungi il nuovo disco replicato
  • REGION: la regione in cui il disco replicato si trova
  • DISK_NAME: il nome del disco replicato

Per i dischi non di avvio, dopo aver creato e collegato un disco replicato vuoto a un VM, devi formattare e montare il disco, in modo che il sistema operativo possa utilizzare lo spazio di archiviazione disponibile.

Cambia un disco di zona in un disco replicato

Per convertire un Hyperdisk in un disco replicato in modo sincrono, crea un nuovo disco Hyperdisk Bilanciato ad alta disponibilità da uno snapshot del disco esistente, come descritto in Cambia il tipo di disco.

Crea una nuova VM con dischi replicati

Quando crei una VM, puoi includere facoltativamente Volumi a disponibilità elevata bilanciata Hyperdisk (anteprima) come volumi aggiuntivi i dischi permanenti.

Per creare e allegare un Volume ad alta disponibilità bilanciato Hyperdisk su una VM durante la creazione della VM, consulta uno dei seguenti articoli:

Crea una nuova VM con un disco di avvio replicato

Quando configuri un'istanza VM ad alta disponibilità, puoi creare la VM principale con un disco di avvio replicato. Se si verifica un'interruzione a livello di zona, puoi riavviare una VM nella zona secondaria, anziché crearne una nuova.

In una configurazione ad alta disponibilità, in cui il dispositivo di avvio è un disco replicato, Google consiglia di non creare preventivamente e non avviare l'istanza in standby. In fase di failover, collega il disco replicato esistente quando per creare l'istanza in standby utilizzando l'opzione forceAttach.

Per creare una VM con un disco di avvio che sia un disco replicato, utilizza una delle due seguenti metodi:

gcloud

Usa il comando gcloud compute instances create per creare una VM e il flag --create-disk per specificare il disco replicato.

gcloud compute instances create PRIMARY_INSTANCE_NAME  \
 --zone=ZONE  \
 --create-disk=^:^name=REPLICATED_DISK_NAME:scope=regional:boot=true:type=DISK_TYPE:source-snapshot=SNAPSHOT_NAME:replica-zones=ZONE,REMOTE_ZONE

Quando si specificano i parametri del disco, i caratteri ^:^ specificano che il carattere di separazione tra i parametri sia i due punti (:). Questo consente di utilizzare una virgola (,) quando specifichi il parametro replica-zones.

Sostituisci quanto segue:

  • PRIMARY_INSTANCE_NAME: un nome per la VM
  • ZONE: il nome della zona in cui vuoi creare la VM
  • REPLICATED_DISK_NAME: un nome per il disco replicato
  • DISK_TYPE: tipo di disco da creare, ad esempio, hyperdisk-balanced-high-availability (anteprima)
  • SNAPSHOT_NAME: il nome dello snapshot per cui hai creato il disco di avvio
  • REMOTE_ZONE: la zona alternativa per il disco replicato

REST

Crea una richiesta POST per il metodo instances.insert e specificare le proprietà boot: 'true' e replicaZones. Ad esempio:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
 "name": "VM_NAME",
 "disks": [{
    "boot": true,
    "initializeParams": {
       "sourceSnapshot": "global/snapshots/BOOT_SNAPSHOT_NAME",
       "replicaZones": [
           "projects/PROJECT_ID/zones/ZONE",
           "projects/PROJECT_ID/zones/REMOTE_ZONE"
       ],
       "diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE"
    }
  }],
 "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ]
}

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto
  • ZONE: il nome della zona in cui vuoi crea la VM
  • VM_NAME: un nome per la VM
  • BOOT_SNAPSHOT_NAME: il nome del disco di avvio istantanea
  • REMOTE_ZONE: la zona remota per l'elemento replicato disco
  • DISK_TYPE: il tipo di disco da creare, per esempio, hyperdisk-balanced-high-availability (anteprima)

Collega un disco di avvio replicato a una VM

Per:

  • Sostituisci il disco di avvio di una VM esistente con un disco di avvio replicato.
  • Esegui il failover di un disco di avvio replicato in una VM hot standby in esecuzione zona di backup. Per farlo, devi collegare il disco replicato alla VM come disco di avvio.

Questi passaggi presuppongono che il disco e la VM replicati esistano già.

gcloud

  1. Arresta la VM.
    gcloud compute instances stop VM_NAME  --zone=ZONE
    
  2. Scollega il disco di avvio attuale dalla VM.
    gcloud compute instances detach-disk VM_NAME \
     --zone=ZONE --disk=CURRENT_BOOT_DEVICE_NAME
    
  3. Collega il disco di avvio replicato alla VM.
    gcloud compute instances attach-disk VM_NAME  \
     --zone=ZONE  \
     --disk=REPLICATED_DISK_NAME  \
     --disk-scope=regional --force-attach
    
  4. Riavvia la VM.

    gcloud compute instances start VM_NAME
    

Sostituisci le variabili nei comandi precedenti con quanto segue:

  • VM_NAME: il nome della VM a cui vuoi collegare il disco di avvio replicato
  • ZONE: la zona in cui si trova la VM
  • CURRENT_BOOT_DEVICE_NAME: nome dell'avvio disco utilizzato dalla VM. Di solito corrisponde al nome del la VM.
  • REPLICATED_DISK_NAME: il nome della replica che vuoi collegare alla VM come disco di avvio

(Facoltativo) Se non riesci a scollegare il disco di avvio replicato dalla VM principale a causa di un'interruzione o un errore, includi segnala --force-attach.

REST

  1. Arresta la VM.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
    
  2. Scollega il disco di avvio attuale dalla VM.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/detachDisk?deviceName=CURRENT_BOOT_DEVICE_NAME
    
  3. Collega il disco di avvio replicato alla VM.

    Crea una richiesta POST per il metodo compute.instances.attachDisk, e includi l'URL del disco di avvio replicato:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/attachDisk
    {
    "source": "compute/v1/projects/PROJECT_ID/regions/REGION/disks/REPLICATED_DISK_NAME",
    "boot": true
    }
  4. Riavvia la VM.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
    

Sostituisci le variabili nei comandi precedenti con quanto segue:

  • PROJECT_ID: il tuo ID progetto
  • VM_NAME: il nome della VM a cui vuoi collegare il disco replicato
  • ZONE: la zona in cui si trova la VM
  • CURRENT_BOOT_DEVICE_NAME: nome dell'avvio disco utilizzato dalla VM. Di solito è uguale al nome della VM.
  • REGION: la regione in cui è stato replicato il disco si trova
  • REPLICATED_DISK_NAME: il nome della replica che vuoi collegare alla VM come disco di avvio

(Facoltativo) Se non riesci a scollegare il disco di avvio replicato dalla VM alla quale era stato inizialmente collegato a causa di un'interruzione del servizio errore, includi "forceAttach": true nel corpo della richiesta.

Elenca e descrivi i tuoi dischi replicati

Puoi visualizzare un elenco di tutti i dischi replicati configurati e informazioni sulle loro proprietà, tra cui:

  • ID disco
  • Nome disco
  • Dimensioni
  • Tipo di disco
  • Regione
  • Repliche di zona

Per visualizzare informazioni dettagliate sui dischi replicati, utilizza le seguenti:

Ridimensiona un disco replicato

Se le VM con dischi replicati in modo sincrono richiedono spazio di archiviazione aggiuntivo spazio vuoto, puoi ridimensionare i dischi. Puoi ridimensionare i dischi in qualsiasi momento, indipendentemente dal fatto che il disco sia collegato a una VM in esecuzione. Se devi separare i dati in volumi unici, creando più dischi secondari per la VM. Per Disponibilità elevata bilanciata Hyperdisk puoi anche aumentare i limiti di IOPS e velocità effettiva per il disco.

Il comando per ridimensionare un disco replicato è molto simile a quello il ridimensionamento di un disco non replicato. Tuttavia, devi specificare una regione anziché una zona per la posizione del disco.

Puoi solo aumentare, e non diminuire, la dimensione di un disco. Per ridurre il devi crearne uno nuovo di dimensioni inferiori. Finché non elimini disco originale più grande, vengono addebitati entrambi i dischi.

Per istruzioni su come modificare un disco replicato, consulta quanto segue: Modificare un volume Hyperdisk

Passaggi successivi