Nastavení zotavení po havárii do Azure pro virtuální počítače Hyper-V s využitím PowerShellu a Azure Resource Manageru

Azure Site Recovery přispívá ke strategii provozní kontinuity a zotavení po havárii (BCDR) orchestrací replikace, převzetí služeb při selhání a obnovení virtuálních počítačů Azure a místních virtuálních počítačů a fyzických serverů.

Tento článek popisuje, jak pomocí Prostředí Windows PowerShell společně s Azure Resource Managerem replikovat virtuální počítače Hyper-V do Azure. Příklad použitý v tomto článku ukazuje, jak replikovat jeden virtuální počítač spuštěný na hostiteli Hyper-V do Azure.

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Pokud chcete začít, přečtěte si téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

Azure PowerShell

Azure PowerShell poskytuje rutiny pro správu Azure pomocí Windows PowerShellu. Rutiny PowerShellu site Recovery dostupné v Azure PowerShellu pro Azure Resource Manager pomáhají chránit a obnovovat servery v Azure.

Abyste mohli tento článek používat, nemusíte být odborníkem na PowerShell, ale potřebujete porozumět základním konceptům, jako jsou moduly, rutiny a relace. Další informace najdete v dokumentaci k PowerShellu a použití Azure PowerShellu s Azure Resource Managerem.

Poznámka:

Partneři Microsoftu v programu Cloud Solution Provider (CSP) můžou nakonfigurovat a spravovat ochranu zákaznických serverů s příslušnými předplatnými CSP (předplatná tenanta).

Než začnete

Ujistěte se, že máte splněné tyto požadavky:

Kromě toho má konkrétní příklad popsaný v tomto článku následující požadavky:

  • Hostitel Hyper-V se systémem Windows Server 2012 R2 nebo Microsoft Hyper-V Server 2012 R2 obsahující jeden nebo více virtuálních počítačů. Servery Hyper-V by měly být připojené k internetu, a to buď přímo, nebo přes proxy server.
  • Virtuální počítače, které chcete replikovat, by měly splňovat tyto požadavky.

Krok 1: Přihlášení k účtu Azure

  1. Otevřete konzolu PowerShellu a spuštěním tohoto příkazu se přihlaste ke svému účtu Azure. Rutina zobrazí webovou stránku s výzvou k zadání přihlašovacích údajů k vašemu účtu: Connect-AzAccount.

    • Případně můžete do rutiny zahrnout přihlašovací údaje svého účtu jako parametr Connect-AzAccount pomocí parametru Credential .
    • Pokud jste partner CSP, který pracuje jménem tenanta, zadejte zákazníka jako tenanta pomocí jeho ID tenanta nebo primárního názvu domény tenanta. Příklad: Connect-AzAccount -Tenant "fabrikam.com"
  2. Přidružte předplatné, které chcete použít k účtu, protože účet může mít několik předplatných:

    Set-AzContext -Subscription $SubscriptionName
    
  3. Pomocí těchto příkazů ověřte, že je vaše předplatné zaregistrované k používání poskytovatelů Azure pro Recovery Services a Site Recovery:

    Get-AzResourceProvider -ProviderNamespace  Microsoft.RecoveryServices
    
  4. Ověřte, že ve výstupu příkazu je vlastnost RegistrationState nastavená na Hodnotu Registrováno, můžete pokračovat krokem 2. Pokud ne, měli byste ve svém předplatném zaregistrovat chybějícího poskytovatele spuštěním těchto příkazů:

    Register-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServices
    
  5. Pomocí následujících příkazů ověřte, že se poskytovatelé úspěšně zaregistrovali:

    Get-AzResourceProvider -ProviderNamespace  Microsoft.RecoveryServices
    

Krok 2: Nastavení trezoru

  1. Vytvořte skupinu prostředků Azure Resource Manageru, ve které se má trezor vytvořit, nebo použijte existující skupinu prostředků. Následujícím způsobem vytvořte novou skupinu prostředků. Proměnná $ResourceGroupName obsahuje název skupiny prostředků, kterou chcete vytvořit, a proměnná $Geo obsahuje oblast Azure, ve které se má skupina prostředků vytvořit (například Brazílie – jih).

    New-AzResourceGroup -Name $ResourceGroupName -Location $Geo
    
  2. Pokud chcete získat seznam skupin prostředků ve vašem předplatném, spusťte rutinu Get-AzResourceGroup .

  3. Následujícím způsobem vytvořte nový trezor služby Azure Recovery Services:

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

Pomocí rutiny můžete načíst seznam existujících trezorů Get-AzRecoveryServicesVault .

Krok 3: Nastavení kontextu trezoru služby Recovery Services

Nastavte kontext trezoru následujícím způsobem:

Set-AzRecoveryServicesAsrVaultContext -Vault $vault

Krok 4: Vytvoření lokality Hyper-V

  1. Vytvořte novou lokalitu Hyper-V následujícím způsobem:

    $sitename = "MySite"                #Specify site friendly name
    New-AzRecoveryServicesAsrFabric -Type HyperVSite -Name $sitename
    
  2. Tato rutina spustí úlohu Site Recovery pro vytvoření lokality a vrátí objekt úlohy Site Recovery. Počkejte, až se úloha dokončí, a ověřte, že se úloha úspěšně dokončila.

  3. Pomocí rutiny Get-AzRecoveryServicesAsrJob načtěte objekt úlohy a zkontrolujte aktuální stav úlohy.

  4. Vygenerujte a stáhněte registrační klíč pro lokalitu následujícím způsobem:

    $SiteIdentifier = Get-AzRecoveryServicesAsrFabric -Name $sitename | Select-Object -ExpandProperty SiteIdentifier
    $path = Get-AzRecoveryServicesVaultSettingsFile -Vault $vault -SiteIdentifier $SiteIdentifier -SiteFriendlyName $sitename
    
  5. Zkopírujte stažený klíč do hostitele Hyper-V. K registraci hostitele Hyper-V do lokality potřebujete klíč.

Krok 5: Instalace zprostředkovatele a agenta

  1. Stáhněte si instalační program pro nejnovější verzi poskytovatele od Microsoftu.

  2. Spusťte instalační program na hostiteli Hyper-V.

  3. Na konci instalace pokračujte krokem registrace.

  4. Po zobrazení výzvy zadejte stažený klíč a dokončete registraci hostitele Hyper-V.

  5. Následujícím způsobem ověřte, že je hostitel Hyper-V zaregistrovaný v lokalitě:

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

Pokud používáte základní server Hyper-V, stáhněte instalační soubor a postupujte takto:

  1. Spuštěním následujícího příkazu extrahujte soubory z AzureSiteRecoveryProvider.exe do místního adresáře:

    AzureSiteRecoveryProvider.exe /x:. /q
    
  2. Spusťte následující příkaz:

    .\setupdr.exe /i
    

    Výsledky se protokolují do %ProgramData%\ASRLogs\DRASetupWizard.log.

  3. Spuštěním tohoto příkazu zaregistrujte server:

    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: Vytvoření zásady replikace

Než začnete, měl by být zadaný účet úložiště ve stejné oblasti Azure jako trezor a měl by mít povolenou geografickou replikaci.

  1. Vytvořte zásadu replikace následujícím způsobem:

    $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. Zkontrolujte vrácenou úlohu a ujistěte se, že vytvoření zásady replikace proběhne úspěšně.

  3. Načtěte kontejner ochrany, který odpovídá lokalitě, následujícím způsobem:

    $protectionContainer = Get-AzRecoveryServicesAsrProtectionContainer
    
  4. Kontejner ochrany přidružte k zásadám replikace následujícím způsobem:

    $Policy = Get-AzRecoveryServicesAsrPolicy -FriendlyName $PolicyName
    $associationJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name $mappingName -Policy $Policy -PrimaryProtectionContainer $protectionContainer[0]
    
  5. Počkejte, až se úloha přidružení úspěšně dokončí.

  6. Načtěte mapování kontejneru ochrany.

    $ProtectionContainerMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $protectionContainer
    

Krok 7: Povolení ochrany virtuálních počítačů

  1. Načtěte chránitelnou položku, která odpovídá virtuálnímu počítači, který chcete chránit, následujícím způsobem:

    $VMFriendlyName = "Fabrikam-app"          #Name of the VM
    $ProtectableItem = Get-AzRecoveryServicesAsrProtectableItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyName
    
  2. Chraňte virtuální počítač. Pokud je k virtuálnímu počítači, který chráníte, připojeno více než jeden disk, zadejte disk operačního systému pomocí 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. Počkejte, až se virtuální počítače dostanou do chráněného stavu po počáteční replikaci. To může chvíli trvat v závislosti na faktorech, jako je množství dat, která se mají replikovat, a dostupnou upstreamovou šířku pásma do Azure. Při umístění chráněného stavu se úloha State a StateDescription aktualizují následujícím způsobem:

    PS C:\> $DRjob = Get-AzRecoveryServicesAsrJob -Job $DRjob
    
    PS C:\> $DRjob | Select-Object -ExpandProperty State
    Succeeded
    
    PS C:\> $DRjob | Select-Object -ExpandProperty StateDescription
    Completed
    
  4. Aktualizujte vlastnosti obnovení (například velikost role virtuálního počítače) a síť Azure, ke které se má po převzetí služeb při selhání připojit síťová karta virtuálního počítače.

    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
    

Poznámka:

Pokud chcete replikovat na spravované disky s podporou CMK v Azure, postupujte následovně pomocí Az PowerShellu 3.3.0 dál:

  1. Povolení převzetí služeb při selhání na spravované disky aktualizací vlastností virtuálního počítače
  2. Použití rutiny Get-AzRecoveryServicesAsrReplicationProtectedItem k načtení ID disku pro každý disk chráněné položky
  3. Vytvořte objekt slovníku pomocí New-Object "System.Collections.Generic.Dictionary``2[System.String,System.String]" rutiny, který bude obsahovat mapování ID disku na sadu šifrování disku. Tyto sady šifrování disků jsou předem vytvořeny v cílové oblasti.
  4. Aktualizujte vlastnosti virtuálního počítače pomocí Set-AzRecoveryServicesAsrReplicationProtectedItem rutiny předáním objektu slovníku v parametru DiskIdToDiskEncryptionSetMap .

Krok 8: Spuštění testovacího převzetí služeb při selhání

  1. Spusťte testovací převzetí služeb při selhání následujícím způsobem:

    $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. Ověřte, že je testovací virtuální počítač vytvořený v Azure. Úloha testovacího převzetí služeb při selhání se po vytvoření testovacího virtuálního počítače v Azure pozastaví.

  3. Pokud chcete vyčistit a dokončit testovací převzetí služeb při selhání, spusťte:

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

Další kroky

Přečtěte si další informace o Azure Site Recovery pomocí rutin PowerShellu v Azure Resource Manageru.