Herstel na noodgeval instellen naar Azure voor Hyper-V-VM's met behulp van PowerShell en Azure Resource Manager

Azure Site Recovery draagt bij aan uw strategie voor bedrijfscontinuïteit en herstel na noodgevallen (BCDR) door replicatie, failover en herstel van virtuele Azure-machines (VM's) en on-premises VM's en fysieke servers in te delen.

In dit artikel wordt beschreven hoe u Windows PowerShell gebruikt, samen met Azure Resource Manager, om Virtuele Hyper-V-machines te repliceren naar Azure. In het voorbeeld dat in dit artikel wordt gebruikt, ziet u hoe u één VIRTUELE machine die wordt uitgevoerd op een Hyper-V-host, repliceert naar Azure.

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Azure PowerShell

Azure PowerShell biedt cmdlets voor het beheren van Azure met Behulp van Windows PowerShell. Site Recovery PowerShell-cmdlets, beschikbaar met Azure PowerShell voor Azure Resource Manager, helpen u bij het beveiligen en herstellen van uw servers in Azure.

U hoeft geen PowerShell-expert te zijn om dit artikel te kunnen gebruiken, maar u moet wel de basisconcepten begrijpen, zoals modules, cmdlets en sessies. Zie de PowerShell-documentatie en het gebruik van Azure PowerShell met Azure Resource Manager voor meer informatie.

Notitie

Microsoft-partners in het CSP-programma (Cloud Solution Provider) kunnen de beveiliging van klantservers configureren en beheren voor hun respectieve CSP-abonnementen (tenantabonnementen).

Voordat u begint

Zorg ervoor dat aan deze vereisten is voldaan:

Daarnaast heeft het specifieke voorbeeld dat in dit artikel wordt beschreven de volgende vereisten:

  • Een Hyper-V-host met Windows Server 2012 R2 of Microsoft Hyper-V Server 2012 R2 met een of meer VM's. Hyper-V-servers moeten rechtstreeks of via een proxy zijn verbonden met internet.
  • De VM's die u wilt repliceren, moeten voldoen aan deze vereisten.

Stap 1: Meld u aan bij uw Azure-account

  1. Open een PowerShell-console en voer deze opdracht uit om u aan te melden bij uw Azure-account. Met de cmdlet wordt een webpagina weergegeven waarin u wordt gevraagd om uw accountreferenties: Connect-AzAccount.

    • U kunt ook uw accountreferenties opnemen als een parameter in de Connect-AzAccount cmdlet, met behulp van de referentieparameter.
    • Als u een CSP-partner bent die namens een tenant werkt, geeft u de klant op als tenant, met behulp van de tenant-id of primaire domeinnaam van de tenant. Bijvoorbeeld: Connect-AzAccount -Tenant "fabrikam.com"
  2. Koppel het abonnement dat u wilt gebruiken aan het account, omdat een account verschillende abonnementen kan hebben:

    Set-AzContext -Subscription $SubscriptionName
    
  3. Controleer of uw abonnement is geregistreerd voor het gebruik van de Azure-providers voor Recovery Services en Site Recovery met behulp van deze opdrachten:

    Get-AzResourceProvider -ProviderNamespace  Microsoft.RecoveryServices
    
  4. Controleer of in de opdrachtuitvoer de RegistrationState is ingesteld op Geregistreerd. U kunt doorgaan met stap 2. Als dat niet het geval is, moet u de ontbrekende provider registreren in uw abonnement door de volgende opdrachten uit te voeren:

    Register-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServices
    
  5. Controleer of de providers zijn geregistreerd met behulp van de volgende opdrachten:

    Get-AzResourceProvider -ProviderNamespace  Microsoft.RecoveryServices
    

Stap 2: De kluis instellen

  1. Maak een Azure Resource Manager-resourcegroep waarin de kluis moet worden gemaakt of gebruik een bestaande resourcegroep. Maak als volgt een nieuwe resourcegroep. De $ResourceGroupName variabele bevat de naam van de resourcegroep die u wilt maken en de $Geo variabele bevat de Azure-regio waarin de resourcegroep moet worden gemaakt (bijvoorbeeld 'Brazilië - zuid').

    New-AzResourceGroup -Name $ResourceGroupName -Location $Geo
    
  2. Als u een lijst met resourcegroepen in uw abonnement wilt ophalen, voert u de Get-AzResourceGroup cmdlet uit.

  3. Maak als volgt een nieuwe Azure Recovery Services-kluis:

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

U kunt een lijst met bestaande kluizen ophalen met de Get-AzRecoveryServicesVault cmdlet.

Stap 3: de Recovery Services-kluiscontext instellen

Stel de kluiscontext als volgt in:

Set-AzRecoveryServicesAsrVaultContext -Vault $vault

Stap 4: Een Hyper-V-site maken

  1. Maak als volgt een nieuwe Hyper-V-site:

    $sitename = "MySite"                #Specify site friendly name
    New-AzRecoveryServicesAsrFabric -Type HyperVSite -Name $sitename
    
  2. Met deze cmdlet wordt een Site Recovery-taak gestart om de site te maken en wordt een Site Recovery-taakobject geretourneerd. Wacht tot de taak is voltooid en controleer of de taak is voltooid.

  3. Gebruik de Get-AzRecoveryServicesAsrJob cmdlet om het taakobject op te halen en controleer de huidige status van de taak.

  4. Genereer en download als volgt een registratiesleutel voor de site:

    $SiteIdentifier = Get-AzRecoveryServicesAsrFabric -Name $sitename | Select-Object -ExpandProperty SiteIdentifier
    $path = Get-AzRecoveryServicesVaultSettingsFile -Vault $vault -SiteIdentifier $SiteIdentifier -SiteFriendlyName $sitename
    
  5. Kopieer de gedownloade sleutel naar de Hyper-V-host. U hebt de sleutel nodig om de Hyper-V-host te registreren bij de site.

Stap 5: De provider en agent installeren

  1. Download het installatieprogramma voor de nieuwste versie van de Provider van Microsoft.

  2. Voer het installatieprogramma uit op de Hyper-V-host.

  3. Aan het einde van de installatie gaat u verder met de registratiestap.

  4. Wanneer u hierom wordt gevraagd, geeft u de gedownloade sleutel op en voltooit u de registratie van de Hyper-V-host.

  5. Controleer of de Hyper-V-host als volgt is geregistreerd bij de site:

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

Als u een Hyper-V-kernserver gebruikt, downloadt u het installatiebestand en voert u de volgende stappen uit:

  1. Pak de bestanden uit AzureSiteRecoveryProvider.exe uit naar een lokale map door deze opdracht uit te voeren:

    AzureSiteRecoveryProvider.exe /x:. /q
    
  2. Voer de volgende opdracht uit:

    .\setupdr.exe /i
    

    Resultaten worden vastgelegd in %ProgramData%\ASRLogs\DRASetupWizard.log.

  3. Registreer de server door de volgende opdracht uit te voeren:

    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"
    

Stap 6: Een replicatiebeleid maken

Voordat u begint, moet het opgegeven opslagaccount zich in dezelfde Azure-regio bevinden als de kluis en moet geo-replicatie zijn ingeschakeld.

  1. Maak als volgt een replicatiebeleid:

    $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. Controleer de geretourneerde taak om ervoor te zorgen dat het replicatiebeleid is gemaakt.

  3. Haal als volgt de beveiligingscontainer op die overeenkomt met de site:

    $protectionContainer = Get-AzRecoveryServicesAsrProtectionContainer
    
  4. Koppel de beveiligingscontainer als volgt aan het replicatiebeleid:

    $Policy = Get-AzRecoveryServicesAsrPolicy -FriendlyName $PolicyName
    $associationJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name $mappingName -Policy $Policy -PrimaryProtectionContainer $protectionContainer[0]
    
  5. Wacht totdat de koppelingstaak is voltooid.

  6. Haal de toewijzing van de beveiligingscontainer op.

    $ProtectionContainerMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $protectionContainer
    

Stap 7: VM-beveiliging inschakelen

  1. Haal als volgt het beveiligbare item op dat overeenkomt met de VM die u wilt beveiligen:

    $VMFriendlyName = "Fabrikam-app"          #Name of the VM
    $ProtectableItem = Get-AzRecoveryServicesAsrProtectableItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyName
    
  2. Beveilig de VIRTUELE machine. Als er meer dan één schijf aan de virtuele machine is gekoppeld die u beveiligt, geeft u de besturingssysteemschijf op met behulp van de 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. Wacht totdat de VM's na de eerste replicatie een beveiligde status hebben bereikt. Dit kan even duren, afhankelijk van factoren zoals de hoeveelheid gegevens die moet worden gerepliceerd en de beschikbare upstreambandbreedte naar Azure. Wanneer er een beveiligde status is ingesteld, worden de taakstatus en StateDescription als volgt bijgewerkt:

    PS C:\> $DRjob = Get-AzRecoveryServicesAsrJob -Job $DRjob
    
    PS C:\> $DRjob | Select-Object -ExpandProperty State
    Succeeded
    
    PS C:\> $DRjob | Select-Object -ExpandProperty StateDescription
    Completed
    
  4. Hersteleigenschappen bijwerken (zoals de grootte van de VM-rol) en het Azure-netwerk waaraan de VM-NIC moet worden gekoppeld na een 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
    

Notitie

Als u wilt repliceren naar beheerde schijven met CMK in Azure, voert u de volgende stappen uit met Az PowerShell 3.3.0 en hoger:

  1. Failover naar beheerde schijven inschakelen door VM-eigenschappen bij te werken
  2. Gebruik de Get-AzRecoveryServicesAsrReplicationProtectedItem cmdlet om de schijf-id op te halen voor elke schijf van het beveiligde item
  3. Maak een woordenlijstobject met behulp van New-Object "System.Collections.Generic.Dictionary``2[System.String,System.String]" cmdlet om de toewijzing van de schijf-id aan schijfversleutelingsset te bevatten. Deze schijfversleutelingssets moeten vooraf door u in de doelregio worden gemaakt.
  4. Werk de VM-eigenschappen bij met behulp van Set-AzRecoveryServicesAsrReplicationProtectedItem cmdlet door het woordenlijstobject door te geven in de parameter DiskIdToDiskEncryptionSetMap .

Stap 8: Een testfailover uitvoeren

  1. Voer als volgt een testfailover uit:

    $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. Controleer of de test-VM is gemaakt in Azure. De testfailovertaak wordt onderbroken na het maken van de test-VM in Azure.

  3. Als u de testfailover wilt opschonen en voltooien, voert u het volgende uit:

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

Volgende stappen

Meer informatie over Azure Site Recovery met Azure Resource Manager PowerShell-cmdlets.