Zálohování a obnovení virtuálních počítačů Azure pomocí Azure PowerShellu

Tento článek popisuje, jak zálohovat a obnovit virtuální počítač Azure v trezoru služby Azure Backup Recovery Services pomocí rutin PowerShellu.

Azure Backup poskytuje nezávislé a izolované zálohy, které chrání před nezamýšleným zničením dat na virtuálních počítačích. Zálohy jsou uloženy v trezoru služby Recovery Services s integrovanou správou bodů obnovení. Konfigurace a škálování jsou jednoduché, zálohy jsou optimalizované a obnovení je možné provádět snadno a podle potřeby.

Než budete moct zálohovat (nebo chránit) virtuální počítač, musíte dokončit požadavky a připravit své prostředí na ochranu virtuálních počítačů.

Než začnete

Hierarchie objektů služby Recovery Services

Hierarchie objektů je shrnuta v následujícím diagramu.

Disgram shows the Recovery Services object hierarchy.

Projděte si referenční informace k rutinám Az.RecoveryServicesv knihovně Azure.

Nastavení a registrace

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. 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.

Začněte následovně:

  1. Stažení nejnovější verze PowerShellu

  2. Vyhledejte dostupné rutiny Azure Backup PowerShellu zadáním následujícího příkazu:

    Get-Command *azrecoveryservices*
    

    Zobrazí se aliasy a rutiny pro Azure Backup, Azure Site Recovery a trezor služby Recovery Services. Následující obrázek je příkladem toho, co uvidíte. Nejedná se o úplný seznam rutin.

    Screenshot shows the list of Recovery Services.

  3. Přihlaste se ke svému účtu Azure pomocí Připojení-AzAccount. Tato rutina zobrazí výzvu k zadání přihlašovacích údajů k vašemu účtu:

    • Případně můžete do rutiny Připojení-AzAccount zahrnout přihlašovací údaje svého účtu jako parametr 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: Připojení-AzAccount -tenant "fabrikam.com"
  4. Přidružte předplatné, které chcete použít k účtu, protože účet může mít několik předplatných:

    Select-AzSubscription -SubscriptionName $SubscriptionName
    
  5. Pokud službu Azure Backup používáte poprvé, musíte k registraci poskytovatele služby Azure Recovery Service ve vašem předplatném použít rutinu Register-AzResourceProvider .

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

    Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    

    Ve výstupu příkazu by se měl stav RegistrationState změnit na Registrovaný. Pokud ne, spusťte znovu rutinu Register-AzResourceProvider .

Vytvoření trezoru služby Recovery Services

Následující kroky vás provedou vytvořením trezoru služby Recovery Services. Trezor služby Recovery Services se liší od trezoru služby Backup.

  1. Trezor služby Recovery Services je prostředek Resource Manageru, takže ho musíte umístit do skupiny prostředků. Můžete použít existující skupinu prostředků nebo vytvořit skupinu prostředků pomocí rutiny New-AzResourceGroup . Při vytváření skupiny prostředků zadejte název a umístění skupiny prostředků.

    New-AzResourceGroup -Name "test-rg" -Location "West US"
    
  2. K vytvoření trezoru služby Recovery Services použijte rutinu New-AzRecoveryServicesVault . Nezapomeňte zadat stejné umístění trezoru jako pro skupinu prostředků.

    New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "test-rg" -Location "West US"
    
  3. Zadejte typ redundance úložiště, který se má použít. Můžete použít místně redundantní úložiště (LRS), geograficky redundantní úložiště (GRS) nebo zónově redundantní úložiště (ZRS). Následující příklad ukazuje možnost -BackupStorageRedundancy pro testvault nastavenou na GeoRedundant.

    $vault1 = Get-AzRecoveryServicesVault -Name "testvault"
    Set-AzRecoveryServicesBackupProperty  -Vault $vault1 -BackupStorageRedundancy GeoRedundant
    

    Tip

    Řada rutin služby Azure Backup vyžaduje jako vstup objekt trezoru služby Recovery Services. Z tohoto důvodu je vhodné uložit objekt trezoru služby Backup Recovery Services do proměnné.

Zobrazení trezorů v předplatném

Pokud chcete zobrazit všechny trezory v předplatném, použijte rutinu Get-AzRecoveryServicesVault:

Get-AzRecoveryServicesVault

Výstup je podobný následujícímu příkladu, všimněte si, že jsou k dispozici přidružené ResourceGroupName a Location.

Name              : Contoso-vault
ID                : /subscriptions/1234
Type              : Microsoft.RecoveryServices/vaults
Location          : WestUS
ResourceGroupName : Contoso-docs-rg
SubscriptionId    : 1234-567f-8910-abc
Properties        : Microsoft.Azure.Commands.RecoveryServices.ARSVaultProperties

Zálohování virtuálních počítačů Azure

K ochraně virtuálních počítačů použijte trezor služby Recovery Services. Před použitím ochrany nastavte kontext trezoru (typ dat chráněných v trezoru) a ověřte zásady ochrany. Zásady ochrany jsou plán, kdy se úlohy zálohování spustí a jak dlouho se každý snímek zálohy zachová.

Nastavení kontextu trezoru

Před povolením ochrany na virtuálním počítači nastavte kontext trezoru pomocí set-AzRecoveryServicesVaultContext . Po nastavení se kontext trezoru použije pro všechny další rutiny. Následující příklad nastaví kontext trezoru pro trezor, testvault.

Get-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "Contoso-docs-rg" | Set-AzRecoveryServicesVaultContext

Načtení ID trezoru

Plánujeme vyřazení nastavení kontextu trezoru v souladu s pokyny Azure PowerShellu. Místo toho můžete uložit nebo načíst ID trezoru a předat ho relevantním příkazům. Pokud jste tedy nenastavili kontext trezoru nebo chcete zadat příkaz ke spuštění pro určitý trezor, předejte ID trezoru jako -vaultID všem relevantním příkazům následujícím způsobem:

$targetVault = Get-AzRecoveryServicesVault -ResourceGroupName "Contoso-docs-rg" -Name "testvault"
$targetVault.ID

Nebo

$targetVaultID = Get-AzRecoveryServicesVault -ResourceGroupName "Contoso-docs-rg" -Name "testvault" | select -ExpandProperty ID

Úprava nastavení replikace úložiště

Použití příkazu Set-AzRecoveryServicesBackupProperty k nastavení konfigurace replikace úložiště trezoru na LRS/GRS

Set-AzRecoveryServicesBackupProperty -Vault $targetVault -BackupStorageRedundancy GeoRedundant/LocallyRedundant

Poznámka:

Redundanci úložiště je možné upravit pouze v případě, že v trezoru nejsou chráněné žádné zálohované položky.

Vytvoření zásady ochrany

Při vytváření trezoru služby Recovery Services se vytvoří i výchozí zásady ochrany a uchovávání informací. Výchozí zásady ochrany aktivují úlohu zálohování každý den v určenou dobu. Výchozí zásady uchovávání informací uchovávají denní bod obnovení po dobu 30 dnů. Výchozí zásady můžete použít k rychlé ochraně virtuálního počítače a pozdější úpravě zásad s různými podrobnostmi.

Pomocí rutiny Get-AzRecoveryServicesBackupProtectionPolicy zobrazte zásady ochrany dostupné v trezoru. Pomocí této rutiny můžete získat konkrétní zásadu nebo zobrazit zásady přidružené k typu úlohy. Následující příklad získá zásady pro typ úlohy AzureVM.

Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureVM" -VaultId $targetVault.ID

Výstup se podobá následujícímu příkladu:

Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
DefaultPolicy        AzureVM            AzureVM              4/14/2016 5:00:00 PM

Poznámka:

Časové pásmo pole BackupTime v PowerShellu je UTC. Pokud se ale čas zálohování zobrazí na webu Azure Portal, čas se upraví na vaše místní časové pásmo.

Zásady ochrany záloh jsou přidružené alespoň k jedné zásadě uchovávání informací. Zásady uchovávání informací definují, jak dlouho se bod obnovení uchovává před odstraněním.

Ve výchozím nastavení je čas zahájení definován v objektu Zásady plánu. Pomocí následujícího příkladu změňte počáteční čas na požadovaný čas zahájení. Požadovaný čas zahájení by měl být také ve standardu UTC. Následující příklad předpokládá, že požadovaný čas spuštění je 01:00 UTC pro denní zálohy.

$schPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureVM"
$UtcTime = Get-Date -Date "2019-03-20 01:00:00Z"
$UtcTime = $UtcTime.ToUniversalTime()
$schpol.ScheduleRunTimes[0] = $UtcTime

Důležité

Musíte zadat čas zahájení pouze za 30 minut. V předchozím příkladu může být pouze "01:00:00" nebo "02:30:00". Počáteční čas nemůže být 01:15:00.

Následující příklad ukládá zásady plánu a zásady uchovávání informací do proměnných. V příkladu se tyto proměnné používají k definování parametrů při vytváření zásad ochrany NewPolicy.

$retPol = Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureVM"
New-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -WorkloadType "AzureVM" -RetentionPolicy $retPol -SchedulePolicy $schPol -VaultId $targetVault.ID

Výstup se podobá následujícímu příkladu:

Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
NewPolicy           AzureVM            AzureVM              4/24/2016 1:30:00 AM

Povolení ochrany

Jakmile zásady ochrany definujete, musíte zásadu pro položku přesto povolit. K povolení ochrany použijte Enable-AzRecoveryServicesBackupProtection . Povolení ochrany vyžaduje dva objekty – položku a zásadu. Po přidružení zásady k trezoru se pracovní postup zálohování aktivuje v době definované v plánu zásad.

Důležité

Při použití PowerShellu k povolení zálohování více virtuálních počítačů najednou se ujistěte, že k němu není přidružených více než 100 virtuálních počítačů. Toto je doporučený postup. V současné době klient PowerShellu explicitně neblokuje, pokud existuje více než 100 virtuálních počítačů, ale kontrola se plánuje přidat v budoucnu.

Následující příklady umožňují ochranu položky V2VM pomocí zásad NewPolicy. Příklady se liší podle toho, jestli je virtuální počítač šifrovaný a jaký typ šifrování.

Povolení ochrany na nešifrovaných virtuálních počítačích Resource Manageru:

$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1" -VaultId $targetVault.ID

Pokud chcete povolit ochranu na šifrovaných virtuálních počítačích (šifrovaných pomocí BEK a KEK), musíte službě Azure Backup udělit oprávnění ke čtení klíčů a tajných kódů z trezoru klíčů.

Set-AzKeyVaultAccessPolicy -VaultName "KeyVaultName" -ResourceGroupName "RGNameOfKeyVault" -PermissionsToKeys backup,get,list -PermissionsToSecrets get,list -ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1" -VaultId $targetVault.ID

Pokud chcete povolit ochranu na šifrovaných virtuálních počítačích (šifrovaných jenom pomocí BEK), musíte službě Azure Backup udělit oprávnění ke čtení tajných kódů z trezoru klíčů.

Set-AzKeyVaultAccessPolicy -VaultName "KeyVaultName" -ResourceGroupName "RGNameOfKeyVault" -PermissionsToSecrets backup,get,list -ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1" -VaultId $targetVault.ID

Poznámka:

Pokud používáte cloud Azure Government, použijte hodnotu ff281ffe-705c-4f53-9f37-a40e6f2c68f3 parametru ServicePrincipalName v rutině Set-AzKeyVaultAccessPolicy .

Pokud chcete selektivně zálohovat několik disků a vyloučit další, jak je uvedeno v těchto scénářích, můžete nakonfigurovat ochranu a zálohovat pouze relevantní disky, jak je popsáno zde.

Monitorování úlohy zálohování

Můžete monitorovat dlouhotrvající operace, jako jsou úlohy zálohování, bez použití webu Azure Portal. Pokud chcete získat stav probíhající úlohy, použijte rutinu Get-AzRecoveryservicesBackupJob . Tato rutina získá úlohy zálohování pro konkrétní trezor a tento trezor je zadaný v kontextu trezoru. Následující příklad získá stav probíhající úlohy jako pole a uloží stav do proměnné $joblist.

$joblist = Get-AzRecoveryservicesBackupJob –Status "InProgress" -VaultId $targetVault.ID
$joblist[0]

Výstup se podobá následujícímu příkladu:

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   ----------
V2VM             Backup               InProgress            4/23/2016                5:00:30 PM                cf4b3ef5-2fac-4c8e-a215-d2eba4124f27

Místo dotazování těchto úloh na dokončení , což je zbytečné další kód – použijte rutinu Wait-AzRecoveryServicesBackupJob . Tato rutina pozastaví provádění, dokud se úloha nedokončí nebo nedosáhne zadané hodnoty časového limitu.

Wait-AzRecoveryServicesBackupJob -Job $joblist[0] -Timeout 43200 -VaultId $targetVault.ID

Správa záloh virtuálních počítačů Azure

Úprava zásad ochrany

K úpravě zásad ochrany použijte Set-AzRecoveryServicesBackupProtectionPolicy k úpravě objektů SchedulePolicy nebo RetentionPolicy.

Úprava naplánovaného času

Když vytvoříte zásadu ochrany, přiřadí se ve výchozím nastavení počáteční čas. Následující příklady ukazují, jak upravit počáteční čas zásady ochrany.

$SchPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureVM"
$UtcTime = Get-Date -Date "2019-03-20 01:00:00Z" (This is the time that you want to start the backup)
$UtcTime = $UtcTime.ToUniversalTime()
$SchPol.ScheduleRunTimes[0] = $UtcTime
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -VaultId $targetVault.ID
Set-AzRecoveryServicesBackupProtectionPolicy -Policy $pol  -SchedulePolicy $SchPol -VaultId $targetVault.ID

Úprava uchovávání informací

Následující příklad změní uchování bodu obnovení na 365 dnů.

$retPol = Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureVM"
$retPol.DailySchedule.DurationCountInDays = 365
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -VaultId $targetVault.ID
Set-AzRecoveryServicesBackupProtectionPolicy -Policy $pol  -RetentionPolicy $RetPol -VaultId $targetVault.ID

Konfigurace uchovávání snímků okamžitého obnovení

Poznámka:

Z Azure PowerShellu verze 1.6.0 dále můžete aktualizovat dobu uchovávání snímků okamžitého obnovení pomocí PowerShellu.

$bkpPol = Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureVM" -VaultId $targetVault.ID
$bkpPol.SnapshotRetentionInDays=7
Set-AzRecoveryServicesBackupProtectionPolicy -policy $bkpPol -VaultId $targetVault.ID

Výchozí hodnota bude 2. Hodnotu můžete nastavit minimálně s hodnotou 1 a maximálně 5. U týdenních zásad zálohování je období nastavené na 5 a nedá se změnit.

Vytvoření skupiny prostředků Azure Backup během uchovávání snímků

Poznámka:

Z Azure PowerShellu verze 3.7.0 dále můžete vytvořit a upravit skupinu prostředků vytvořenou pro ukládání rychlých snímků.

Další informace o pravidlech vytváření skupin prostředků a dalších relevantních podrobnostech najdete v dokumentaci ke skupině prostředků Azure Backup pro virtuální počítače .

$bkpPol = Get-AzureRmRecoveryServicesBackupProtectionPolicy -name "DefaultPolicyForVMs"
$bkpPol.AzureBackupRGName="Contosto_"
$bkpPol.AzureBackupRGNameSuffix="ForVMs"
Set-AzureRmRecoveryServicesBackupProtectionPolicy -policy $bkpPol

Vyloučení disků pro chráněný virtuální počítač

Zálohování virtuálních počítačů Azure poskytuje možnost selektivně vyloučit nebo zahrnout disky, které jsou v těchto scénářích užitečné. Pokud už je virtuální počítač chráněný zálohováním virtuálních počítačů Azure a pokud se zálohují všechny disky, můžete ochranu upravit tak, aby selektivně zahrnovala nebo vyloučila disky, jak je uvedeno zde.

Aktivace zálohy

K aktivaci úlohy zálohování použijte Backup-AzRecoveryServicesBackupItem . Pokud se jedná o počáteční zálohu, jedná se o úplné zálohování. Následné zálohy vytvoří přírůstkovou kopii. Následující příklad trvá zálohování virtuálních počítačů po dobu 60 dnů.

$namedContainer = Get-AzRecoveryServicesBackupContainer -ContainerType "AzureVM" -Status "Registered" -FriendlyName "V2VM" -VaultId $targetVault.ID
$item = Get-AzRecoveryServicesBackupItem -Container $namedContainer -WorkloadType "AzureVM" -VaultId $targetVault.ID
$endDate = (Get-Date).AddDays(60).ToUniversalTime()
$job = Backup-AzRecoveryServicesBackupItem -Item $item -VaultId $targetVault.ID -ExpiryDateTimeUTC $endDate

Výstup se podobá následujícímu příkladu:

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   ----------
V2VM              Backup              InProgress          4/23/2016                  5:00:30 PM                cf4b3ef5-2fac-4c8e-a215-d2eba4124f27

Poznámka:

Časové pásmo polí StartTime a EndTime v PowerShellu je UTC. Pokud se ale čas zobrazí na webu Azure Portal, čas se upraví na vaše místní časové pásmo.

Změna zásad pro zálohované položky

Existující zásadu můžete upravit nebo změnit zásadu zálohované položky z Policy1 na Policy2. Pokud chcete přepnout zásady zálohované položky, načtěte příslušné zásady a zálohujte položku a jako parametr použijte příkaz Enable-AzRecoveryServices se zálohovanou položkou.

$TargetPol1 = Get-AzRecoveryServicesBackupProtectionPolicy -Name <PolicyName> -VaultId $targetVault.ID
$anotherBkpItem = Get-AzRecoveryServicesBackupItem -WorkloadType AzureVM -BackupManagementType AzureVM -Name "<BackupItemName>" -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Item $anotherBkpItem -Policy $TargetPol1 -VaultId $targetVault.ID

Příkaz počká, až se dokončí konfigurace zálohování, a vrátí následující výstup.

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   -----
TestVM           ConfigureBackup      Completed            3/18/2019 8:00:21 PM      3/18/2019 8:02:16 PM      654e8aa2-4096-402b-b5a9-e5e71a496c4e

Zastavení ochrany

Zachování dat

Pokud chcete ochranu zastavit, můžete použít rutinu PowerShellu Disable-AzRecoveryServicesBackupProtection . Tím se zastaví naplánované zálohování, ale data zálohovaná až do té doby zůstanou navždy zachována.

$bkpItem = Get-AzRecoveryServicesBackupItem -BackupManagementType AzureVM -WorkloadType AzureVM -Name "<backup item name>" -VaultId $targetVault.ID
Disable-AzRecoveryServicesBackupProtection -Item $bkpItem -VaultId $targetVault.ID

Obnovit zálohu

Pokud je ochrana zastavená a zálohovaná data se zachovají, můžete ochranu obnovit ještě jednou. Musíte přiřadit zásadu pro obnovenou ochranu. Rutina je stejná jako zásada změn zálohovaných položek.

$TargetPol1 = Get-AzRecoveryServicesBackupProtectionPolicy -Name <PolicyName> -VaultId $targetVault.ID
$anotherBkpItem = Get-AzRecoveryServicesBackupItem -WorkloadType AzureVM -BackupManagementType AzureVM -Name "<BackupItemName>" -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Item $anotherBkpItem -Policy $TargetPol1 -VaultId $targetVault.ID

Odstranění zálohovaných dat

Chcete-li zcela odebrat uložená zálohovaná data v trezoru, přidejte příznak /přepínač -RemoveRecoveryPoints do příkazu ochrany disable.

Disable-AzRecoveryServicesBackupProtection -Item $bkpItem -VaultId $targetVault.ID -RemoveRecoveryPoints

Obnovení virtuálního počítače Azure

Mezi obnovením virtuálního počítače pomocí webu Azure Portal a obnovením virtuálního počítače pomocí PowerShellu je důležitý rozdíl. V PowerShellu se operace obnovení dokončí po vytvoření disků a informací o konfiguraci z bodu obnovení. Operace obnovení nevytvoří virtuální počítač. Pokud chcete vytvořit virtuální počítač z disku, přečtěte si část Vytvoření virtuálního počítače z obnovených disků. Pokud nechcete obnovit celý virtuální počítač, ale chcete obnovit nebo obnovit několik souborů ze zálohy virtuálního počítače Azure, projděte si část obnovení souborů.

Tip

Operace obnovení nevytvoří virtuální počítač.

Následující obrázek znázorňuje hierarchii objektů směrem RecoveryServicesVault dolů do objektu BackupRecoveryPoint.

Screenshot shows the BackupContainer listed by Recovery Services object hierarchy.

Pokud chcete obnovit zálohovaná data, identifikujte zálohovanou položku a bod obnovení, který obsahuje data k určitému bodu v čase. K obnovení dat z trezoru do vašeho účtu použijte Restore-AzRecoveryServicesBackupItem .

Základní postup obnovení virtuálního počítače Azure:

  • Vyberte virtuální počítač.
  • Zvolte bod obnovení.
  • Obnovte disky.
  • Vytvořte virtuální počítač z uložených disků.

Teď můžete také pomocí PowerShellu přímo obnovit zálohovaný obsah na virtuální počítač (původní nebo nový), aniž byste provedli výše uvedené kroky samostatně. Další informace najdete v tématu Obnovení dat do virtuálního počítače pomocí PowerShellu.

Výběr virtuálního počítače (při obnovování souborů)

Pokud chcete získat objekt PowerShellu, který identifikuje správnou zálohovanou položku, začněte z kontejneru v trezoru a pracujte v hierarchii objektů. Pokud chcete vybrat kontejner, který představuje virtuální počítač, použijte rutinu Get-AzRecoveryServicesBackupContainer a nastavte ji do rutiny Get-AzRecoveryServicesBackupItem .

$namedContainer = Get-AzRecoveryServicesBackupContainer  -ContainerType "AzureVM" -Status "Registered" -FriendlyName "V2VM" -VaultId $targetVault.ID
$backupitem = Get-AzRecoveryServicesBackupItem -Container $namedContainer  -WorkloadType "AzureVM" -VaultId $targetVault.ID

Volba bodu obnovení (při obnovování souborů)

Pomocí rutiny Get-AzRecoveryServicesBackupRecoveryPoint zobrazíte seznam všech bodů obnovení pro zálohovanou položku. Potom zvolte bod obnovení, který chcete obnovit. Pokud si nejste jistí, který bod obnovení se má použít, je vhodné zvolit nejnovější bod RecoveryPointType = AppConsistent v seznamu.

V následujícím skriptu je proměnná $rp pole bodů obnovení pro vybranou zálohovanou položku z posledních sedmi dnů. Pole je seřazeno v obráceném pořadí času s nejnovějším bodem obnovení v indexu 0. K výběru bodu obnovení použijte standardní indexování pole PowerShellu. V tomto příkladu $rp[0] vybere nejnovější bod obnovení.

$startDate = (Get-Date).AddDays(-7)
$endDate = Get-Date
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -Item $backupitem -StartDate $startdate.ToUniversalTime() -EndDate $enddate.ToUniversalTime() -VaultId $targetVault.ID
$rp[0]

Výstup se podobá následujícímu příkladu:

RecoveryPointAdditionalInfo :
SourceVMStorageType         : NormalStorage
Name                        : 15260861925810
ItemName                    : VM;iaasvmcontainer;RGName1;V2VM
RecoveryPointId             : /subscriptions/XX/resourceGroups/ RGName1/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;RGName1;V2VM/protectedItems/VM;iaasvmcontainer; RGName1;V2VM/recoveryPoints/15260861925810
RecoveryPointType           : AppConsistent
RecoveryPointTime           : 4/23/2016 5:02:04 PM
WorkloadType                : AzureVM
ContainerName               : IaasVMContainer;iaasvmcontainer; RGName1;V2VM
ContainerType               : AzureVM
BackupManagementType        : AzureVM

Obnovení disků

Pomocí rutiny Restore-AzRecoveryServicesBackupItem obnovte data a konfiguraci zálohované položky do bodu obnovení. Jakmile identifikujete bod obnovení, použijte ho jako hodnotu parametru -RecoveryPoint . Ve výše uvedeném příkladu $rp[0] byl bod obnovení, který se má použít. V následujícím vzorovém kódu $rp[0] je bod obnovení, který se má použít k obnovení disku.

Obnovení disků a informací o konfiguraci:

$restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -VaultId $targetVault.ID
$restorejob

Obnovení spravovaných disků

Poznámka:

Pokud má zálohovaný virtuální počítač spravované disky a chcete je obnovit jako spravované disky, zavedli jsme tuto funkci z modulu RM Azure PowerShellu v 6.7.0. a dál.

Zadejte další parametr TargetResourceGroupName k určení skupiny prostředků, do které budou obnoveny spravované disky.

Důležité

Důrazně doporučujeme použít parametr TargetResourceGroupName pro obnovení spravovaných disků, protože vede k významným vylepšením výkonu. Pokud tento parametr není zadaný, nemůžete využít výhod funkce okamžitého obnovení a operace obnovení bude ve srovnání pomalejší. Pokud je účelem obnovení spravovaných disků jako nespravovaných disků, nezadávejte tento parametr a záměr vymažte zadáním parametru -RestoreAsUnmanagedDisks . Tento -RestoreAsUnmanagedDisks parametr je k dispozici v Azure PowerShellu 3.7.0 dále. V budoucích verzích bude povinné zadat některý z těchto parametrů pro správné prostředí obnovení.

$restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -TargetResourceGroupName "DestRGforManagedDisks" -VaultId $targetVault.ID

Soubor VMConfig.JSON se obnoví do účtu úložiště a spravované disky se obnoví do zadané cílové skupiny prostředků.

Výstup se podobá následujícímu příkladu:

WorkloadName     Operation          Status               StartTime                 EndTime            JobID
------------     ---------          ------               ---------                 -------          ----------
V2VM              Restore           InProgress           4/23/2016 5:00:30 PM                        cf4b3ef5-2fac-4c8e-a215-d2eba4124f27

Pomocí rutiny Wait-AzRecoveryServicesBackupJob počkejte na dokončení úlohy Restore.

Wait-AzRecoveryServicesBackupJob -Job $restorejob -Timeout 43200

Po dokončení úlohy Restore pomocí rutiny Get-AzRecoveryServicesBackupJobDetail získejte podrobnosti o operaci obnovení. Vlastnost JobDetails obsahuje informace potřebné k opětovnému sestavení virtuálního počítače.

$restorejob = Get-AzRecoveryServicesBackupJob -Job $restorejob -VaultId $targetVault.ID
$details = Get-AzRecoveryServicesBackupJobDetail -Job $restorejob -VaultId $targetVault.ID

Použití spravované identity k obnovení disků

Azure Backup také umožňuje používat spravovanou identitu (MSI) během operace obnovení pro přístup k účtům úložiště, do kterých je potřeba obnovit disky. Tato možnost je aktuálně podporovaná jenom pro obnovení spravovaného disku.

Pokud chcete k obnovení disků použít spravovanou identitu přiřazenou systémem trezoru, předejte do příkazu Restore-AzRecoveryServicesBackupItem další příznak -UseSystemAssignedIdentity. Pokud chcete použít spravovanou identitu přiřazenou uživatelem, předejte parametr -UserAssignedIdentityId s ID Azure Resource Manageru spravované identity trezoru jako hodnotou parametru. V tomto článku se dozvíte, jak povolit spravovanou identitu pro vaše trezory.

Obnovení selektivních disků

Uživatel může selektivně obnovit několik disků místo celé zálohované sady. Jako parametr zadejte požadované logické jednotky disku, abyste je mohli obnovit jenom místo celé sady, jak je uvedeno tady.

Důležité

Jeden musí selektivně zálohovat disky a selektivně obnovit disky. Další podrobnosti najdete tady.

Po obnovení disků přejděte k další části a vytvořte virtuální počítač.

Obnovení disků do sekundární oblasti

Pokud je v trezoru, pomocí kterého jste virtuální počítače ochránili, povolené obnovení mezi oblastmi, replikují se zálohovaná data do sekundární oblasti. K obnovení můžete použít zálohovaná data. Provedením následujících kroků aktivujte obnovení v sekundární oblasti:

  1. Načtěte ID trezoru, pomocí kterého jsou vaše virtuální počítače chráněné.

  2. Vyberte správnou zálohovanou položku, kterou chcete obnovit.

  3. Vyberte příslušný bod obnovení v sekundární oblasti, kterou chcete použít k provedení obnovení.

    Pokud chcete tento krok dokončit, spusťte tento příkaz:

    $rp=Get-AzRecoveryServicesBackupRecoveryPoint -UseSecondaryRegion -Item $backupitem -VaultId $targetVault.ID
    $rp=$rp[0]
    
  4. Spuštěním rutiny Restore-AzRecoveryServicesBackupItem s parametrem -RestoreToSecondaryRegion aktivujte obnovení v sekundární oblasti.

    Pokud chcete tento krok dokončit, spusťte tento příkaz:

    $restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -TargetResourceGroupName "DestRGforManagedDisks" -VaultId $targetVault.ID -VaultLocation $targetVault.Location -RestoreToSecondaryRegion -RestoreOnlyOSDisk
    

    Výstup se bude podobat tomuto příkladu:

    WorkloadName     Operation             Status              StartTime                 EndTime          JobID
    ------------     ---------             ------              ---------                 -------          ----------
    V2VM             CrossRegionRestore   InProgress           4/23/2016 5:00:30 PM                       cf4b3ef5-2fac-4c8e-a215-d2eba4124f27
    
  5. Spusťte rutinu Get-AzRecoveryServicesBackupJob s parametrem -UseSecondaryRegion pro monitorování úlohy obnovení.

    Pokud chcete tento krok dokončit, spusťte tento příkaz:

    Get-AzRecoveryServicesBackupJob -From (Get-Date).AddDays(-7).ToUniversalTime() -To (Get-Date).ToUniversalTime() -UseSecondaryRegion -VaultId $targetVault.ID
    

    Výstup se bude podobat tomuto příkladu:

    WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
    ------------     ---------            ------               ---------                 -------                   -----
    V2VM             CrossRegionRestore   InProgress           2/8/2021 4:24:57 PM                                 2d071b07-8f7c-4368-bc39-98c7fb2983f7
    

Obnovení napříč zónovými daty

Připnuté virtuální počítače zóny Azure můžete obnovit v libovolné zóně dostupnosti stejné oblasti.

Pokud chcete obnovit virtuální počítač do jiné zóny, zadejte TargetZoneNumber parametr v rutině Restore-AzRecoveryServicesBackupItem .

$restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -VaultId $targetVault.ID -TargetZoneNumber 3

Výstup se bude podobat tomuto příkladu:

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   -----
zonevmeus2       Restore              InProgress           1/3/2022 10:27:20 AM                                b2298...

Obnovení napříč zónami je podporováno pouze ve scénářích, ve kterých:

  • Zdrojový virtuální počítač je připnutý do zóny a není šifrovaný.
  • Bod obnovení je k dispozici pouze na úrovni trezoru. Nepodporují se jenom snímky nebo vrstvy snímku a trezoru.
  • Možnost obnovení spočívá v vytvoření nového virtuálního počítače nebo obnovení disků. Možnost Nahradit disky nahrazuje zdrojová data; proto není možnost zóny dostupnosti použitelná.
  • Vytvoření virtuálního počítače nebo disků ve stejné oblasti, pokud je redundance úložiště trezoru ZRS. Mějte na paměti, že nefunguje, pokud je redundance úložiště trezoru GRS, i když je zdrojový virtuální počítač připnutý do zóny.
  • Vytvoření virtuálního počítače nebo disků ve spárované oblasti, když je pro obnovení úložiště mezi oblastmi povolená redundance úložiště trezoru a jestli spárovaná oblast podporuje zóny.

Nahrazení disků na virtuálním počítači Azure

Pokud chcete nahradit disky a informace o konfiguraci, proveďte následující kroky:

Vytvoření virtuálního počítače z obnovených disků

Po obnovení disků pomocí následujícího postupu vytvořte a nakonfigurujte virtuální počítač z disku.

Poznámka:

  1. Vyžaduje se modul AzureAz 3.0.0 nebo vyšší.
  2. Pokud chcete vytvořit šifrované virtuální počítače z obnovených disků, vaše role Azure musí mít oprávnění k provedení akce, Microsoft.KeyVault/vaults/deploy/action. Pokud vaše role toto oprávnění nemá, vytvořte vlastní roli s touto akcí. Další informace najdete v tématu Vlastní role Azure.
  3. Po obnovení disků teď můžete získat šablonu nasazení, kterou můžete přímo použít k vytvoření nového virtuálního počítače. K vytváření spravovaných nebo nespravovaných virtuálních počítačů, které jsou šifrované nebo nešifrované, nepotřebujete jiné rutiny PowerShellu.

Vytvoření virtuálního počítače pomocí šablony nasazení

Podrobné informace o výsledné úloze poskytují identifikátor URI šablony, který lze dotazovat a nasadit.

   $properties = $details.properties
   $storageAccountName = $properties["Target Storage Account Name"]
   $containerName = $properties["Config Blob Container Name"]
   $templateBlobURI = $properties["Template Blob Uri"]

Šablona není přímo přístupná, protože se jedná o účet úložiště zákazníka a daný kontejner. Pro přístup k této šabloně potřebujeme úplnou adresu URL (spolu s dočasným tokenem SAS).

  1. Nejprve extrahujte název šablony z identifikátoru templateBlobURI. Níže je uveden formát. Operaci rozdělení v PowerShellu můžete použít k extrahování konečného názvu šablony z této adresy URL.

    https://<storageAccountName.blob.core.windows.net>/<containerName>/<templateName>
    
  2. Úplnou adresu URL pak můžete vygenerovat, jak je vysvětleno zde.

    Set-AzCurrentStorageAccount -Name $storageAccountName -ResourceGroupName <StorageAccount RG name>
    $templateBlobFullURI = New-AzStorageBlobSASToken -Container $containerName -Blob <templateName> -Permission r -FullUri
    
  3. Nasaďte šablonu pro vytvoření nového virtuálního počítače, jak je vysvětleno tady.

    New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup -TemplateUri $templateBlobFullURI
    

Vytvoření virtuálního počítače pomocí konfiguračního souboru

Následující část uvádí kroky potřebné k vytvoření virtuálního počítače pomocí VMConfig souboru.

Poznámka:

Důrazně doporučujeme k vytvoření virtuálního počítače použít výše uvedenou šablonu nasazení. Tato část (body 1–6) bude brzy zastaralá.

  1. Zadejte dotaz na vlastnosti obnoveného disku pro podrobnosti úlohy.

    $properties = $details.properties
    $storageAccountName = $properties["Target Storage Account Name"]
    $containerName = $properties["Config Blob Container Name"]
    $configBlobName = $properties["Config Blob Name"]
    
  2. Nastavte kontext úložiště Azure a obnovte konfigurační soubor JSON.

    Set-AzCurrentStorageAccount -Name $storageaccountname -ResourceGroupName "testvault"
    $destination_path = "C:\vmconfig.json"
    Get-AzStorageBlobContent -Container $containerName -Blob $configBlobName -Destination $destination_path
    $obj = ((Get-Content -Path $destination_path -Raw -Encoding Unicode)).TrimEnd([char]0x00) | ConvertFrom-Json
    
  3. Pomocí konfiguračního souboru JSON vytvořte konfiguraci virtuálního počítače.

    $vm = New-AzVMConfig -VMSize $obj.'properties.hardwareProfile'.vmSize -VMName "testrestore"
    
  4. Připojte disk s operačním systémem a datové disky. Tento krok obsahuje příklady pro různé konfigurace spravovaných a šifrovaných virtuálních počítačů. Použijte příklad, který vyhovuje konfiguraci virtuálního počítače.

    • Nespravované a nešifrované virtuální počítače – pro nespravované nešifrované virtuální počítače použijte následující ukázku.
        Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.StorageProfile'.osDisk.vhd.Uri -CreateOption "Attach"
        $vm.StorageProfile.OsDisk.OsType = $obj.'properties.StorageProfile'.OsDisk.OsType
        foreach($dd in $obj.'properties.StorageProfile'.DataDisks)
        {
            $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
        }
    
    • Nespravované a šifrované virtuální počítače s Microsoft Entra ID (jenom BEK) – pro nespravované šifrované virtuální počítače pomocí Microsoft Entra ID (šifrované jenom pomocí BEK), musíte před připojením disků obnovit tajný kód do trezoru klíčů. Další informace najdete v tématu Obnovení šifrovaného virtuálního počítače z bodu obnovení služby Azure Backup. Následující ukázka ukazuje, jak připojit operační systém a datové disky pro šifrované virtuální počítače. Při nastavování disku s operačním systémem nezapomeňte uvést příslušný typ operačního systému.
        $dekUrl = "https://ContosoKeyVault.vault.azure.net:443/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
        $dekUrl = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
        Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.storageProfile'.osDisk.vhd.uri -DiskEncryptionKeyUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -CreateOption "Attach" -Windows/Linux
        $vm.StorageProfile.OsDisk.OsType = $obj.'properties.storageProfile'.osDisk.osType
        foreach($dd in $obj.'properties.storageProfile'.dataDisks)
        {
        $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
        }
    
    • Nespravované a šifrované virtuální počítače s Microsoft Entra ID (BEK a KEK) – pro nespravované šifrované virtuální počítače pomocí Microsoft Entra ID (šifrované pomocí BEK a KEK), obnovte klíč a tajný klíč do trezoru klíčů před připojením disků. Další informace najdete v tématu Obnovení šifrovaného virtuálního počítače z bodu obnovení služby Azure Backup. Následující ukázka ukazuje, jak připojit operační systém a datové disky pro šifrované virtuální počítače.
        $dekUrl = "https://ContosoKeyVault.vault.azure.net:443/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
        $kekUrl = "https://ContosoKeyVault.vault.azure.net:443/keys/ContosoKey007/x9xxx00000x0000x9b9949999xx0x006"
        $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
        Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.storageProfile'.osDisk.vhd.uri -DiskEncryptionKeyUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -KeyEncryptionKeyUrl $kekUrl -KeyEncryptionKeyVaultId $keyVaultId -CreateOption "Attach" -Windows
        $vm.StorageProfile.OsDisk.OsType = $obj.'properties.storageProfile'.osDisk.osType
        foreach($dd in $obj.'properties.storageProfile'.dataDisks)
        {
        $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
        }
    
    • Nespravované a šifrované virtuální počítače bez Microsoft Entra ID (pouze BEK) – pro nespravované šifrované virtuální počítače bez ID Microsoft Entra (šifrované jenom pomocí BEK), pokud zdrojová služba keyVault/tajný kód nejsou k dispozici , obnovte tajné kódy do trezoru klíčů pomocí postupu obnovení nešifrovaného virtuálního počítače z bodu obnovení Služby Azure Backup. Potom spusťte následující skripty, které nastaví podrobnosti o šifrování obnoveného objektu blob operačního systému (tento krok se nevyžaduje pro objekt blob dat). $dekurl lze načíst z obnovené služby keyVault.

    Následující skript se musí spustit jenom v případech, kdy zdrojová služba keyVault nebo tajný klíč není k dispozici.

        $dekUrl = "https://ContosoKeyVault.vault.azure.net/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
        $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
        $encSetting = "{""encryptionEnabled"":true,""encryptionSettings"":[{""diskEncryptionKey"":{""sourceVault"":{""id"":""$keyVaultId""},""secretUrl"":""$dekUrl""}}]}"
        $osBlobName = $obj.'properties.StorageProfile'.osDisk.name + ".vhd"
        $osBlob = Get-AzStorageBlob -Container $containerName -Blob $osBlobName
        $osBlob.ICloudBlob.Metadata["DiskEncryptionSettings"] = $encSetting
        $osBlob.ICloudBlob.SetMetadata()
    

    Jakmile jsou tajné kódy k dispozici a podrobnosti o šifrování se nastaví také v objektu blob operačního systému, připojte disky pomocí následujícího skriptu.

    Pokud je zdrojová služba keyVault/tajné kódy k dispozici, výše uvedený skript se nemusí spustit.

        Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.StorageProfile'.osDisk.vhd.Uri -CreateOption "Attach"
        $vm.StorageProfile.OsDisk.OsType = $obj.'properties.StorageProfile'.OsDisk.OsType
        foreach($dd in $obj.'properties.StorageProfile'.DataDisks)
        {
        $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
        }
    
    • Nespravované a šifrované virtuální počítače bez ID Microsoft Entra ID (BEK a KEK) – pro nespravované šifrované virtuální počítače bez Microsoft Entra ID (šifrované pomocí BEK a KEK), pokud zdrojový klíčVault/klíč/tajný klíč nejsou k dispozici , obnovte klíč a tajné kódy do trezoru klíčů pomocí postupu obnovení nešifrovaného virtuálního počítače z bodu obnovení služby Azure Backup. Potom spusťte následující skripty, které nastaví podrobnosti o šifrování obnoveného objektu blob operačního systému (tento krok se nevyžaduje pro objekt blob dat). $dekurl a $kekurl je možné načíst z obnovené služby KeyVault.

    Následující skript je potřeba spustit jenom v případech, kdy zdrojová hodnota keyVault/ klíč/tajný klíč není k dispozici.

        $dekUrl = "https://ContosoKeyVault.vault.azure.net/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
        $kekUrl = "https://ContosoKeyVault.vault.azure.net/keys/ContosoKey007/x9xxx00000x0000x9b9949999xx0x006"
        $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
        $encSetting = "{""encryptionEnabled"":true,""encryptionSettings"":[{""diskEncryptionKey"":{""sourceVault"":{""id"":""$keyVaultId""},""secretUrl"":""$dekUrl""},""keyEncryptionKey"":{""sourceVault"":{""id"":""$keyVaultId""},""keyUrl"":""$kekUrl""}}]}"
        $osBlobName = $obj.'properties.StorageProfile'.osDisk.name + ".vhd"
        $osBlob = Get-AzStorageBlob -Container $containerName -Blob $osBlobName
        $osBlob.ICloudBlob.Metadata["DiskEncryptionSettings"] = $encSetting
        $osBlob.ICloudBlob.SetMetadata()
    

    Jakmile jsou klíče nebo tajné kódy k dispozici a podrobnosti o šifrování se nastaví v objektu blob operačního systému, připojte disky pomocí následujícího skriptu.

    Pokud je k dispozici zdrojový klíč, klíč nebo tajné kódy, výše uvedený skript se nemusí spustit.

        Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.StorageProfile'.osDisk.vhd.Uri -CreateOption "Attach"
        $vm.StorageProfile.OsDisk.OsType = $obj.'properties.StorageProfile'.OsDisk.OsType
        foreach($dd in $obj.'properties.StorageProfile'.DataDisks)
        {
        $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach"
        }
    
    • Spravované a nešifrované virtuální počítače – Pro spravované nešifrované virtuální počítače připojte obnovené spravované disky. Podrobné informace najdete v tématu Připojení datového disku k virtuálnímu počítači s Windows pomocí PowerShellu.

    • Spravované a šifrované virtuální počítače s Microsoft Entra ID (jenom BEK) – pro spravované šifrované virtuální počítače s Microsoft Entra ID (šifrované jenom pomocí BEK) připojte obnovené spravované disky. Podrobné informace najdete v tématu Připojení datového disku k virtuálnímu počítači s Windows pomocí PowerShellu.

    • Spravované a šifrované virtuální počítače s Microsoft Entra ID (BEK a KEK) – pro spravované šifrované virtuální počítače s Microsoft Entra ID (šifrované pomocí BEK a KEK) připojte obnovené spravované disky. Podrobné informace najdete v tématu Připojení datového disku k virtuálnímu počítači s Windows pomocí PowerShellu.

    • Spravované a šifrované virtuální počítače bez MICROSOFT Entra ID (pouze BEK) – pro spravované šifrované virtuální počítače bez ID Microsoft Entra (šifrované jenom pomocí BEK), pokud zdrojová hodnota keyVault/tajný klíč nejsou k dispozici , obnovte tajné kódy do trezoru klíčů pomocí postupu obnovení nešifrovaného virtuálního počítače z bodu obnovení Azure Backup. Potom spusťte následující skripty, které nastaví podrobnosti šifrování na obnovený disk s operačním systémem (tento krok se nevyžaduje pro datový disk). $dekurl lze načíst z obnovené služby keyVault.

    Následující skript je potřeba spustit jenom v případech, kdy zdrojová služba keyVault nebo tajný klíč není k dispozici.

    $dekUrl = "https://ContosoKeyVault.vault.azure.net/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
    $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
    $diskupdateconfig = New-AzDiskUpdateConfig -EncryptionSettingsEnabled $true
    $encryptionSettingsElement = New-Object Microsoft.Azure.Management.Compute.Models.EncryptionSettingsElement
    $encryptionSettingsElement.DiskEncryptionKey = New-Object Microsoft.Azure.Management.Compute.Models.KeyVaultAndSecretReference
    $encryptionSettingsElement.DiskEncryptionKey.SourceVault = New-Object Microsoft.Azure.Management.Compute.Models.SourceVault
    $encryptionSettingsElement.DiskEncryptionKey.SourceVault.Id = $keyVaultId
    $encryptionSettingsElement.DiskEncryptionKey.SecretUrl = $dekUrl
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettings = New-Object System.Collections.Generic.List[Microsoft.Azure.Management.Compute.Models.EncryptionSettingsElement]
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettings.Add($encryptionSettingsElement)
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettingsVersion = "1.1"
    Update-AzDisk -ResourceGroupName "testvault" -DiskName $obj.'properties.StorageProfile'.osDisk.name -DiskUpdate $diskupdateconfig
    

    Jakmile jsou tajné kódy dostupné a podrobnosti o šifrování jsou nastavené na disku s operačním systémem, připojte obnovené spravované disky, přečtěte si téma Připojení datového disku k virtuálnímu počítači s Windows pomocí PowerShellu.

    • Spravované a šifrované virtuální počítače bez MICROSOFT Entra ID (BEK a KEK) – pro spravované šifrované virtuální počítače bez Microsoft Entra ID (šifrované pomocí BEK a KEK), pokud zdrojová služba keyVault/klíč/tajný klíč nejsou k dispozici , obnovte klíč a tajné kódy do trezoru klíčů pomocí postupu obnovení nešifrovaného virtuálního počítače z bodu obnovení Služby Azure Backup. Potom spusťte následující skripty, které nastaví podrobnosti šifrování na obnovený disk s operačním systémem (tento krok se nevyžaduje pro datové disky). $dekurl a $kekurl je možné načíst z obnovené služby KeyVault.

    Následující skript je potřeba spustit jenom v případech, kdy není k dispozici zdrojový klíč, klíč nebo tajný klíč.

    $dekUrl = "https://ContosoKeyVault.vault.azure.net/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163"
    $kekUrl = "https://ContosoKeyVault.vault.azure.net/keys/ContosoKey007/x9xxx00000x0000x9b9949999xx0x006"
    $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault"
    $diskupdateconfig = New-AzDiskUpdateConfig -EncryptionSettingsEnabled $true
    $encryptionSettingsElement = New-Object Microsoft.Azure.Management.Compute.Models.EncryptionSettingsElement
    $encryptionSettingsElement.DiskEncryptionKey = New-Object Microsoft.Azure.Management.Compute.Models.KeyVaultAndSecretReference
    $encryptionSettingsElement.DiskEncryptionKey.SourceVault = New-Object Microsoft.Azure.Management.Compute.Models.SourceVault
    $encryptionSettingsElement.DiskEncryptionKey.SourceVault.Id = $keyVaultId
    $encryptionSettingsElement.DiskEncryptionKey.SecretUrl = $dekUrl
    $encryptionSettingsElement.KeyEncryptionKey = New-Object Microsoft.Azure.Management.Compute.Models.KeyVaultAndKeyReference
    $encryptionSettingsElement.KeyEncryptionKey.SourceVault = New-Object Microsoft.Azure.Management.Compute.Models.SourceVault
    $encryptionSettingsElement.KeyEncryptionKey.SourceVault.Id = $keyVaultId
    $encryptionSettingsElement.KeyEncryptionKey.KeyUrl = $kekUrl
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettings = New-Object System.Collections.Generic.List[Microsoft.Azure.Management.Compute.Models.EncryptionSettingsElement]
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettings.Add($encryptionSettingsElement)
    $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettingsVersion = "1.1"
    Update-AzDisk -ResourceGroupName "testvault" -DiskName $obj.'properties.StorageProfile'.osDisk.name -DiskUpdate $diskupdateconfig
    

    Jakmile jsou klíče nebo tajné kódy dostupné a podrobnosti o šifrování jsou nastavené na disku s operačním systémem, připojte obnovené spravované disky, viz Připojení datového disku k virtuálnímu počítači s Windows pomocí PowerShellu.

  5. Nastavte nastavení sítě.

    $nicName="p1234"
    $pip = New-AzPublicIpAddress -Name $nicName -ResourceGroupName "test" -Location "WestUS" -AllocationMethod Dynamic
    $virtualNetwork = New-AzVirtualNetwork -ResourceGroupName "test" -Location "WestUS" -Name "testvNET" -AddressPrefix 10.0.0.0/16
    $virtualNetwork | Set-AzVirtualNetwork
    $vnet = Get-AzVirtualNetwork -Name "testvNET" -ResourceGroupName "test"
    $subnetindex=0
    $nic = New-AzNetworkInterface -Name $nicName -ResourceGroupName "test" -Location "WestUS" -SubnetId $vnet.Subnets[$subnetindex].Id -PublicIpAddressId $pip.Id
    $vm=Add-AzVMNetworkInterface -VM $vm -Id $nic.Id
    
  6. Vytvořte virtuální počítač.

    New-AzVM -ResourceGroupName "test" -Location "WestUS" -VM $vm
    
  7. Nasdílení změn rozšíření ADE Pokud se rozšíření ADE nenasdílí, datové disky se označí jako nešifrované, takže je nutné provést následující kroky:

    • Pro virtuální počítač s ID Microsoft Entra – Ruční povolení šifrování datových disků pomocí následujícího příkazu

      Pouze BEK

      Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm.Name -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -VolumeType Data
      

      BEK a KEK

      Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm.Name -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId  -KeyEncryptionKeyUrl $kekUrl -KeyEncryptionKeyVaultId $keyVaultId -VolumeType Data
      
    • Pro virtuální počítač bez ID Microsoft Entra – Pomocí následujícího příkazu ručně povolte šifrování datových disků.

      Pokud během provádění příkazu požádá o AADClientID, musíte aktualizovat Azure PowerShell.

      Pouze BEK

      Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm.Name -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -SkipVmBackup -VolumeType "All"
      

      BEK a KEK

      Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm.Name -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -KeyEncryptionKeyUrl $kekUrl -KeyEncryptionKeyVaultId $keyVaultId -SkipVmBackup -VolumeType "All"
      

Poznámka:

Nezapomeňte ručně odstranit soubory JASON vytvořené v rámci procesu obnovení šifrovaného virtuálního počítače.

Obnovení souborů ze zálohy virtuálního počítače Azure

Kromě obnovení disků můžete také obnovit jednotlivé soubory ze zálohy virtuálního počítače Azure. Funkce obnovení souborů poskytuje přístup ke všem souborům v bodu obnovení. Spravujte soubory prostřednictvím Průzkumník souborů stejně jako u normálních souborů.

Základní postup obnovení souboru ze zálohy virtuálního počítače Azure:

  • Výběr virtuálního počítače
  • Zvolte bod obnovení.
  • Připojení disků bodu obnovení
  • Kopírování požadovaných souborů
  • Odpojení disku

Vyberte virtuální počítač (při obnovování virtuálního počítače).

Pokud chcete získat objekt PowerShellu, který identifikuje správnou zálohovanou položku, začněte z kontejneru v trezoru a pracujte v hierarchii objektů. Pokud chcete vybrat kontejner, který představuje virtuální počítač, použijte rutinu Get-AzRecoveryServicesBackupContainer a nastavte ji do rutiny Get-AzRecoveryServicesBackupItem .

$namedContainer = Get-AzRecoveryServicesBackupContainer  -ContainerType "AzureVM" -Status "Registered" -FriendlyName "V2VM" -VaultId $targetVault.ID
$backupitem = Get-AzRecoveryServicesBackupItem -Container $namedContainer  -WorkloadType "AzureVM" -VaultId $targetVault.ID

Volba bodu obnovení (při obnovování virtuálního počítače)

Pomocí rutiny Get-AzRecoveryServicesBackupRecoveryPoint zobrazíte seznam všech bodů obnovení pro zálohovanou položku. Potom zvolte bod obnovení, který chcete obnovit. Pokud si nejste jistí, který bod obnovení se má použít, je vhodné zvolit nejnovější bod RecoveryPointType = AppConsistent v seznamu.

V následujícím skriptu je proměnná $rp pole bodů obnovení pro vybranou zálohovanou položku z posledních sedmi dnů. Pole je seřazeno v obráceném pořadí času s nejnovějším bodem obnovení v indexu 0. K výběru bodu obnovení použijte standardní indexování pole PowerShellu. V tomto příkladu $rp[0] vybere nejnovější bod obnovení.

$startDate = (Get-Date).AddDays(-7)
$endDate = Get-Date
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -Item $backupitem -StartDate $startdate.ToUniversalTime() -EndDate $enddate.ToUniversalTime() -VaultId $targetVault.ID
$rp[0]

Výstup se podobá následujícímu příkladu:

RecoveryPointAdditionalInfo :
SourceVMStorageType         : NormalStorage
Name                        : 15260861925810
ItemName                    : VM;iaasvmcontainer;RGName1;V2VM
RecoveryPointId             : /subscriptions/XX/resourceGroups/ RGName1/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;RGName1;V2VM/protectedItems/VM;iaasvmcontainer; RGName1;V2VM/recoveryPoints/15260861925810
RecoveryPointType           : AppConsistent
RecoveryPointTime           : 4/23/2016 5:02:04 PM
WorkloadType                : AzureVM
ContainerName               : IaasVMContainer;iaasvmcontainer; RGName1;V2VM
ContainerType               : AzureVM
BackupManagementType        : AzureVM

Připojení disků bodu obnovení

Pomocí rutiny Get-AzRecoveryServicesBackupRPMountScript získejte skript pro připojení všech disků bodu obnovení.

Poznámka:

Disky se připojují jako připojené disky iSCSI k počítači, na kterém se skript spouští. Připojení probíhá okamžitě a neúčtují se vám žádné poplatky.

Get-AzRecoveryServicesBackupRPMountScript -RecoveryPoint $rp[0] -VaultId $targetVault.ID

Výstup se podobá následujícímu příkladu:

OsType  Password        Filename
------  --------        --------
Windows e3632984e51f496 V2VM_wus2_8287309959960546283_451516692429_cbd6061f7fc543c489f1974d33659fed07a6e0c2e08740.exe

Spusťte skript na počítači, na kterém chcete obnovit soubory. Pokud chcete skript spustit, musíte zadat zadané heslo. Po připojení disků můžete pomocí windows Průzkumník souborů procházet nové svazky a soubory. Další informace najdete v článku Zálohování, obnovení souborů ze zálohy virtuálního počítače Azure.

Odpojení disků

Po zkopírování požadovaných souborů pomocí Disable-AzRecoveryServicesBackupRPMountScript odpojte disky. Nezapomeňte odpojit disky, aby byl odebrán přístup k souborům bodu obnovení.

Disable-AzRecoveryServicesBackupRPMountScript -RecoveryPoint $rp[0] -VaultId $targetVault.ID

Obnovení dat do virtuálního počítače pomocí PowerShellu

Teď můžete přímo obnovit data do původního nebo alternativního virtuálního počítače bez provedení několika kroků.

Obnovení dat do původního virtuálního počítače

$vault = Get-AzRecoveryServicesVault -ResourceGroupName "resourceGroup" -Name "vaultName"
$BackupItem = Get-AzRecoveryServicesBackupItem -BackupManagementType "AzureVM" -WorkloadType "AzureVM" -Name "V2VM" -VaultId $vault.ID
$StartDate = (Get-Date).AddDays(-7)
$EndDate = Get-Date
$RP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -StartDate $StartDate.ToUniversalTime() -EndDate $EndDate.ToUniversalTime() -VaultId $vault.ID
$OriginalLocationRestoreJob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $RP[0] -StorageAccountName "DestStorageAccount" -StorageAccountResourceGroupName "DestStorageAccRG" -VaultId $vault.ID -VaultLocation $vault.Location 
WorkloadName    Operation       Status          StartTime              EndTime
------------    ---------       ------          ---------              -------
V2VM            Restore         InProgress      26-Apr-16 1:14:01 PM   01-Jan-01 12:00:00 AM

Poslední příkaz aktivuje operaci obnovení původního umístění, která obnoví data v existujícím virtuálním počítači.

Obnovení dat do nově vytvořeného virtuálního počítače

$vault = Get-AzRecoveryServicesVault -ResourceGroupName "resourceGroup" -Name "vaultName"
$BackupItem = Get-AzRecoveryServicesBackupItem -BackupManagementType "AzureVM" -WorkloadType "AzureVM" -Name "V2VM" -VaultId $vault.ID
$StartDate = (Get-Date).AddDays(-7)
$EndDate = Get-Date
$RP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -StartDate $StartDate.ToUniversalTime() -EndDate $EndDate.ToUniversalTime() -VaultId $vault.ID
$AlternateLocationRestoreJob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $RP[0] -TargetResourceGroupName "Target_RG" -StorageAccountName "DestStorageAccount" -StorageAccountResourceGroupName "DestStorageAccRG" -TargetVMName "TagetVirtualMachineName" -TargetVNetName "Target_VNet" -TargetVNetResourceGroup "" -TargetSubnetName "subnetName" -VaultId $vault.ID -VaultLocation $vault.Location 
WorkloadName    Operation       Status          StartTime              EndTime
------------    ---------       ------          ---------              -------
V2VM            Restore         InProgress      26-Apr-16 1:14:01 PM   01-Jan-01 12:00:00 AM

Poslední příkaz aktivuje operaci obnovení alternativního umístění, která vytvoří nový virtuální počítač ve skupině prostředků Target_RG podle vstupů zadaných parametry TargetVMName, TargetVNetName, TargetVNetResourceGroup, TargetSubnetName. Tím se zajistí obnovení dat v požadovaném virtuálním počítači, virtuální síti a podsíti.

Další kroky

Pokud dáváte přednost použití PowerShellu k zapojení do prostředků Azure, přečtěte si článek PowerShellu, nasazení a správa zálohování pro Windows Server. Pokud spravujete zálohy DPM, přečtěte si článek Nasazení a správa zálohování aplikace DPM.