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. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. 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:

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

  1. 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".
  2. Skojarz subskrypcję, której chcesz używać z kontem, ponieważ konto może mieć kilka subskrypcji:

    Set-AzContext -Subscription $SubscriptionName
    
  3. 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
    
  4. 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
    
  5. Sprawdź, czy dostawcy zarejestrowali się pomyślnie, używając następujących poleceń:

    Get-AzResourceProvider -ProviderNamespace  Microsoft.RecoveryServices
    

Krok 2. Konfigurowanie magazynu

  1. 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
    
  2. Aby uzyskać listę grup zasobów w ramach subskrypcji, uruchom Get-AzResourceGroup polecenie cmdlet .

  3. 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

  1. 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
    
  2. 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.

  3. Get-AzRecoveryServicesAsrJob Użyj polecenia cmdlet , aby pobrać obiekt zadania i sprawdzić bieżący stan zadania.

  4. 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
    
  5. 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

  1. Pobierz instalatora dla najnowszej wersji dostawcy od firmy Microsoft.

  2. Uruchom instalatora na hoście funkcji Hyper-V.

  3. Na końcu instalacji przejdź do kroku rejestracji.

  4. Po wyświetleniu monitu podaj pobrany klucz i ukończ rejestrację hosta funkcji Hyper-V.

  5. 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:

  1. Wyodrębnij pliki z pliku AzureSiteRecoveryProvider.exe do katalogu lokalnego, uruchamiając następujące polecenie:

    AzureSiteRecoveryProvider.exe /x:. /q
    
  2. Uruchom następujące polecenie:

    .\setupdr.exe /i
    

    Wyniki są rejestrowane w folderze %ProgramData%\ASRLogs\DRASetupWizard.log.

  3. 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ą.

  1. 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
    
  2. Sprawdź zwrócone zadanie, aby upewnić się, że tworzenie zasad replikacji zakończy się pomyślnie.

  3. Pobierz kontener ochrony odpowiadający lokacji w następujący sposób:

    $protectionContainer = Get-AzRecoveryServicesAsrProtectionContainer
    
  4. 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]
    
  5. Poczekaj na pomyślne zakończenie zadania skojarzenia.

  6. Pobieranie mapowania kontenera ochrony.

    $ProtectionContainerMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $protectionContainer
    

Krok 7. Włączanie ochrony maszyny wirtualnej

  1. 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
    
  2. 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
    
  3. 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
    
  4. 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.

  1. Włączanie trybu failover na dyskach zarządzanych przez aktualizowanie właściwości maszyny wirtualnej
  2. Get-AzRecoveryServicesAsrReplicationProtectedItem Użyj polecenia cmdlet , aby pobrać identyfikator dysku dla każdego dysku chronionego elementu
  3. 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.
  4. 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

  1. 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
    
  2. 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.

  3. 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.