Menyiapkan pemulihan bencana ke Azure untuk Hyper-V VM menggunakan PowerShell dan Azure Resource Manager

Azure Site Recovery berkontribusi pada strategi kelangsungan bisnis dan pemulihan bencana (BCDR) Anda dengan mengatur replikasi, failover, dan pemulihan komputer virtual (VM) Azure, serta VM lokal dan server fisik.

Artikel ini menjelaskan cara menggunakan Windows PowerShell, bersama dengan Azure Resource Manager, untuk mereplikasi Hyper-V VM ke Azure. Contoh yang digunakan dalam artikel ini memperlihatkan cara mereplikasi satu VM yang berjalan pada host Hyper-V, ke Azure.

Catatan

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

Azure PowerShell

Azure PowerShell menyediakan cmdlet untuk mengelola Azure menggunakan Windows PowerShell. Cmdlet PowerShell Site Recovery, yang tersedia dengan Azure PowerShell untuk Azure Resource Manager, membantu Anda melindungi dan memulihkan server Anda di Azure.

Anda tidak perlu menjadi ahli PowerShell untuk menggunakan artikel ini, tapi Anda perlu memahami konsep dasar, seperti modul, cmdlet, dan sesi. Untuk informasi lengkapnya, lihat Dokumentasi PowerShell dan Menggunakan Azure PowerShell dengan Azure Resource Manager.

Catatan

Mitra Microsoft dalam program Penyedia Solusi Cloud (CSP) dapat mengonfigurasi dan mengelola perlindungan server pelanggan ke langganan CSP masing-masing (langganan penyewa).

Sebelum memulai

Pastikan Anda memiliki prasyarat ini:

Selain itu, contoh spesifik yang dijelaskan dalam artikel ini memiliki prasyarat berikut:

  • Host Hyper-V yang menjalankan Windows Server 2012 R2 atau Microsoft Hyper-V Server 2012 R2 berisi satu atau beberapa VM. Server Hyper-V harus terhubung ke Internet, baik secara langsung atau melalui proksi.
  • VM yang ingin Anda replikasi harus sesuai dengan prasyarat ini.

Langkah 1: Masuk ke akun Azure Anda

  1. Buka konsol PowerShell dan jalankan perintah ini untuk masuk ke akun Azure Anda. Cmdlet memunculkan halaman web yang meminta kredensial akun Anda: Connect-AzAccount.

    • Secara bergantian, Anda dapat menyertakan kredensial akun sebagai parameter dalam Connect-AzAccount cmdlet, menggunakan parameter Kredensial.
    • 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"
  2. Asosiasikan langganan yang ingin Anda gunakan dengan akun tersebut karena akun bisa memiliki beberapa langganan:

    Set-AzContext -Subscription $SubscriptionName
    
  3. Verifikasi bahwa langganan Anda terdaftar untuk menggunakan penyedia Azure untuk Layanan Pemulihan dan Site Recovery, menggunakan perintah ini:

    Get-AzResourceProvider -ProviderNamespace  Microsoft.RecoveryServices
    
  4. Verifikasi bahwa dalam output perintah, StatusRegistrasi diatur ke Terdaftar, Anda dapat melanjutkan ke Langkah 2. Jika tidak, Anda harus mendaftarkan penyedia yang hilang di langganan Anda, dengan menjalankan perintah ini:

    Register-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServices
    
  5. Verifikasi bahwa Penyedia berhasil mendaftar, dengan menggunakan perintah berikut:

    Get-AzResourceProvider -ProviderNamespace  Microsoft.RecoveryServices
    

Langkah 2: Siapkan kubah

  1. Buat grup sumber daya Azure Resource Manager di mana Anda akan membuat kubah, atau gunakan grup sumber daya yang sudah ada. Buat grup sumber daya baru sebagai berikut. Variabel $ResourceGroupName berisi nama grup sumber daya yang ingin Anda buat, dan variabel $Geo berisi wilayah Azure di mana Anda akan membuat grup sumber daya (misalnya, "Brasil Selatan").

    New-AzResourceGroup -Name $ResourceGroupName -Location $Geo
    
  2. Untuk mendapatkan daftar grup sumber daya di langganan Anda, jalankan Get-AzResourceGroup cmdlet.

  3. Buat kubah Azure Recovery Services baru seperti berikut:

    $vault = New-AzRecoveryServicesVault -Name <string> -ResourceGroupName <string> -Location <string>
    

Anda dapat mengambil daftar kubah yang ada dengan Get-AzRecoveryServicesVault cmdlet.

Langkah 3: Atur konteks kubah Layanan Pemulihan

Atur konteks kubah sebagai berikut:

Set-AzRecoveryServicesAsrVaultContext -Vault $vault

Langkah 4: Buat situs Hyper-V

  1. Buat situs Hyper-V baru seperti berikut:

    $sitename = "MySite"                #Specify site friendly name
    New-AzRecoveryServicesAsrFabric -Type HyperVSite -Name $sitename
    
  2. Cmdlet ini memulai pekerjaan Site Recovery untuk membuat situs, dan mengembalikan objek pekerjaan Site Recovery. Tunggu hingga tugas selesai dan verifikasi bahwa pekerjaan berhasil diselesaikan.

  3. Gunakan Get-AzRecoveryServicesAsrJob cmdlet untuk mengambil objek pekerjaan, dan periksa status pekerjaan saat ini.

  4. Buat dan unduh kunci pendaftaran untuk situs, seperti berikut:

    $SiteIdentifier = Get-AzRecoveryServicesAsrFabric -Name $sitename | Select-Object -ExpandProperty SiteIdentifier
    $path = Get-AzRecoveryServicesVaultSettingsFile -Vault $vault -SiteIdentifier $SiteIdentifier -SiteFriendlyName $sitename
    
  5. Salin kunci yang diunduh ke host Hyper-V. Anda perlu kunci untuk mendaftarkan host Hyper-V ke situs.

Langkah 5: Instal Penyedia dan agen

  1. Unduh penginstal untuk versi terbaru Penyedia dari Microsoft.

  2. Jalankan penginstal pada host Hyper-V.

  3. Di akhir instalasi lanjutkan ke langkah pendaftaran.

  4. Ketika diminta, berikan kunci yang diunduh, dan selesaikan pendaftaran host Hyper-V.

  5. Verifikasi bahwa host Hyper-V terdaftar ke situs sebagai berikut:

    $server = Get-AzRecoveryServicesAsrFabric -Name $siteName | Get-AzRecoveryServicesAsrServicesProvider -FriendlyName $server-friendlyname
    

Jika Anda menjalankan server inti Hyper-V, unduh file penyetelan dan ikuti langkah-langkah berikut:

  1. Ekstrak file dari AzureSiteRecoveryProvider.exe ke direktori lokal dengan menjalankan perintah ini:

    AzureSiteRecoveryProvider.exe /x:. /q
    
  2. Jalankan perintah berikut:

    .\setupdr.exe /i
    

    Hasil dicatat ke %Programdata%\ASRLogs\DRASetupWizard.log.

  3. Daftarkan server dengan menjalankan perintah ini:

    cd  C:\Program Files\Microsoft Azure Site Recovery Provider\DRConfigurator.exe" /r /Friendlyname "FriendlyName of the Server" /Credentials "path to where the credential file is saved"
    

Langkah 6: Buat kebijakan replikasi

Sebelum mulai, akun penyimpanan yang ditentukan harus berada di wilayah Azure yang sama dengan kubah, dan replikasi geografisnya harus sudah diaktifkan.

  1. Buat kebijakan replikasi seperti berikut:

    $ReplicationFrequencyInSeconds = "300";        #options are 30,300,900
    $PolicyName = “replicapolicy”
    $Recoverypoints = 6                    #specify the number of recovery points
    $storageaccountID = Get-AzStorageAccount -Name "mystorea" -ResourceGroupName "MyRG" | Select-Object -ExpandProperty Id
    
    $PolicyResult = New-AzRecoveryServicesAsrPolicy -Name $PolicyName -ReplicationProvider “HyperVReplicaAzure” -ReplicationFrequencyInSeconds $ReplicationFrequencyInSeconds -NumberOfRecoveryPointsToRetain $Recoverypoints -ApplicationConsistentSnapshotFrequencyInHours 1 -RecoveryAzureStorageAccountId $storageaccountID
    
  2. Periksa pekerjaan yang dikembalikan untuk memastikan bahwa pembuatan kebijakan replikasi berhasil.

  3. Ambil kontainer perlindungan yang sesuai dengan situs, seperti berikut:

    $protectionContainer = Get-AzRecoveryServicesAsrProtectionContainer
    
  4. Asosiasikan kontainer perlindungan dengan kebijakan replikasi, seperti berikut:

    $Policy = Get-AzRecoveryServicesAsrPolicy -FriendlyName $PolicyName
    $associationJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name $mappingName -Policy $Policy -PrimaryProtectionContainer $protectionContainer[0]
    
  5. Tunggu hingga pekerjaan asosiasi berhasil diselesaikan.

  6. Ambil pemetaan kontainer perlindungan.

    $ProtectionContainerMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $protectionContainer
    

Langkah 7: Aktifkan perlindungan VM

  1. Ambil item yang dapat dilindungi yang sesuai dengan VM yang ingin Anda lindungi, seperti berikut:

    $VMFriendlyName = "Fabrikam-app"          #Name of the VM
    $ProtectableItem = Get-AzRecoveryServicesAsrProtectableItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyName
    
  2. Lindungi VM. Jika VM yang Anda lindungi memiliki lebih dari satu disk yang melekat padanya, tentukan disk sistem operasi dengan menggunakan parameter OSDiskName.

    $OSType = "Windows"          # "Windows" or "Linux"
    $DRjob = New-AzRecoveryServicesAsrReplicationProtectedItem -ProtectableItem $VM -Name $VM.Name -ProtectionContainerMapping $ProtectionContainerMapping -RecoveryAzureStorageAccountId $StorageAccountID -OSDiskName $OSDiskNameList[$i] -OS $OSType -RecoveryResourceGroupId $ResourceGroupID
    
  3. Tunggu hingga VM mencapai keadaan terlindungi setelah replikasi awal. Ini bisa memakan waktu cukup lama, tergantung faktor-faktor seperti jumlah data yang akan direplikasi, dan bandwidth hulu yang tersedia ke Azure. Ketika keadaan terlindungi diaktifkan, Status pekerjaan dan StateDescription diperbarui seperti berikut:

    PS C:\> $DRjob = Get-AzRecoveryServicesAsrJob -Job $DRjob
    
    PS C:\> $DRjob | Select-Object -ExpandProperty State
    Succeeded
    
    PS C:\> $DRjob | Select-Object -ExpandProperty StateDescription
    Completed
    
  4. Perbarui properti pemulihan (seperti ukuran peran VM) dan jaringan Azure tempat melampirkan VM NIC setelah failover.

    PS C:\> $nw1 = Get-AzVirtualNetwork -Name "FailoverNw" -ResourceGroupName "MyRG"
    
    PS C:\> $VMFriendlyName = "Fabrikam-App"
    
    PS C:\> $rpi = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyName
    
    PS C:\> $UpdateJob = Set-AzRecoveryServicesAsrReplicationProtectedItem -InputObject $rpi -PrimaryNic $VM.NicDetailsList[0].NicId -RecoveryNetworkId $nw1.Id -RecoveryNicSubnetName $nw1.Subnets[0].Name
    
    PS C:\> $UpdateJob = Get-AzRecoveryServicesAsrJob -Job $UpdateJob
    
    PS C:\> $UpdateJob | Select-Object -ExpandProperty state
    
    PS C:\> Get-AzRecoveryServicesAsrJob -Job $job | Select-Object -ExpandProperty state
    
    Succeeded
    

Catatan

Jika Anda ingin mereplikasi ke disk dengan dukungan CMK di Azure, lakukan langkah-langkah berikut menggunakan Az PowerShell 3.3.0 dan seterusnya:

  1. Aktifkan failover ke disk terkelola dengan memperbarui properti VM
  2. Gunakan Get-AzRecoveryServicesAsrReplicationProtectedItem cmdlet untuk mengambil ID disk untuk setiap disk dari item yang diproteksi
  3. Buat objek kamus menggunakan New-Object "System.Collections.Generic.Dictionary``2[System.String,System.String]" cmdlet untuk memuat pemetaan ID disk ke set enkripsi disk. Set enkripsi disk ini akan dibuat sebelumnya oleh Anda di wilayah target.
  4. Perbarui properti VM menggunakan Set-AzRecoveryServicesAsrReplicationProtectedItem cmdlet dengan melewati objek kamus di parameter DiskIdToDiskEncryptionSetMap.

Langkah 8: Jalankan failover uji

  1. Jalankan failover uji seperti berikut:

    $nw = Get-AzVirtualNetwork -Name "TestFailoverNw" -ResourceGroupName "MyRG" #Specify Azure vnet name and resource group
    
    $rpi = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyName
    
    $TFjob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem $VM -Direction PrimaryToRecovery -AzureVMNetworkId $nw.Id
    
  2. Verifikasi bahwa VM uji dibuat di Azure. Pekerjaan failover uji ditangguhkan setelah membuat VM uji di Azure.

  3. Untuk membersihkan dan menyelesaikan failover uji, jalankan:

    $TFjob = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -ReplicationProtectedItem $rpi -Comment "TFO done"
    

Langkah berikutnya

Pelajari lengkapnya tentang Azure Site Recovery dengan cmdlet PowerShell Resource Manager.