Přesun virtuálního počítače v zóně dostupnosti 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.

Důležité

Místní přesun konfigurace virtuálních počítačů s jednou instancí je aktuálně ve verzi Public Preview.

Předpoklady

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 jsou k dispozici s rolemi Vlastník nebo Uživatelský přístup Správa istrator 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.

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
ID předplatného id předplatného
Přesunout oblast East US
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.

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ů

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

  1. Načtěte podrobnosti identity z MoveCollection objektu.

    $moveCollection = Get-AzResourceMoverMoveCollection -Name "RegionToZone-DemoMC" -ResourceGroupName "RegionToZone-DemoMCRG"
    $identityPrincipalId = $moveCollection.IdentityPrincipalId
    
  2. 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ů.

  1. 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
    
  2. Přidání zdrojů

    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:

  1. 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"
    
  2. Zkopírujte nastavení prostředku do objektu nastavení cílového prostředku.

    $TargetResourceSettingObj = $moveResourceObj.ResourceSetting
    
  3. 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"
    
  4. 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.

  1. 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        : 9/8/2023 6:52:14 AM
    Id             : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG/providers/Microsoft.Migrate/moveCollections/RegionToZone-DemoMC/o
                     perations/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
    
  2. 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
    
  3. Pokud chcete odebrat prostředky z kolekce prostředků, postupujte podle těchto pokynů.

Zahájení přesunu prostředků virtuálního počítače

Invoke-AzResourceMoverInitiateMove -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" -MoveResource $("demoVM-MoveResource") -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-AzResourceMover-VMZonalMoveCommit -ResourceGroupName "RG-MoveCollection-demoRMS" -MoveCollectionName "PS-centralus-westcentralus-demoRMS" -MoveResource $('psdemovm111', 'PSDemoRM-vnet','PSDemoVM-nsg', ‘PSDemoVM’) -MoveResourceInputType "MoveResourceId"

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 

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.