Einrichten der Notfallwiederherstellung in Azure für Hyper-V-VMs mithilfe von PowerShell und Azure Resource Manager
Azure Site Recovery unterstützt Ihre Strategie für Geschäftskontinuität und Notfallwiederherstellung, indem Replikation, Failover und Wiederherstellung virtueller Azure-Computer und lokaler virtueller Computer sowie physischer Server aufeinander abgestimmt werden.
Dieser Artikel beschreibt, wie Sie Windows PowerShell zusammen mit Azure Resource Manager verwenden, um Hyper-V-VMs in Azure zu replizieren. Das Beispiel in diesem Artikel zeigt, wie Sie einen auf einem Hyper-V-Host ausgeführten einzelnen virtuellen Computer in Azure replizieren.
Hinweis
Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.
Azure PowerShell
Azure PowerShell stellt Cmdlets zum Verwalten von Azure mit Windows PowerShell zur Verfügung. Mit PowerShell-Cmdlets für Site Recovery, die mit Azure PowerShell für den Azure Resource Manager verfügbar sind, können Sie Ihre Server in Azure schützen und wiederherstellen.
Sie müssen kein PowerShell-Experte sein, um diesen Artikel verwenden zu können. Sie müssen jedoch mit den grundlegenden Konzepten wie Modulen, Cmdlets und Sitzungen vertraut sein. Weitere Informationen finden Sie in der PowerShell-Dokumentation und unter Verwenden von Azure PowerShell mit Azure Resource Manager.
Hinweis
Microsoft-Partner im CSP-Programm (Cloud Solution Provider, Cloud-Lösungsanbieter) können den Schutz der Server ihrer Kunden in den entsprechenden CSP-Abonnements (Mandantenabonnements) konfigurieren und verwalten.
Vorbereitung
Stellen Sie sicher, dass diese Voraussetzungen erfüllt werden:
- Ein Microsoft Azure -Konto. Für den Einstieg steht eine kostenlose Testversion zur Verfügung. Darüber hinaus können Sie sich über die Preisgestaltung für Azure Site Recovery-Managerinformieren.
- Azure PowerShell. Informationen zu dieser Version und wie Sie diese installieren, finden Sie unter Installieren des Azure PowerShell-Moduls.
Darüber hinaus gelten für das in diesem Artikel beschriebene Beispiel die folgenden Voraussetzungen:
- Ein Hyper-V-Host unter Windows Server 2012 R2 oder Microsoft Hyper-V Server 2012 R2 mit mindestens einem virtuellen Computer. Hyper-V-Server müssen entweder direkt oder über einen Proxy mit dem Internet verbunden sein.
- Die virtuellen Computer, die Sie replizieren möchten, sollten diese Voraussetzungen erfüllen.
Schritt 1: Anmelden bei Ihrem Azure-Konto
Öffnen Sie eine PowerShell-Konsole, und führen Sie den folgenden Befehl aus, um sich bei Ihrem Azure-Konto anzumelden. Das Cmdlet ruft eine Webseite auf, die Sie zur Eingabe Ihrer Kontoanmeldeinformationen auffordert:
Connect-AzAccount
.- Alternativ können Sie Ihre Kontoanmeldeinformationen als Parameter Credential im Cmdlet
Connect-AzAccount
angeben. - Wenn Sie als CSP-Partner für einen Mandanten tätig sind, geben Sie den Kunden mit dessen Mandanten-ID oder primären Mandantendomänennamen als Mandanten an. Beispiel:
Connect-AzAccount -Tenant "fabrikam.com"
- Alternativ können Sie Ihre Kontoanmeldeinformationen als Parameter Credential im Cmdlet
Da ein Konto mehrere Abonnements enthalten kann, müssen Sie das Abonnement, das Sie verwenden möchten, dem Konto zuordnen:
Set-AzContext -Subscription $SubscriptionName
Stellen Sie mit den folgenden Befehlen sicher, dass Ihr Abonnement für die Verwendung der Azure-Anbieter für Recovery Services und Site Recovery registriert ist:
Get-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServices
Vergewissern Sie sich in der Befehlsausgabe, dass RegistrationState auf Registered festgelegt ist. Anschließend können Sie mit Schritt 2 fortfahren. Wenn dies nicht der Fall ist, müssen Sie den fehlenden Anbieter in Ihrem Abonnement registrieren, indem Sie die folgenden Befehle ausführen:
Register-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServices
Überprüfen Sie mithilfe der folgenden Befehle, ob die Anbieter erfolgreich registriert wurden:
Get-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServices
Schritt 2: Einrichten des Tresors
Erstellen Sie eine Azure Resource Manager-Ressourcengruppe, in der der Tresor erstellt werden soll, oder verwenden Sie eine vorhandene Ressourcengruppe. Erstellen Sie wie folgt eine neue Ressourcengruppe. Die Variable
$ResourceGroupName
enthält den Namen der zu erstellenden Ressourcengruppe, und die Variable „$Geo“ enthält die Azure-Region, in der die Ressourcengruppe erstellt wird (z. B. „Brasilien, Süden“).New-AzResourceGroup -Name $ResourceGroupName -Location $Geo
Führen Sie das Cmdlet
Get-AzResourceGroup
aus, um eine Liste der Ressourcengruppen in Ihrem Abonnement abzurufen.Erstellen Sie einen neuen Azure Recovery Services-Tresor wie folgt:
$vault = New-AzRecoveryServicesVault -Name <string> -ResourceGroupName <string> -Location <string>
Sie können eine Liste der vorhandenen Tresore mit dem Cmdlet Get-AzRecoveryServicesVault
abrufen.
Schritt 3: Festlegen des Kontexts des Recovery Services-Tresors
Legen Sie den Tresorkontext wie folgt fest:
Set-AzRecoveryServicesAsrVaultContext -Vault $vault
Schritt 4: Erstellen eines Hyper-V-Standorts
Erstellen Sie einen neuen Hyper-V-Standort wie folgt:
$sitename = "MySite" #Specify site friendly name New-AzRecoveryServicesAsrFabric -Type HyperVSite -Name $sitename
Dieses Cmdlet startet einen Site Recovery-Auftrag, um den Standort zu erstellen, und gibt ein Site Recovery-Auftragsobjekt zurück. Warten Sie, bis der Auftrag abgeschlossen ist, und überprüfen Sie, ob der Auftrag erfolgreich abgeschlossen wurde.
Verwenden Sie das Cmdlet
Get-AzRecoveryServicesAsrJob
zum Abrufen des Auftragsobjekts, und überprüfen Sie den aktuellen Status des Auftrags.Generieren Sie wie folgt einen Registrierungsschlüssel für den Standort, und laden Sie ihn herunter:
$SiteIdentifier = Get-AzRecoveryServicesAsrFabric -Name $sitename | Select-Object -ExpandProperty SiteIdentifier $path = Get-AzRecoveryServicesVaultSettingsFile -Vault $vault -SiteIdentifier $SiteIdentifier -SiteFriendlyName $sitename
Kopieren Sie den heruntergeladenen Schlüssel in den Hyper-V-Host. Sie benötigen den Schlüssel, um den Hyper-V-Host am Standort zu registrieren.
Schritt 5: Installieren des Anbieters und des Agents
Laden Sie bei Microsoftdas Installationsprogramm für die neueste Version des Anbieters herunter.
Führen Sie das Installationsprogramm auf dem Hyper-V-Host aus.
Fahren Sie am Ende der Installation mit dem Registrierungsschritt fort.
Geben Sie den heruntergeladenen Schlüssel an, wenn Sie dazu aufgefordert werden, und schließen Sie die Registrierung des Hyper-V-Hosts ab.
Überprüfen Sie wie folgt, ob der Hyper-V-Host am Standort registriert wurde:
$server = Get-AzRecoveryServicesAsrFabric -Name $siteName | Get-AzRecoveryServicesAsrServicesProvider -FriendlyName $server-friendlyname
Wenn Sie einen Hyper-V Core Server betreiben, laden Sie die Setupdatei herunter, und führen Sie diese Schritte aus:
Extrahieren Sie die Dateien aus AzureSiteRecoveryProvider.exe in ein lokales Verzeichnis, indem Sie den folgenden Befehl ausführen:
AzureSiteRecoveryProvider.exe /x:. /q
Führen Sie den folgenden Befehl aus:
.\setupdr.exe /i
Die Ergebnisse werden in %ProgramData%\ASRLogs\DRASetupWizard.log protokolliert.
Registrieren Sie den Server mithilfe dieses Befehls:
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"
Schritt 6: Erstellen einer Replikationsrichtlinie
Bevor Sie beginnen, muss sich das angegebene Speicherkonto in derselben Azure-Region wie der Tresor befinden, und die Georeplikation muss aktiviert sein.
Erstellen Sie eine Replikationsrichtlinie wie folgt:
$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
Überprüfen Sie den zurückgegebenen Auftrag, um sicherzustellen, dass die Replikationsrichtlinie erfolgreich erstellt wurde.
Rufen Sie den Schutzcontainer, der dem Standort entspricht, wie folgt ab:
$protectionContainer = Get-AzRecoveryServicesAsrProtectionContainer
Ordnen Sie den Schutzcontainers der Replikationsrichtlinie wie folgt zu:
$Policy = Get-AzRecoveryServicesAsrPolicy -FriendlyName $PolicyName $associationJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name $mappingName -Policy $Policy -PrimaryProtectionContainer $protectionContainer[0]
Warten Sie, bis der Zuordnungsauftrag erfolgreich abgeschlossen wurde.
Dient zum Abrufen der Schutzcontainerzuordnung.
$ProtectionContainerMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $protectionContainer
Schritt 7: Aktivieren des Schutzes des virtuellen Computers
Rufen Sie das schützbare Element, das dem zu schützenden virtuellen Computer entspricht, wie folgt ab:
$VMFriendlyName = "Fabrikam-app" #Name of the VM $ProtectableItem = Get-AzRecoveryServicesAsrProtectableItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyName
Schützen Sie den virtuellen Computer. Wenn an den geschützten virtuellen Computer mehrere Datenträger angefügt sind, geben Sie den Betriebssystemdatenträger mit dem Parameter OSDiskName an.
$OSType = "Windows" # "Windows" or "Linux" $DRjob = New-AzRecoveryServicesAsrReplicationProtectedItem -ProtectableItem $VM -Name $VM.Name -ProtectionContainerMapping $ProtectionContainerMapping -RecoveryAzureStorageAccountId $StorageAccountID -OSDiskName $OSDiskNameList[$i] -OS $OSType -RecoveryResourceGroupId $ResourceGroupID
Warten Sie, bis die virtuellen Computer nach der ersten Replikation einen geschützten Zustand erreicht haben. Abhängig von Faktoren wie der Menge der zu replizierenden Daten und der verfügbare Upstreambandbreite zu Azure kann dies länger dauern. Die Aufträge „State“ und „StateDescription“ werden wie folgt aktualisiert, sobald der virtuelle Computer einen geschützten Zustand erreicht:
PS C:\> $DRjob = Get-AzRecoveryServicesAsrJob -Job $DRjob PS C:\> $DRjob | Select-Object -ExpandProperty State Succeeded PS C:\> $DRjob | Select-Object -ExpandProperty StateDescription Completed
Aktualisieren Sie die Wiederherstellungseigenschaften (z. B. die Größe der VM-Rolle) und das Azure-Netzwerk, an das die NIC des virtuellen Computers nach dem Failover angefügt werden soll.
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
Hinweis
Führen Sie die folgenden Schritte mithilfe von Az PowerShell 3.3.0 oder höher aus, wenn Sie die Replikation auf einem CMK-aktivierten verwalteten Datenträger in Azure durchführen möchten:
- Aktivieren des Failovers auf verwaltete Datenträger durch Aktualisieren von VM-Eigenschaften
- Verwenden des Cmdlets
Get-AzRecoveryServicesAsrReplicationProtectedItem
zum Abrufen der Datenträger-ID für jeden Datenträger des geschützten Elements - Erstellen Sie mit dem Cmdlet
New-Object "System.Collections.Generic.Dictionary``2[System.String,System.String]"
ein Wörterbuchobjekt, das die Zuordnung der Datenträger-ID zum Datenträgerverschlüsselungssatz enthalten soll. Diese Datenträgerverschlüsselungssätze müssen von Ihnen in der Zielregion vorab erstellt werden. - Aktualisieren Sie die VM-Eigenschaften mithilfe des Cmdlets
Set-AzRecoveryServicesAsrReplicationProtectedItem
, indem Sie das Wörterbuchobjekt im Parameter DiskIdToDiskEncryptionSetMap übergeben.
Schritt 8: Ausführen eines Testfailovers
Führen Sie ein Testfailover wie folgt aus:
$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
Stellen Sie sicher, dass die Test-VM in Azure erstellt wird. Der Testfailoverauftrag wird nach dem Erstellen des virtuellen Testcomputers in Azure angehalten.
Führen Sie zum Bereinigen und Abschließen des Testfailovers Folgendes aus:
$TFjob = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -ReplicationProtectedItem $rpi -Comment "TFO done"
Nächste Schritte
Erfahren Sie mehr über Azure Site Recovery mit PowerShell-Cmdlets für Azure Resource Manager.