Udostępnij przez


Skonfiguruj odzyskiwanie po awarii maszyn wirtualnych VMware na platformę Azure za pomocą programu PowerShell

Uwaga

W tym artykule odwołuje się do systemu CentOS — dystrybucji systemu Linux, która jest stanem End Of Life (EOL). Proszę rozważyć swoje użycie i odpowiednio zaplanować. Aby uzyskać więcej informacji, zobacz wskazówki dotyczące zakończenia życia systemu CentOS.

W tym artykule przedstawiono sposób replikowania maszyn wirtualnych VMware i przełączania ich w tryb failover na platformę Azure przy użyciu programu Azure PowerShell.

Naucz się, jak:

  • Utwórz magazyn usługi Recovery Services i ustaw kontekst magazynu.
  • Zweryfikuj rejestrację serwera w magazynie.
  • Konfigurowanie replikacji, w tym zasad replikacji. Dodaj serwer vCenter i odnajdź maszyny wirtualne.
  • Dodawanie serwera vCenter i odnajdywanie
  • Utwórz konta magazynu w celu przechowywania dzienników replikacji lub danych i replikowania maszyn wirtualnych.
  • Wykonaj przełączenie awaryjne. Skonfiguruj ustawienia trybu failover, wykonaj ustawienia replikowania maszyn wirtualnych.

Uwaga

Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Wymagania wstępne

Przed rozpoczęciem:

Logowanie się do platformy Azure

Zaloguj się do subskrypcji platformy Azure przy użyciu polecenia cmdlet Connect-AzAccount:

Connect-AzAccount

Wybierz subskrypcję platformy Azure, do której chcesz replikować maszyny wirtualne VMware. Użyj polecenia cmdlet Get-AzSubscription, aby uzyskać listę subskrypcji platformy Azure, do których masz dostęp. Wybierz subskrypcję platformy Azure, używając polecenia cmdlet Select-AzSubscription.

Select-AzSubscription -SubscriptionName "ASR Test Subscription"

Konfigurowanie magazynu usługi Recovery Services

  1. Utwórz grupę zasobów, w której ma zostać utworzony magazyn usługi Recovery Services. W poniższym przykładzie grupa zasobów nosi nazwę VMwareDRtoAzurePS i jest tworzona w regionie Azji Wschodniej.

    New-AzResourceGroup -Name "VMwareDRtoAzurePS" -Location "East Asia"
    
    ResourceGroupName : VMwareDRtoAzurePS
    Location          : eastasia
    ProvisioningState : Succeeded
    Tags              :
    ResourceId        : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/VMwareDRtoAzurePS
    
  2. Utwórz magazyn usługi Recovery Services. W poniższym przykładzie magazyn usługi Recovery Services nosi nazwę VMwareDRToAzurePs i jest tworzony w regionie Azja Wschodnia i w grupie zasobów utworzonej w poprzednim kroku.

    New-AzRecoveryServicesVault -Name "VMwareDRToAzurePs" -Location "East Asia" -ResourceGroupName "VMwareDRToAzurePs"
    
    Name              : VMwareDRToAzurePs
    ID                : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/VMwareDRToAzurePs/providers/Microsoft.RecoveryServices/vaults/VMwareDRToAzurePs
    Type              : Microsoft.RecoveryServices/vaults
    Location          : eastasia
    ResourceGroupName : VMwareDRToAzurePs
    SubscriptionId    : xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    Properties        : Microsoft.Azure.Commands.RecoveryServices.ARSVaultProperties
    
  3. Pobierz klucz rejestracji dla magazynu. Klucz rejestracji magazynu służy do rejestrowania lokalnego serwera konfiguracji w tym magazynie. Rejestracja jest częścią procesu instalacji oprogramowania serwera konfiguracji.

    #Get the vault object by name and resource group and save it to the $vault PowerShell variable 
    $vault = Get-AzRecoveryServicesVault -Name "VMwareDRToAzurePS" -ResourceGroupName "VMwareDRToAzurePS"
    
    #Download vault registration key to the path C:\Work
    Get-AzRecoveryServicesVaultSettingsFile -SiteRecovery -Vault $Vault -Path "C:\Work\"
    
    FilePath
    --------
    C:\Work\VMwareDRToAzurePs_2017-11-23T19-52-34.VaultCredentials
    
  4. Użyj pobranego klucza rejestracji magazynu i postępuj zgodnie z krokami opisanymi w artykułach, aby ukończyć instalację i rejestrację serwera konfiguracyjnego.

Ustaw kontekst sejfu

Ustaw kontekst magazynu przy użyciu polecenia cmdlet Set-ASRVaultContext. Po skonfigurowaniu, kolejne operacje usługi Azure Site Recovery w sesji programu PowerShell są wykonywane w kontekście wybranej skrytki.

Napiwek

Moduł PowerShell usługi Azure Site Recovery (moduł Az.RecoveryServices) zawiera łatwe w użyciu aliasy dla większości cmdletów. Polecenia cmdlet w module przyjmują formę <Operation>-AzRecoveryServicesAsr<Object> i mają równoważne aliasy, które przyjmują formę <Operation>-ASR<Object>. Aliasy poleceń cmdlet można zastąpić w celu ułatwienia użycia.

W poniższym przykładzie szczegóły skarbca ze zmiennej $vault służą do ustalenia kontekstu skarbca dla sesji programu PowerShell.

Set-ASRVaultContext -Vault $vault
ResourceName      ResourceGroupName ResourceNamespace          ResourceType
------------      ----------------- -----------------          -----------
VMwareDRToAzurePs VMwareDRToAzurePs Microsoft.RecoveryServices vaults

Alternatywą dla polecenia cmdlet Set-ASRVaultContext może być również użycie polecenia cmdlet Import-AzRecoveryServicesAsrVaultSettingsFile w celu ustawienia kontekstu magazynu. Określ ścieżkę, w której znajduje się plik klucza rejestracji magazynu jako parametr -path do polecenia cmdlet Import-AzRecoveryServicesAsrVaultSettingsFile. Na przykład:

Get-AzRecoveryServicesVaultSettingsFile -SiteRecovery -Vault $Vault -Path "C:\Work\"
Import-AzRecoveryServicesAsrVaultSettingsFile -Path "C:\Work\VMwareDRToAzurePs_2017-11-23T19-52-34.VaultCredentials"

W kolejnych sekcjach tego artykułu założono, że kontekst magazynu dla operacji usługi Azure Site Recovery został ustawiony.

Zweryfikuj rejestrację skarbca

W tym przykładzie mamy następujące wymagania:

  • Serwer konfiguracji (ConfigurationServer) został zarejestrowany w tej skrytce.
  • Dodatkowy serwer przetwarzania (ScaleOut-ProcessServer) został zarejestrowany na serwerze ConfigurationServer
  • Konta (vCenter_account, WindowsAccount, LinuxAccount) zostały skonfigurowane na serwerze konfiguracji. Te konta służą do dodawania serwera vCenter, odnajdywania maszyn wirtualnych i instalowania oprogramowania usługi mobilności w trybie push na serwerach z systemami Windows i Linux, które mają być replikowane.
  1. Zarejestrowane serwery konfiguracji są reprezentowane przez obiekt sieci szkieletowej w usłudze Site Recovery. Pobierz listę obiektów sieci szkieletowej w magazynie i zidentyfikuj serwer konfiguracji.

    # Verify that the Configuration server is successfully registered to the vault
    $ASRFabrics = Get-AzRecoveryServicesAsrFabric
    $ASRFabrics.count
    
    1
    
    #Print details of the Configuration Server
    $ASRFabrics[0]
    
    Name                  : 2c33d710a5ee6af753413e97f01e314fc75938ea4e9ac7bafbf4a31f6804460d
    FriendlyName          : ConfigurationServer
    ID                    : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/VMwareDRToAzurePs/providers/Microsoft.RecoveryServices/vaults/VMwareDRToAzurePs/replicationFabrics
                            /2c33d710a5ee6af753413e97f01e314fc75938ea4e9ac7bafbf4a31f6804460d
    Type                  : Microsoft.RecoveryServices/vaults/replicationFabrics
    FabricType            : VMware
    SiteIdentifier        : ef7a1580-f356-4a00-aa30-7bf80f952510
    FabricSpecificDetails : Microsoft.Azure.Commands.RecoveryServices.SiteRecovery.ASRVMWareSpecificDetails
    
  2. Zidentyfikuj serwery przetwarzania, których można użyć do replikowania maszyn.

    $ProcessServers = $ASRFabrics[0].FabricSpecificDetails.ProcessServers
    for($i=0; $i -lt $ProcessServers.count; $i++) {
     "{0,-5} {1}" -f $i, $ProcessServers[$i].FriendlyName
    }
    
    0     ScaleOut-ProcessServer
    1     ConfigurationServer
    

    Z powyższych danych wyjściowych $ProcessServers[0] odpowiada ScaleOut-ProcessServer, a $ProcessServers[1] odpowiada roli serwera przetwarzania na ConfigurationServer

  3. Zidentyfikuj konta skonfigurowane na serwerze konfiguracji.

    $AccountHandles = $ASRFabrics[0].FabricSpecificDetails.RunAsAccounts
    #Print the account details
    $AccountHandles
    
    AccountId AccountName
    --------- -----------
    1         vCenter_account
    2         WindowsAccount
    3         LinuxAccount
    

    Na podstawie powyższych danych wyjściowych $AccountHandles[0] odpowiada koncie vCenter_account, $AccountHandles[1] odpowiada koncie WindowsAccount, a $AccountHandles[2] odpowiada koncie LinuxAccount

Tworzenie zasad replikacji

W tym kroku są tworzone dwie zasady replikacji. Jedna zasada replikacji maszyn wirtualnych VMware na platformę Azure, a druga do replikowania maszyn wirtualnych w trybie failover uruchomionych na platformie Azure z powrotem do lokalnej lokacji programu VMware.

Uwaga

Większość operacji usługi Azure Site Recovery jest wykonywana asynchronicznie. Po zainicjowaniu operacji zostanie przesłane zadanie usługi Azure Site Recovery i zostanie zwrócony obiekt śledzenia zadań. Ten obiekt śledzenia zadań może służyć do monitorowania stanu operacji.

  1. Utwórz zasady replikacji o nazwie ReplicationPolicy , aby replikować maszyny wirtualne VMware na platformę Azure przy użyciu określonych właściwości.

    $Job_PolicyCreate = New-AzRecoveryServicesAsrPolicy -VMwareToAzure -Name "ReplicationPolicy" -RecoveryPointRetentionInHours 24 -ApplicationConsistentSnapshotFrequencyInHours 4 -RPOWarningThresholdInMinutes 60
    
    # Track Job status to check for completion
    while (($Job_PolicyCreate.State -eq "InProgress") -or ($Job_PolicyCreate.State -eq "NotStarted")){
            sleep 10;
            $Job_PolicyCreate = Get-ASRJob -Job $Job_PolicyCreate
    }
    
    #Display job status
    $Job_PolicyCreate
    
    Name             : 8d18e2d9-479f-430d-b76b-6bc7eb2d0b3e
    ID               : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/VMwareDRToAzurePs/providers/Microsoft.RecoveryServices/vaults/VMwareDRToAzurePs/replicationJobs/8d18e2d
                       9-479f-430d-b76b-6bc7eb2d0b3e
    Type             :
    JobType          : AddProtectionProfile
    DisplayName      : Create replication policy
    ClientRequestId  : a162b233-55d7-4852-abac-3d595a1faac2 ActivityId: 9895234a-90ea-4c1a-83b5-1f2c6586252a
    State            : Succeeded
    StateDescription : Completed
    StartTime        : 11/24/2017 2:49:24 AM
    EndTime          : 11/24/2017 2:49:23 AM
    TargetObjectId   : bbbbbbbb-1111-2222-3333-cccccccccccc
    TargetObjectType : ProtectionProfile
    TargetObjectName : ReplicationPolicy
    AllowedActions   :
    Tasks            : {Prerequisites check for creating the replication policy, Creating the replication policy}
    Errors           : {}
    
  2. Utwórz zasady replikacji do użycia na potrzeby powrotu po awarii z platformy Azure do lokalnej lokacji programu VMware.

    $Job_FailbackPolicyCreate = New-AzRecoveryServicesAsrPolicy -AzureToVMware -Name "ReplicationPolicy-Failback" -RecoveryPointRetentionInHours 24 -ApplicationConsistentSnapshotFrequencyInHours 4 -RPOWarningThresholdInMinutes 60
    

    Użyj szczegółów zadania w $Job_FailbackPolicyCreate, aby śledzić operację aż do zakończenia.

    • Utwórz mapowanie kontenera ochrony do powiązania zasad replikacji z serwerem konfiguracji.
    #Get the protection container corresponding to the Configuration Server
    $ProtectionContainer = Get-AzRecoveryServicesAsrProtectionContainer -Fabric $ASRFabrics[0]
    
    #Get the replication policies to map by name.
    $ReplicationPolicy = Get-AzRecoveryServicesAsrPolicy -Name "ReplicationPolicy"
    $FailbackReplicationPolicy = Get-AzRecoveryServicesAsrPolicy -Name "ReplicationPolicy-Failback"
    
    # Associate the replication policies to the protection container corresponding to the Configuration Server.
    
    $Job_AssociatePolicy = New-AzRecoveryServicesAsrProtectionContainerMapping -Name "PolicyAssociation1" -PrimaryProtectionContainer $ProtectionContainer -Policy $ReplicationPolicy
    
    # Check the job status
    while (($Job_AssociatePolicy.State -eq "InProgress") -or ($Job_AssociatePolicy.State -eq "NotStarted")){
            sleep 10;
            $Job_AssociatePolicy = Get-ASRJob -Job $Job_AssociatePolicy
    }
    $Job_AssociatePolicy.State
    
    <# In the protection container mapping used for failback (replicating failed over virtual machines
       running in Azure, to the primary VMware site.) the protection container corresponding to the
       Configuration server acts as both the Primary protection container and the recovery protection
       container
    #>
     $Job_AssociateFailbackPolicy = New-AzRecoveryServicesAsrProtectionContainerMapping -Name "FailbackPolicyAssociation" -PrimaryProtectionContainer $ProtectionContainer -RecoveryProtectionContainer $ProtectionContainer -Policy $FailbackReplicationPolicy
    
    # Check the job status
    while (($Job_AssociateFailbackPolicy.State -eq "InProgress") -or ($Job_AssociateFailbackPolicy.State -eq "NotStarted")){
            sleep 10;
            $Job_AssociateFailbackPolicy = Get-ASRJob -Job $Job_AssociateFailbackPolicy
    }
    $Job_AssociateFailbackPolicy.State
    
    

Dodawanie serwera vCenter i odnajdywanie maszyn wirtualnych

Dodaj serwer vCenter według adresu IP lub nazwy hosta. Parametr -port określa port na serwerze vCenter do nawiązania połączenia, -Name parametr określa przyjazną nazwę do użycia dla serwera vCenter, a parametr -Account określa uchwyt konta na serwerze konfiguracji do odnajdywania maszyn wirtualnych zarządzanych przez serwer vCenter.

# The $AccountHandles[0] variable holds details of vCenter_account

$Job_AddvCenterServer = New-AzRecoveryServicesAsrvCenter -Fabric $ASRFabrics[0] -Name "MyvCenterServer" -IpOrHostName "10.150.24.63" -Account $AccountHandles[0] -Port 443

#Wait for the job to complete and ensure it completed successfully

while (($Job_AddvCenterServer.State -eq "InProgress") -or ($Job_AddvCenterServer.State -eq "NotStarted")) {
        sleep 30;
        $Job_AddvCenterServer = Get-ASRJob -Job $Job_AddvCenterServer
}
$Job_AddvCenterServer
Name             : 0f76f937-f9cf-4e0e-bf27-10c9d1c252a4
ID               : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/VMwareDRToAzurePs/providers/Microsoft.RecoveryServices/vaults/VMwareDRToAzurePs/replicationJobs/0f76f93
                   7-f9cf-4e0e-bf27-10c9d1c252a4
Type             :
JobType          : DiscoverVCenter
DisplayName      : Add vCenter server
ClientRequestId  : a2af8892-5686-4d64-a528-10445bc2f698 ActivityId: 7ec05aad-002e-4da0-991f-95d0de7a9f3a
State            : Succeeded
StateDescription : Completed
StartTime        : 11/24/2017 2:41:47 AM
EndTime          : 11/24/2017 2:44:37 AM
TargetObjectId   : 10.150.24.63
TargetObjectType : VCenter
TargetObjectName : MyvCenterServer
AllowedActions   :
Tasks            : {Adding vCenter server}
Errors           : {}

Utwórz konta magazynu na potrzeby replikacji

Aby zapisywać na dysku zarządzanym, skorzystaj z modułu Az.RecoveryServices programu PowerShell w wersji 2.0.0 lub nowszej. Wymaga tylko utworzenia konta na dzienniki. Zaleca się używanie standardowego typu konta i nadmiarowości LRS, ponieważ jest używana do przechowywania tylko dzienników tymczasowych. Upewnij się, że konto magazynu zostało utworzone w tym samym regionie świadczenia usługi Azure co magazyn.

Jeśli używasz wersji modułu Az.RecoveryServices starszej niż 2.0.0, wykonaj następujące kroki, aby utworzyć konta magazynu. Te konta przechowywania są używane później do replikowania maszyn wirtualnych. Upewnij się, że konta magazynu są tworzone w tym samym regionie świadczenia usługi Azure co magazyn. Ten krok można pominąć, jeśli planujesz użyć istniejącego konta magazynu na potrzeby replikacji.

Uwaga

Podczas replikowania lokalnych maszyn wirtualnych do konta magazynu w warstwie Premium należy określić dodatkowe standardowe konto magazynu (konto magazynu dzienników). Konto przechowywania dzienników przechowuje dzienniki replikacji jako magazyn pośredni, dopóki dzienniki nie zostaną zastosowane do docelowego magazynu Premium.


$PremiumStorageAccount = New-AzStorageAccount -ResourceGroupName "VMwareDRToAzurePs" -Name "premiumstorageaccount1" -Location "East Asia" -SkuName Premium_LRS

$LogStorageAccount = New-AzStorageAccount -ResourceGroupName "VMwareDRToAzurePs" -Name "logstorageaccount1" -Location "East Asia" -SkuName Standard_LRS

$ReplicationStdStorageAccount= New-AzStorageAccount -ResourceGroupName "VMwareDRToAzurePs" -Name "replicationstdstorageaccount1" -Location "East Asia" -SkuName Standard_LRS

Replikowanie maszyn wirtualnych VMware

Odnalezienie maszyn wirtualnych z serwera vCenter trwa około 15–20 minut. Po odnalezieniu dla każdej odnalezionej maszyny wirtualnej tworzony jest obiekt chronionego elementu w usłudze Azure Site Recovery. W tym kroku trzy odnalezione maszyny wirtualne są replikowane do kont usługi Azure Storage utworzonych w poprzednim kroku.

Aby chronić odnalezioną maszynę wirtualną, potrzebne będą następujące szczegóły:

  • Element podlegający ochronie do replikacji.
  • Konto przechowywania, do którego replikujesz maszynę wirtualną (tylko jeśli replikujesz do konta przechowywania).
  • Magazyn dzienników jest wymagany do ochrony maszyn wirtualnych na koncie magazynu w warstwie Premium lub na dysku zarządzanym.
  • Serwer przetwarzania, który ma być używany do replikacji. Lista dostępnych serwerów przetwarzania została pobrana i zapisana w zmiennych $ProcessServers[0](ScaleOut-ProcessServer) i $ProcessServers[1](ConfigurationServer).
  • Konto używane do wypychania instalacji oprogramowania usługa mobilności na maszynach. Lista dostępnych kont została pobrana i zapisana w zmiennej $AccountHandles .
  • Mapowanie kontenera ochrony dla zasad replikacji do użycia na potrzeby replikacji.
  • Grupa zasobów, w której należy utworzyć maszyny wirtualne w trybie failover.
  • Opcjonalnie należy połączyć sieć wirtualną platformy Azure i podsieć, z którą powinna zostać połączona maszyna wirtualna w trybie failover.

Teraz zreplikuj następujące maszyny wirtualne przy użyciu ustawień określonych w tej tabeli:

Maszyna wirtualna Serwer przetwarzania Konto magazynu Konto usługi Log Storage Policy Rozliczanie instalacji usługi mobilności Docelowa grupa zasobów Docelowa sieć wirtualna Podsieć docelowa
CentOSVM1 Serwer Konfiguracji Nie dotyczy logstorageaccount1 (konto logstorageaccount1) PolitykaReplikacji LinuxAccount (Konto systemu Linux) VMwareDRToAzurePs AsR-vnet Podsieć-1
Wygraj 2K12VM1 ScaleOut-ProcessServer PremiumStorageAccount1 logstorageaccount1 (konto logstorageaccount1) PolitykaReplikacji Konto systemu Windows VMwareDRToAzurePs AsR-vnet Podsieć-1
CentOSVM2 Serwer Konfiguracji Replicationstdstorageaccount1 Nie dotyczy PolitykaReplikacji LinuxAccount (Konto systemu Linux) VMwareDRToAzurePs AsR-vnet Podsieć-1

#Get the target resource group to be used
$ResourceGroup = Get-AzResourceGroup -Name "VMwareToAzureDrPs"

#Get the target virtual network to be used
$RecoveryVnet = Get-AzVirtualNetwork -Name "ASR-vnet" -ResourceGroupName "asrrg" 

#Get the protection container mapping for replication policy named ReplicationPolicy
$PolicyMap  = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $ProtectionContainer | where PolicyFriendlyName -eq "ReplicationPolicy"

#Get the protectable item corresponding to the virtual machine CentOSVM1
$VM1 = Get-AzRecoveryServicesAsrProtectableItem -ProtectionContainer $ProtectionContainer -FriendlyName "CentOSVM1"

# Enable replication for virtual machine CentOSVM1 using the Az.RecoveryServices module 2.0.0 onwards to replicate to managed disks
# The name specified for the replicated item needs to be unique within the protection container. Using a random GUID to ensure uniqueness
$Job_EnableReplication1 = New-AzRecoveryServicesAsrReplicationProtectedItem -VMwareToAzure -ProtectableItem $VM1 -Name (New-Guid).Guid -ProtectionContainerMapping $PolicyMap -ProcessServer $ProcessServers[1] -Account $AccountHandles[2] -RecoveryResourceGroupId $ResourceGroup.ResourceId -logStorageAccountId $LogStorageAccount.Id -RecoveryAzureNetworkId $RecoveryVnet.Id -RecoveryAzureSubnetName "Subnet-1"

# Alternatively, if the virtual machine CentOSVM1 has CMK enabled disks, enable replication using Az module 3.3.0 onwards as below
# $diskID is the Disk Encryption Set ID to be used for all replica managed disks and target managed disks in the target region
$Job_EnableReplication1 = New-AzRecoveryServicesAsrReplicationProtectedItem -VMwareToAzure -ProtectableItem $VM1 -Name (New-Guid).Guid -ProtectionContainerMapping $PolicyMap -ProcessServer $ProcessServers[1] -Account $AccountHandles[2] -RecoveryResourceGroupId $ResourceGroup.ResourceId -logStorageAccountId -DiskEncryptionSetId $diskId $LogStorageAccount.Id -RecoveryAzureNetworkId $RecoveryVnet.Id -RecoveryAzureSubnetName "Subnet-1"

#Get the protectable item corresponding to the virtual machine Win2K12VM1
$VM2 = Get-AzRecoveryServicesAsrProtectableItem -ProtectionContainer $ProtectionContainer -FriendlyName "Win2K12VM1"

# Enable replication for virtual machine Win2K12VM1
$Job_EnableReplication2 = New-AzRecoveryServicesAsrReplicationProtectedItem -VMwareToAzure -ProtectableItem $VM2 -Name (New-Guid).Guid -ProtectionContainerMapping $PolicyMap -RecoveryAzureStorageAccountId $PremiumStorageAccount.Id -LogStorageAccountId $LogStorageAccount.Id -ProcessServer $ProcessServers[0] -Account $AccountHandles[1] -RecoveryResourceGroupId $ResourceGroup.ResourceId -RecoveryAzureNetworkId $RecoveryVnet.Id -RecoveryAzureSubnetName "Subnet-1"

#Get the protectable item corresponding to the virtual machine CentOSVM2
$VM3 = Get-AzRecoveryServicesAsrProtectableItem -ProtectionContainer $ProtectionContainer -FriendlyName "CentOSVM2"

# Enable replication for virtual machine CentOSVM2
$Job_EnableReplication3 = New-AzRecoveryServicesAsrReplicationProtectedItem -VMwareToAzure -ProtectableItem $VM3 -Name (New-Guid).Guid -ProtectionContainerMapping $PolicyMap -RecoveryAzureStorageAccountId $ReplicationStdStorageAccount.Id  -ProcessServer $ProcessServers[1] -Account $AccountHandles[2] -RecoveryResourceGroupId $ResourceGroup.ResourceId -RecoveryAzureNetworkId $RecoveryVnet.Id -RecoveryAzureSubnetName "Subnet-1"

Po pomyślnym zakończeniu zadania włączania replikacji, zostanie uruchomiona replikacja początkowa dla maszyn wirtualnych. Replikacja początkowa może zająć trochę czasu, w zależności od ilości danych, które mają być replikowane, oraz przepustowości dostępnej na potrzeby replikacji. Po zakończeniu replikacji początkowej maszyna wirtualna przechodzi do stanu chronionego. Gdy maszyna wirtualna osiągnie chroniony stan, możesz przeprowadzić test pracy w trybie failover dla maszyny wirtualnej, dodać ją do planów odzyskiwania itp.

Stan replikacji i kondycję replikacji maszyny wirtualnej można sprawdzić za pomocą polecenia cmdlet Get-ASRReplicationProtectedItem.

Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $ProtectionContainer | Select FriendlyName, ProtectionState, ReplicationHealth
FriendlyName ProtectionState                 ReplicationHealth
------------ ---------------                 -----------------
CentOSVM1    Protected                       Normal
CentOSVM2    InitialReplicationInProgress    Normal
Win2K12VM1   Protected                       Normal

Konfigurowanie ustawień trybu failover

Ustawienia trybu failover dla chronionych maszyn można zaktualizować przy użyciu polecenia cmdlet Set-ASRReplicationProtectedItem. Niektóre ustawienia, które można zaktualizować za pomocą tego polecenia cmdlet:

  • Nazwa maszyny wirtualnej, która ma zostać utworzona w trybie failover
  • Rozmiar maszyny wirtualnej do utworzenia w przypadku wystąpienia failover
  • Sieć wirtualna i podsieć platformy Azure, z którą powinny być połączone karty sieciowe maszyny wirtualnej w trybie failover
  • Przełączenie w tryb awaryjny na dyski zarządzane
  • Stosowanie korzyści użycia hybrydowego platformy Azure
  • Przypisz statyczny adres IP z docelowej sieci wirtualnej do przypisania do maszyny wirtualnej w trybie failover.

W tym przykładzie zaktualizujemy rozmiar maszyny wirtualnej do utworzenia w trybie failover dla maszyny wirtualnej Win2K12VM1 i określimy, że maszyna wirtualna używa dysków zarządzanych w trybie failover.

$ReplicatedVM1 = Get-AzRecoveryServicesAsrReplicationProtectedItem -FriendlyName "Win2K12VM1" -ProtectionContainer $ProtectionContainer

Set-AzRecoveryServicesAsrReplicationProtectedItem -InputObject $ReplicatedVM1 -Size "Standard_DS11" -UseManagedDisk True
Name             : cafa459c-44a7-45b0-9de9-3d925b0e7db9
ID               : /Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/VMwareDRToAzurePs/providers/Microsoft.RecoveryServices/vaults/VMwareDRToAzurePs/replicationJobs/cafa459
                   c-44a7-45b0-9de9-3d925b0e7db9
Type             :
JobType          : UpdateVmProperties
DisplayName      : Update the virtual machine
ClientRequestId  : b0b51b2a-f151-4e9a-a98e-064a5b5131f3 ActivityId: ac2ba316-be7b-4c94-a053-5363f683d38f
State            : InProgress
StateDescription : InProgress
StartTime        : 11/24/2017 2:04:26 PM
EndTime          :
TargetObjectId   : aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
TargetObjectType : ProtectionEntity
TargetObjectName : Win2K12VM1
AllowedActions   :
Tasks            : {Update the virtual machine properties}
Errors           : {}

Wykonywanie testu przejścia w tryb failover

  1. Uruchom próbne odzyskiwanie po awarii (test pracy w trybie failover) w następujący sposób:

    #Test failover of Win2K12VM1 to the test virtual network "V2TestNetwork"
    
    #Get details of the test failover virtual network to be used
    TestFailovervnet = Get-AzVirtualNetwork -Name "V2TestNetwork" -ResourceGroupName "asrrg" 
    
    #Start the test failover operation
    $TFOJob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem $ReplicatedVM1 -AzureVMNetworkId $TestFailovervnet.Id -Direction PrimaryToRecovery
    
  2. Po pomyślnym zakończeniu testu pracy w trybie failover zauważysz, że maszyna wirtualna z sufiksem "-Test" (Win2K12VM1-Test w tym przypadku) zostanie utworzona na platformie Azure.

  3. Teraz możesz nawiązać połączenie z maszyną wirtualną, która została przetestowana w trybie przełączania awaryjnego, i zweryfikować to przełączenie awaryjne.

  4. Wyczyść test pracy w trybie failover przy użyciu polecenia cmdlet Start-ASRTestFailoverCleanupJob. Ta operacja usuwa maszynę wirtualną utworzoną w ramach operacji testowania pracy w trybie failover.

    $Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -ReplicationProtectedItem $ReplicatedVM1
    

Przełączenie awaryjne do Azure

W tym kroku przełączymy maszynę wirtualną Win2K12VM1 w tryb failover do określonego punktu odzyskiwania.

  1. Pobierz listę dostępnych punktów odzyskiwania do użycia w trybie failover:

    # Get the list of available recovery points for Win2K12VM1
    $RecoveryPoints = Get-AzRecoveryServicesAsrRecoveryPoint -ReplicationProtectedItem $ReplicatedVM1
    "{0} {1}" -f $RecoveryPoints[0].RecoveryPointType, $RecoveryPoints[0].RecoveryPointTime
    
    CrashConsistent 11/24/2017 5:28:25 PM
    
    
    #Start the failover job
    $Job_Failover = Start-AzRecoveryServicesAsrUnplannedFailoverJob -ReplicationProtectedItem $ReplicatedVM1 -Direction PrimaryToRecovery -RecoveryPoint $RecoveryPoints[0]
    do {
            $Job_Failover = Get-ASRJob -Job $Job_Failover;
            sleep 60;
    } while (($Job_Failover.State -eq "InProgress") -or ($JobFailover.State -eq "NotStarted"))
    $Job_Failover.State
    
    Succeeded
    
  2. Gdy przełączenie w tryb failover zakończy się pomyślnie, możesz zatwierdzić operację failover i skonfigurować replikację odwrotną z platformy Azure z powrotem do lokalizacji VMware na miejscu.

Następne kroki

Dowiedz się, jak zautomatyzować więcej zadań przy użyciu dokumentacji programu PowerShell usługi Azure Site Recovery.