Auf dieser Seite erfahren Sie, wie Sie eine Compute Engine-Instanz aus einem Backup Vault in der Google Cloud -Konsole wiederherstellen.
Hinweis
Gewähren Sie die IAM-Rolle „Backup and DR Compute Engine Operator“ (
roles/backupdr.computeEngineOperator) für den Backup Vault-Dienst-Agent des Vaults im Zielprojekt, in dem die Wiederherstellung erfolgt.Weisen Sie dem Dienst-Agent für Backup-Tresore des Tresors im VPC-Hostprojekt die IAM-Rolle „Compute Network User“ (
roles/compute.networkUser) zu, wenn Sie eine freigegebene VPC verwenden.Weisen Sie dem Nutzer, der die Wiederherstellung im Backup-Vault-Projekt durchführt, die folgenden IAM-Rollen zu.
- Backup and DR Restore User (
roles/backupdr.restoreUser) für sowohl das Backup-Vault als auch das Zielprojekt. - Compute-Betrachter (
roles/compute.viewer) nur für das Ziel.
Diese vordefinierten Rollen enthalten die Berechtigungen, die für den Zugriff auf den Backup Vault im Compute Engine-Projekt erforderlich sind. Informationen zu bestimmten Berechtigungen finden Sie in der folgenden Liste.
backupdr.bvbackups.restorebackupdr.compute.restoreFromBackupVaultbackupdr.backupVaults.getbackupdr.backupVaults.listbackupdr.bvbackups.listbackupdr.bvdataSources.getbackupdr.bvdataSources.listbackupdr.bvbackups.get
Wenn ein Nutzer eine Instanz mit der Google Cloud CLI oder der API wiederherstellen möchte, muss er die folgenden Berechtigungen haben:
backupdr.bvbackups.restorefür die Sicherungsressource.backupdr.compute.restoreFromBackupVaultfür das Zielprojekt, in dem die Instanz wiederhergestellt wird.
- Backup and DR Restore User (
Zusätzliche Berechtigungen für die Google Cloud -Konsole
Wenn Sie eine Instanz über die Google Cloud Console wiederherstellen, benötigt der Nutzer die CLI-Berechtigungen sowie die folgenden Berechtigungen. Diese zusätzlichen Berechtigungen sind erforderlich, damit in der Konsole die erforderlichen Compute Engine-Ressourcen für die Auswahl in der Benutzeroberfläche aufgeführt und angezeigt werden:
compute.acceleratorTypes.listcompute.disks.listcompute.machineTypes.listcompute.projects.getcompute.regions.listcompute.zones.list
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Compute Engine-Instanz wiederherstellen
Folgen Sie der Anleitung unten, um eine Compute Engine-Instanz wiederherzustellen.
Console
Rufen Sie in der Google Cloud Console die Seite Vaulted Backups auf.
Hier werden alle Compute Engine-Instanzen mit gesicherten Back-ups aufgeführt.
Klicken Sie auf das Aktionssymbol, um die Aktion Wiederherstellen auszuwählen. Auf der Seite Seite wiederherstellen können Sie die folgenden Wiederherstellungsoptionen auswählen:
- Wählen Sie einen Ressourcennamen aus.
- Wählen Sie einen Erstellungszeitpunkt der Sicherung aus.
- Wählen Sie den Projektnamen aus, in dem Sie die VM wiederherstellen möchten.
Klicken Sie auf Fortfahren.
- Die nächste Seite Neue VM-Instanz aus einer Sicherung erstellen wird angezeigt. Die VM-Eigenschaften sind basierend auf den Eigenschaften der Quell-VM vorausgefüllt. Sie können die Eigenschaften ändern, um eine neue VM zu erstellen, z. B. die Auswahl für Region oder Maschinentyp.
Klicken Sie auf Erstellen, um eine neue VM aus der ausgewählten Sicherung zu erstellen.
gcloud
Wenn noch nicht geschehen, weisen Sie dem Backup Vault-Dienst-Agent im Wiederherstellungsprojekt, in dem die VM wiederhergestellt wird, die IAM-Rolle „Backup and DR Compute Engine Operator“ (
roles/backupdr.computeEngineOperator) zu.Verwenden Sie den folgenden Befehl, um das Dienstkonto des Backup Vaults abzurufen.
gcloud backup-dr backup-vaults describe BACKUPVAULT_NAME --location=REGIONErsetzen Sie Folgendes:
- BACKUPVAULT_NAME: Der Name des Backup Vaults, aus dem Sie Daten wiederherstellen möchten.
- REGION: die Region des Backup Vault.
Bevor Sie eine Compute Engine-Instanz wiederherstellen können, müssen Sie mit den folgenden Befehlen die Datenquellen-ID und die ID der erforderlichen Sicherung abrufen.
ID der Datenquelle finden
gcloud backup-dr data-sources list \ --project=PROJECT \ --location=REGION \ --backup-vault=BACKUPVAULT_NAME \ "--filter=dataSourceGcpResource.computeInstanceDatasourceProperties.name:(DATA_SOURCE)" \ "--format=get(name)")Lassen Sie die vorhandenen Sicherungen für die Datenquelle auflisten, um die richtige BACKUP_ID zu finden.
gcloud backup-dr backups list \ --location=REGION \ --backup-vault=BACKUPVAULT_NAME \ --data-source=DATA_SOURCE \ "--format=yaml(backupType,computeInstanceBackupProperties.sourceInstance,consistencyTime,enforcedRetentionEndTime,expireTime,name)"
Verwenden Sie die folgenden Befehle, um eine Compute Engine-Instanz wiederherzustellen.
Stellen Sie eine VM im selben Projekt wie das Arbeitslastprojekt mit der Sicherungs-ID wieder her.
gcloud backup-dr backups restore compute test-backup-id \ --project=PROJECT --location=REGION \ --backup-vault=BACKUPVAULT_NAME --data-source=DATA_SOURCE\ --name=NAME --target-zone=TARGET_ZONE \ --target-project=TARGET_PROJECTStellen Sie eine VM im selben Projekt wie das Arbeitslastprojekt mit der vollständigen Ressourcen-URL der Sicherung wieder her.
gcloud backup-dr backups restore compute projects/test-project-id/locations/us-central1/backupVaults/test-vault/dataSources/test-ds/backups/test-backup-id \ --name=NAME --target-zone=TARGET_ZONE \ --target-project=TARGET_PROJECTCompute Engine-Instanz mit benutzerdefiniertem Dienstkonto und benutzerdefinierter Netzwerkkonfiguration wiederherstellen
gcloud backup-dr backups restore compute test-backup-id \ --project=PROJECT --location=REGION \ --backup-vault=BACKUPVAULT_NAME --data-source=DATA_SOURCE\ --name=NAME --target-zone=TARGET_ZONE \ --target-project=TARGET_PROJECT \ --network-interface=network=NETWORK,subnet=SUBNET \ --service-account=SERVICE_ACCOUNT \ --scopes=SCOPEErsetzen Sie Folgendes:
- PROJECT: der Name des Backup Vault-Projekts.
- REGION: Der Speicherort des Backup Vaults.
- BACKUPVAULT_NAME: Der Name des Backup Vaults, aus dem Sie Daten wiederherstellen möchten.
- DATA_SOURCE: Der Name der Datenquelle, aus der Sie Daten wiederherstellen möchten.
- NAME: der Name der wiederhergestellten VM.
- TARGET_ZONE: Die Region, in der die VM wiederhergestellt wird.
- TARGET_PROJECT: Das Projekt, in dem die VM wiederhergestellt wird.
- NETWORK: Der Netzwerk-URI der VM.
- SUBNET: der Subnetz-URI der VM.
- SERVICE_ACCOUNT: Das Dienstkonto der wiederhergestellten VM.
- SCOPE: der Autorisierungsbereich des Dienstkontos.
Informationen zum Überschreiben anderer VM-Eigenschaften finden Sie unter Übersicht über die Google Cloud CLI-Befehle des Backup and DR-Dienstes.
Aus einem CMEK-fähigen Backup Vault wiederherstellen
Wenn Sie eine Sicherung aus einem CMEK-fähigen Backup Vault wiederherstellen, hängt die Verschlüsselung der wiederhergestellten Ressource von der Verschlüsselung der Quelle ab:
- Wenn die Quellressource durch CMEK geschützt war:Die wiederhergestellte Ressource verwendet standardmäßig denselben CMEK-Schlüssel wie die Quelle. Beispiel:
- Ein nichtflüchtiger Speicher von Compute Engine, der mit dem Schlüssel
K1verschlüsselt ist, wird auf einem Laufwerk wiederhergestellt, das mitK1verschlüsselt ist. - Wenn eine VM mehrere Laufwerke hat, erbt jedes Laufwerk in der wiederhergestellten VM die Verschlüsselung des entsprechenden Quelllaufwerks. CMEK-verschlüsselte Laufwerke bleiben mit ihren ursprünglichen Schlüsseln verschlüsselt und von Google verwaltete verschlüsselte Laufwerke bleiben von Google verwaltet.
- Ein nichtflüchtiger Speicher von Compute Engine, der mit dem Schlüssel
- Wenn für die Quellressource die von Google verwaltete Verschlüsselung verwendet wurde:Für die wiederhergestellte Ressource wird standardmäßig die von Google verwaltete Verschlüsselung verwendet.
Sie können dieses Standardverhalten überschreiben, wenn Sie nichtflüchtige Compute Engine-Speicher oder Compute Engine-Instanzen mit der API oder der Google Cloud CLI wiederherstellen. Sie können beispielsweise eine Sicherung einer CMEK-geschützten Ressource in einer neuen Ressource wiederherstellen, die von Google verwaltete Verschlüsselung verwendet oder durch einen anderen CMEK-Schlüssel geschützt ist. Wenn Sie eine Wiederherstellung auf einer Ressource durchführen möchten, die durch einen neuen CMEK-Schlüssel geschützt ist, muss der entsprechende Dienst-Agent (z.B. der Compute Engine-Dienst-Agent) für das Zielprojekt die Berechtigung roles/cloudkms.cryptoKeyEncrypterDecrypter für den neuen Zielschlüssel haben.
Regionsübergreifende Wiederherstellung mit CMEK durchführen
Da Cloud Key Management Service-Schlüssel regional sind, schlägt der Wiederherstellungsvorgang fehl, wenn Sie eine regionsübergreifende Wiederherstellung durchführen (z. B. eine Instanz von asia-south1 nach asia-south2 wiederherstellen) und das Standardverhalten verwenden. Die Laufwerke der wiederhergestellten VM können nicht mit dem KMS-Schlüssel der Quellregion verschlüsselt werden.
Dies ist eine aktuelle Einschränkung in der Google Cloud Console. Wenn Sie eine CMEK-geschützte VM regionsübergreifend wiederherstellen möchten, müssen Sie die Google Cloud CLI, die API oder Terraform verwenden, um die Verschlüsselungseinstellungen zu überschreiben und einen neuen KMS-Schlüssel in der Zielregion anzugeben.
So stellen Sie eine Ressource wieder her, die durch einen neuen CMEK-Schlüssel geschützt ist:
- Schlüssel in der Zielregion erstellen:Erstellen Sie einen Cloud Key Management Service-Schlüssel in der Region, in der Sie die VM wiederherstellen (entweder im Zielprojekt oder in einem gemeinsam genutzten KMS-Projekt), falls Sie noch keinen haben.
KMS-Berechtigungen erteilen:Erteilen Sie dem Compute Engine-Dienst-Agenten des Zielprojekts, in dem die VM wiederhergestellt wird, die Rolle Cloud KMS CryptoKey Encrypter/Decrypter (
roles/cloudkms.cryptoKeyEncrypterDecrypter) für diesen Zielschlüssel.Wiederherstellung durchführen:Führen Sie die Wiederherstellung mit einer der folgenden Methoden aus und überschreiben Sie den KMS-Schlüssel für jedes Laufwerk:
gcloud
Sicherungsdetails abrufen:Rufen Sie den Namen der Sicherung und die Gerätenamen der Festplatten aus der Sicherung mit dem Befehl
gcloud backup-dr backups listab:gcloud backup-dr backups list \ --project=PROJECT_ID \ --location=SOURCE_REGION \ --backup-vault=BACKUP_VAULT_NAME \ --filter="computeInstanceBackupProperties.sourceInstance~SOURCE_INSTANCE_NAME"Ersetzen Sie Folgendes:
- PROJECT_ID: der Name des Projekts, in dem sich der Backup Vault befindet.
- SOURCE_REGION: Der Speicherort des Backup Vaults.
- BACKUP_VAULT_NAME: der Name des Backup Vaults, aus dem Sie Daten wiederherstellen möchten.
- SOURCE_INSTANCE_NAME: der Name der Compute Engine-Quellinstanz.
Wiederherstellungsbefehl ausführen:Führen Sie den Wiederherstellungsbefehl aus und überschreiben Sie den KMS-Schlüssel für jedes Laufwerk mit dem Parameter
--create-disk.VM mit einem einzelnen Laufwerk wiederherstellen:
gcloud backup-dr backups restore compute BACKUP_ID \ --project=PROJECT_ID \ --location=SOURCE_REGION \ --backup-vault=BACKUP_VAULT_NAME \ --data-source=DATA_SOURCE \ --name=RESTORED_VM_NAME \ --target-zone=TARGET_ZONE \ --target-project=TARGET_PROJECT_ID \ --create-disk=device-name=DEVICE_NAME,kms-key=projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAMEErsetzen Sie Folgendes:
- BACKUP_ID: Die ID der Sicherung, die Sie wiederherstellen möchten.
- PROJECT_ID: der Name des Projekts, in dem sich der Backup Vault befindet.
- SOURCE_REGION: Der Speicherort des Backup Vaults.
- BACKUP_VAULT_NAME: der Name des Backup Vaults, aus dem Sie Daten wiederherstellen möchten.
- DATA_SOURCE: Die ID der Datenquelle, aus der Sie Daten wiederherstellen möchten.
- RESTORED_VM_NAME: der Name der wiederhergestellten VM.
- TARGET_ZONE: die Zone, in der die VM wiederhergestellt wird.
- TARGET_PROJECT_ID: das Projekt, in dem die VM wiederhergestellt wird.
- DEVICE_NAME: der Gerätename des Laufwerks.
- KMS_PROJECT_ID: die ID des Projekts, in dem sich der Cloud Key Management Service-Schlüssel befindet.
- TARGET_REGION: Die Region, in der sich der Cloud Key Management Service-Schlüssel befindet.
- KEYRING: der Name des Cloud Key Management Service-Schlüsselbunds.
- KEY_NAME: Der Name des Cloud Key Management Service-Schlüssels für Laufwerk 1.
VM mit mehreren Laufwerken wiederherstellen:Geben Sie für jedes Laufwerk ein separates
--create-disk-Flag an:gcloud backup-dr backups restore compute BACKUP_ID \ --project=PROJECT_ID \ --location=SOURCE_REGION \ --backup-vault=BACKUP_VAULT_NAME \ --data-source=DATA_SOURCE \ --name=RESTORED_VM_NAME \ --target-zone=TARGET_ZONE \ --target-project=TARGET_PROJECT_ID \ --create-disk=device-name=DEVICE_NAME_1,kms-key=projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAME_1 \ --create-disk=device-name=DEVICE_NAME_2,kms-key=projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAME_2Ersetzen Sie Folgendes:
- BACKUP_ID: Die ID der Sicherung, die Sie wiederherstellen möchten.
- PROJECT_ID: der Name des Projekts, in dem sich der Backup Vault befindet.
- SOURCE_REGION: Der Speicherort des Backup Vaults.
- BACKUP_VAULT_NAME: der Name des Backup Vaults, aus dem Sie Daten wiederherstellen möchten.
- DATA_SOURCE: Die ID der Datenquelle, aus der Sie Daten wiederherstellen möchten.
- RESTORED_VM_NAME: der Name der wiederhergestellten VM.
- TARGET_ZONE: die Zone, in der die VM wiederhergestellt wird.
- TARGET_PROJECT_ID: das Projekt, in dem die VM wiederhergestellt wird.
- DEVICE_NAME_1: der Gerätename von Laufwerk 1.
- KMS_PROJECT_ID: die ID des Projekts, in dem sich der Cloud Key Management Service-Schlüssel befindet.
- TARGET_REGION: Die Region, in der sich der Cloud Key Management Service-Schlüssel befindet.
- KEYRING: der Name des Cloud Key Management Service-Schlüsselbunds.
- KEY_NAME_1: Der Name des Cloud Key Management Service-Schlüssels für Laufwerk 1.
- DEVICE_NAME_2: der Gerätename von Laufwerk 2.
- KEY_NAME_2: Der Name des Cloud Key Management Service-Schlüssels für Laufwerk 2.
API
Sicherungsdetails abrufen:Rufen Sie den Namen der Sicherung und die Gerätenamen der Laufwerke ab, indem Sie eine
GET-Anfrage zum Auflisten von Sicherungen senden:GET https://backupdr.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_REGION/backupVaults/BACKUP_VAULT_NAME/dataSources/DATA_SOURCE/backupsRestore API ausführen:Senden Sie eine
POST-Anfrage an denrestore-URI der Sicherung.VM mit einem einzelnen Laufwerk wiederherstellen:
POST https://backupdr.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_REGION/backupVaults/BACKUP_VAULT_NAME/dataSources/DATA_SOURCE/backups/BACKUP_ID:restoreNutzlast:
{ "computeInstanceTargetEnvironment": { "project": "TARGET_PROJECT_ID", "zone": "TARGET_ZONE" }, "computeInstanceRestoreProperties": { "name": "RESTORED_VM_NAME", "machineType": "projects/TARGET_PROJECT_ID/zones/TARGET_ZONE/machineTypes/e2-medium", "disks": [ { "deviceName": "DEVICE_NAME", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAME" } } ] } }VM mit mehreren Laufwerken wiederherstellen:
POST https://backupdr.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_REGION/backupVaults/BACKUP_VAULT_NAME/dataSources/DATA_SOURCE/backups/BACKUP_ID:restoreNutzlast:
{ "computeInstanceTargetEnvironment": { "project": "TARGET_PROJECT_ID", "zone": "TARGET_ZONE" }, "computeInstanceRestoreProperties": { "name": "RESTORED_VM_NAME", "machineType": "projects/TARGET_PROJECT_ID/zones/TARGET_ZONE/machineTypes/e2-medium", "disks": [ { "deviceName": "DEVICE_NAME_1", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAME_1" } }, { "deviceName": "DEVICE_NAME_2", "diskEncryptionKey": { "kmsKeyName": "projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAME_2" } } ] } }
Terraform
google_backup_dr_restore_workload-Ressource verwenden
VM mit einem einzelnen Laufwerk wiederherstellen:
resource "google_backup_dr_restore_workload" "restore_single" { location = "SOURCE_REGION" backup_vault_id = "BACKUP_VAULT_NAME" data_source_id = "DATA_SOURCE" backup_id = "BACKUP_ID" compute_instance_target_environment { project = "TARGET_PROJECT_ID" zone = "TARGET_ZONE" } compute_instance_restore_properties { name = "RESTORED_VM_NAME" machine_type = "zones/TARGET_ZONE/machineTypes/e2-medium" disks { device_name = "DEVICE_NAME" disk_encryption_key { kms_key_name = "projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAME" } } } }VM mit mehreren Laufwerken wiederherstellen:
resource "google_backup_dr_restore_workload" "restore_multi" { location = "SOURCE_REGION" backup_vault_id = "BACKUP_VAULT_NAME" data_source_id = "DATA_SOURCE" backup_id = "BACKUP_ID" compute_instance_target_environment { project = "TARGET_PROJECT_ID" zone = "TARGET_ZONE" } compute_instance_restore_properties { name = "RESTORED_VM_NAME" machine_type = "zones/TARGET_ZONE/machineTypes/TARGET_MACHINETYPE" disks { device_name = "DEVICE_NAME_1" disk_encryption_key { kms_key_name = "projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAME_1" } } disks { device_name = "DEVICE_NAME_2" disk_encryption_key { kms_key_name = "projects/KMS_PROJECT_ID/locations/TARGET_REGION/keyRings/KEYRING/cryptoKeys/KEY_NAME_2" } } } }
Wenn der Cloud Key Management Service-Schlüssel, mit dem die Quellarbeitslast geschützt wird, während eines Wiederherstellungsvorgangs nicht verfügbar ist, schlägt die Wiederherstellung standardmäßig fehl. In diesem Fall müssen Sie die API oder die Google Cloud CLI verwenden, um die Verschlüsselungseinstellung zu überschreiben. Geben Sie dazu einen neuen CMEK-Schlüssel an oder ändern Sie den Verschlüsselungstyp in die von Google verwaltete Verschlüsselung für die wiederhergestellte Ressource.
Wenn die Cloud Key Management Service-Schlüsselversion, die zum Verschlüsseln von Daten im Sicherungstresor verwendet wird, deaktiviert oder gelöscht wird, können Sie die Sicherung nicht wiederherstellen.
Leitfaden für Backup und DR Compute Engine
- Sicherungsplan für verschlüsselte Backups erstellen und verwalten
- Cloud-Anmeldedaten prüfen
- Compute Engine-Instanzen ermitteln und schützen
- Sicherungsimages von nichtflüchtigem Speicher der Compute Engine bereitstellen
- Compute Engine-Instanz wiederherstellen
- Snapshots von nichtflüchtigem Speicher importieren