PowerShell ve Azure Resource Manager kullanarak Hyper-V VM'leri için Azure'a olağanüstü durum kurtarmayı ayarlama
Azure Site Recovery , Azure sanal makinelerinin (VM' ler) ve şirket içi VM'lerinin ve fiziksel sunucuların çoğaltmasını, yük devretmesini ve kurtarmasını düzenleyerek iş sürekliliği ve olağanüstü durum kurtarma (BCDR) stratejinize katkıda bulunur.
Bu makalede, Hyper-V VM'lerini Azure'a çoğaltmak için Azure Resource Manager ile birlikte Windows PowerShell'in nasıl kullanılacağı açıklanmaktadır. Bu makalede kullanılan örnekte, Bir Hyper-V konağı üzerinde çalışan tek bir VM'yi Azure'a çoğaltma gösterilmektedir.
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.
Azure PowerShell
Azure PowerShell, Windows PowerShell kullanarak Azure'ı yönetmek için cmdlet'ler sağlar. Azure Resource Manager için Azure PowerShell ile kullanılabilen Site Recovery PowerShell cmdlet'leri, Azure'daki sunucularınızı korumanıza ve kurtarmanıza yardımcı olur.
Bu makaleyi kullanmak için PowerShell uzmanı olmanız gerekmez, ancak modüller, cmdlet'ler ve oturumlar gibi temel kavramları anlamanız gerekir. Daha fazla bilgi için bkz . PowerShell Belgeleri ve Azure PowerShell'i Azure Resource Manager ile Kullanma.
Not
Bulut Çözümü Sağlayıcısı (CSP) programındaki Microsoft iş ortakları, müşteri sunucularının korumasını ilgili CSP aboneliklerine (kiracı abonelikleri) yapılandırabilir ve yönetebilir.
Başlamadan önce
Şu önkoşullara sahip olduğunuzdan emin olun:
- Bir Microsoft Azure hesabı. Ücretsiz deneme sürümüyle başlayabilirsiniz. Ayrıca Azure Site Kurtarma Yöneticisi fiyatlandırması hakkında bilgi edinebilirsiniz.
- Azure PowerShell. Bu sürüm ve nasıl yükleneceği hakkında bilgi için bkz . Azure PowerShell'i yükleme.
Ayrıca, bu makalede açıklanan özel örnekte aşağıdaki önkoşullar vardır:
- Bir veya daha fazla VM içeren Windows Server 2012 R2 veya Microsoft Hyper-V Server 2012 R2 çalıştıran bir Hyper-V konağı. Hyper-V sunucuları doğrudan veya bir ara sunucu aracılığıyla İnternet'e bağlanmalıdır.
- Çoğaltmak istediğiniz VM'ler bu önkoşullara uygun olmalıdır.
1. Adım: Azure hesabınızda oturum açın
Bir PowerShell konsolu açın ve Azure hesabınızda oturum açmak için bu komutu çalıştırın. Cmdlet bir web sayfası açar ve sizden hesap kimlik bilgilerinizi ister:
Connect-AzAccount
.- Alternatif olarak, Credential parametresini kullanarak hesap kimlik bilgilerinizi cmdlet'ine
Connect-AzAccount
parametre olarak ekleyebilirsiniz. - Kiracı adına çalışan bir CSP iş ortağıysanız, kiracı kimliği veya kiracı birincil etki alanı adını kullanarak müşteriyi kiracı olarak belirtin. Örneğin:
Connect-AzAccount -Tenant "fabrikam.com"
- Alternatif olarak, Credential parametresini kullanarak hesap kimlik bilgilerinizi cmdlet'ine
Bir hesabın birkaç aboneliği olabileceğinden, kullanmak istediğiniz aboneliği hesapla ilişkilendirin:
Set-AzContext -Subscription $SubscriptionName
Aşağıdaki komutları kullanarak aboneliğinizin Kurtarma Hizmetleri ve Site Recovery için Azure sağlayıcılarını kullanacak şekilde kaydedildiğini doğrulayın:
Get-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServices
Komut çıkışında RegistrationState değerinin Kayıtlı olarak ayarlandığını ve 2. Adıma geçebileceğinizi doğrulayın. Aksi takdirde, şu komutları çalıştırarak eksik sağlayıcıyı aboneliğinize kaydetmeniz gerekir:
Register-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServices
Aşağıdaki komutları kullanarak Sağlayıcıların başarıyla kaydedildiğini doğrulayın:
Get-AzResourceProvider -ProviderNamespace Microsoft.RecoveryServices
2. Adım: Kasayı ayarlama
Kasanın oluşturulacağı veya mevcut bir kaynak grubunun kullanılacağı bir Azure Resource Manager kaynak grubu oluşturun. Aşağıdaki gibi yeni bir kaynak grubu oluşturun. değişkeni
$ResourceGroupName
oluşturmak istediğiniz kaynak grubunun adını içerir ve $Geo değişkeni kaynak grubunun oluşturulacağı Azure bölgesini içerir (örneğin, "Brezilya Güney").New-AzResourceGroup -Name $ResourceGroupName -Location $Geo
Aboneliğinizdeki kaynak gruplarının listesini almak için cmdlet'ini
Get-AzResourceGroup
çalıştırın.Aşağıdaki gibi yeni bir Azure Kurtarma Hizmetleri kasası oluşturun:
$vault = New-AzRecoveryServicesVault -Name <string> -ResourceGroupName <string> -Location <string>
Cmdlet'iyle Get-AzRecoveryServicesVault
mevcut kasaların listesini alabilirsiniz.
3. Adım: Kurtarma Hizmetleri kasası bağlamını ayarlama
Kasa bağlamını aşağıdaki gibi ayarlayın:
Set-AzRecoveryServicesAsrVaultContext -Vault $vault
4. Adım: Hyper-V sitesi oluşturma
Aşağıdaki gibi yeni bir Hyper-V sitesi oluşturun:
$sitename = "MySite" #Specify site friendly name New-AzRecoveryServicesAsrFabric -Type HyperVSite -Name $sitename
Bu cmdlet, siteyi oluşturmak için bir Site Recovery işi başlatır ve bir Site Recovery iş nesnesi döndürür. İşin tamamlanmasını bekleyin ve işin başarıyla tamamlandığını doğrulayın.
Get-AzRecoveryServicesAsrJob
İş nesnesini almak için cmdlet'ini kullanın ve işin geçerli durumunu denetleyin.Site için aşağıdaki gibi bir kayıt anahtarı oluşturun ve indirin:
$SiteIdentifier = Get-AzRecoveryServicesAsrFabric -Name $sitename | Select-Object -ExpandProperty SiteIdentifier $path = Get-AzRecoveryServicesVaultSettingsFile -Vault $vault -SiteIdentifier $SiteIdentifier -SiteFriendlyName $sitename
İndirilen anahtarı Hyper-V konağına kopyalayın. Hyper-V ana bilgisayarını siteye kaydetmek için anahtarına ihtiyacınız vardır.
5. Adım: Sağlayıcıyı ve aracıyı yükleme
Microsoft'tan Sağlayıcının en son sürümü için yükleyiciyi indirin.
Yükleyiciyi Hyper-V ana bilgisayarında çalıştırın.
Yüklemenin sonunda kayıt adımına geçin.
İstendiğinde, indirilen anahtarı sağlayın ve Hyper-V konağı kaydını tamamlayın.
Hyper-V ana bilgisayarının siteye aşağıdaki gibi kaydedildiğini doğrulayın:
$server = Get-AzRecoveryServicesAsrFabric -Name $siteName | Get-AzRecoveryServicesAsrServicesProvider -FriendlyName $server-friendlyname
Hyper-V çekirdek sunucusu çalıştırıyorsanız kurulum dosyasını indirin ve şu adımları izleyin:
Şu komutu çalıştırarak dosyaları AzureSiteRecoveryProvider.exe yerel dizine ayıklayın:
AzureSiteRecoveryProvider.exe /x:. /q
Şu komutu çalıştırın:
.\setupdr.exe /i
Sonuçlar %ProgramData%\ASRLogs\DRASetupWizard.log günlüğe kaydedilir.
Şu komutu çalıştırarak sunucuyu kaydedin:
cd C:\Program Files\Microsoft Azure Site Recovery Provider\DRConfigurator.exe" /r /Friendlyname "FriendlyName of the Server" /Credentials "path to where the credential file is saved"
6. Adım: Çoğaltma ilkesi oluşturma
Başlamadan önce, belirtilen depolama hesabının kasayla aynı Azure bölgesinde olması ve coğrafi çoğaltmanın etkinleştirilmiş olması gerekir.
Aşağıdaki gibi bir çoğaltma ilkesi oluşturun:
$ReplicationFrequencyInSeconds = "300"; #options are 30,300,900 $PolicyName = “replicapolicy” $Recoverypoints = 6 #specify the number of recovery points $storageaccountID = Get-AzStorageAccount -Name "mystorea" -ResourceGroupName "MyRG" | Select-Object -ExpandProperty Id $PolicyResult = New-AzRecoveryServicesAsrPolicy -Name $PolicyName -ReplicationProvider “HyperVReplicaAzure” -ReplicationFrequencyInSeconds $ReplicationFrequencyInSeconds -NumberOfRecoveryPointsToRetain $Recoverypoints -ApplicationConsistentSnapshotFrequencyInHours 1 -RecoveryAzureStorageAccountId $storageaccountID
Çoğaltma ilkesi oluşturma işleminin başarılı olduğundan emin olmak için döndürülen işi denetleyin.
Siteye karşılık gelen koruma kapsayıcısını aşağıdaki gibi alın:
$protectionContainer = Get-AzRecoveryServicesAsrProtectionContainer
Koruma kapsayıcısını çoğaltma ilkesiyle aşağıdaki gibi ilişkilendirin:
$Policy = Get-AzRecoveryServicesAsrPolicy -FriendlyName $PolicyName $associationJob = New-AzRecoveryServicesAsrProtectionContainerMapping -Name $mappingName -Policy $Policy -PrimaryProtectionContainer $protectionContainer[0]
İlişkilendirme işinin başarıyla tamamlanmasını bekleyin.
Koruma kapsayıcısı eşlemesini alın.
$ProtectionContainerMapping = Get-AzRecoveryServicesAsrProtectionContainerMapping -ProtectionContainer $protectionContainer
7. Adım: VM korumasını etkinleştirme
Korumak istediğiniz VM'ye karşılık gelen korunabilir öğeyi aşağıdaki gibi alın:
$VMFriendlyName = "Fabrikam-app" #Name of the VM $ProtectableItem = Get-AzRecoveryServicesAsrProtectableItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyName
VM'yi koruyun. Korumakta olduğunuz VM'nin bağlı birden fazla diski varsa OSDiskName parametresini kullanarak işletim sistemi diskini belirtin.
$OSType = "Windows" # "Windows" or "Linux" $DRjob = New-AzRecoveryServicesAsrReplicationProtectedItem -ProtectableItem $VM -Name $VM.Name -ProtectionContainerMapping $ProtectionContainerMapping -RecoveryAzureStorageAccountId $StorageAccountID -OSDiskName $OSDiskNameList[$i] -OS $OSType -RecoveryResourceGroupId $ResourceGroupID
İlk çoğaltmadan sonra VM'lerin korumalı duruma ulaşmasını bekleyin. Çoğaltılacak veri miktarı ve Azure'a sağlanan yukarı akış bant genişliği gibi faktörlere bağlı olarak bu işlem biraz zaman alabilir. Korumalı bir durum gerçekleştiğinde, State ve StateDescription işi aşağıdaki gibi güncelleştirilir:
PS C:\> $DRjob = Get-AzRecoveryServicesAsrJob -Job $DRjob PS C:\> $DRjob | Select-Object -ExpandProperty State Succeeded PS C:\> $DRjob | Select-Object -ExpandProperty StateDescription Completed
Kurtarma özelliklerini (VM rol boyutu gibi) ve yük devretmeden sonra VM NIC'nin eklendiği Azure ağını güncelleştirin.
PS C:\> $nw1 = Get-AzVirtualNetwork -Name "FailoverNw" -ResourceGroupName "MyRG" PS C:\> $VMFriendlyName = "Fabrikam-App" PS C:\> $rpi = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyName PS C:\> $UpdateJob = Set-AzRecoveryServicesAsrReplicationProtectedItem -InputObject $rpi -PrimaryNic $VM.NicDetailsList[0].NicId -RecoveryNetworkId $nw1.Id -RecoveryNicSubnetName $nw1.Subnets[0].Name PS C:\> $UpdateJob = Get-AzRecoveryServicesAsrJob -Job $UpdateJob PS C:\> $UpdateJob | Select-Object -ExpandProperty state PS C:\> Get-AzRecoveryServicesAsrJob -Job $job | Select-Object -ExpandProperty state Succeeded
Not
Azure'da CMK özellikli yönetilen disklere çoğaltmak istiyorsanız Az PowerShell 3.3.0'ı kullanarak aşağıdaki adımları uygulayın:
- VM özelliklerini güncelleştirerek yönetilen disklere yük devretmeyi etkinleştirme
Get-AzRecoveryServicesAsrReplicationProtectedItem
Korumalı öğenin her diski için disk kimliğini getirmek için cmdlet'ini kullanın- Disk kimliğinin disk şifreleme kümesine eşlenmesini içeren cmdlet'ini kullanarak
New-Object "System.Collections.Generic.Dictionary``2[System.String,System.String]"
bir sözlük nesnesi oluşturun. Bu disk şifreleme kümeleri, hedef bölgede sizin tarafınızdan önceden oluşturulmalıdır. - DiskIdToDiskEncryptionSetMap parametresinde sözlük nesnesini geçirerek cmdlet'ini kullanarak
Set-AzRecoveryServicesAsrReplicationProtectedItem
VM özelliklerini güncelleştirin.
8. Adım: Yük devretme testi çalıştırma
Yük devretme testlerini aşağıdaki gibi çalıştırın:
$nw = Get-AzVirtualNetwork -Name "TestFailoverNw" -ResourceGroupName "MyRG" #Specify Azure vnet name and resource group $rpi = Get-AzRecoveryServicesAsrReplicationProtectedItem -ProtectionContainer $protectionContainer -FriendlyName $VMFriendlyName $TFjob = Start-AzRecoveryServicesAsrTestFailoverJob -ReplicationProtectedItem $VM -Direction PrimaryToRecovery -AzureVMNetworkId $nw.Id
Test VM'sinin Azure'da oluşturulduğunu doğrulayın. Azure'da test VM'sini oluşturduktan sonra yük devretme testi işi askıya alınır.
Yük devretme testini temizlemek ve tamamlamak için şunu çalıştırın:
$TFjob = Start-AzRecoveryServicesAsrTestFailoverCleanupJob -ReplicationProtectedItem $rpi -Comment "TFO done"
Sonraki adımlar
Azure Resource Manager PowerShell cmdlet'leri ile Azure Site Recovery hakkında daha fazla bilgi edinin.