Bagikan melalui


Mencadangkan dan memulihkan Azure VM menggunakan Azure PowerShell

Artikel ini menjelaskan cara mencadangkan dan memulihkan Azure VM di vault Azure Backup Recovery Services menggunakan cmdlet PowerShell.

Azure Backup menyediakan cadangan independen dan terisolasi untuk melindungi terhadap kerusakan data yang tidak disengaja pada VM Anda. Cadangan disimpan dalam vault Layanan Pemulihan dengan manajemen titik pemulihan bawaan. Konfigurasi dan penskalaan bersifat sederhana, cadangan dioptimalkan, dan Anda dapat memulihkan secara mudah sesuai kebutuhan.

Sebelum dapat mencadangkan (atau melindungi) komputer virtual, Anda harus menyelesaikan prasyarat untuk menyiapkan lingkungan Anda untuk melindungi VM Anda.

Sebelum memulai

  • Pelajari selengkapnya vault Layanan Pemulihan.
  • Tinjau arsitektur untuk cadangan komputer virtual Azure, pelajari proses pencadangan, dan tinjau dukungan, batasan, dan prasyarat.
  • Tinjau hierarki objek PowerShell berikut ini untuk Layanan Pemulihan.

Hierarki objek Layanan Pemulihan

Hierarki objek dirangkum dalam diagram berikut.

Disgram memperlihatkan hierarki objek Layanan Pemulihan.

Tinjau referensi cmdlet Az.RecoveryServices di pustaka Azure.

Menyiapkan dan mendaftar

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Untuk memulai, lihat Menginstal Azure PowerShell. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Untuk memulai:

  1. Unduh PowerShell versi terbaru

  2. Temukan cmdlet Azure Backup PowerShell yang tersedia dengan mengetik perintah berikut:

    Get-Command *azrecoveryservices*
    

    Alias dan cmdlet untuk Azure Backup, Azure Site Recovery, dan vault Layanan Pemulihan akan muncul. Gambar berikut adalah contoh dari apa yang akan Anda lihat. Ini bukan daftar lengkap cmdlet.

    Cuplikan layar memperlihatkan daftar Layanan Pemulihan.

  3. Masuk ke akun Azure Anda menggunakan Connect-AzAccount. Cmdlet ini akan memunculkan halaman web yang meminta kredensial akun Anda:

    • Sebagai alternatif, Anda dapat menyertakan kredensial akun Anda sebagai parameter dalam cmdlet Connect-AzAccount, menggunakan parameter -Credential.
    • Jika Anda adalah mitra CSP yang bekerja atas nama penyewa, tetapkan pelanggan sebagai penyewa menggunakan tenantID atau nama domain utama penyewa mereka. Misalnya: Connect-AzAccount -Tenant "fabrikam.com"
  4. Asosiasikan langganan yang ingin Anda gunakan dengan akun tersebut karena akun bisa memiliki beberapa langganan:

    Select-AzSubscription -SubscriptionName $SubscriptionName
    
  5. Jika Anda menggunakan Azure Backup untuk pertama kalinya, Anda harus menggunakan cmdlet Register-AzResourceProvider untuk mendaftarkan penyedia Layanan Pemulihan Azure ke langganan Anda.

    Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  6. Anda dapat memverifikasi bahwa Penyedia berhasil mendaftar menggunakan perintah berikut:

    Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    

    Dalam output perintah, RegistrationState harus berubah menjadi Registered (Terdaftar). Jika belum, cukup jalankan lagi cmdlet Register-AzResourceProvider.

Buat brankas Recovery Services

Langkah-langkah berikut membimbing Anda dalam membuat vault Layanan Pemulihan. Vault Layanan Pemulihan berbeda dengan vault Backup.

  1. Vault Layanan Pemulihan adalah sumber daya Resource Manager, jadi Anda perlu menempatkannya dalam grup sumber daya. Anda bisa menggunakan grup sumber daya yang sudah ada atau membuat grup sumber daya dengan cmdlet New-AzResourceGroup. Saat membuat grup sumber daya, tentukan nama dan lokasi untuk grup sumber daya.

    New-AzResourceGroup -Name "test-rg" -Location "West US"
    
  2. Gunakan cmdlet New-AzRecoveryServicesVault untuk membuat vault Layanan Pemulihan. Pastikan untuk menentukan lokasi yang sama untuk vault seperti yang digunakan untuk grup sumber daya.

    New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "test-rg" -Location "West US"
    
  3. Tentukan jenis redundansi penyimpanan yang akan digunakan. Anda dapat menggunakan Penyimpanan Redundan Lokal (Locally Redundant Storage/LRS), Penyimpanan Geo-redundan (Geo-redundant Storage/GRS), atau Penyimpanan redundan zona (Zone-redundant storage/ZRS). Contoh berikut menunjukkan opsi -BackupStorageRedundancy untuk testvault diatur ke GeoRedundant.

    $vault1 = Get-AzRecoveryServicesVault -Name "testvault"
    Set-AzRecoveryServicesBackupProperty  -Vault $vault1 -BackupStorageRedundancy GeoRedundant
    

    Tip

    Banyak cmdlet Azure Backup mengharuskan objek vault Layanan Pemulihan sebagai inputnya. Karena alasan ini, lebih mudah untuk menyimpan objek vault Layanan Pemulihan Cadangan dalam variabel.

Menampilkan vault dalam langganan

Untuk melihat semua vault yang sedang dalam langganan, gunakan Get-AzRecoveryServicesVault:

Get-AzRecoveryServicesVault

Outputnya mirip dengan contoh berikut, perhatikan bahwa ResourceGroupName dan Location terkait sudah disediakan.

Name              : Contoso-vault
ID                : /subscriptions/1234
Type              : Microsoft.RecoveryServices/vaults
Location          : WestUS
ResourceGroupName : Contoso-docs-rg
SubscriptionId    : 1234-567f-8910-abc
Properties        : Microsoft.Azure.Commands.RecoveryServices.ARSVaultProperties

Mencadangkan komputer virtual Azure

Gunakan vault Layanan Pemulihan untuk melindungi komputer virtual Anda. Sebelum Anda menerapkan perlindungan, atur konteks vault (jenis data yang dilindungi dalam vault), dan verifikasikan kebijakan perlindungan. Kebijakan perlindungan adalah jadwal kapan pekerjaan pencadangan dijalankan dan berapa lama setiap rekam jepret cadangan dipertahankan.

Mengatur konteks vault

Sebelum mengaktifkan perlindungan di komputer virtual, gunakan Set-AzRecoveryServicesVaultContext untuk mengatur konteks vault. Setelah konteks vault diatur, itu akan berlaku untuk semua cmdlet berikutnya. Contoh berikut mengatur konteks vault untuk vault, testvault.

Get-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "Contoso-docs-rg" | Set-AzRecoveryServicesVaultContext

Mengambil ID vault

Kami berencana untuk menghentikan pengaturan konteks vault sesuai dengan panduan Azure PowerShell. Sebagai gantinya, Anda dapat menyimpan atau mengambil ID vault, lalu meneruskannya ke perintah yang relevan. Jadi, jika Anda belum mengatur konteks vault atau ingin menentukan perintah yang akan dijalankan untuk vault tertentu, berikan ID vault sebagai "-vaultID" ke semua perintah yang relevan, sebagai berikut:

$targetVault = Get-AzRecoveryServicesVault -ResourceGroupName "Contoso-docs-rg" -Name "testvault"
$targetVault.ID

Atau

$targetVaultID = Get-AzRecoveryServicesVault -ResourceGroupName "Contoso-docs-rg" -Name "testvault" | select -ExpandProperty ID

Mengubah pengaturan replikasi penyimpanan

Gunakan perintah Set-AzRecoveryServicesBackupProperty untuk mengatur konfigurasi replikasi Penyimpanan vault ke LRS/GRS

Set-AzRecoveryServicesBackupProperty -Vault $targetVault -BackupStorageRedundancy GeoRedundant/LocallyRedundant

Catatan

Redundansi Penyimpanan hanya dapat dimodifikasi jika tidak ada item cadangan yang dilindungi ke vault.

Membuat kebijakan perlindungan

Saat Anda membuat vault Layanan Pemulihan, vault tersebut dilengkapi dengan kebijakan perlindungan dan penyimpanan default. Kebijakan perlindungan default memicu pekerjaan pencadangan setiap hari pada waktu yang ditentukan. Kebijakan penyimpanan default mempertahankan titik pemulihan harian selama 30 hari. Anda dapat menggunakan kebijakan default untuk melindungi komputer virtual Anda dengan cepat dan mengedit kebijakan nanti dengan detail yang berbeda.

Gunakan Get-AzRecoveryServicesBackupProtectionPolicy untuk melihat kebijakan perlindungan yang tersedia di vault. Anda dapat menggunakan cmdlet ini untuk mendapatkan kebijakan tertentu atau untuk melihat kebijakan yang terkait dengan jenis beban kerja. Contoh berikut akan mendapatkan kebijakan untuk tipe beban kerja, AzureVM.

Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureVM" -VaultId $targetVault.ID

Outputnya mirip dengan contoh berikut:

Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
DefaultPolicy        AzureVM            AzureVM              4/14/2016 5:00:00 PM

Catatan

Zona waktu di bidang BackupTime di PowerShell adalah UTC. Namun, ketika waktu pencadangan ditampilkan di portal Microsoft Azure, waktu akan disesuaikan dengan zona waktu lokal Anda.

Kebijakan perlindungan pencadangan terkait dengan setidaknya satu kebijakan penyimpanan. Kebijakan retensi menentukan berapa lama titik pemulihan disimpan sebelum dihapus.

Secara default, waktu mulai ditentukan dalam Objek Kebijakan Jadwal. Gunakan contoh berikut untuk mengubah waktu mulai menjadi waktu mulai yang diinginkan. Waktu mulai yang diinginkan harus menggunakan UTC. Contoh berikut mengasumsikan waktu mulai yang diinginkan adalah 01.00 UTC untuk pencadangan harian.

$schPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureVM"
$UtcTime = Get-Date -Date "2019-03-20 01:00:00Z"
$UtcTime = $UtcTime.ToUniversalTime()
$schpol.ScheduleRunTimes[0] = $UtcTime

Penting

Anda harus menyediakan waktu mulai hanya dalam kelipatan 30 menit. Dalam contoh di atas, waktu hanya bisa "01:00:00" atau "02:30:00". Waktu mulai tidak bisa "01:15:00"

Contoh berikut tentang menyimpan kebijakan jadwal dan kebijakan retensi dalam variabel. Contoh menggunakan variabel tersebut untuk menentukan parameter saat membuat kebijakan perlindungan, NewPolicy.

$retPol = Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureVM"
New-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -WorkloadType "AzureVM" -RetentionPolicy $retPol -SchedulePolicy $schPol -VaultId $targetVault.ID

Outputnya mirip dengan contoh berikut:

Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
NewPolicy           AzureVM            AzureVM              4/24/2016 1:30:00 AM

Aktfifkan proteksi

Setelah menentukan kebijakan perlindungan, Anda masih harus mengaktifkan kebijakan untuk suatu item. Gunakan Enable-AzRecoveryServicesBackupProtection untuk mengaktifkan perlindungan. Mengaktifkan perlindungan memerlukan dua objek, yaitu item dan kebijakan. Setelah kebijakan dikaitkan dengan vault, alur kerja pencadangan akan dipicu pada waktu yang ditentukan dalam jadwal kebijakan.

Penting

Saat menggunakan PowerShell untuk mengaktifkan pencadangan untuk beberapa komputer virtual sekaligus, pastikan bahwa satu kebijakan tidak memiliki lebih dari 100 komputer virtual yang terkait dengannya. Ini adalah praktik terbaik yang disarankan. Saat ini, klien PowerShell tidak secara eksplisit memblokir jika ada lebih dari 100 komputer virtual, tetapi pemeriksaan direncanakan akan ditambahkan di masa mendatang.

Contoh berikut mengaktifkan perlindungan untuk item V2VM menggunakan kebijakan NewPolicy. Contohnya akan berbeda tergantung apakah komputer virtual dienkripsi dan jenis enkripsi yang digunakan.

Untuk mengaktifkan perlindungan di komputer virtual Resource Manager yang tidak terenkripsi:

$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1" -VaultId $targetVault.ID

Untuk mengaktifkan perlindungan di komputer virtual terenkripsi (dienkripsi menggunakan BEK dan KEK), Anda harus memberikan izin kepada layanan Azure Backup untuk membaca kunci dan rahasia dari brankas kunci.

Set-AzKeyVaultAccessPolicy -VaultName "KeyVaultName" -ResourceGroupName "RGNameOfKeyVault" -PermissionsToKeys backup,get,list -PermissionsToSecrets get,list -ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1" -VaultId $targetVault.ID

Untuk mengaktifkan perlindungan di komputer virtual terenkripsi (hanya dienkripsi menggunakan BEK), Anda harus memberikan izin kepada layanan Azure Backup untuk membaca rahasia dari brankas kunci.

Set-AzKeyVaultAccessPolicy -VaultName "KeyVaultName" -ResourceGroupName "RGNameOfKeyVault" -PermissionsToSecrets backup,get,list -ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1" -VaultId $targetVault.ID

Catatan

Jika Anda menggunakan cloud Azure Government, gunakan nilai ff281ffe-705c-4f53-9f37-a40e6f2c68f3 untuk parameter ServicePrincipalName di cmdlet Set-AzKeyVaultAccessPolicy.

Jika ingin mencadangkan beberapa disk secara selektif dan mengecualikan yang lain seperti yang disebutkan dalam skenario ini, Anda dapat mengonfigurasi perlindungan dan mencadangkan hanya disk yang relevan seperti yang didokumentasikan di sini.

Memantau pekerjaan pencadangan

Anda dapat memantau operasi jangka panjang, seperti pekerjaan pencadangan, tanpa menggunakan portal Microsoft Azure. Untuk mendapatkan status pekerjaan yang sedang berlangsung, gunakan cmdlet Get-AzRecoveryservicesBackupJob. Cmdlet ini akan mendapatkan pekerjaan pencadangan untuk vault tertentu, dan vault tersebut ditentukan dalam konteks vault. Contoh berikut akan mendapatkan status pekerjaan yang sedang berlangsung sebagai larik, dan menyimpan status dalam variabel $joblist baru.

$joblist = Get-AzRecoveryservicesBackupJob –Status "InProgress" -VaultId $targetVault.ID
$joblist[0]

Outputnya mirip dengan contoh berikut:

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   ----------
V2VM             Backup               InProgress            4/23/2016                5:00:30 PM                cf4b3ef5-2fac-4c8e-a215-d2eba4124f27

Alih-alih melakukan poling agar pekerjaan ini diselesaikan, yang merupakan kode tambahan yang tidak perlu, gunakan cmdlet Wait-AzRecoveryServicesBackupJob. Cmdlet ini menjeda eksekusi hingga pekerjaan selesai atau nilai batas waktu yang ditentukan tercapai.

Wait-AzRecoveryServicesBackupJob -Job $joblist[0] -Timeout 43200 -VaultId $targetVault.ID

Mengelola pencadangan komputer virtual Azure

Mengubah kebijakan perlindungan

Untuk mengubah kebijakan perlindungan, gunakan set-AzRecoveryServicesBackupProtectionPolicy untuk memodifikasi objek SchedulePolicy atau RetentionPolicy.

Mengubah waktu terjadwal

Saat Anda membuat kebijakan perlindungan, kebijakan tersebut ditetapkan sebagai waktu mulai secara default. Contoh berikut menunjukkan cara mengubah waktu mulai kebijakan perlindungan.

$SchPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureVM"
$UtcTime = Get-Date -Date "2019-03-20 01:00:00Z" (This is the time that you want to start the backup)
$UtcTime = $UtcTime.ToUniversalTime()
$SchPol.ScheduleRunTimes[0] = $UtcTime
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -VaultId $targetVault.ID
Set-AzRecoveryServicesBackupProtectionPolicy -Policy $pol  -SchedulePolicy $SchPol -VaultId $targetVault.ID

Mengubah retensi

Contoh berikut mengubah retensi titik pemulihan menjadi 365 hari.

$retPol = Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureVM"
$retPol.DailySchedule.DurationCountInDays = 365
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -VaultId $targetVault.ID
Set-AzRecoveryServicesBackupProtectionPolicy -Policy $pol  -RetentionPolicy $RetPol -VaultId $targetVault.ID

Mengonfigurasi retensi rekam jepret pemulihan instan

Catatan

Dari Azure PowerShell versi 1.6.0 dan seterusnya, periode penyimpanan rekam jepret pemulihan instan dapat diperbarui dalam kebijakan menggunakan PowerShell

$bkpPol = Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureVM" -VaultId $targetVault.ID
$bkpPol.SnapshotRetentionInDays=7
Set-AzRecoveryServicesBackupProtectionPolicy -policy $bkpPol -VaultId $targetVault.ID

Nilai defaultnya adalah 2. Anda dapat mengatur nilai dengan minimum 1 dan maksimum 5. Untuk kebijakan pencadangan mingguan, periode diatur ke 5 dan tidak dapat diubah.

Membuat grup sumber daya Azure Backup selama retensi rekam jepret

Catatan

Dari Azure PowerShell versi 3.7.0 dan seterusnya, Anda dapat membuat dan mengedit grup sumber daya yang dibuat untuk menyimpan rekam jepret instan.

Untuk memahami lebih lanjut tentang aturan pembuatan grup sumber daya dan detail lainnya yang terkait, lihat dokumentasi Grup sumber daya Azure Backup untuk Komputer Virtual.

$bkpPol = Get-AzureRmRecoveryServicesBackupProtectionPolicy -name "DefaultPolicyForVMs"
$bkpPol.AzureBackupRGName="Contosto_"
$bkpPol.AzureBackupRGNameSuffix="ForVMs"
Set-AzureRmRecoveryServicesBackupProtectionPolicy -policy $bkpPol

Mengecualikan disk untuk komputer virtual yang dilindungi

Cadangan mesin virtual Azure menyediakan kemampuan untuk mengecualikan atau menyertakan disk secara selektif yang berguna dalam skenario ini. Jika komputer virtual sudah dilindungi oleh pencadangan komputer virtual Azure dan jika semua disk dicadangkan, Anda dapat memodifikasi perlindungan agar secara selektif menyertakan atau mengecualikan disk, seperti yang disebutkan di sini.

Memicu pencadangan

Gunakan Backup-AzRecoveryServicesBackupItem untuk memicu pekerjaan pencadangan. Jika pencadangan adalah pencadangan awal, itu adalah pencadangan penuh. Pencadangan berikutnya mengambil salinan yang bertambah secara bertahap. Contoh berikut membutuhkan pencadangan komputer virtual dipertahankan selama 60 hari.

$namedContainer = Get-AzRecoveryServicesBackupContainer -ContainerType "AzureVM" -Status "Registered" -FriendlyName "V2VM" -VaultId $targetVault.ID
$item = Get-AzRecoveryServicesBackupItem -Container $namedContainer -WorkloadType "AzureVM" -VaultId $targetVault.ID
$endDate = (Get-Date).AddDays(60).ToUniversalTime()
$job = Backup-AzRecoveryServicesBackupItem -Item $item -VaultId $targetVault.ID -ExpiryDateTimeUTC $endDate

Outputnya mirip dengan contoh berikut:

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   ----------
V2VM              Backup              InProgress          4/23/2016                  5:00:30 PM                cf4b3ef5-2fac-4c8e-a215-d2eba4124f27

Catatan

Zona waktu di bidang StartTime dan EndTime di PowerShell adalah UTC. Namun, ketika waktu ditampilkan di portal Microsoft Azure, waktu akan disesuaikan dengan zona waktu lokal Anda.

Mengubah kebijakan untuk item cadangan

Anda dapat mengubah kebijakan yang ada atau mengubah kebijakan item yang dicadangkan dari Policy1 ke Policy2. Untuk beralih kebijakan untuk item yang dicadangkan, ambil kebijakan yang relevan dan item cadangan, lalu gunakan perintah Enable-AzRecoveryServices dengan item cadangan sebagai parameter.

$TargetPol1 = Get-AzRecoveryServicesBackupProtectionPolicy -Name <PolicyName> -VaultId $targetVault.ID
$anotherBkpItem = Get-AzRecoveryServicesBackupItem -WorkloadType AzureVM -BackupManagementType AzureVM -Name "<BackupItemName>" -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Item $anotherBkpItem -Policy $TargetPol1 -VaultId $targetVault.ID

Perintah akan menunggu sampai pencadangan konfigurasi selesai dan mengembalikan output berikut.

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   -----
TestVM           ConfigureBackup      Completed            3/18/2019 8:00:21 PM      3/18/2019 8:02:16 PM      654e8aa2-4096-402b-b5a9-e5e71a496c4e

Menghentikan perlindungan

Mempertahankan data

Jika Anda ingin menghentikan perlindungan, Anda dapat menggunakan cmdlet PowerShell Disable-AzRecoveryServicesBackupProtection. Ini akan menghentikan pencadangan terjadwal, tetapi data yang sudah dicadangkan sampai saat ini akan dipertahankan selamanya.

$bkpItem = Get-AzRecoveryServicesBackupItem -BackupManagementType AzureVM -WorkloadType AzureVM -Name "<backup item name>" -VaultId $targetVault.ID
Disable-AzRecoveryServicesBackupProtection -Item $bkpItem -VaultId $targetVault.ID

Lanjutkan pencadangan

Jika perlindungan dihentikan dan data cadangan dipertahankan, Anda dapat melanjutkan perlindungan sekali lagi. Anda harus menetapkan kebijakan untuk perlindungan yang diperbarui. Cmdlet sama dengan mengubah kebijakan item cadangan.

$TargetPol1 = Get-AzRecoveryServicesBackupProtectionPolicy -Name <PolicyName> -VaultId $targetVault.ID
$anotherBkpItem = Get-AzRecoveryServicesBackupItem -WorkloadType AzureVM -BackupManagementType AzureVM -Name "<BackupItemName>" -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Item $anotherBkpItem -Policy $TargetPol1 -VaultId $targetVault.ID

Menghapus data cadangan

Untuk menghapus sepenuhnya data cadangan yang disimpan di vault, tambahkan bendera/switch '-RemoveRecoveryPoints' ke perintah perlindungan 'disable'.

Disable-AzRecoveryServicesBackupProtection -Item $bkpItem -VaultId $targetVault.ID -RemoveRecoveryPoints

Memulihkan Komputer Virtual Azure

Ada perbedaan penting antara memulihkan komputer virtual menggunakan portal Microsoft Azure dan memulihkan komputer virtual menggunakan PowerShell. Dengan PowerShell, operasi pemulihan selesai setelah disk dan informasi konfigurasi dari titik pemulihan dibuat. Operasi pemulihan tidak membuat komputer virtual. Untuk membuat komputer virtual dari disk, lihat bagian Membuat komputer virtual dari disk yang dipulihkan. Jika Anda tidak ingin memulihkan seluruh komputer virtual, tetapi ingin menyimpan ulang atau memulihkan beberapa file dari cadangan komputer virtual Azure, lihat bagian pemulihan file.

Tip

Operasi pemulihan tidak membuat komputer virtual.

Grafik berikut menunjukkan hierarki objek dari bawah RecoveryServicesVault ke BackupRecoveryPoint.

Cuplikan layar memperlihatkan BackupContainer yang tercantum oleh hierarki objek Layanan Pemulihan.

Untuk memulihkan data cadangan, tentukan item yang dicadangkan dan titik pemulihan yang menyimpan data titik waktu. Gunakan Restore-AzRecoveryServicesBackupItem untuk memulihkan data dari vault ke akun Anda.

Langkah-langkah dasar untuk memulihkan komputer virtual Azure adalah:

  • Pilih komputer virtual.
  • Pilih titik pemulihan.
  • Pulihkan disk.
  • Buat komputer virtual dari disk yang tersimpan.

Sekarang, Anda juga dapat menggunakan PowerShell untuk langsung memulihkan konten cadangan ke VM (asli/baru), tanpa melakukan langkah-langkah di atas secara terpisah. Untuk informasi selengkapnya, lihat Memulihkan data ke mesin virtual menggunakan PowerShell.

Memilih komputer virtual (saat memulihkan file)

Untuk mendapatkan objek PowerShell yang mengidentifikasi item cadangan yang tepat, mulailah dari kontainer di vault dan teruskan ke bawah mengikuti hierarki objek. Untuk memilih kontainer yang mewakili komputer virtual, gunakan cmdlet Get-AzRecoveryServicesBackupContainer dan salurkan ke cmdlet Get-AzRecoveryServicesBackupItem.

$namedContainer = Get-AzRecoveryServicesBackupContainer  -ContainerType "AzureVM" -Status "Registered" -FriendlyName "V2VM" -VaultId $targetVault.ID
$backupitem = Get-AzRecoveryServicesBackupItem -Container $namedContainer  -WorkloadType "AzureVM" -VaultId $targetVault.ID

Memilih titik pemulihan (saat memulihkan file)

Gunakan cmdlet Get-AzRecoveryServicesBackupRecoveryPoint untuk mencantumkan semua titik pemulihan untuk item cadangan. Kemudian, pilih titik pemulihan yang akan dipulihkan. Jika Anda tidak yakin titik pemulihan mana yang akan digunakan, praktik yang baik adalah memilih titik RecoveryPointType = AppConsistent terbaru dalam daftar.

Dalam skrip berikut, variabel, $rp, adalah larik titik pemulihan untuk item cadangan yang dipilih, dari tujuh hari terakhir. Larik diurutkan dalam urutan terbalik berdasarkan waktu dengan titik pemulihan terbaru di indeks0. Gunakan pengindeksan larik PowerShell standar untuk memilih titik pemulihan. Dalam contoh,$rp[0]memilih titik pemulihan terbaru.

$startDate = (Get-Date).AddDays(-7)
$endDate = Get-Date
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -Item $backupitem -StartDate $startdate.ToUniversalTime() -EndDate $enddate.ToUniversalTime() -VaultId $targetVault.ID
$rp[0]

Outputnya mirip dengan contoh berikut:

RecoveryPointAdditionalInfo :
SourceVMStorageType         : NormalStorage
Name                        : 15260861925810
ItemName                    : VM;iaasvmcontainer;RGName1;V2VM
RecoveryPointId             : /subscriptions/XX/resourceGroups/ RGName1/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;RGName1;V2VM/protectedItems/VM;iaasvmcontainer; RGName1;V2VM/recoveryPoints/15260861925810
RecoveryPointType           : AppConsistent
RecoveryPointTime           : 4/23/2016 5:02:04 PM
WorkloadType                : AzureVM
ContainerName               : IaasVMContainer;iaasvmcontainer; RGName1;V2VM
ContainerType               : AzureVM
BackupManagementType        : AzureVM

Memulihkan disk

Gunakan cmdlet Restore-AzRecoveryServicesBackupItem untuk memulihkan data dan konfigurasi item cadangan ke titik pemulihan. Setelah Anda mengidentifikasi titik pemulihan, gunakan itu sebagai nilai untuk parameter -RecoveryPoint. Dalam contoh di atas, $rp[0] adalah titik pemulihan yang akan digunakan. Dalam contoh kode berikut, $rp[0] adalah titik pemulihan yang digunakan untuk memulihkan disk.

Untuk memulihkan disk dan informasi konfigurasi:

$restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -VaultId $targetVault.ID
$restorejob

Memulihkan disk terkelola

Catatan

Jika komputer virtual yang didukung memiliki disk terkelola dan Anda ingin memulihkannya sebagai disk terkelola, kami telah memperkenalkan kemampuan tersebut sejak modul Azure PowerShell RM v 6.7.0. dan seterusnya.

Berikan parameter tambahan TargetResourceGroupName untuk menentukan RG tempat disk terkelola akan dipulihkan.

Penting

Sangat disarankan untuk menggunakan parameter TargetResourceGroupName untuk memulihkan disk terkelola karena akan menghasilkan peningkatan performa yang signifikan. Jika parameter ini tidak diberikan, Anda tidak dapat memperoleh manfaat dari fungsi pemulihan instan dan operasi pemulihan akan menjadi lebih lambat. Jika tujuan Anda adalah untuk memulihkan disk terkelola sebagai disk yang tidak terkelola, jangan berikan parameter ini dan buat niat ini menjadi jelas dengan memberikan parameter -RestoreAsUnmanagedDisks. Parameter -RestoreAsUnmanagedDisks ini tersedia dari Azure PowerShell 3.7.0 dan seterusnya. Dalam versi mendatang, Anda akan diwajibkan untuk memberikan salah satu parameter ini demi pengalaman pemulihan yang tepat.

$restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -TargetResourceGroupName "DestRGforManagedDisks" -VaultId $targetVault.ID

File VMConfig.JSON akan dipulihkan ke akun penyimpanan dan disk terkelola akan dipulihkan ke target RG yang ditentukan.

Outputnya mirip dengan contoh berikut:

WorkloadName     Operation          Status               StartTime                 EndTime            JobID
------------     ---------          ------               ---------                 -------          ----------
V2VM              Restore           InProgress           4/23/2016 5:00:30 PM                        cf4b3ef5-2fac-4c8e-a215-d2eba4124f27

Gunakan cmdlet Wait-AzRecoveryServicesBackupJob untuk menunggu pekerjaan Pemulihan selesai.

Wait-AzRecoveryServicesBackupJob -Job $restorejob -Timeout 43200

Setelah pekerjaan Pemulihan selesai, gunakan cmdlet Get-AzRecoveryServicesBackupJobDetail untuk mendapatkan detail operasi pemulihan. Properti JobDetails memiliki informasi yang diperlukan untuk membangun kembali komputer virtual.

$restorejob = Get-AzRecoveryServicesBackupJob -Job $restorejob -VaultId $targetVault.ID
$details = Get-AzRecoveryServicesBackupJobDetail -Job $restorejob -VaultId $targetVault.ID

Menggunakan identitas terkelola untuk memulihkan disk

Azure Backup juga memungkinkan Anda untuk menggunakan identitas terkelola (MSI) selama operasi pemulihan untuk mengakses akun penyimpanan tempat disk harus dipulihkan. Opsi ini saat ini hanya didukung untuk pemulihan disk terkelola.

Jika Anda ingin menggunakan identitas terkelola vault yang ditetapkan sistem untuk memulihkan disk, berikan bendera tambahan -UseSystemAssignedIdentity ke perintah Restore-AzRecoveryServicesBackupItem. Jika Anda ingin menggunakan identitas terkelola yang ditetapkan pengguna, berikan parameter -UserAssignedIdentityId dengan ID Azure Resource Manager dari identitas terkelola vault sebagai nilai parameter. Lihat artikel ini untuk mempelajari cara mengaktifkan identitas terkelola untuk vault Anda.

Memulihkan disk secara selektif

Pengguna dapat secara selektif memulihkan beberapa disk, bukan seluruh set yang dicadangkan. Berikan LUN disk yang diperlukan sebagai parameter untuk hanya memulihkan disk tersebut alih-alih seluruh set seperti yang didokumentasikan di sini.

Penting

Disk harus dicadangkan secara selektif agar dapat dipulihkan secara selektif. Detail lebih lanjut telah disediakan di sini.

Setelah Anda memulihkan disk, buka bagian berikutnya untuk membuat komputer virtual.

Memulihkan disk ke wilayah sekunder

Jika pemulihan lintas wilayah diaktifkan di vault yang melindungi komputer virtual Anda, data cadangan akan direplikasi ke wilayah sekunder. Anda dapat menggunakan data cadangan untuk melakukan pemulihan. Lakukan langkah-langkah berikut untuk memicu pemulihan di wilayah sekunder:

  1. Ambil ID vault yang melindungi komputer virtual Anda.

  2. Pilih item cadangan yang benar untuk dipulihkan.

  3. Pilih titik pemulihan yang sesuai di wilayah sekunder yang ingin Anda gunakan untuk melakukan pemulihan.

    Untuk menyelesaikan langkah ini, jalankan perintah ini:

    $rp=Get-AzRecoveryServicesBackupRecoveryPoint -UseSecondaryRegion -Item $backupitem -VaultId $targetVault.ID
    $rp=$rp[0]
    
  4. Jalankan cmdlet Restore-AzRecoveryServicesBackupItem dengan parameter -RestoreToSecondaryRegion untuk memicu pemulihan di wilayah sekunder.

    Untuk menyelesaikan langkah ini, jalankan perintah ini:

    $restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -TargetResourceGroupName "DestRGforManagedDisks" -VaultId $targetVault.ID -VaultLocation $targetVault.Location -RestoreToSecondaryRegion -RestoreOnlyOSDisk
    

    Outputnya akan mirip dengan contoh berikut:

    WorkloadName     Operation             Status              StartTime                 EndTime          JobID
    ------------     ---------             ------              ---------                 -------          ----------
    V2VM             CrossRegionRestore   InProgress           4/23/2016 5:00:30 PM                       cf4b3ef5-2fac-4c8e-a215-d2eba4124f27
    
  5. Jalankan cmdlet Get-AzRecoveryServicesBackupJob dengan parameter -UseSecondaryRegion untuk memantau pekerjaan pemulihan.

    Untuk menyelesaikan langkah ini, jalankan perintah ini:

    Get-AzRecoveryServicesBackupJob -From (Get-Date).AddDays(-7).ToUniversalTime() -To (Get-Date).ToUniversalTime() -UseSecondaryRegion -VaultId $targetVault.ID
    

    Outputnya akan mirip dengan contoh berikut:

    WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
    ------------     ---------            ------               ---------                 -------                   -----
    V2VM             CrossRegionRestore   InProgress           2/8/2021 4:24:57 PM                                 2d071b07-8f7c-4368-bc39-98c7fb2983f7
    

Pemulihan lintas zona

Anda dapat memulihkan mesin virtual yang disematkan di zona Azure di zona ketersediaan mana pun di wilayah yang sama.

Untuk memulihkan mesin virtual ke zona lain, tentukan parameter TargetZoneNumber di cmdlet Restore-AzRecoveryServicesBackupItem.

$restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -VaultId $targetVault.ID -TargetZoneNumber 3

Outputnya akan mirip dengan contoh berikut:

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   -----
zonevmeus2       Restore              InProgress           1/3/2022 10:27:20 AM                                b2298...

Pemulihan lintas zona hanya didukung dalam skenario ketika:

  • Mesin virtual sumber disematkan di zona dan TIDAK dienkripsi.
  • Titik pemulihan hanya ada di tingkat vault. Salinan bayangan saja atau salinan bayangan dan tingkat vault tidak didukung.
  • Opsi pemulihan adalah membuat mesin virtual baru atau memulihkan disk. Opsi ganti disk mengganti data sumber; oleh karena itu, opsi zona ketersediaan tidak berlaku.
  • Membuat mesin virtual/disk di wilayah yang sama ketika redundansi penyimpanan vault adalah ZRS. Perlu diingat bahwa hal tersebut tidak akan berfungsi jika redundansi penyimpanan vault merupakan GRS, meskipun mesin virtual sumber disematkan di zona.
  • Membuat mesin virtual/disk di wilayah berpasangan saat redundansi penyimpanan vault diaktifkan untuk Pemulihan Lintas Wilayah dan jika wilayah yang dipasangkan mendukung zona.

Mengganti disk di komputer virtual Azure

Untuk mengganti disk dan informasi konfigurasi, lakukan langkah-langkah berikut:

Membuat komputer virtual dari disk yang dipulihkan

Setelah Anda memulihkan disk, gunakan langkah-langkah berikut untuk membuat dan mengonfigurasi komputer virtual dari disk.

Catatan

  1. Diperlukan modul AzureAz 3.0.0 atau yang lebih tinggi.
  2. Untuk membuat komputer virtual terenkripsi dari disk yang dipulihkan, peran Azure Anda harus memiliki izin untuk melakukan tindakan, Microsoft.KeyVault/vaults/deploy/action. Jika peran Anda tidak memiliki izin ini, buat peran kustom dengan tindakan ini. Untuk informasi selengkapnya, lihat Peran kustom Azure.
  3. Setelah memulihkan disk, Anda sekarang bisa mendapatkan templat penyebaran yang dapat Anda gunakan langsung untuk membuat komputer virtual baru. Anda tidak memerlukan cmdlet PowerShell yang berbeda untuk membuat komputer virtual terkelola/tidak terkelola yang terenkripsi/tidak terenkripsi.

Membuat komputer virtual menggunakan templat penyebaran

Detail pekerjaan yang dihasilkan memberikan URI templat yang dapat dikueri dan digunakan.

   $properties = $details.properties
   $storageAccountName = $properties["Target Storage Account Name"]
   $containerName = $properties["Config Blob Container Name"]
   $templateBlobURI = $properties["Template Blob Uri"]

Templat tidak dapat diakses secara langsung karena berada di bawah akun penyimpanan pelanggan dan kontainer yang diberikan. Kami membutuhkan URL lengkap (bersama dengan token SAS sementara) untuk mengakses templat ini.

  1. Pertama, ekstrak nama template dari templateBlobURI. Formatnya disebutkan di bawah ini. Anda dapat menggunakan operasi pemisahan di PowerShell untuk mengekstrak nama templat akhir dari URL ini.

    https://<storageAccountName.blob.core.windows.net>/<containerName>/<templateName>
    
  2. Kemudian, URL lengkap dapat dihasilkan sebagaimana dijelaskan di sini.

    Set-AzCurrentStorageAccount -Name $storageAccountName -ResourceGroupName <StorageAccount RG name>
    $templateBlobFullURI = New-AzStorageBlobSASToken -Container $containerName -Blob <templateName> -Permission r -FullUri
    
  3. Sebarkan templat untuk membuat komputer virtual baru sebagaimana dijelaskan di sini.

    New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup -TemplateUri $templateBlobFullURI
    

Membuat komputer virtual menggunakan file konfigurasi

Bagian berikut mencantumkan langkah-langkah yang diperlukan untuk membuat VM menggunakan VMConfig file.

Catatan

Sangat disarankan untuk menggunakan templat penyebaran yang diperinci di atas untuk membuat komputer virtual. Bagian ini (Poin 1-6) akan segera tidak digunakan lagi.

  1. Lakukan kueri properti disk yang dipulihkan untuk detail pekerjaan.

    $properties = $details.properties
    $storageAccountName = $properties["Target Storage Account Name"]
    $containerName = $properties["Config Blob Container Name"]
    $configBlobName = $properties["Config Blob Name"]
    
  2. Atur konteks penyimpanan Azure dan pulihkan file konfigurasi JSON.

    Set-AzCurrentStorageAccount -Name $storageaccountname -ResourceGroupName "testvault"
    $destination_path = "C:\vmconfig.json"
    Get-AzStorageBlobContent -Container $containerName -Blob $configBlobName -Destination $destination_path
    $obj = ((Get-Content -Path $destination_path -Raw -Encoding Unicode)).TrimEnd([char]0x00) | ConvertFrom-Json
    
  3. Gunakan file konfigurasi JSON untuk membuat konfigurasi komputer virtual.

    $vm = New-AzVMConfig -VMSize $obj.'properties.hardwareProfile'.vmSize -VMName "testrestore"
    
  4. Lampirkan disk OS dan disk data. Langkah ini memberikan contoh untuk berbagai konfigurasi komputer virtual terkelola dan terenkripsi. Gunakan contoh yang sesuai dengan konfigurasi komputer virtual Anda.

    • Komputer virtual yang tidak terkelola dan tidak terenkripsi - Gunakan contoh berikut untuk komputer virtual yang tidak terkelola dan tidak terenkripsi.
        Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.StorageProfile'.osDisk.vhd.Uri -CreateOption "Attach"
        $vm.StorageProfile.OsDisk.OsType = $obj.'properties.StorageProfile'.OsDisk.OsType
        foreach($dd in $obj.'properties.StorageProfile'.DataDisks)
        {
            $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
        }
    
    • VM yang tidak dikelola dan dienkripsi dengan MICROSOFT Entra ID (bek saja) - Untuk VM terkelola dan terenkripsi dengan ID Microsoft Entra (hanya dienkripsi menggunakan BEK), Anda perlu memulihkan rahasia ke brankas kunci sebelum Anda dapat melampirkan disk. Untuk informasi selengkapnya, lihat Memulihkan mesin virtual terenkripsi dari titik pemulihan Azure Backup. Contoh berikut menunjukkan cara melampirkan OS dan disk data untuk komputer virtual terenkripsi. Saat mengatur disk OS, pastikan untuk menyebutkan jenis OS yang relevan.
        $dekUrl = "https://ContosoKeyVault.vault.azure.net:443/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
        $dekUrl = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
        Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.storageProfile'.osDisk.vhd.uri -DiskEncryptionKeyUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -CreateOption "Attach" -Windows/Linux
        $vm.StorageProfile.OsDisk.OsType = $obj.'properties.storageProfile'.osDisk.osType
        foreach($dd in $obj.'properties.storageProfile'.dataDisks)
        {
        $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
        }
    
    • VM yang tidak dikelola dan dienkripsi dengan MICROSOFT Entra ID (BEK dan KEK) - Untuk VM terkelola dan terenkripsi dengan ID Microsoft Entra (dienkripsi menggunakan BEK dan KEK), pulihkan kunci dan rahasia ke brankas kunci sebelum melampirkan disk. Untuk informasi selengkapnya, lihat Memulihkan mesin virtual terenkripsi dari titik pemulihan Azure Backup. Contoh berikut menunjukkan cara melampirkan OS dan disk data untuk komputer virtual terenkripsi.
        $dekUrl = "https://ContosoKeyVault.vault.azure.net:443/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
        $kekUrl = "https://ContosoKeyVault.vault.azure.net:443/keys/ContosoKey007/x9xxx00000x0000x9b9949999xx0x006"
        $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
        Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.storageProfile'.osDisk.vhd.uri -DiskEncryptionKeyUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -KeyEncryptionKeyUrl $kekUrl -KeyEncryptionKeyVaultId $keyVaultId -CreateOption "Attach" -Windows
        $vm.StorageProfile.OsDisk.OsType = $obj.'properties.storageProfile'.osDisk.osType
        foreach($dd in $obj.'properties.storageProfile'.dataDisks)
        {
        $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
        }
    
    • VM yang tidak dikelola dan dienkripsi tanpa ID Microsoft Entra (hanya BEK) - Untuk VM terkelola dan terenkripsi tanpa ID Microsoft Entra (hanya dienkripsi menggunakan BEK), jika keyVault/rahasia sumber tidak tersedia , pulihkan rahasia ke brankas kunci menggunakan prosedur dalam Memulihkan komputer virtual yang tidak dienkripsi dari titik pemulihan Azure Backup. Kemudian, jalankan skrip berikut untuk mengatur detail enkripsi di blob OS yang dipulihkan (langkah ini tidak diperlukan untuk blob data). $dekurl dapat diambil dari keyVault yang dipulihkan.

    Skrip berikut ini perlu dijalankan hanya jika keyVault/rahasia sumber tidak tersedia.

        $dekUrl = "https://ContosoKeyVault.vault.azure.net/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
        $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
        $encSetting = "{""encryptionEnabled"":true,""encryptionSettings"":[{""diskEncryptionKey"":{""sourceVault"":{""id"":""$keyVaultId""},""secretUrl"":""$dekUrl""}}]}"
        $osBlobName = $obj.'properties.StorageProfile'.osDisk.name + ".vhd"
        $osBlob = Get-AzStorageBlob -Container $containerName -Blob $osBlobName
        $osBlob.ICloudBlob.Metadata["DiskEncryptionSettings"] = $encSetting
        $osBlob.ICloudBlob.SetMetadata()
    

    Setelah rahasia tersedia dan detail enkripsi juga diatur di Blob OS, lampirkan disk menggunakan skrip yang diberikan di bawah ini.

    Jika keyVault/rahasia sumber sudah tersedia, skrip di atas tidak perlu dijalankan.

        Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.StorageProfile'.osDisk.vhd.Uri -CreateOption "Attach"
        $vm.StorageProfile.OsDisk.OsType = $obj.'properties.StorageProfile'.OsDisk.OsType
        foreach($dd in $obj.'properties.StorageProfile'.DataDisks)
        {
        $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
        }
    
    • VM yang tidak dikelola dan dienkripsi tanpa MICROSOFT Entra ID (BEK dan KEK) - Untuk VM terkelola dan terenkripsi tanpa ID Microsoft Entra (dienkripsi menggunakan BEK & KEK), jika keyVault/key/secret sumber tidak tersedia , pulihkan kunci dan rahasia ke brankas kunci menggunakan prosedur dalam Memulihkan komputer virtual yang tidak dienkripsi dari titik pemulihan Azure Backup. Kemudian, jalankan skrip berikut untuk mengatur detail enkripsi di blob OS yang dipulihkan (langkah ini tidak diperlukan untuk blob data). $dekurl dan $kekurl dapat diambil dari keyVault yang dipulihkan.

    Skrip di bawah ini perlu dijalankan hanya ketika keyVault/kunci/rahasia sumber tidak tersedia.

        $dekUrl = "https://ContosoKeyVault.vault.azure.net/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
        $kekUrl = "https://ContosoKeyVault.vault.azure.net/keys/ContosoKey007/x9xxx00000x0000x9b9949999xx0x006"
        $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
        $encSetting = "{""encryptionEnabled"":true,""encryptionSettings"":[{""diskEncryptionKey"":{""sourceVault"":{""id"":""$keyVaultId""},""secretUrl"":""$dekUrl""},""keyEncryptionKey"":{""sourceVault"":{""id"":""$keyVaultId""},""keyUrl"":""$kekUrl""}}]}"
        $osBlobName = $obj.'properties.StorageProfile'.osDisk.name + ".vhd"
        $osBlob = Get-AzStorageBlob -Container $containerName -Blob $osBlobName
        $osBlob.ICloudBlob.Metadata["DiskEncryptionSettings"] = $encSetting
        $osBlob.ICloudBlob.SetMetadata()
    

    Setelah kunci/rahasia tersedia dan detail enkripsi diatur di Blob OS, lampirkan disk menggunakan skrip yang diberikan di bawah ini.

    Jika keyVault/kunci/rahasia sumber tersedia, skrip di atas tidak perlu dijalankan.

        Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.StorageProfile'.osDisk.vhd.Uri -CreateOption "Attach"
        $vm.StorageProfile.OsDisk.OsType = $obj.'properties.StorageProfile'.OsDisk.OsType
        foreach($dd in $obj.'properties.StorageProfile'.DataDisks)
        {
        $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
        }
    
    • Komputer virtual terkelola dan tidak terenkripsi - Untuk komputer virtual terkelola dan tidak terenkripsi, lampirkan disk terkelola yang dipulihkan. Untuk informasi lebih dalam, lihat Melampirkan disk data ke komputer virtual Windows menggunakan PowerShell.

    • VM terkelola dan terenkripsi dengan MICROSOFT Entra ID (bek saja) - Untuk VM terenkripsi terkelola dengan ID Microsoft Entra (hanya dienkripsi menggunakan BEK), lampirkan disk terkelola yang dipulihkan. Untuk informasi lebih dalam, lihat Melampirkan disk data ke komputer virtual Windows menggunakan PowerShell.

    • VM terkelola dan terenkripsi dengan MICROSOFT Entra ID (BEK dan KEK) - Untuk VM terenkripsi terkelola dengan MICROSOFT Entra ID (dienkripsi menggunakan BEK dan KEK), lampirkan disk terkelola yang dipulihkan. Untuk informasi lebih dalam, lihat Melampirkan disk data ke komputer virtual Windows menggunakan PowerShell.

    • VM terkelola dan terenkripsi tanpa MICROSOFT Entra ID (bek saja) -Untuk VM terkelola dan terenkripsi tanpa ID Microsoft Entra (hanya dienkripsi menggunakan BEK), jika keyVault/rahasia sumber tidak tersedia , pulihkan rahasia ke brankas kunci menggunakan prosedur di Memulihkan komputer virtual yang tidak dienkripsi dari titik pemulihan Azure Backup. Kemudian, jalankan skrip berikut untuk mengatur detail enkripsi di disk OS yang dipulihkan (langkah ini tidak diperlukan untuk disk data). $dekurl dapat diambil dari keyVault yang dipulihkan.

    Skrip di bawah ini hanya perlu dijalankan ketika keyVault/rahasia sumber tidak tersedia.

    $dekUrl = "https://ContosoKeyVault.vault.azure.net/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
    $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
    $diskupdateconfig = New-AzDiskUpdateConfig -EncryptionSettingsEnabled $true
    $encryptionSettingsElement = New-Object Microsoft.Azure.Management.Compute.Models.EncryptionSettingsElement
    $encryptionSettingsElement.DiskEncryptionKey = New-Object Microsoft.Azure.Management.Compute.Models.KeyVaultAndSecretReference
    $encryptionSettingsElement.DiskEncryptionKey.SourceVault = New-Object Microsoft.Azure.Management.Compute.Models.SourceVault
    $encryptionSettingsElement.DiskEncryptionKey.SourceVault.Id = $keyVaultId
    $encryptionSettingsElement.DiskEncryptionKey.SecretUrl = $dekUrl
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettings = New-Object System.Collections.Generic.List[Microsoft.Azure.Management.Compute.Models.EncryptionSettingsElement]
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettings.Add($encryptionSettingsElement)
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettingsVersion = "1.1"
    Update-AzDisk -ResourceGroupName "testvault" -DiskName $obj.'properties.StorageProfile'.osDisk.name -DiskUpdate $diskupdateconfig
    

    Setelah rahasia tersedia dan detail enkripsi diatur di disk OS, lihat Melampirkan disk data ke komputer virtual Windows menggunakan PowerShell untuk melampirkan disk terkelola yang dipulihkan.

    • VM terkelola dan terenkripsi tanpa ID Microsoft Entra (BEK dan KEK) - Untuk VM terkelola dan terenkripsi tanpa ID Microsoft Entra (dienkripsi menggunakan BEK & KEK), jika keyVault/kunci/rahasia sumber tidak tersedia , pulihkan kunci dan rahasia ke brankas kunci menggunakan prosedur dalam Memulihkan komputer virtual yang tidak dienkripsi dari titik pemulihan Azure Backup. Kemudian, jalankan skrip berikut untuk mengatur detail enkripsi di disk OS yang dipulihkan (langkah ini tidak diperlukan untuk disk data). $dekurl dan $kekurl dapat diambil dari keyVault yang dipulihkan.

    Skrip berikut ini perlu dijalankan hanya jika keyVault/kunci/rahasia sumber tidak tersedia.

    $dekUrl = "https://ContosoKeyVault.vault.azure.net/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
    $kekUrl = "https://ContosoKeyVault.vault.azure.net/keys/ContosoKey007/x9xxx00000x0000x9b9949999xx0x006"
    $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
    $diskupdateconfig = New-AzDiskUpdateConfig -EncryptionSettingsEnabled $true
    $encryptionSettingsElement = New-Object Microsoft.Azure.Management.Compute.Models.EncryptionSettingsElement
    $encryptionSettingsElement.DiskEncryptionKey = New-Object Microsoft.Azure.Management.Compute.Models.KeyVaultAndSecretReference
    $encryptionSettingsElement.DiskEncryptionKey.SourceVault = New-Object Microsoft.Azure.Management.Compute.Models.SourceVault
    $encryptionSettingsElement.DiskEncryptionKey.SourceVault.Id = $keyVaultId
    $encryptionSettingsElement.DiskEncryptionKey.SecretUrl = $dekUrl
    $encryptionSettingsElement.KeyEncryptionKey = New-Object Microsoft.Azure.Management.Compute.Models.KeyVaultAndKeyReference
    $encryptionSettingsElement.KeyEncryptionKey.SourceVault = New-Object Microsoft.Azure.Management.Compute.Models.SourceVault
    $encryptionSettingsElement.KeyEncryptionKey.SourceVault.Id = $keyVaultId
    $encryptionSettingsElement.KeyEncryptionKey.KeyUrl = $kekUrl
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettings = New-Object System.Collections.Generic.List[Microsoft.Azure.Management.Compute.Models.EncryptionSettingsElement]
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettings.Add($encryptionSettingsElement)
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettingsVersion = "1.1"
    Update-AzDisk -ResourceGroupName "testvault" -DiskName $obj.'properties.StorageProfile'.osDisk.name -DiskUpdate $diskupdateconfig
    

    Setelah kunci/ rahasia tersedia dan detail enkripsi diatur di disk OS,lihat Melampirkan disk data ke komputer virtual Windows menggunakan PowerShell untuk melampirkan disk terkelola yang dipulihkan.

  5. Mengatur pengaturan Jaringan.

    $nicName="p1234"
    $pip = New-AzPublicIpAddress -Name $nicName -ResourceGroupName "test" -Location "WestUS" -AllocationMethod Dynamic
    $virtualNetwork = New-AzVirtualNetwork -ResourceGroupName "test" -Location "WestUS" -Name "testvNET" -AddressPrefix 10.0.0.0/16
    $virtualNetwork | Set-AzVirtualNetwork
    $vnet = Get-AzVirtualNetwork -Name "testvNET" -ResourceGroupName "test"
    $subnetindex=0
    $nic = New-AzNetworkInterface -Name $nicName -ResourceGroupName "test" -Location "WestUS" -SubnetId $vnet.Subnets[$subnetindex].Id -PublicIpAddressId $pip.Id
    $vm=Add-AzVMNetworkInterface -VM $vm -Id $nic.Id
    
  6. Buat mesin virtual.

    New-AzVM -ResourceGroupName "test" -Location "WestUS" -VM $vm
    
  7. Dorong ekstensi ADE. Jika ekstensi ADE tidak didorong, disk data akan ditandai sebagai tidak terenkripsi sehingga Anda wajib menjalankan langkah-langkah di bawah ini:

    • Untuk VM dengan MICROSOFT Entra ID - Gunakan perintah berikut untuk mengaktifkan enkripsi secara manual untuk disk data

      BEK saja

      Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm.Name -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -VolumeType Data
      

      BEK dan KEK

      Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm.Name -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId  -KeyEncryptionKeyUrl $kekUrl -KeyEncryptionKeyVaultId $keyVaultId -VolumeType Data
      
    • Untuk VM tanpa MICROSOFT Entra ID - Gunakan perintah berikut untuk mengaktifkan enkripsi secara manual untuk disk data.

      Jika selama eksekusi perintah meminta AADClientID, Anda perlu memperbarui Azure PowerShell.

      BEK saja

      Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm.Name -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -SkipVmBackup -VolumeType "All"
      

      BEK dan KEK

      Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm.Name -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -KeyEncryptionKeyUrl $kekUrl -KeyEncryptionKeyVaultId $keyVaultId -SkipVmBackup -VolumeType "All"
      

Catatan

Pastikan untuk menghapus secara manual file JASON yang dibuat sebagai bagian dari proses pemulihan disk komputer virtual terenkripsi.

Memulihkan file dari Azure VM Backup

Selain memulihkan disk, Anda juga dapat memulihkan file individual dari cadangan komputer virtual Azure. Fungsi file pemulihan menyediakan akses ke semua file dalam titik pemulihan. Kelola file melalui File Explorer seperti yang Anda lakukan untuk file normal.

Langkah-langkah dasar untuk memulihkan file dari cadangan komputer virtual Azure adalah:

  • Pilih komputer virtual
  • Pilih titik pemulihan
  • Pasang disk titik pemulihan
  • Salin file yang diperlukan
  • Lepaskan disk

Memilih komputer virtual (saat memulihkan komputer virtual)

Untuk mendapatkan objek PowerShell yang mengidentifikasi item cadangan yang tepat, mulailah dari kontainer di vault dan teruskan ke bawah mengikuti hierarki objek. Untuk memilih kontainer yang mewakili komputer virtual, gunakan cmdlet Get-AzRecoveryServicesBackupContainer dan salurkan ke cmdlet Get-AzRecoveryServicesBackupItem.

$namedContainer = Get-AzRecoveryServicesBackupContainer  -ContainerType "AzureVM" -Status "Registered" -FriendlyName "V2VM" -VaultId $targetVault.ID
$backupitem = Get-AzRecoveryServicesBackupItem -Container $namedContainer  -WorkloadType "AzureVM" -VaultId $targetVault.ID

Memilih titik pemulihan (saat memulihkan komputer virtual)

Gunakan cmdlet Get-AzRecoveryServicesBackupRecoveryPoint untuk mencantumkan semua titik pemulihan untuk item cadangan. Kemudian, pilih titik pemulihan yang akan dipulihkan. Jika Anda tidak yakin titik pemulihan mana yang akan digunakan, praktik yang baik adalah memilih titik RecoveryPointType = AppConsistent terbaru dalam daftar.

Dalam skrip berikut, variabel, $rp, adalah larik titik pemulihan untuk item cadangan yang dipilih, dari tujuh hari terakhir. Larik diurutkan dalam urutan terbalik berdasarkan waktu dengan titik pemulihan terbaru di indeks0. Gunakan pengindeksan larik PowerShell standar untuk memilih titik pemulihan. Dalam contoh,$rp[0]memilih titik pemulihan terbaru.

$startDate = (Get-Date).AddDays(-7)
$endDate = Get-Date
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -Item $backupitem -StartDate $startdate.ToUniversalTime() -EndDate $enddate.ToUniversalTime() -VaultId $targetVault.ID
$rp[0]

Outputnya mirip dengan contoh berikut:

RecoveryPointAdditionalInfo :
SourceVMStorageType         : NormalStorage
Name                        : 15260861925810
ItemName                    : VM;iaasvmcontainer;RGName1;V2VM
RecoveryPointId             : /subscriptions/XX/resourceGroups/ RGName1/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;RGName1;V2VM/protectedItems/VM;iaasvmcontainer; RGName1;V2VM/recoveryPoints/15260861925810
RecoveryPointType           : AppConsistent
RecoveryPointTime           : 4/23/2016 5:02:04 PM
WorkloadType                : AzureVM
ContainerName               : IaasVMContainer;iaasvmcontainer; RGName1;V2VM
ContainerType               : AzureVM
BackupManagementType        : AzureVM

Pasang disk titik pemulihan

Gunakan cmdlet Get-AzRecoveryServicesBackupRPMountScript guna mendapatkan skrip untuk memasang semua disk titik pemulihan.

Catatan

Disk dipasang sebagai disk terlampir iSCSI ke komputer tempat skrip dijalankan. Pemasangan akan terjadi dengan segera dan Anda tidak dikenai biaya apa pun.

Get-AzRecoveryServicesBackupRPMountScript -RecoveryPoint $rp[0] -VaultId $targetVault.ID

Outputnya mirip dengan contoh berikut:

OsType  Password        Filename
------  --------        --------
Windows e3632984e51f496 V2VM_wus2_8287309959960546283_451516692429_cbd6061f7fc543c489f1974d33659fed07a6e0c2e08740.exe

Jalankan skrip di komputer tempat Anda ingin memulihkan file. Untuk menjalankan skrip, Anda harus memasukkan kata sandi yang disediakan. Setelah disk dilampirkan, gunakan Windows File Explorer untuk menelusuri volume dan file baru. Untuk informasi selengkapnya, lihat artikel Pencadangan, Memulihkan file dari cadangan komputer virtual Azure.

Melepas disk

Setelah file yang diperlukan disalin, gunakan Disable-AzRecoveryServicesBackupRPMountScript untuk melepas disk. Pastikan untuk melepas disk agar akses ke file titik pemulihan dihapus.

Disable-AzRecoveryServicesBackupRPMountScript -RecoveryPoint $rp[0] -VaultId $targetVault.ID

Memulihkan data ke mesin virtual menggunakan PowerShell

Anda kini dapat langsung memulihkan data ke VM asli/alternatif tanpa melakukan beberapa langkah.

Memulihkan data ke VM asli

$vault = Get-AzRecoveryServicesVault -ResourceGroupName "resourceGroup" -Name "vaultName"
$BackupItem = Get-AzRecoveryServicesBackupItem -BackupManagementType "AzureVM" -WorkloadType "AzureVM" -Name "V2VM" -VaultId $vault.ID
$StartDate = (Get-Date).AddDays(-7)
$EndDate = Get-Date
$RP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -StartDate $StartDate.ToUniversalTime() -EndDate $EndDate.ToUniversalTime() -VaultId $vault.ID
$OriginalLocationRestoreJob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $RP[0] -StorageAccountName "DestStorageAccount" -StorageAccountResourceGroupName "DestStorageAccRG" -VaultId $vault.ID -VaultLocation $vault.Location 
WorkloadName    Operation       Status          StartTime              EndTime
------------    ---------       ------          ---------              -------
V2VM            Restore         InProgress      26-Apr-16 1:14:01 PM   01-Jan-01 12:00:00 AM

Perintah terakhir memicu operasi pemulihan lokasi asli untuk memulihkan data di tempat di VM yang ada.

Memulihkan data ke VM yang baru dibuat

$vault = Get-AzRecoveryServicesVault -ResourceGroupName "resourceGroup" -Name "vaultName"
$BackupItem = Get-AzRecoveryServicesBackupItem -BackupManagementType "AzureVM" -WorkloadType "AzureVM" -Name "V2VM" -VaultId $vault.ID
$StartDate = (Get-Date).AddDays(-7)
$EndDate = Get-Date
$RP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -StartDate $StartDate.ToUniversalTime() -EndDate $EndDate.ToUniversalTime() -VaultId $vault.ID
$AlternateLocationRestoreJob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $RP[0] -TargetResourceGroupName "Target_RG" -StorageAccountName "DestStorageAccount" -StorageAccountResourceGroupName "DestStorageAccRG" -TargetVMName "TagetVirtualMachineName" -TargetVNetName "Target_VNet" -TargetVNetResourceGroup "" -TargetSubnetName "subnetName" -VaultId $vault.ID -VaultLocation $vault.Location 
WorkloadName    Operation       Status          StartTime              EndTime
------------    ---------       ------          ---------              -------
V2VM            Restore         InProgress      26-Apr-16 1:14:01 PM   01-Jan-01 12:00:00 AM

Perintah terakhir memicu operasi pemulihan lokasi alternatif untuk membuat VM baru di grup sumber daya Target_RG sesuai dengan input yang ditentukan oleh parameter TargetVMName, TargetVNetName, TargetVNetResourceGroup, TargetSubnetName. Ini memastikan bahwa data dipulihkan di VM, jaringan virtual, dan subnet yang diperlukan.

Langkah berikutnya

Jika Anda lebih suka menggunakan PowerShell untuk berinteraksi dengan sumber daya Azure Anda, lihat artikel PowerShell, Menyebarkan dan Mengelola Pencadangan untuk Windows Server. Jika Anda mengelola pencadangan DPM, lihat artikel, Menyebarkan dan Mengelola Pencadangan untuk DPM.