PowerShell ile VMware VM'lerinin Azure'a olağanüstü durum kurtarmayı ayarlama

Dikkat

Bu makalede, Kullanım Süresi Sonu (EOL) durumuna yakın bir Linux dağıtımı olan CentOS'a başvuruda bulunur. Lütfen kullanımınızı göz önünde bulundurun ve uygun şekilde planlayın. Daha fazla bilgi için bkz . CentOS Kullanım Süresi Sonu kılavuzu.

Bu makalede, Azure PowerShell kullanarak VMware sanal makinelerini Azure'a çoğaltmayı ve yük devretmeyi göreceksiniz.

Şunları yapmayı öğreneceksiniz:

  • Kurtarma Hizmetleri kasası oluşturun ve kasa bağlamını ayarlayın.
  • Kasada sunucu kaydını doğrulayın.
  • Çoğaltma ilkesi de dahil olmak üzere çoğaltmayı ayarlayın. vCenter sunucunuzu ekleyin ve VM'leri bulun.
  • vCenter sunucusu ekleme ve bulma
  • Çoğaltma günlüklerini veya verilerini tutmak ve VM'leri çoğaltmak için depolama hesapları oluşturun.
  • Yük devretme gerçekleştirin. Yük devretme ayarlarını yapılandırın, sanal makineleri çoğaltmak için bir ayar gerçekleştirin.

Not

Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz. Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Önkoşullar

Başlamadan önce:

Azure'da oturum açma

Bağlan-AzAccount cmdlet'ini kullanarak Azure aboneliğinizde oturum açın:

Connect-AzAccount

VMware sanal makinelerinizi çoğaltmak istediğiniz Azure aboneliğini seçin. Erişiminiz olan Azure aboneliklerinin listesini almak için Get-AzSubscription cmdlet'ini kullanın. Select-AzSubscription cmdlet'ini kullanarak çalışmak için Azure aboneliğini seçin.

Select-AzSubscription -SubscriptionName "ASR Test Subscription"

Kurtarma Hizmetleri kasası ayarlama

  1. Kurtarma Hizmetleri kasasının oluşturulacağı bir kaynak grubu oluşturun. Aşağıdaki örnekte kaynak grubu VMwareDRtoAzurePS olarak adlandırılmıştır ve Doğu Asya bölgesinde oluşturulmuştur.

    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. Kurtarma hizmetleri kasası oluşturun. Aşağıdaki örnekte Kurtarma hizmetleri kasası VMwareDRToAzurePs olarak adlandırılmıştır ve Doğu Asya bölgesinde ve önceki adımda oluşturulan kaynak grubunda oluşturulmuştur.

    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. Kasa için kasa kayıt anahtarını indirin. Kasa kayıt anahtarı, şirket içi Yapılandırma Sunucusu'nu bu kasaya kaydetmek için kullanılır. Kayıt, Yapılandırma Sunucusu yazılım yükleme işleminin bir parçasıdır.

    #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. İndirilen kasa kayıt anahtarını kullanın ve Yapılandırma Sunucusu yüklemesini ve kaydını tamamlamak için makalelerdeki aşağıdaki adımları izleyin.

Kasa bağlamını ayarlama

Set-ASRVaultContext cmdlet'ini kullanarak kasa bağlamını ayarlayın. Ayarlandıktan sonra, PowerShell oturumundaki sonraki Azure Site Recovery işlemleri seçilen kasa bağlamında gerçekleştirilir.

İpucu

Azure Site Recovery PowerShell modülü (Az.RecoveryServices modülü), çoğu cmdlet için kullanımı kolay diğer adlarla birlikte gelir. Modüldeki cmdlet'ler Operation-AzRecoveryServicesAsr<> Nesnesi> biçimindedir <ve Operation-ASR>< Nesnesi> biçimini <alan eşdeğer diğer adlara sahiptir. Kullanım kolaylığı için cmdlet diğer adlarını değiştirebilirsiniz.

Aşağıdaki örnekte, $vault değişkenindeki kasa ayrıntıları, PowerShell oturumu için kasa bağlamını belirtmek için kullanılır.

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

Set-ASRVaultContext cmdlet'ine alternatif olarak, kasa bağlamını ayarlamak için Import-AzRecoveryServicesAsrVault Ayarlar File cmdlet'ini de kullanabilirsiniz. Import-AzRecoveryServicesAsrVault Ayarlar File cmdlet'inin -path parametresi olarak kasa kayıt anahtarı dosyasının bulunduğu yolu belirtin. Örneğin:

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

Bu makalenin sonraki bölümlerinde Azure Site Recovery işlemleri için kasa bağlamının ayarlandığı varsayılır.

Kasa kaydını doğrulama

Bu örnekte aşağıdaki gereksinimlere sahibiz:

  • Bu kasaya bir yapılandırma sunucusu (ConfigurationServer) kaydedildi.
  • ConfigurationServer'a fazladan bir işlem sunucusu (ScaleOut-ProcessServer) kaydedildi
  • Yapılandırma sunucusunda hesaplar (vCenter_account, WindowsAccount, LinuxAccount) ayarlanmıştır. Bu hesaplar vCenter sunucusunu eklemek, sanal makineleri bulmak ve çoğaltılacak Windows ve Linux sunucularına mobility hizmeti yazılımını anında yüklemek için kullanılır.
  1. Kayıtlı yapılandırma sunucuları, Site Recovery'deki bir doku nesnesiyle temsil edilir. Kasadaki doku nesnelerinin listesini alın ve yapılandırma sunucusunu tanımlayın.

    # 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. Makineleri çoğaltmak için kullanılabilecek işlem sunucularını belirleyin.

    $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
    

    Yukarıdaki çıktıdan $ProcessServers[0] ScaleOut-ProcessServer'a karşılık gelir ve $ProcessServers[1] ConfigurationServer'da İşlem Sunucusu rolüne karşılık gelir

  3. Yapılandırma Sunucusu'nda ayarlanmış hesapları tanımlayın.

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

    Yukarıdaki çıkıştan $AccountHandles[0] hesap vCenter_account, $AccountHandles[1] windowsaccount hesabına, $AccountHandles[2] ise LinuxAccount hesabına karşılık gelir

Çoğaltma ilkesi oluşturma

Bu adımda iki çoğaltma ilkesi oluşturulur. Bir ilke VMware sanal makinelerini Azure'a çoğaltmak için, diğeri ise Azure'da çalışan sanal makineler üzerinden şirket içi VMware sitesine geri yük devredildi.

Not

Azure Site Recovery işlemlerinin çoğu zaman uyumsuz olarak yürütülür. Bir işlemi başlattığınızda, bir Azure Site Recovery işi gönderilir ve bir iş izleme nesnesi döndürülür. Bu iş izleme nesnesi, işlemin durumunu izlemek için kullanılabilir.

  1. VMware sanal makinelerini belirtilen özelliklerle Azure'a çoğaltmak için ReplicationPolicy adlı bir çoğaltma ilkesi oluşturun.

    $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   : ab31026e-4866-5440-969a-8ebcb13a372f
    TargetObjectType : ProtectionProfile
    TargetObjectName : ReplicationPolicy
    AllowedActions   :
    Tasks            : {Prerequisites check for creating the replication policy, Creating the replication policy}
    Errors           : {}
    
  2. Azure'dan şirket içi VMware sitesine yeniden çalışma için kullanılacak bir çoğaltma ilkesi oluşturun.

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

    İşlemin tamamlanmasını izlemek için $Job_FailbackPolicyCreate içindeki iş ayrıntılarını kullanın.

    • Çoğaltma ilkelerini Yapılandırma Sunucusu ile eşlemek için bir koruma kapsayıcısı eşlemesi oluşturun.
    #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
    
    

vCenter sunucusu ekleme ve VM'leri bulma

IP adresine veya ana bilgisayar adına göre bir vCenter Server ekleyin. -port parametresi bağlanacak vCenter sunucusundaki bağlantı noktasını belirtir, -Name parametresi vCenter sunucusu için kullanılacak kolay bir ad belirtir ve -Account parametresi, vCenter sunucusu tarafından yönetilen sanal makineleri bulmak için kullanılacak Yapılandırma sunucusundaki hesap tanıtıcısını belirtir.

# 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           : {}

Çoğaltma için depolama hesapları oluşturma

Yönetilen diske yazmak için PowerShell Az.RecoveryServices modülü 2.0.0'ı kullanın. Yalnızca günlük depolama hesabı oluşturulmasını gerektirir. Yalnızca geçici günlükleri depolamak için kullanıldığından standart hesap türü ve LRS yedekliliği kullanılması önerilir. Depolama hesabının kasayla aynı Azure bölgesinde oluşturulduğundan emin olun.

Az.RecoveryServices modülünün 2.0.0'dan eski bir sürümünü kullanıyorsanız, depolama hesapları oluşturmak için aşağıdaki adımları kullanın. Bu depolama hesapları daha sonra sanal makineleri çoğaltmak için kullanılır. Depolama hesaplarının kasayla aynı Azure bölgesinde oluşturulduğundan emin olun. Çoğaltma için mevcut bir depolama hesabını kullanmayı planlıyorsanız bu adımı atlayabilirsiniz.

Not

Şirket içi sanal makineleri premium depolama hesabına çoğaltırken, ek bir standart depolama hesabı (günlük depolama hesabı) belirtmeniz gerekir. Günlük depolama hesabı, günlükler premium depolama hedefinde uygulanıncaya kadar çoğaltma günlüklerini ara depo olarak tutar.


$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

VMware VM'lerini çoğaltma

Sanal makinelerin vCenter sunucusundan bulunması yaklaşık 15-20 dakika sürer. Keşfedildikten sonra, bulunan her sanal makine için Azure Site Recovery'de korunabilir bir öğe nesnesi oluşturulur. Bu adımda, bulunan sanal makinelerden üçü önceki adımda oluşturulan Azure Depolama hesaplarına çoğaltılır.

Bulunan bir sanal makineyi korumak için aşağıdaki ayrıntılara ihtiyacınız olacaktır:

  • Çoğaltılacak korunabilir öğe.
  • Sanal makineyi çoğaltmak için depolama hesabı (yalnızca depolama hesabına çoğaltıyorsanız).
  • Sanal makineleri premium depolama hesabına veya yönetilen diske korumak için günlük depolaması gerekir.
  • Çoğaltma için kullanılacak İşlem Sunucusu. Kullanılabilir işlem sunucularının listesi alındı ve $ProcessServers[0](ScaleOut-ProcessServer) ve $ProcessServers[1](ConfigurationServer) değişkenlerine kaydedildi.
  • Ulaşım hizmeti yazılımını makinelere anında yüklemek için kullanılacak hesap. Kullanılabilir hesapların listesi alındı ve $AccountHandles değişkeninde depolandı.
  • Çoğaltma için kullanılacak çoğaltma ilkesi için koruma kapsayıcı eşlemesi.
  • Yük devretme sırasında sanal makinelerin oluşturulması gereken kaynak grubu.
  • İsteğe bağlı olarak, yük devredilen sanal makinenin bağlandığı Azure sanal ağı ve alt ağı gerekir.

Şimdi bu tabloda belirtilen ayarları kullanarak aşağıdaki sanal makineleri çoğaltın:

Sanal makine İşlem Sunucusu Depolama Hesabı Günlük Depolama hesabı İlke Ulaşım hizmeti yükleme hesabı Hedef kaynak grubu Hedef sanal ağ Hedef alt ağ
CentOSVM1 ConfigurationServer Yok logstorageaccount1 ReplicationPolicy LinuxAccount VMwareDRToAzurePs ASR-vnet Alt ağ-1
Win 2K12VM1 ScaleOut-ProcessServer premiumstorageaccount1 logstorageaccount1 ReplicationPolicy WindowsAccount VMwareDRToAzurePs ASR-vnet Alt ağ-1
CentOSVM2 ConfigurationServer replicationstdstorageaccount1 Yok ReplicationPolicy LinuxAccount VMwareDRToAzurePs ASR-vnet Alt ağ-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"

Çoğaltmayı etkinleştirme işi başarıyla tamamlandıktan sonra sanal makineler için ilk çoğaltma başlatılır. İlk çoğaltma, çoğaltılacak veri miktarına ve çoğaltma için kullanılabilir bant genişliğine bağlı olarak biraz zaman alabilir. İlk çoğaltma tamamlandıktan sonra sanal makine korumalı bir duruma geçer. Sanal makine korumalı bir duruma ulaştığında, sanal makine için yük devretme testi gerçekleştirebilir, kurtarma planlarına vb. ekleyebilirsiniz.

Get-ASRReplicationProtectedItem cmdlet'iyle sanal makinenin çoğaltma durumunu ve çoğaltma durumunu de kontrol edebilirsiniz.

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

Yük devretme ayarlarını yapılandırma

Korumalı makineler için yük devretme ayarları Set-ASRReplicationProtectedItem cmdlet'i kullanılarak güncelleştirilebilir. Bu cmdlet aracılığıyla güncelleştirilebilecek ayarlardan bazıları şunlardır:

  • Yük devretme sırasında oluşturulacak sanal makinenin adı
  • Yük devretme sırasında oluşturulacak sanal makinenin VM boyutu
  • Yük devretme sırasında sanal makinenin NIC'lerinin bağlanması gereken Azure sanal ağı ve alt ağı
  • Yönetilen disklere yük devretme
  • Azure Hibrit Kullanım Avantajı uygulama
  • Yük devretme sırasında sanal makineye atanacak hedef sanal ağdan statik bir IP adresi atayın.

Bu örnekte, Win2K12VM1 sanal makinesi için yük devretme sırasında oluşturulacak sanal makinenin VM boyutunu güncelleştirecek ve sanal makinenin yük devretme sırasında yönetilen diskler kullandığını belirteceğiz.

$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   : 88bc391e-d091-11e7-9484-000c2955bb50
TargetObjectType : ProtectionEntity
TargetObjectName : Win2K12VM1
AllowedActions   :
Tasks            : {Update the virtual machine properties}
Errors           : {}

Yük devretme testi çalıştırma

  1. Aşağıdaki gibi bir olağanüstü durum kurtarma tatbikatı (yük devretme testi) çalıştırın:

    #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. Yük devretme testi işi başarıyla tamamlandıktan sonra Azure'da adına "-Test" (bu örnekte Win2K12VM1-Test) ekli bir sanal makinenin oluşturulduğunu göreceksiniz.

  3. Artık sanal makinede başarısız olan teste bağlanabilir ve yük devretme testini doğrulayabilirsiniz.

  4. Start-ASRTestFailoverCleanupJob cmdlet'ini kullanarak yük devretme testini temizleyin. Bu işlem, yük devretme testi işleminin bir parçası olarak oluşturulan sanal makineyi siler.

    $Job_TFOCleanup = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -ReplicationProtectedItem $ReplicatedVM1
    

Azure'a yük devretme

Bu adımda Win2K12VM1 sanal makinesini belirli bir kurtarma noktasına devredeceğiz.

  1. Yük devretme için kullanılacak kullanılabilir kurtarma noktalarının listesini alın:

    # 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. Yük devretme başarılı bir şekilde başarısız olduktan sonra yük devretme işlemini işleyebilir ve Azure'dan şirket içi VMware sitesine ters çoğaltma ayarlayabilirsiniz.

Sonraki adımlar

Azure Site Recovery PowerShell başvurularını kullanarak daha fazla görevi otomatikleştirmeyi öğrenin.