Skonfiguruj odzyskiwania po awarii na platformie Azure dla maszyn wirtualnych funkcji Hyper-V przy użyciu programu PowerShell i Azure Resource Manager
Usługa Azure Site Recovery przyczynia się do strategii ciągłości działania i odzyskiwania po awarii (BCDR), organizując replikację, tryb failover i odzyskiwanie maszyn wirtualnych platformy Azure oraz lokalne maszyny wirtualne i serwery fizyczne.
W tym artykule opisano sposób używania programu Windows PowerShell wraz z usługą Azure Resource Manager do replikowania maszyn wirtualnych funkcji Hyper-V na platformę Azure. W przykładzie użytym w tym artykule pokazano, jak replikować pojedynczą maszynę wirtualną uruchomioną na hoście funkcji Hyper-V na platformie Azure.
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Azure PowerShell
Program Azure PowerShell udostępnia polecenia cmdlet do zarządzania platformą Azure przy użyciu programu Windows PowerShell. Polecenia cmdlet programu PowerShell usługi Site Recovery dostępne w programie Azure PowerShell dla usługi Azure Resource Manager ułatwiają ochronę i odzyskiwanie serwerów na platformie Azure.
Nie musisz być ekspertem programu PowerShell, aby użyć tego artykułu, ale musisz zrozumieć podstawowe pojęcia, takie jak moduły, polecenia cmdlet i sesje. Aby uzyskać więcej informacji, zobacz dokumentację programu PowerShell i Używanie programu Azure PowerShell z usługą Azure Resource Manager.
Uwaga
Partnerzy firmy Microsoft w programie Dostawca rozwiązań w chmurze (CSP) mogą skonfigurować ochronę serwerów klientów i zarządzać nimi w odpowiednich subskrypcjach CSP (subskrypcjach dzierżawy).
Przed rozpoczęciem
Upewnij się, że zostały spełnione następujące wymagania wstępne:
- Konto platformy Microsoft Azure . Możesz rozpocząć od bezpłatnej wersji próbnej. Ponadto możesz zapoznać się z cennikiem usługi Azure Site Recovery Manager.
- Azure PowerShell. Aby uzyskać informacje o tej wersji i sposobie jej instalowania, zobacz Instalowanie programu Azure PowerShell.
Ponadto konkretny przykład opisany w tym artykule ma następujące wymagania wstępne:
- Host funkcji Hyper-V z systemem Windows Server 2012 R2 lub Microsoft Hyper-V Server 2012 R2 zawierający co najmniej jedną maszynę wirtualną. Serwery funkcji Hyper-V powinny być połączone z Internetem bezpośrednio lub za pośrednictwem serwera proxy.
- Maszyny wirtualne, które chcesz replikować, powinny być zgodne z tymi wymaganiami wstępnymi.
Krok 1. Logowanie się do konta platformy Azure
Otwórz konsolę programu PowerShell i uruchom to polecenie, aby zalogować się do konta platformy Azure. Polecenie cmdlet wyświetli stronę internetową z monitem o podanie poświadczeń konta:
Connect-AzAccount
.- Alternatywnie możesz dołączyć poświadczenia konta jako parametr w poleceniu
Connect-AzAccount
cmdlet przy użyciu parametru Credential . - Jeśli jesteś partnerem CSP pracującym w imieniu dzierżawy, określ klienta jako dzierżawę przy użyciu identyfikatora dzierżawy lub podstawowej nazwy domeny dzierżawy. Na przykład:
Connect-AzAccount -Tenant "fabrikam.com"
.
- Alternatywnie możesz dołączyć poświadczenia konta jako parametr w poleceniu
Skojarz subskrypcję, której chcesz używać z kontem, ponieważ konto może mieć kilka subskrypcji:
Set-AzContext -Subscription $SubscriptionName
Sprawdź, czy twoja subskrypcja jest zarejestrowana w celu korzystania z dostawców platformy Azure dla usług Recovery Services i Site Recovery, korzystając z następujących poleceń:
Get-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServices
Sprawdź, czy w danych wyjściowych polecenia właściwość RegistrationState jest ustawiona na Zarejestrowano, możesz przejść do kroku 2. Jeśli nie, należy zarejestrować brakującego dostawcę w subskrypcji, uruchamiając następujące polecenia:
Register-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServices
Sprawdź, czy dostawcy zarejestrowali się pomyślnie, używając następujących poleceń:
Get-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServices
Krok 2. Konfigurowanie magazynu
Utwórz grupę zasobów usługi Azure Resource Manager, w której ma zostać utworzony magazyn lub użyj istniejącej grupy zasobów. Utwórz nową grupę zasobów w następujący sposób. Zmienna
$ResourceGroupName
zawiera nazwę grupy zasobów, którą chcesz utworzyć, a zmienna $Geo zawiera region świadczenia usługi Azure, w którym ma zostać utworzona grupa zasobów (na przykład "Brazylia Południowa").New-AzResourceGroup -Name $ResourceGroupName -Location $Geo
Aby uzyskać listę grup zasobów w ramach subskrypcji, uruchom
Get-AzResourceGroup
polecenie cmdlet .Utwórz nowy magazyn usługi Azure Recovery Services w następujący sposób:
$vault = New-AzRecoveryServicesVault -Name <string> -ResourceGroupName <string> -Location <string>
Listę istniejących magazynów można pobrać za Get-AzRecoveryServicesVault
pomocą polecenia cmdlet .
Krok 3. Ustawianie kontekstu magazynu usługi Recovery Services
Ustaw kontekst magazynu w następujący sposób:
Set-AzRecoveryServicesAsrVaultContext -Vault $vault
Krok 4. Tworzenie lokacji funkcji Hyper-V
Utwórz nową lokację funkcji Hyper-V w następujący sposób:
$sitename = "MySite" #Specify site friendly name New-AzRecoveryServicesAsrFabric -Type HyperVSite -Name $sitename
To polecenie cmdlet uruchamia zadanie usługi Site Recovery w celu utworzenia lokacji i zwraca obiekt zadania usługi Site Recovery. Poczekaj na ukończenie zadania i sprawdź, czy zadanie zostało ukończone pomyślnie.
Get-AzRecoveryServicesAsrJob
Użyj polecenia cmdlet , aby pobrać obiekt zadania i sprawdzić bieżący stan zadania.Wygeneruj i pobierz klucz rejestracji dla witryny w następujący sposób:
$SiteIdentifier = Get-AzRecoveryServicesAsrFabric -Name $sitename | Select-Object -ExpandProperty SiteIdentifier $path = Get-AzRecoveryServicesVaultSettingsFile -Vault $vault -SiteIdentifier $SiteIdentifier -SiteFriendlyName $sitename
Skopiuj pobrany klucz do hosta funkcji Hyper-V. Klucz jest potrzebny do zarejestrowania hosta funkcji Hyper-V w lokacji.
Krok 5. Instalowanie dostawcy i agenta
Pobierz instalatora dla najnowszej wersji dostawcy od firmy Microsoft.
Uruchom instalatora na hoście funkcji Hyper-V.
Na końcu instalacji przejdź do kroku rejestracji.
Po wyświetleniu monitu podaj pobrany klucz i ukończ rejestrację hosta funkcji Hyper-V.
Sprawdź, czy host funkcji Hyper-V jest zarejestrowany w lokacji w następujący sposób:
$server = Get-AzRecoveryServicesAsrFabric -Name $siteName | Get-AzRecoveryServicesAsrServicesProvider -FriendlyName $server-friendlyname
Jeśli używasz serwera podstawowego funkcji Hyper-V, pobierz plik instalacyjny i wykonaj następujące kroki:
Wyodrębnij pliki z AzureSiteRecoveryProvider.exe do katalogu lokalnego, uruchamiając następujące polecenie:
AzureSiteRecoveryProvider.exe /x:. /q
Uruchom następujące polecenie:
.\setupdr.exe /i
Wyniki są rejestrowane w folderze %ProgramData%\ASRLogs\DRASetupWizard.log.
Zarejestruj serwer, uruchamiając następujące polecenie:
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"
Krok 6. Tworzenie zasad replikacji
Przed rozpoczęciem określone konto magazynu powinno znajdować się w tym samym regionie świadczenia usługi Azure co magazyn i powinno mieć włączoną replikację geograficzną.
Utwórz zasady replikacji w następujący sposób:
$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
Sprawdź zwrócone zadanie, aby upewnić się, że tworzenie zasad replikacji zakończy się pomyślnie.
Pobierz kontener ochrony odpowiadający lokacji w następujący sposób:
$protectionContainer = Get-AzRecoveryServicesAsrProtectionContainer
Skojarz kontener ochrony z zasadami replikacji w następujący sposób:
$Policy = Get-AzRecoveryServicesAsrPolicy -FriendlyName $PolicyName $associationJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name $mappingName -Policy $Policy -PrimaryProtectionContainer $protectionContainer[0]
Poczekaj na pomyślne zakończenie zadania skojarzenia.
Pobieranie mapowania kontenera ochrony.
$ProtectionContainerMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $protectionContainer
Krok 7. Włączanie ochrony maszyny wirtualnej
Pobierz element, który można chronić, który odpowiada maszynie wirtualnej, którą chcesz chronić, w następujący sposób:
$VMFriendlyName = "Fabrikam-app" #Name of the VM $ProtectableItem = Get-AzRecoveryServicesAsrProtectableItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyName
Ochrona maszyny wirtualnej. Jeśli chroniona maszyna wirtualna ma do niego więcej niż jeden dysk, określ dysk systemu operacyjnego przy użyciu parametru 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
Poczekaj, aż maszyny wirtualne osiągną stan chroniony po replikacji początkowej. Może to zająć trochę czasu, w zależności od czynników, takich jak ilość danych do replikacji i dostępna przepustowość nadrzędna na platformie Azure. Gdy stan chroniony jest w miejscu, zadanie State (Stan) i StateDescription (Stan) i StateDescription (Stan) są aktualizowane w następujący sposób:
PS C:\> $DRjob = Get-AzRecoveryServicesAsrJob -Job $DRjob PS C:\> $DRjob | Select-Object -ExpandProperty State Succeeded PS C:\> $DRjob | Select-Object -ExpandProperty StateDescription Completed
Zaktualizuj właściwości odzyskiwania (takie jak rozmiar roli maszyny wirtualnej) i sieć platformy Azure, do której należy dołączyć kartę sieciową maszyny wirtualnej po przejściu w tryb 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
Uwaga
Jeśli chcesz replikować do dysków zarządzanych z włączoną obsługą klucza zarządzanego cmK na platformie Azure, wykonaj następujące kroki, korzystając z polecenia Az Programu PowerShell 3.3.0.
- Włączanie trybu failover na dyskach zarządzanych przez aktualizowanie właściwości maszyny wirtualnej
Get-AzRecoveryServicesAsrReplicationProtectedItem
Użyj polecenia cmdlet , aby pobrać identyfikator dysku dla każdego dysku chronionego elementu- Utwórz obiekt słownika przy użyciu
New-Object "System.Collections.Generic.Dictionary``2[System.String,System.String]"
polecenia cmdlet , aby zawierać mapowanie identyfikatora dysku na zestaw szyfrowania dysków. Te zestawy szyfrowania dysków mają zostać wstępnie utworzone przez Użytkownika w regionie docelowym. - Zaktualizuj właściwości maszyny wirtualnej przy użyciu
Set-AzRecoveryServicesAsrReplicationProtectedItem
polecenia cmdlet, przekazując obiekt słownika w parametrze DiskIdToDiskEncryptionSetMap .
Krok 8. Uruchamianie testu pracy w trybie failover
Uruchom test pracy w trybie failover w następujący sposób:
$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
Sprawdź, czy testowa maszyna wirtualna została utworzona na platformie Azure. Zadanie testowego trybu failover zostanie zawieszone po utworzeniu testowej maszyny wirtualnej na platformie Azure.
Aby wyczyścić i ukończyć test pracy w trybie failover, uruchom polecenie:
$TFjob = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -ReplicationProtectedItem $rpi -Comment "TFO done"
Następne kroki
Dowiedz się więcej o usłudze Azure Site Recovery za pomocą poleceń cmdlet programu PowerShell usługi Azure Resource Manager.