Konfigurera haveriberedskap till Azure för virtuella Hyper-V-datorer med PowerShell och Azure Resource Manager

Azure Site Recovery bidrar till din BCDR-strategi (affärskontinuitet och haveriberedskap) genom att samordna replikering, redundans och återställning av virtuella Azure-datorer (VM) samt lokala virtuella datorer och fysiska servrar.

Den här artikeln beskriver hur du använder Windows PowerShell tillsammans med Azure Resource Manager för att replikera virtuella Hyper-V-datorer till Azure. Exemplet som används i den här artikeln visar hur du replikerar en enskild virtuell dator som körs på en Hyper-V-värd till Azure.

Kommentar

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Azure PowerShell

Azure PowerShell tillhandahåller cmdletar för att hantera Azure med Hjälp av Windows PowerShell. Site Recovery PowerShell-cmdletar, som är tillgängliga med Azure PowerShell för Azure Resource Manager, hjälper dig att skydda och återställa dina servrar i Azure.

Du behöver inte vara PowerShell-expert för att kunna använda den här artikeln, men du behöver förstå grundläggande begrepp, till exempel moduler, cmdletar och sessioner. Mer information finns i PowerShell-dokumentationenoch Använda Azure PowerShell med Azure Resource Manager.

Kommentar

Microsoft-partner i Molnlösningsleverantör-programmet (CSP) kan konfigurera och hantera skydd av kundservrar till respektive CSP-prenumerationer (klientprenumerationer).

Innan du börjar

Se till att du har följande förutsättningar på plats:

Dessutom har det specifika exemplet som beskrivs i den här artikeln följande förutsättningar:

  • En Hyper-V-värd som kör Windows Server 2012 R2 eller Microsoft Hyper-V Server 2012 R2 som innehåller en eller flera virtuella datorer. Hyper-V-servrar ska vara anslutna till Internet, antingen direkt eller via en proxy.
  • De virtuella datorer som du vill replikera ska överensstämma med dessa krav.

Steg 1: Logga in på ditt Azure-konto

  1. Öppna en PowerShell-konsol och kör det här kommandot för att logga in på ditt Azure-konto. Cmdleten visar en webbsida där du uppmanas att ange dina autentiseringsuppgifter för kontot: Connect-AzAccount.

    • Alternativt kan du inkludera dina kontoautentiseringsuppgifter som en parameter i cmdleten Connect-AzAccount med hjälp av parametern Credential .
    • Om du är en CSP-partner som arbetar för en klientorganisation anger du kunden som klient genom att använda deras klient-ID eller klientorganisationens primära domännamn. Till exempel: Connect-AzAccount -Tenant "fabrikam.com"
  2. Associera den prenumeration som du vill använda med kontot, eftersom ett konto kan ha flera prenumerationer:

    Set-AzContext -Subscription $SubscriptionName
    
  3. Kontrollera att din prenumeration är registrerad för att använda Azure-leverantörerna för Recovery Services och Site Recovery med hjälp av följande kommandon:

    Get-AzResourceProvider -ProviderNamespace  Microsoft.RecoveryServices
    
  4. Kontrollera att i kommandoutdata är RegistrationState inställt på Registrerad, kan du gå vidare till steg 2. Annars bör du registrera den saknade providern i din prenumeration genom att köra följande kommandon:

    Register-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServices
    
  5. Kontrollera att providrar har registrerats med hjälp av följande kommandon:

    Get-AzResourceProvider -ProviderNamespace  Microsoft.RecoveryServices
    

Steg 2: Konfigurera valvet

  1. Skapa en Azure Resource Manager-resursgrupp där du kan skapa valvet eller använda en befintlig resursgrupp. Skapa en ny resursgrupp på följande sätt. Variabeln $ResourceGroupName innehåller namnet på den resursgrupp som du vill skapa och variabeln $Geo innehåller den Azure-region där resursgruppen ska skapas (till exempel "Brasilien, södra").

    New-AzResourceGroup -Name $ResourceGroupName -Location $Geo
    
  2. Kör cmdleten Get-AzResourceGroup för att hämta en lista över resursgrupper i din prenumeration.

  3. Skapa ett nytt Azure Recovery Services-valv på följande sätt:

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

Du kan hämta en lista över befintliga valv med cmdleten Get-AzRecoveryServicesVault .

Steg 3: Ange Recovery Services-valvkontexten

Ange valvkontexten på följande sätt:

Set-AzRecoveryServicesAsrVaultContext -Vault $vault

Steg 4: Skapa en Hyper-V-webbplats

  1. Skapa en ny Hyper-V-webbplats på följande sätt:

    $sitename = "MySite"                #Specify site friendly name
    New-AzRecoveryServicesAsrFabric -Type HyperVSite -Name $sitename
    
  2. Den här cmdleten startar ett Site Recovery-jobb för att skapa platsen och returnerar ett Site Recovery-jobbobjekt. Vänta tills jobbet har slutförts och kontrollera att jobbet har slutförts.

  3. Använd cmdleten Get-AzRecoveryServicesAsrJob för att hämta jobbobjektet och kontrollera jobbets aktuella status.

  4. Generera och ladda ned en registreringsnyckel för webbplatsen enligt följande:

    $SiteIdentifier = Get-AzRecoveryServicesAsrFabric -Name $sitename | Select-Object -ExpandProperty SiteIdentifier
    $path = Get-AzRecoveryServicesVaultSettingsFile -Vault $vault -SiteIdentifier $SiteIdentifier -SiteFriendlyName $sitename
    
  5. Kopiera den nedladdade nyckeln till Hyper-V-värden. Du behöver nyckeln för att registrera Hyper-V-värden på platsen.

Steg 5: Installera providern och agenten

  1. Ladda ned installationsprogrammet för den senaste versionen av providern från Microsoft.

  2. Kör installationsprogrammet på Hyper-V-värden.

  3. I slutet av installationen fortsätter du till registreringssteget.

  4. När du uppmanas till det anger du den nedladdade nyckeln och slutför registreringen av Hyper-V-värden.

  5. Kontrollera att Hyper-V-värden är registrerad på webbplatsen på följande sätt:

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

Om du kör en Hyper-V-kärnserver laddar du ned installationsfilen och följer dessa steg:

  1. Extrahera filerna från AzureSiteRecoveryProvider.exe till en lokal katalog genom att köra det här kommandot:

    AzureSiteRecoveryProvider.exe /x:. /q
    
  2. Kör följande kommando:

    .\setupdr.exe /i
    

    Resultaten loggas till %ProgramData%\ASRLogs\DRASetupWizard.log.

  3. Registrera servern genom att köra det här kommandot:

    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"
    

Steg 6: Skapa en replikeringsprincip

Innan du börjar bör det angivna lagringskontot finnas i samma Azure-region som valvet och ha geo-replikering aktiverat.

  1. Skapa en replikeringsprincip på följande sätt:

    $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. Kontrollera det returnerade jobbet för att säkerställa att skapandet av replikeringsprincipen lyckas.

  3. Hämta skyddscontainern som motsvarar platsen enligt följande:

    $protectionContainer = Get-AzRecoveryServicesAsrProtectionContainer
    
  4. Associera skyddscontainern med replikeringsprincipen enligt följande:

    $Policy = Get-AzRecoveryServicesAsrPolicy -FriendlyName $PolicyName
    $associationJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name $mappingName -Policy $Policy -PrimaryProtectionContainer $protectionContainer[0]
    
  5. Vänta tills associationsjobbet har slutförts.

  6. Hämta skyddscontainerns mappning.

    $ProtectionContainerMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $protectionContainer
    

Steg 7: Aktivera VM-skydd

  1. Hämta det skyddsbara objekt som motsvarar den virtuella dator som du vill skydda, enligt följande:

    $VMFriendlyName = "Fabrikam-app"          #Name of the VM
    $ProtectableItem = Get-AzRecoveryServicesAsrProtectableItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyName
    
  2. Skydda den virtuella datorn. Om den virtuella dator som du skyddar har fler än en disk ansluten till den anger du operativsystemdisken med hjälp av parametern 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. Vänta tills de virtuella datorerna har nått ett skyddat tillstånd efter den inledande replikeringen. Det kan ta en stund, beroende på faktorer som mängden data som ska replikeras och den tillgängliga uppströmsbandbredden till Azure. När ett skyddat tillstånd är på plats uppdateras jobbtillståndet och StateDescription på följande sätt:

    PS C:\> $DRjob = Get-AzRecoveryServicesAsrJob -Job $DRjob
    
    PS C:\> $DRjob | Select-Object -ExpandProperty State
    Succeeded
    
    PS C:\> $DRjob | Select-Object -ExpandProperty StateDescription
    Completed
    
  4. Uppdatera återställningsegenskaperna (till exempel storleken på den virtuella datorns roll) och det Azure-nätverk som nätverkskortet för den virtuella datorn ska kopplas till efter redundansväxlingen.

    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
    

Kommentar

Om du vill replikera till CMK-aktiverade hanterade diskar i Azure utför du följande steg med Az PowerShell 3.3.0 och senare:

  1. Aktivera redundans till hanterade diskar genom att uppdatera vm-egenskaper
  2. Använd cmdleten Get-AzRecoveryServicesAsrReplicationProtectedItem för att hämta disk-ID:t för varje disk i det skyddade objektet
  3. Skapa ett ordlisteobjekt med hjälp av New-Object "System.Collections.Generic.Dictionary``2[System.String,System.String]" cmdlet för att innehålla mappningen av disk-ID till diskkrypteringsuppsättning. Dessa diskkrypteringsuppsättningar ska skapas i förväg av dig i målregionen.
  4. Uppdatera egenskaperna för den virtuella datorn med hjälp Set-AzRecoveryServicesAsrReplicationProtectedItem av cmdleten genom att skicka ordlisteobjektet i parametern DiskIdToDiskEncryptionSetMap .

Steg 8: Kör ett redundanstest

  1. Kör ett redundanstest enligt följande:

    $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. Kontrollera att den virtuella testdatorn har skapats i Azure. Redundanstestjobbet pausas när du har skapat den virtuella testdatorn i Azure.

  3. Om du vill rensa och slutföra redundanstestet kör du:

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

Nästa steg

Läs mer om Azure Site Recovery med Azure Resource Manager PowerShell-cmdletar.