Przenoszenie maszyny wirtualnej w strefie dostępności przy użyciu programu Azure PowerShell i interfejsu wiersza polecenia

Ten artykuł zawiera szczegółowe informacje dotyczące używania poleceń cmdlet programu Azure PowerShell i interfejsu wiersza polecenia do przenoszenia maszyn wirtualnych z pojedynczego wystąpienia platformy Azure z regionalnych do strefowych stref dostępności. Strefa dostępności to fizycznie oddzielona strefa w regionie świadczenia usługi Azure. Strefy dostępności umożliwiają ochronę aplikacji i danych przed mało prawdopodobną awarią lub utratą całego centrum danych.

Aby użyć strefy dostępność, utwórz maszynę wirtualną w obsługiwanym regionie platformy Azure.

Ważne

Migracja regionalna do strefowa konfiguracji maszyn wirtualnych z pojedynczym wystąpieniem jest obecnie dostępna w publicznej wersji zapoznawczej.

Wymagania wstępne

Sprawdź następujące wymagania:

Wymaganie opis
Uprawnienia subskrypcji Upewnij się, że masz dostęp właściciela do subskrypcji zawierającej zasoby, które chcesz przenieść.

Tożsamość zarządzana wymaga następujących uprawnień:
— Uprawnienie do zapisywania lub tworzenia zasobów w subskrypcji użytkownika, dostępnej z rolą Współautor.
- Uprawnienie do tworzenia przypisań ról. Zazwyczaj dostępne z rolami Właściciel lub Dostęp użytkowników Administracja istrator lub z rolą niestandardową, która ma Microsoft.Authorization przypisane przypisania ról lub uprawnienia do zapisu. To uprawnienie nie jest wymagane, jeśli tożsamość zarządzana zasobu udziału danych ma już dostęp do magazynu danych platformy Azure.
Dowiedz się więcej o rolach platformy Azure.
Obsługa maszyn wirtualnych Przejrzyj obsługiwane regiony.

— Sprawdź obsługiwane ustawienia obliczeniowe, magazynowe i sieciowe .
Stan kondycji maszyny wirtualnej Maszyny wirtualne, które chcesz przenieść, muszą być w dobrej kondycji przed podjęciem próby przeniesienia strefowego. Przed podjęciem próby przeniesienia strefowego maszyny wirtualnej upewnij się, że wszystkie oczekujące ponowne uruchomienie i obowiązkowe aktualizacje są ukończone, a maszyna wirtualna działa i jest w dobrej kondycji.

Zapoznaj się z wymaganiami programu PowerShell i interfejsu wiersza polecenia

Większość operacji przenoszenia zasobów jest taka sama, jak w przypadku korzystania z witryny Azure Portal, programu PowerShell lub interfejsu wiersza polecenia z kilkoma wyjątkami.

Operacja Portal Program PowerShell/interfejs wiersza polecenia
Tworzenie kolekcji przenoszenia Kolekcja przenoszenia (lista wszystkich przenoszonych regionalnych maszyn wirtualnych) jest tworzona automatycznie. Wymagane uprawnienia tożsamości są przypisywane w zapleczu przez portal. Polecenia cmdlet programu PowerShell lub polecenia cmdlet interfejsu wiersza polecenia umożliwiają:
— Przypisz tożsamość zarządzaną do kolekcji.
— Dodawanie regionalnych maszyn wirtualnych do kolekcji.
Operacje przenoszenia zasobów Zweryfikuj kroki i zweryfikuj zmiany ustawień użytkownika . Inicjowanie przenoszenia rozpoczyna proces przenoszenia i tworzy kopię źródłowej maszyny wirtualnej w strefie docelowej. Finalizuje również przenoszenie nowo utworzonej maszyny wirtualnej w strefie docelowej. Polecenia cmdlet programu PowerShell lub polecenia cmdlet interfejsu wiersza polecenia w celu:
— Dodawanie regionalnych maszyn wirtualnych do kolekcji
— Rozwiązywanie zależności
— Wykonaj przeniesienie.
— Zatwierdź przeniesienie.

Przykładowe wartości

W naszych przykładach skryptów używamy tych wartości:

Ustawienie Wartość
Identyfikator subskrypcji subscription-id
Przenieś region East US
Grupa zasobów (przechowywanie metadanych dla kolekcji przenoszenia) RegionToZone-DemoMCRG
Przenoszenie nazwy kolekcji RegionToZone-DemoMC
Lokalizacja kolekcji przenoszenia eastus2euap
Identitytype SystemAssigned
Nazwa maszyny wirtualnej demoVM-MoveResource
Typ przenoszenia RegionToZone

Logowanie się do platformy Azure

Zaloguj się do subskrypcji platformy Azure za pomocą polecenia Connect-AzAccount i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.

Connect-AzAccount –Subscription "<subscription-id>"

Konfigurowanie kolekcji przenoszenia

Obiekt MoveCollection przechowuje metadane i informacje o konfiguracji dotyczące zasobów, które chcesz przenieść. Aby skonfigurować kolekcję przenoszenia, wykonaj następujące czynności:

  • Utwórz grupę zasobów dla kolekcji przenoszenia.
  • Zarejestruj dostawcę usług w subskrypcji, aby można było utworzyć zasób MoveCollection.
  • Utwórz obiekt MoveCollection z tożsamością zarządzaną. Aby obiekt MoveCollection uzyskiwał dostęp do subskrypcji, w której znajduje się usługa Resource Mover, musi mieć tożsamość zarządzaną przypisaną przez system (wcześniej znaną jako tożsamość usługi zarządzanej (MSI) zaufaną przez subskrypcję.
  • Udziel dostępu do subskrypcji usługi Resource Mover dla tożsamości zarządzanej.

Tworzenie grupy zasobów

Użyj następującego polecenia cmdlet, aby utworzyć grupę zasobów dla metadanych i konfiguracji kolekcji przenoszenia za pomocą polecenia New-AzResourceGroup. Grupa zasobów to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi.

New-AzResourceGroup -Name "RegionToZone-DemoMCRG" -Location "EastUS"

Dane wyjściowe:

Dane wyjściowe pokazują, że dysk zarządzany znajduje się w tej samej strefie dostępności co maszyna wirtualna:

ResourceGroupName : RegionToZone-DemoMCRG
Location          : eastus
ProvisioningState : Succeeded
Tags              :
                    Name     Value
                    =======  ========
                    Created  20230908

ResourceId        : /subscriptions/<Subscription-id>/resourceGroups/RegionToZone-DemoMCRG

Rejestrowanie dostawcy zasobów

  1. Zarejestruj dostawcę zasobów Microsoft.Migrate, aby można było utworzyć zasób MoveCollection w następujący sposób:

    Register-AzResourceProvider -ProviderNamespace Microsoft.Migrate
    
  2. Poczekaj na rejestrację:

    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."
    }
    

Tworzenie obiektu MoveCollection

Utwórz obiekt MoveCollection i przypisz do niego tożsamość zarządzaną w następujący sposób:

New-AzResourceMoverMoveCollection -Name "RegionToZone-DemoMC"  -ResourceGroupName "RegionToZone-DemoMCRG" -MoveRegion "eastus" -Location "eastus2euap" -IdentityType "SystemAssigned" -MoveType "RegionToZone"

Dane wyjściowe:

Etag                                   Location    Name
----                                   --------    ----
"3a00c441-0000-3400-0000-64fac1b30000" eastus2euap RegionToZone-DemoMC

Uwaga

W przypadku przenoszenia regionalnego do strefowego MoveType parametr powinien być ustawiony jako RegionToZone , a MoveRegion parametr powinien być ustawiony jako lokalizacja, w której znajdują się zasoby przechodzące przenoszenie strefowe. Upewnij się, że parametry SourceRegion i TargetRegion nie są wymagane i powinny być ustawione na wartość null.

Udzielanie dostępu do tożsamości zarządzanej

Udziel tożsamości zarządzanej dostępu do subskrypcji usługi Resource Mover w następujący sposób. Musisz być właścicielem subskrypcji.

  1. Pobierz szczegóły tożsamości z obiektu MoveCollection.

    $moveCollection = Get-AzResourceMoverMoveCollection -Name "RegionToZone-DemoMC" -ResourceGroupName "RegionToZone-DemoMCRG"
    $identityPrincipalId = $moveCollection.IdentityPrincipalId
    
  2. Przypisz wymagane role do tożsamości, aby usługa Azure Resource Mover mogła uzyskać dostęp do subskrypcji, aby ułatwić przenoszenie zasobów. Przejrzyj listę wymaganych uprawnień do przeniesienia.

    New-AzRoleAssignment -ObjectId $identityPrincipalId -RoleDefinitionName Contributor -Scope "/subscriptions/<subscription-id>""
    New-AzRoleAssignment -ObjectId $identityPrincipalId -RoleDefinitionName "User Access Administrator" -Scope "/subscriptions/<subscription-id>"
    

Dodawanie regionalnych maszyn wirtualnych do kolekcji przenoszenia

Pobierz identyfikatory istniejących zasobów źródłowych, które chcesz przenieść. Utwórz obiekt ustawień zasobu docelowego, a następnie dodaj zasoby do kolekcji przenoszenia.

Uwaga

Zasoby dodane do kolekcji przenoszenia muszą znajdować się w tej samej subskrypcji, ale mogą znajdować się w różnych grupach zasobów.

  1. Utwórz obiekt ustawienia zasobu docelowego w następujący sposób:

    $targetResourceSettingsObj = New-Object Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Api20230801.VirtualMachineResourceSettings
    $targetResourceSettingsObj.ResourceType = "Microsoft.Compute/virtualMachines"
    $targetResourceSettingsObj.TargetResourceName = "RegionToZone-demoTargetVm"
    $targetResourceSettingsObj.TargetAvailabilityZone = "2"
    

    Wyjście

    ResourceType                      TargetResourceGroupName TargetResourceName        TargetAvailabilitySetId TargetAvailabilityZone TargetVMSize UserManagedIdentity
    ------------                      ----------------------- ------------------        ----------------------- ---------------------- ------------ -------------------
    Microsoft.Compute/virtualMachines                         RegionToZone-demoTargetVm                         2
    
  2. Dodawanie zasobów

    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
    

    Wyjście

    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                              :
    

Modyfikowanie ustawień

Ustawienia docelowe można modyfikować podczas przenoszenia maszyn wirtualnych platformy Azure i skojarzonych zasobów. Zalecamy zmianę ustawień docelowych tylko przed zweryfikowaniem kolekcji przenoszenia.

Ustawienia, które można zmodyfikować, to:

  • Ustawienia maszyny wirtualnej: grupa zasobów, nazwa maszyny wirtualnej, strefa dostępności maszyny wirtualnej, jednostka SKU maszyny wirtualnej, magazyn kluczy maszyny wirtualnej i zestaw szyfrowania dysków.
  • Ustawienia zasobów sieciowych: w przypadku interfejsów sieciowych, sieci wirtualnych (VNets/) i sieciowych grup zabezpieczeń/interfejsów sieciowych można wykonać następujące czynności:
    • Użyj istniejącego zasobu sieciowego w regionie docelowym.
    • Utwórz nowy zasób o innej nazwie.
  • Publiczny adres IP/moduł równoważenia obciążenia: jednostka SKU i strefa

Zmodyfikuj ustawienia w następujący sposób:

  1. Pobierz zasób przenoszenia, dla którego chcesz edytować właściwości. Aby na przykład pobrać uruchomienie maszyny wirtualnej:

    $moveResourceObj = Get-AzResourceMoverMoveResource -MoveCollectionName " RegionToZone-DemoMCRG " -ResourceGroupName " RegionToZone-DemoMC " -Name "PSDemoVM"
    
  2. Skopiuj ustawienie zasobu do obiektu docelowego ustawienia zasobów.

    $TargetResourceSettingObj = $moveResourceObj.ResourceSetting
    
  3. Ustaw parametr w obiekcie ustawienia zasobu docelowego. Aby na przykład zmienić nazwę docelowej maszyny wirtualnej:

    $TargetResourceSettingObj.TargetResourceName="PSDemoVM-target"
    
  4. Zaktualizuj ustawienia lokalizacji docelowej przenoszenia zasobu. W tym przykładzie zmienimy nazwę maszyny wirtualnej 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
    

Rozwiązywanie problemów z zależnościami

Sprawdź, czy dodane regionalne maszyny wirtualne mają jakiekolwiek zależności od innych zasobów i dodaj je zgodnie z potrzebami.

  1. Rozwiąż problemy z zależnościami w następujący sposób:

    Resolve-AzResourceMoverMoveCollectionDependency -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC"
    

    Dane wyjściowe (gdy istnieją zależności)

    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. Aby uzyskać listę zasobów dodanych do kolekcji przenoszenia:

    $list = Get-AzResourceMoverMoveResource -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" $list.Name
    

    Wyjście:

    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. Aby usunąć zasoby z kolekcji zasobów, postępuj zgodnie z tymi instrukcjami.

Inicjowanie przenoszenia zasobów maszyny wirtualnej

Invoke-AzResourceMoverInitiateMove -ResourceGroupName "RegionToZone-DemoMCRG" -MoveCollectionName "RegionToZone-DemoMC" -MoveResource $("demoVM-MoveResource") -MoveResourceInputType "MoveResourceId"

Wyjście

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

Zatwierdzenie

Po początkowym przeniesieniu należy zatwierdzić przeniesienie lub go odrzucić. Zatwierdzenie kończy przenoszenie do regionu docelowego.

Zatwierdź przeniesienie w następujący sposób:

Invoke-AzResourceMover-VMZonalMoveCommit -ResourceGroupName "RG-MoveCollection-demoRMS" -MoveCollectionName "PS-centralus-westcentralus-demoRMS" -MoveResource $('psdemovm111', 'PSDemoRM-vnet','PSDemoVM-nsg', ‘PSDemoVM’) -MoveResourceInputType "MoveResourceId"

Dane wyjściowe:

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 

Usuwanie źródłowych regionalnych maszyn wirtualnych

Po zatwierdzeniu przeniesienia i sprawdzeniu, czy zasoby działają zgodnie z oczekiwaniami w regionie docelowym, można usunąć każdy zasób źródłowy przy użyciu:

Następne kroki

Dowiedz się, jak przenosić maszyny wirtualne platformy Azure z pojedynczego wystąpienia z konfiguracji regionalnej do strefowej za pośrednictwem portalu.