Přesun virtuálního počítače z oblasti regionální do zón dostupnosti zón pomocí Azure PowerShellu a rozhraní příkazového řádku
Tento článek podrobně popisuje přesun virtuálních počítačů s jednou instancí Azure z oblastí do zónových zón dostupnosti pomocí rutin Azure PowerShellu a rozhraní příkazového řádku. Zóna dostupnosti je fyzicky oddělená zóna v oblasti Azure. Používejte zóny dostupnosti k ochraně aplikací a dat před nepravděpodobným selháním nebo ztrátou celého datového centra.
Pokud chcete využít zóny dostupnosti, vytvořte virtuální počítač v podporované oblasti Azure.
Požadavky
Před zahájením procesu přesunutí ověřte následující požadavky:
Požadavek | Popis |
---|---|
Oprávnění předplatného | Ujistěte se, že máte přístup vlastníka k předplatnému obsahujícímu prostředky, které chcete přesunout. Spravovaná identita potřebuje tato oprávnění: – Oprávnění k zápisu nebo vytváření prostředků v předplatném uživatele, které jsou k dispozici s rolí Přispěvatel. – Oprávnění k vytváření přiřazení rolí. Obvykle je k dispozici s rolemi Vlastník nebo Správce uživatelských přístupů nebo s vlastní rolí, která má Microsoft.Authorization přiřazená přiřazení rolí nebo oprávnění k zápisu. Toto oprávnění není potřeba, pokud má spravovaná identita prostředku sdílené datové složky již udělený přístup k úložišti dat Azure. Přečtěte si další informace o rolích Azure. |
Podpora virtuálních počítačů | Projděte si podporované oblasti. – Zkontrolujte podporovaná nastavení výpočetních prostředků, úložiště a sítí . |
Stav virtuálního počítače | Virtuální počítače, které chcete přesunout, musí být před pokusem o zónový přesun ve stavu v pořádku. Před pokusem o zónový přesun virtuálního počítače se ujistěte, že jsou všechny čekající restartování a povinné aktualizace dokončené a že virtuální počítač funguje a je v pořádku. |
Kontrola požadavků powershellu a rozhraní příkazového řádku
Většina operací přesunu prostředků je stejná bez ohledu na to, jestli používáte Azure Portal, PowerShell nebo rozhraní příkazového řádku s několika výjimkami.
Poznámka:
Další informace o příkazech a jejich syntaxi najdete na této stránce.
Operace | Portál | PowerShell nebo rozhraní příkazového řádku |
---|---|---|
Vytvoření kolekce pro přesun | Kolekce přesunů (seznam všech místních virtuálních počítačů, které přesouváte) se vytvoří automaticky. Požadovaná oprávnění identit se přiřazují v back-endu portálem. | Rutiny PowerShellu nebo rutiny rozhraní příkazového řádku můžete použít k: – Přiřaďte ke kolekci spravovanou identitu. – Přidejte do kolekce místní virtuální počítače. |
Operace přesunu prostředků | Ověřte kroky a ověřte změny nastavení uživatele . Zahájení přesunu spustí proces přesunutí a vytvoří kopii zdrojového virtuálního počítače v cílové zóně. Také dokončí přesun nově vytvořeného virtuálního počítače v cílové zóně. | Rutiny PowerShellu nebo rutiny rozhraní příkazového řádku pro: – Přidání regionálních virtuálních počítačů do kolekce – Řešení závislostí - Proveďte pohyb. - Potvrďte přesun. |
Ukázkové hodnoty
Tyto hodnoty používáme v příkladech skriptu:
Nastavení | Hodnota |
---|---|
Subscription ID | id předplatného |
Přesunout oblast | USA – východ |
Skupina prostředků (uchovávání metadat pro kolekci přesunů) | RegionToZone-DemoMCRG |
Přesunout název kolekce | RegionToZone-DemoMC |
Umístění kolekce přesunů | eastus2euap |
Typ identity | SystemAssigned |
název virtuálního počítače | demoVM-MoveResource |
Přesunout typ | RegionToZone |
Přihlášení k Azure
Přihlaste se ke svému předplatnému Azure pomocí příkazu Connect-AzAccount
a postupujte podle pokynů na obrazovce.
Nastavení ID předplatného:
Set-AzContext -SubscriptionId " <subscription-id> "
Připojení k ID předplatného:
Connect-AzAccount –Subscription "<subscription-id>"
Nastavení kolekce přesunů
Objekt MoveCollection ukládá metadata a konfigurační informace o prostředcích, které chcete přesunout. Pokud chcete nastavit kolekci přesunutí, postupujte takto:
- Vytvořte skupinu prostředků pro kolekci přesunů.
- Zaregistrujte poskytovatele služeb do předplatného, aby bylo možné vytvořit prostředek MoveCollection.
- Vytvořte objekt MoveCollection se spravovanou identitou. Aby objekt MoveCollection přistupoval k předplatnému, ve kterém se nachází služba Resource Mover, potřebuje spravovanou identitu přiřazenou systémem (dříve označovanou jako Identita spravované služby (MSI), která je důvěryhodná pro předplatné.
- Udělte přístup k předplatnému Resource Mover pro spravovanou identitu.
Vytvoření skupiny prostředků
Pomocí následující rutiny vytvořte skupinu prostředků pro metadata a konfigurační informace o přesunu kolekce pomocí rutiny New-AzResourceGroup. Skupina prostředků je logický kontejner, ve kterém se nasazují a spravují prostředky Azure.
New-AzResourceGroup -Name "RegionToZone-DemoMCRG" -Location "EastUS"
Výstup:
Výstup ukazuje, že spravovaný disk je ve stejné zóně dostupnosti jako virtuální počítač:
ResourceGroupName : RegionToZone-DemoMCRG
Location : eastus
ProvisioningState : Succeeded
Tags :
Name Value
======= ========
Created 20230908
ResourceId : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG
Registrace poskytovatele prostředků
Zaregistrujte poskytovatele prostředků Microsoft.Migrate, aby bylo možné vytvořit prostředek MoveCollection následujícím způsobem:
Register-AzResourceProvider -ProviderNamespace Microsoft.Migrate
Počkejte na registraci:
While(((Get-AzResourceProvider -ProviderNamespace Microsoft.Migrate)| where {$_.RegistrationState -eq "Registered" -and $_.ResourceTypes.ResourceTypeName -eq "moveCollections"}|measure).Count -eq 0) { Start-Sleep -Seconds 5 Write-Output "Waiting for registration to complete." }
Vytvoření objektu MoveCollection
Vytvořte objekt MoveCollection a přiřaďte k němu spravovanou identitu následujícím způsobem:
New-AzResourceMoverMoveCollection -Name "RegionToZone-DemoMC" -ResourceGroupName "RegionToZone-DemoMCRG" -MoveRegion "eastus" -Location "eastus2euap" -IdentityType "SystemAssigned" -MoveType "RegionToZone"
Výstup:
Etag Location Name
---- -------- ----
"3a00c441-0000-3400-0000-64fac1b30000" eastus2euap RegionToZone-DemoMC
Poznámka:
V případě zónového přesunu MoveType
oblastí by měl být parametr nastaven jako RegionToZone a MoveRegion
parametr by se měl nastavit jako umístění, ve kterém se nacházejí prostředky procházející zónovým přesunem. Ujistěte se, že parametry SourceRegion
a TargetRegion
nejsou povinné a měly by být nastaveny na hodnotu null.
Udělení přístupu ke spravované identitě
Následujícím způsobem udělte spravované identitě přístup k předplatnému Resource Mover. Musíte být vlastníkem předplatného.
Načtěte podrobnosti identity z MoveCollection objektu.
$moveCollection = Get-AzResourceMoverMoveCollection -Name "RegionToZone-DemoMC" -ResourceGroupName "RegionToZone-DemoMCRG" $identityPrincipalId = $moveCollection.IdentityPrincipalId
Přiřaďte k identitě požadované role, aby mohl Azure Resource Mover získat přístup k vašemu předplatnému, aby vám pomohl přesunout prostředky. Zkontrolujte seznam požadovaných oprávnění pro přesun.
New-AzRoleAssignment -ObjectId $identityPrincipalId -RoleDefinitionName Contributor -Scope "/subscriptions/<subscription-id>" New-AzRoleAssignment -ObjectId $identityPrincipalId -RoleDefinitionName "User Access Administrator" -Scope "/subscriptions/<subscription-id>"
Přidání regionálních virtuálních počítačů do kolekce přesunů
Načtěte ID existujících zdrojových prostředků, které chcete přesunout. Vytvořte objekt nastavení cílového prostředku a pak přidejte prostředky do kolekce pro přesun.
Poznámka:
Prostředky přidané do kolekce přesunu musí být ve stejném předplatném, ale můžou být v různých skupinách prostředků.
Objekt nastavení cílového prostředku vytvořte následujícím způsobem:
$targetResourceSettingsObj = New-Object Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Api20230801.VirtualMachineResourceSettings $targetResourceSettingsObj.ResourceType = "Microsoft.Compute/virtualMachines" $targetResourceSettingsObj.TargetResourceName = "RegionToZone-demoTargetVm" $targetResourceSettingsObj.TargetAvailabilityZone = "2"
Výstup
ResourceType TargetResourceGroupName TargetResourceName TargetAvailabilitySetId TargetAvailabilityZone TargetVMSize UserManagedIdentity ------------ ----------------------- ------------------ ----------------------- ---------------------- ------------ ------------------- Microsoft.Compute/virtualMachines RegionToZone-demoTargetVm 2
Přidání prostředků
Add-AzResourceMoverMoveResource -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" -SourceId "/subscriptions/<Subscription-id>/resourcegroups/PS-demo-RegionToZone-RG/providers/Microsoft.Compute/virtualMachines/RegionToZone-demoSourceVm" -Name "demoVM-MoveResource" -ResourceSetting $targetResourceSettingsObj
Výstup
DependsOn : {} DependsOnOverride : {} ErrorsPropertiesCode : ErrorsPropertiesDetail : ErrorsPropertiesMessage : ErrorsPropertiesTarget : ExistingTargetId : Id : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/Re gionToZone-DemoMC/moveResources/demoVM-MoveResource IsResolveRequired : False JobStatusJobName : JobStatusJobProgress : MoveStatusErrorsPropertiesCode : DependencyComputationPending MoveStatusErrorsPropertiesDetail : {} MoveStatusErrorsPropertiesMessage : The dependency computation is not completed for resource - /subscriptions/<Subscription-id>/resourcegroups/PS-demo-R egionToZone-RG/providers/Microsoft.Compute/virtualMachines/RegionToZone-demoSourceVm'. Possible Causes: Dependency computation is pending for resource. Recommended Action: Validate dependencies to compute the dependencies. MoveStatusErrorsPropertiesTarget : MoveStatusMoveState : MovePending Name : demoVM-MoveResource ProvisioningState : Succeeded ResourceSetting : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Api20230801.VirtualMachineResourceSettings SourceId : /subscriptions/<Subscription-id>/resourcegroups/PS-demo-RegionToZone-RG/providers/Microsoft.Compute/virtualMachines/ RegionToZone-demoSourceVm SourceResourceSetting : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Api20230801.VirtualMachineResourceSettings SystemDataCreatedAt : 9/8/2023 6:48:11 AM SystemDataCreatedBy : xxxxx@microsoft.com SystemDataCreatedByType : User SystemDataLastModifiedAt : 9/8/2023 6:48:11 AM SystemDataLastModifiedBy : xxxxx@microsoft.com SystemDataLastModifiedByType : User TargetId : Type :
Úprava nastavení
Při přesouvání virtuálních počítačů Azure a přidružených prostředků můžete upravit nastavení cíle. Doporučujeme, abyste před ověřením kolekce přesunu změnili jenom nastavení cíle.
Nastavení, která můžete upravit, jsou:
- Nastavení virtuálního počítače: Skupina prostředků, název virtuálního počítače, zóna dostupnosti virtuálního počítače, skladová položka virtuálního počítače, trezor klíčů virtuálního počítače a sada šifrování disků.
- Nastavení síťových prostředků: Pro síťová rozhraní, virtuální sítě (virtuální sítě/) a skupiny zabezpečení sítě nebo síťová rozhraní můžete:
- Použijte existující síťový prostředek v cílové oblasti.
- Vytvořte nový prostředek s jiným názvem.
- Veřejná IP adresa /Load Balancer: skladová položka a zóna
Upravte nastavení následujícím způsobem:
Načtěte prostředek pro přesunutí, pro který chcete upravit vlastnosti. Pokud chcete například načíst spuštění virtuálního počítače:
$moveResourceObj = Get-AzResourceMoverMoveResource -MoveCollectionName " RegionToZone-DemoMCRG " -ResourceGroupName " RegionToZone-DemoMC " -Name "PSDemoVM"
Zkopírujte nastavení prostředku do objektu nastavení cílového prostředku.
$TargetResourceSettingObj = $moveResourceObj.ResourceSetting
Nastavte parametr v objektu nastavení cílového prostředku. Pokud chcete například změnit název cílového virtuálního počítače:
$TargetResourceSettingObj.TargetResourceName="PSDemoVM-target"
Aktualizujte nastavení cíle přesunu prostředků. V tomto příkladu změníme název virtuálního počítače z PSDemoVM na PSDemoVMTarget.
Update-AzResourceMoverMoveResource -ResourceGroupName " RegionToZone-DemoMCRG " -MoveCollectionName " RegionToZone-DemoMC -SourceId "/subscriptions/<Subscription-d>/resourceGroups/PSDemoRM/providers/Microsoft.Compute/virtualMachines/PSDemoVM" -Name "PSDemoVM" -ResourceSetting $TargetResourceSettingObj
Řešení závislostí
Zkontrolujte, jestli přidané regionální virtuální počítače mají nějaké závislosti na jiných prostředcích, a podle potřeby přidejte.
Při řešení závislostí postupujte následovně:
Resolve-AzResourceMoverMoveCollectionDependency -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC"
Výstup (pokud existují závislosti)
AdditionalInfo : Code : Detail : EndTime : EndTime : 9/8/2023 6:52:14 AM Id : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/RegionToZone-DemoMC/operations/bc68354b-ec1f-44cb-92ab-fb3b4ad90229 Message : Name : bc68354b-ec1f-44cb-92ab-fb3b4ad90229 Property : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Any StartTime : 9/8/2023 6:51:50 AM Status : Succeeded
Získání seznamu prostředků přidaných do kolekce přesunů:
$list = Get-AzResourceMoverMoveResource -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC"
$list.Name
Výstup:
demoVM-MoveResource mr_regiontozone-demosourcevm661_d6f18900-3b87-4fb5-9bdf-12da2f9fb185 mr_regiontozone-demosourcevm-vnet_d8536bf5-2d5f-4778-9650-32d0570bc41a mr_regiontozone-demosourcevm-ip_6af03f1f-eae8-4541-83f5-97a2506cfc3e mr_regiontozone-demosourcevm-nsg_98d68420-d7ff-4e2d-b758-25a6df80fca7 mr_nrms-timkbo3hy3nnmregiontozone-demosourcevm-vnet_f474c880-4823-4ed3-b761-96df6500f6a3
Pokud chcete odebrat prostředky z kolekce prostředků, postupujte podle těchto pokynů.
Zóny dostupnosti skladové položky virtuálního počítače, ověření kvóty a kapacity
Azure poskytuje doporučení, pokud vybraná zóna dostupnosti nemá skladovou položku virtuálního počítače nebo pokud není k dispozici dostatečná kvóta nebo kapacita. Tady je několik příkladů těchto doporučení a akcí, které byste měli provést, pokud skladová položka virtuálního počítače není dostupná.
Skladová položka virtuálního počítače není dostupná
Pokud zdrojová velikost Standard_DC1ds_v3
virtuálního počítače není ve vybrané zóně 1
dostupnosti dostupná.
Doporučená akce: Zvolte jinou velikost virtuálního počítače ve stejné zóně dostupnosti nebo vyberte jinou zónu dostupnosti s odpovídající doporučenou velikostí virtuálního počítače.
Doporučení:
- SKU: Standard_DC1ds_v3, Zóny: [ 2 ]
- SKU: Standard_DC2ds_v3, Zóny: [ 2 ]
- SKU: Standard_DC4ds_v3, Zóny: [ 2 ]
- SKU: Standard_DC1s_v3, Zóny: [ 2 ]
- SKU: Standard_D2ds_v5, Zóny: [ 2, 3 ]
- SKU: Standard_D2as_v4, Zóny: [ 1, 2, 3 ]
- SKU: Standard_D2s_v3, Zóny: [ 1, 2, 3 ]
- SKU: Standard_D2as_v5, zóny: [ 1, 2, 3 ]
- SKU: Standard_D2s_v5, Zóny: [ 2, 3 ]
Doporučení pro kapacitu
Doporučení kapacity pro aktuální velikost Standard_DC1ds_v3
virtuálního počítače výběru ve vybrané zóně 1
dostupnosti .
Doporučená akce: Pokud chcete zvýšit pravděpodobnost úspěšného nasazení, Azure identifikoval další doporučené velikosti a zóny virtuálních počítačů. Pokud chcete bezproblémově nasadit, zvolte jinou velikost virtuálního počítače ve stejné zóně dostupnosti nebo jinou zónu dostupnosti s odpovídající velikostí virtuálního počítače.
Doporučení:
- SKU: Standard_DC1ds_v3, Zóny: [ 2 ]
- SKU: Standard_DC2ds_v3, Zóny: [ 2 ]
- SKU: Standard_DC4ds_v3, Zóny: [ 2 ]
- SKU: Standard_DC1s_v3, Zóny: [ 2 ]
- SKU: Standard_D2ds_v5, Zóny: [ 2, 3 ]
- SKU: Standard_D2as_v4, Zóny: [ 1, 2, 3 ]
- SKU: Standard_D2s_v3, Zóny: [ 1, 2, 3 ]
- SKU: Standard_D2as_v5, zóny: [ 1, 2, 3 ]
- SKU: Standard_D2s_v5, Zóny: [ 2, 3 ]
Řešení doporučení
Pokud chcete vyřešit situace, kdy se skladová položka virtuálního počítače nenašla nebo došlo k problému s kapacitou, aktualizujte prostředek přesunu a pak spusťte řešení znovu. Tady je příklad odkazu:
Podle doporučení aktualizujte objekt prostředku přesunu prostředku do nové zóny nebo skladové položky.
$targetResourceSettingsObj.TargetVmSize = "Standard_DC1ds_v3" $targetResourceSettingsObj.TargetAvailabilityZone = "3"
Aktualizace prostředku přesunu virtuálního počítače
Add-AzResourceMoverMoveResource -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" -SourceId "/subscriptions/<Subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.Compute/virtualMachines/vmtwo" -Name "demoVM-MoveResource2" -ResourceSetting $targetResourceSettingsObj
Znovu spusťte překlad.
Resolve-AzResourceMoverMoveCollectionDependency -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC"
Nedostatečná kvóta
Vybraný virtuální počítač nejde přesunout do zóny dostupnosti kvůli nedostatečné kvótě.
Doporučená akce: Byla nalezena dostatečná kvóta. Projděte si odkaz a obraťte se na podporu.
Zahájení přesunu prostředků virtuálního počítače
Invoke-AzResourceMoverInitiateMove -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" -MoveResource $("demoVM-MoveResource") <remove-MoveResourceInputType "MoveResourceId">
Výstup
AdditionalInfo :
Code :
Detail :
EndTime : 9/8/2023 7:07:58 AM
Id : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/RegionToZone-DemoMC/o
perations/d3e06ac3-a961-4045-8301-aee7f6911160
Message :
Name : d3e06ac3-a961-4045-8301-aee7f6911160
Property : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Any
StartTime : 9/8/2023 7:01:31 AM
Status : Succeeded
Potvrzení
Po počátečním přesunutí je nutné přesunutí potvrdit nebo ho zahodit. Potvrzení dokončí přesun do cílové oblasti.
Potvrďte přesunutí následujícím způsobem:
Invoke-AzResourceMoverCommit "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" -MoveResource $("demoVM-MoveResource")
Výstup:
AdditionalInfo :
Code :
Detail :
EndTime : 9/22/2023 5:26:55 AM
Id : /subscriptions/e80eb9fa-c996-4435-aa32-5af6f3d3077c/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/RegionToZone-DemoMC/operations/35dd1d93-ba70-4dc9-a17f-7d8ba48678d8
Message :
Name : 35dd1d93-ba70-4dc9-a17f-7d8ba48678d8
Property : Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Any
StartTime : 9/22/2023 5:26:54 AM
Status : Succeeded
Odebrání prostředku
Jeden prostředek nebo více prostředků můžete odebrat z MoveCollection
následujících rutin:
Získejte seznam prostředků pro přesun, které se přidají do kolekce přesunů:
$list = Get-AzResourceMoverMoveResource -ResourceGroupName "<MoveCollectionResourceGroupName>" -MoveCollectionName "<MoveCollectionName>"
Odeberte nalezené prostředky pro přesun:
Invoke-AzResourceMoverBulkRemove -ResourceGroupName "<MoveCollectionResourceGroupName>" -MoveCollectionName "<MoveCollectionName>" -MoveResource $($list.Name)
Odeberte kolekci přesunutí:
Remove-AzResourceMoverMoveCollection -ResourceGroupName "<MoveCollectionResourceGroupName>" -MoveCollectionName "<MoveCollectionName>"
Poznámka:
Pokud zjistíte problémy s autorizací spravovaných identit, znovu povolte přístup ke spravovaným identitám pomocí následujícího postupu .
Odstranění zdrojových regionálních virtuálních počítačů
Po potvrzení přesunu a ověření, že prostředky fungují podle očekávání v cílové oblasti, můžete odstranit každý zdrojový prostředek pomocí:
Další kroky
Zjistěte, jak přesunout virtuální počítače Azure s jednou instancí z oblasti na zónovou konfiguraci prostřednictvím portálu.