Halaman ini membantu Anda memulihkan instance Compute Engine dari vault cadangan di konsol Google Cloud .
Sebelum memulai
Berikan peran IAM Backup and DR Compute Engine Operator (
roles/backupdr.computeEngineOperator) untuk agen layanan vault cadangan vault di project target tempat pemulihan dilakukan.Berikan peran IAM Compute Network User (
roles/compute.networkUser) untuk agen layanan vault cadangan vault di project host VPC jika Anda menggunakan VPC Bersama.Berikan peran IAM berikut untuk pengguna yang melakukan pemulihan di project vault cadangan.
- Pengguna Pemulihan Backup dan DR (
roles/backupdr.restoreUser) untuk project target dan vault cadangan. - Compute Viewer (
roles/compute.viewer) hanya untuk target.
Peran bawaan ini berisi izin yang diperlukan untuk mengakses vault cadangan di project Compute Engine. Untuk izin tertentu, lihat daftar berikut.
backupdr.bvbackups.restorebackupdr.compute.restoreFromBackupVaultbackupdr.backupVaults.getbackupdr.backupVaults.listbackupdr.bvbackups.listbackupdr.bvdataSources.getbackupdr.bvdataSources.listbackupdr.bvbackups.get
Untuk memulihkan instance menggunakan Google Cloud CLI atau API, pengguna harus memiliki izin berikut:
backupdr.bvbackups.restorepada resource cadangan.backupdr.compute.restoreFromBackupVaultdi project target tempat instance akan dipulihkan.
- Pengguna Pemulihan Backup dan DR (
Izin Tambahan untuk konsol Google Cloud
Saat memulihkan instance menggunakan konsol Google Cloud , pengguna memerlukan izin CLI dan izin berikut. Izin tambahan ini diperlukan agar konsol dapat mencantumkan dan menampilkan resource Compute Engine yang diperlukan untuk dipilih di antarmuka pengguna:
compute.acceleratorTypes.listcompute.disks.listcompute.machineTypes.listcompute.projects.getcompute.regions.listcompute.zones.list
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Memulihkan instance Compute Engine
Gunakan petunjuk berikut untuk memulihkan instance Compute Engine.
Konsol
Di konsol Google Cloud , buka halaman Vaulted backups.
Semua instance Compute Engine dengan cadangan yang disimpan di vault tercantum di sini.
Klik ikon tindakan untuk memilih tindakan Pulihkan. Halaman Pemulihan ditampilkan tempat Anda memilih opsi pemulihan berikut:
- Pilih Nama resource.
- Pilih Waktu pembuatan cadangan.
- Pilih Nama project tempat Anda ingin memulihkan VM.
Klik Lanjutkan.
- Halaman berikutnya Buat instance VM baru dari cadangan akan muncul, dengan properti VM yang telah diisi otomatis berdasarkan properti VM sumber. Anda dapat mengubah properti untuk membuat VM baru, misalnya, mengubah pilihan untuk Region atau Jenis Mesin.
Klik Buat untuk membuat VM baru dari cadangan yang dipilih.
gcloud
Jika belum diberikan, berikan peran IAM Backup and DR Compute Engine Operator (
roles/backupdr.computeEngineOperator) kepada agen layanan vault cadangan di project pemulihan tempat VM dipulihkan.Untuk mendapatkan akun layanan vault cadangan, gunakan perintah berikut.
gcloud backup-dr backup-vaults describe BACKUPVAULT_NAME --location=REGIONGanti kode berikut:
- BACKUPVAULT_NAME: nama vault cadangan tempat Anda ingin memulihkan data.
- REGION: region vault cadangan.
Sebelum Anda dapat memulihkan instance Compute Engine, gunakan perintah berikut untuk mendapatkan ID sumber data dan ID cadangan yang diperlukan.
Menemukan ID sumber data
gcloud backup-dr data-sources list \ --project=PROJECT \ --location=REGION \ --backup-vault=BACKUPVAULT_NAME \ "--filter=dataSourceGcpResource.computeInstanceDatasourceProperties.name:(DATA_SOURCE)" \ "--format=get(name)")Buat daftar cadangan yang ada untuk sumber data guna menemukan BACKUP_ID yang benar.
gcloud backup-dr backups list \ --location=REGION \ --backup-vault=BACKUPVAULT_NAME \ --data-source=DATA_SOURCE \ "--format=yaml(backupType,computeInstanceBackupProperties.sourceInstance,consistencyTime,enforcedRetentionEndTime,expireTime,name)"
Untuk memulihkan instance Compute Engine, gunakan perintah berikut.
Memulihkan VM di project yang sama dengan project beban kerja dengan ID cadangan.
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_PROJECTMemulihkan VM dalam project yang sama dengan project workload menggunakan URL resource lengkap cadangan.
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_PROJECTMemulihkan instance Compute Engine dengan konfigurasi jaringan dan akun layanan kustom.
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=SCOPEGanti kode berikut:
- PROJECT: nama project vault cadangan.
- REGION: lokasi vault cadangan.
- BACKUPVAULT_NAME: nama vault cadangan tempat Anda ingin memulihkan data.
- DATA_SOURCE: nama sumber data yang ingin Anda pulihkan datanya.
- NAME: nama VM yang dipulihkan.
- TARGET_ZONE: region tempat VM dipulihkan.
- TARGET_PROJECT: project tempat VM dipulihkan.
- NETWORK: URI jaringan VM.
- SUBNET: URI subnet VM.
- SERVICE_ACCOUNT: akun layanan VM yang dipulihkan.
- SCOPE: cakupan otorisasi akun layanan.
Untuk mengganti properti VM lainnya, lihat Ringkasan perintah Google Cloud CLI Backup and DR Service.
Memulihkan dari vault cadangan yang mendukung CMEK
Saat Anda memulihkan cadangan dari brankas cadangan yang mendukung CMEK, enkripsi resource yang dipulihkan bergantung pada enkripsi sumber:
- Jika resource sumber dilindungi oleh CMEK: Resource yang dipulihkan secara default menggunakan kunci CMEK yang sama dengan sumber. Misalnya:
- Persistent disk Compute Engine yang dienkripsi dengan kunci
K1dipulihkan ke disk yang dienkripsi denganK1. - Jika VM memiliki beberapa disk, setiap disk di VM yang dipulihkan akan mewarisi enkripsi disk sumber yang sesuai (disk yang dienkripsi CMEK tetap dienkripsi dengan kunci aslinya, dan disk yang dienkripsi yang dikelola Google tetap dikelola Google).
- Persistent disk Compute Engine yang dienkripsi dengan kunci
- Jika resource sumber menggunakan enkripsi yang dikelola Google: Resource yang dipulihkan secara default menggunakan enkripsi yang dikelola Google.
Anda dapat mengganti perilaku default ini saat memulihkan disk persisten Compute Engine atau instance Compute Engine menggunakan API atau Google Cloud CLI. Misalnya, Anda dapat
memulihkan cadangan resource yang dilindungi CMEK ke resource baru yang menggunakan
enkripsi yang dikelola Google, atau ke resource baru yang dilindungi oleh kunci
CMEK yang berbeda. Untuk memulihkan ke resource yang dilindungi oleh kunci CMEK baru, pastikan agen layanan yang relevan (misalnya, Agen Layanan Compute Engine) untuk project tujuan memiliki izin roles/cloudkms.cryptoKeyEncrypterDecrypter pada kunci tujuan baru.
Melakukan pemulihan lintas region dengan CMEK
Karena kunci Cloud Key Management Service bersifat regional, saat Anda melakukan pemulihan lintas region (misalnya, memulihkan instance dari asia-south1 ke asia-south2), operasi pemulihan akan gagal jika Anda menggunakan perilaku default. Disk VM yang dipulihkan tidak dapat dienkripsi dengan kunci KMS region sumber.
Ini adalah batasan saat ini di konsol Google Cloud . Untuk melakukan pemulihan lintas region VM yang dilindungi CMEK, Anda harus menggunakan Google Cloud CLI, API, atau Terraform untuk mengganti setelan enkripsi dan menentukan kunci KMS baru di region target.
Untuk memulihkan ke resource yang dilindungi oleh kunci CMEK baru, lakukan langkah-langkah berikut:
- Pastikan Anda memiliki kunci di region target: Pastikan Anda memiliki kunci Cloud Key Management Service di region tempat Anda memulihkan VM (di project target atau project KMS bersama), dan buat kunci jika Anda tidak memilikinya.
Berikan izin KMS: Berikan peran Cloud KMS CryptoKey Encrypter/Decrypter (
roles/cloudkms.cryptoKeyEncrypterDecrypter) pada kunci target ini kepada Agen Layanan Compute Engine dari project target tempat VM dipulihkan.Lakukan pemulihan: Lakukan pemulihan menggunakan salah satu metode berikut, dengan mengganti kunci KMS untuk setiap disk:
gcloud
Dapatkan detail cadangan: Ambil nama cadangan dan nama perangkat disk dari cadangan menggunakan perintah
gcloud backup-dr backups list:gcloud backup-dr backups list \ --project=PROJECT_ID \ --location=SOURCE_REGION \ --backup-vault=BACKUP_VAULT_NAME \ --filter="computeInstanceBackupProperties.sourceInstance~SOURCE_INSTANCE_NAME"Ganti kode berikut:
- PROJECT_ID: nama project tempat vault cadangan berada.
- SOURCE_REGION: lokasi vault cadangan.
- BACKUP_VAULT_NAME: nama vault cadangan tempat Anda ingin memulihkan data.
- SOURCE_INSTANCE_NAME: nama instance Compute Engine sumber.
Jalankan perintah pemulihan: Jalankan perintah pemulihan dan ganti kunci KMS untuk setiap disk menggunakan parameter
--create-disk.Memulihkan VM dengan satu disk:
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_NAMEGanti kode berikut:
- BACKUP_ID: ID cadangan yang ingin Anda pulihkan.
- PROJECT_ID: nama project tempat vault cadangan berada.
- SOURCE_REGION: lokasi vault cadangan.
- BACKUP_VAULT_NAME: nama vault cadangan tempat Anda ingin memulihkan data.
- DATA_SOURCE: ID sumber data yang datanya ingin Anda pulihkan.
- RESTORED_VM_NAME: nama VM yang dipulihkan.
- TARGET_ZONE: zona tempat VM dipulihkan.
- TARGET_PROJECT_ID: project tempat VM dipulihkan.
- DEVICE_NAME: nama perangkat disk.
- KMS_PROJECT_ID: ID project tempat kunci Cloud Key Management Service berada.
- TARGET_REGION: region tempat kunci Cloud Key Management Service berada.
- KEYRING: nama key ring Cloud Key Management Service.
- KEY_NAME: nama kunci Cloud Key Management Service untuk disk 1.
Memulihkan VM dengan beberapa disk: Berikan tanda
--create-diskterpisah untuk setiap disk: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_2Ganti kode berikut:
- BACKUP_ID: ID cadangan yang ingin Anda pulihkan.
- PROJECT_ID: nama project tempat vault cadangan berada.
- SOURCE_REGION: lokasi vault cadangan.
- BACKUP_VAULT_NAME: nama vault cadangan tempat Anda ingin memulihkan data.
- DATA_SOURCE: ID sumber data yang datanya ingin Anda pulihkan.
- RESTORED_VM_NAME: nama VM yang dipulihkan.
- TARGET_ZONE: zona tempat VM dipulihkan.
- TARGET_PROJECT_ID: project tempat VM dipulihkan.
- DEVICE_NAME_1: nama perangkat disk 1.
- KMS_PROJECT_ID: ID project tempat kunci Cloud Key Management Service berada.
- TARGET_REGION: region tempat kunci Cloud Key Management Service berada.
- KEYRING: nama key ring Cloud Key Management Service.
- KEY_NAME_1: nama kunci Cloud Key Management Service untuk disk 1.
- DEVICE_NAME_2: nama perangkat disk 2.
- KEY_NAME_2: nama kunci Cloud Key Management Service untuk disk 2.
API
Mendapatkan detail cadangan: Ambil nama cadangan dan nama perangkat disk dengan mengirim permintaan
GETuntuk mencantumkan cadangan:GET https://backupdr.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_REGION/backupVaults/BACKUP_VAULT_NAME/dataSources/DATA_SOURCE/backupsJalankan restore API: Kirim permintaan
POSTke URIrestorecadangan.Memulihkan VM dengan satu disk:
POST https://backupdr.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_REGION/backupVaults/BACKUP_VAULT_NAME/dataSources/DATA_SOURCE/backups/BACKUP_ID:restorePayload:
{ "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" } } ] } }Memulihkan VM dengan beberapa disk:
POST https://backupdr.googleapis.com/v1/projects/PROJECT_ID/locations/SOURCE_REGION/backupVaults/BACKUP_VAULT_NAME/dataSources/DATA_SOURCE/backups/BACKUP_ID:restorePayload:
{ "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
Menggunakan resource google_backup_dr_restore_workload
Memulihkan VM dengan satu disk:
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" } } } }Memulihkan VM dengan beberapa disk:
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" } } } }
Jika kunci Cloud Key Management Service yang melindungi workload sumber tidak tersedia selama operasi pemulihan, pemulihan akan gagal secara default. Dalam hal ini, Anda harus menggunakan API atau Google Cloud CLI untuk mengganti setelan enkripsi dengan menentukan kunci CMEK baru atau dengan mengubah jenis enkripsi menjadi enkripsi yang dikelola Google untuk resource yang dipulihkan.
Jika versi kunci Cloud Key Management Service yang digunakan untuk mengenkripsi data di vault cadangan dinonaktifkan atau dihancurkan, Anda tidak akan dapat memulihkan dari cadangan tersebut.
Panduan Backup and DR Compute Engine
- Membuat dan mengelola rencana pencadangan untuk cadangan yang disimpan di brankas
- Periksa kredensial cloud
- Menemukan dan melindungi instance Compute Engine
- Memasang image cadangan Persistent Disk Compute Engine
- Memulihkan instance Compute Engine
- Mengimpor image snapshot Persistent Disk