Sdílet prostřednictvím


Nastavení zotavení po havárii do Azure pro virtuální počítače Hyper-V pomocí PowerShellu a Azure Resource Manageru

Azure Site Recovery přispívá ke strategii zachování provozu a zotavení po havárii (BCDR) prostřednictvím koordinace replikace, převzetí provozu a obnovení virtuálních počítačů Azure, místních virtuálních počítačů a fyzických serverů.

Tento článek popisuje, jak používat Windows PowerShell společně s Azure Resource Managerem k replikaci Hyper-V virtuálních počítačů 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:

K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Začněte tím, že si projdete 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 pro Site Recovery, dostupné v Azure PowerShellu pro Azure Resource Manager, pomáhají chránit a obnovovat vaše 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čů. Hyper-V servery by měly být připojené k internetu, a to buď přímo, nebo prostřednictvím proxy serveru.
  • 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. Cmdlet 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 Get-AzRecoveryServicesVault můžete načíst seznam existujících trezorů.

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

Nastavte kontext trezoru takto:

Set-AzRecoveryServicesAsrVaultContext -Vault $vault

Krok 4: Vytvoření webu Hyper-V

  1. Vytvořte nový web 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íč na server Hyper-V. Klíč potřebujete k registraci hostitele Hyper-V na lokalitu.

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 Hyper-V základní server, stáhněte instalační soubor a postupujte takto:

  1. Spuštěním tohoto 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á stránce, tímto 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 asociační úloha úspěšně dokončí.

  6. Načtěte mapu kontejneru zabezpečení.

    $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. Když je chráněný stav aktivní, stav úlohy a její popis se 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: Proveďte testovací převzetí při selhání

  1. Proveďte zkušební 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í je po vytvoření testovacího virtuálního počítače v Azure pozastavena.

  3. Pokud chcete vyčistit a dokončit test 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.