Azure PowerShell kullanarak Azure VM'lerini yedekleme ve geri yükleme
Bu makalede, PowerShell cmdlet'lerini kullanarak Azure Backup Kurtarma Hizmetleri kasasında Bir Azure VM'yi yedekleme ve geri yükleme işlemi açıklanır.
Azure Backup, VM'lerinizdeki verilerin istenmeden yok edilmesine karşı koruma sağlayan bağımsız ve yalıtılmış yedekler sunar. Yedekler, yerleşik kurtarma noktası yönetim özelliklerine sahip Kurtarma Hizmetleri kasasında depolanır. Yapılandırma ve ölçeklendirme süreçleri kolaydır, yedekler iyileştirilir ve ihtiyaç duyduğunuz anda kolayca geri yükleme gerçekleştirmeniz sağlanır.
Bir sanal makineyi yedekleyebilmeniz (veya koruyabilmeniz) için önce sanal makinelerinizi korumak için ortamınızı hazırlamaya yönelik önkoşulları tamamlamanız gerekir.
Başlamadan önce
- Kurtarma Hizmetleri kasaları hakkında daha fazla bilgi edinin.
- Azure VM yedekleme mimarisini gözden geçirin , yedekleme işlemi hakkında bilgi edinin ve destek, sınırlamalar ve önkoşulları gözden geçirin .
- Kurtarma Hizmetleri için PowerShell nesne hiyerarşisini gözden geçirin.
Kurtarma Hizmetleri nesne hiyerarşisi
Nesne hiyerarşisi aşağıdaki diyagramda özetlenmiş.
Azure kitaplığında Az.RecoveryServicescmdlet başvurusu başvuruyu gözden geçirin.
Ayarlama ve kaydetme
Dekont
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.
Başlamak için:
Aşağıdaki komutu yazarak kullanılabilir Azure Backup PowerShell cmdlet'lerini bulun:
Get-Command *azrecoveryservices*
Azure Backup, Azure Site Recovery ve Kurtarma Hizmetleri kasası için diğer adlar ve cmdlet'ler görüntülenir. Aşağıdaki görüntü, göreceklerinize bir örnektir. Cmdlet'lerin tam listesi değildir.
Bağlan-AzAccount kullanarak Azure hesabınızda oturum açın. Bu cmdlet, hesap kimlik bilgilerinizi girmenizi isteyen bir web sayfası açar:
- Alternatif olarak, -Credential parametresini kullanarak hesap kimlik bilgilerinizi Bağlan-AzAccount cmdlet'ine 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: Bağlan-AzAccount -Tenant "fabrikam.com"
Bir hesabın birkaç aboneliği olabileceğinden, kullanmak istediğiniz aboneliği hesapla ilişkilendirin:
Select-AzSubscription -SubscriptionName $SubscriptionName
Azure Backup'ı ilk kez kullanıyorsanız, Azure Kurtarma Hizmeti sağlayıcısını aboneliğinize kaydetmek için Register-AzResourceProvider cmdlet'ini kullanmanız gerekir.
Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
Aşağıdaki komutları kullanarak Sağlayıcıların başarıyla kaydedildiğini doğrulayabilirsiniz:
Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
Komut çıkışında RegistrationState, Kayıtlı olarak değiştirilmelidir. Aksi takdirde Register-AzResourceProvider cmdlet'ini yeniden çalıştırmanız gerekir.
Kurtarma Hizmetleri kasası oluşturma
Aşağıdaki adımlar bir Kurtarma Hizmetleri kasası oluşturma işleminde size yol gösterir. Kurtarma Hizmetleri kasası, Backup kasasından farklıdır.
Kurtarma Hizmetleri kasası bir Resource Manager kaynağıdır, bu nedenle bunu bir kaynak grubuna yerleştirmeniz gerekir. Mevcut bir kaynak grubunu kullanabilir veya New-AzResourceGroup cmdlet'iyle bir kaynak grubu oluşturabilirsiniz. Kaynak grubu oluştururken, kaynak grubunun adını ve konumunu belirtin.
New-AzResourceGroup -Name "test-rg" -Location "West US"
Kurtarma Hizmetleri kasasını oluşturmak için New-AzRecoveryServicesVault cmdlet'ini kullanın. Kasa için kaynak grubu için kullanılan konumu belirttiğinizden emin olun.
New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "test-rg" -Location "West US"
Kullanılacak depolama yedekliliği türünü belirtin. Yerel Olarak Yedekli Depolama (LRS), Coğrafi olarak yedekli Depolama (GRS) veya Alanlar arası yedekli depolama (ZRS) kullanabilirsiniz. Aşağıdaki örnekte GeoRedundant olarak ayarlanmış -Backup Depolama Redundancy seçeneği
testvault
gösterilmektedir.$vault1 = Get-AzRecoveryServicesVault -Name "testvault" Set-AzRecoveryServicesBackupProperty -Vault $vault1 -BackupStorageRedundancy GeoRedundant
Bahşiş
Çoğu Azure Backup cmdlet’i, girdi olarak Kurtarma Hizmetleri kasasını gerektirir. Bu nedenle, Backup Recovery Services kasa nesnesini bir değişkende depolamak uygundur.
Abonelikteki kasaları görüntüleme
Abonelikteki tüm kasaları görüntülemek için Get-AzRecoveryServicesVault komutunu kullanın:
Get-AzRecoveryServicesVault
Çıktı aşağıdaki örneğe benzer, ilişkili ResourceGroupName ve Location'ın sağlandığına dikkat edin.
Name : Contoso-vault
ID : /subscriptions/1234
Type : Microsoft.RecoveryServices/vaults
Location : WestUS
ResourceGroupName : Contoso-docs-rg
SubscriptionId : 1234-567f-8910-abc
Properties : Microsoft.Azure.Commands.RecoveryServices.ARSVaultProperties
Azure VM'lerini yedekleme
Sanal makinelerinizi korumak için kurtarma hizmetleri kasası kullanın. Korumayı uygulamadan önce kasa bağlamını (kasada korunan veri türü) ayarlayın ve koruma ilkesini doğrulayın. Koruma ilkesi, yedekleme işlerinin ne zaman çalıştırıldığında ve her yedekleme anlık görüntüsünün ne kadar süreyle tutulduğundan gelen zamanlamadır.
Kasa bağlamı ayarlama
Vm'de korumayı etkinleştirmeden önce, kasa bağlamını ayarlamak için Set-AzRecoveryServicesVaultContext komutunu kullanın. Kasa bağlamı ayarlandıktan sonra, sonraki tüm cmdlet’ler için geçerli olur. Aşağıdaki örnek, kasa için kasa testvault
bağlamını ayarlar.
Get-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "Contoso-docs-rg" | Set-AzRecoveryServicesVaultContext
Kasa kimliğini getirme
Kasa bağlam ayarını Azure PowerShell yönergelerine uygun olarak kullanımdan kaldırmayı planlıyoruz. Bunun yerine kasa kimliğini depolayabilir veya getirebilir ve ilgili komutlara geçirebilirsiniz. Bu nedenle, kasa bağlamını ayarlamadıysanız veya belirli bir kasa için çalıştırılacak komutu belirtmek istiyorsanız, kasa kimliğini tüm ilgili komutlara aşağıdaki gibi "-vaultID" olarak geçirin:
$targetVault = Get-AzRecoveryServicesVault -ResourceGroupName "Contoso-docs-rg" -Name "testvault"
$targetVault.ID
Veya
$targetVaultID = Get-AzRecoveryServicesVault -ResourceGroupName "Contoso-docs-rg" -Name "testvault" | select -ExpandProperty ID
Depolama çoğaltma ayarlarını değiştirme
Kasanın Depolama çoğaltma yapılandırmasını LRS/GRS olarak ayarlamak için Set-AzRecoveryServicesBackupProperty komutunu kullanın
Set-AzRecoveryServicesBackupProperty -Vault $targetVault -BackupStorageRedundancy GeoRedundant/LocallyRedundant
Dekont
Depolama Yedeklilik yalnızca kasada korunan yedekleme öğesi yoksa değiştirilebilir.
Koruma ilkesi oluşturma
Bir Kurtarma Hizmetleri kasası oluşturduğunuzda bu, varsayılan koruma ve saklama ilkeleri ile birlikte gelir. Varsayılan koruma ilkesi, her gün belirtilen saatte bir yedekleme işini tetikler. Varsayılan saklama ilkesi, 30 gün boyunca günlük kurtarma noktasını korur. Vm'nizi hızlı bir şekilde korumak ve ilkeyi daha sonra farklı ayrıntılarla düzenlemek için varsayılan ilkeyi kullanabilirsiniz.
Kasada kullanılabilen koruma ilkelerini görüntülemek için Get-AzRecoveryServicesBackupProtectionPolicy kullanın. Belirli bir ilkeyi almak veya bir iş yükü türüyle ilişkili ilkeleri görüntülemek için bu cmdlet'i kullanabilirsiniz. Aşağıdaki örnek, AzureVM iş yükü türüne yönelik ilkeleri alır.
Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureVM" -VaultId $targetVault.ID
Çıktı aşağıdaki örneğe benzer:
Name WorkloadType BackupManagementType BackupTime DaysOfWeek
---- ------------ -------------------- ---------- ----------
DefaultPolicy AzureVM AzureVM 4/14/2016 5:00:00 PM
Dekont
PowerShell'de BackupTime alanının saat dilimi UTC'dir. Ancak yedekleme süresi Azure portalında gösterildiğinde, saat yerel saat diliminize göre ayarlanır.
Yedekleme koruma ilkesi en az bir bekletme ilkesiyle ilişkilendirilir. Bekletme ilkesi, bir kurtarma noktasının silinmeden önce ne kadar süre tutulduğunu tanımlar.
- Varsayılan bekletme ilkesini görüntülemek için Get-AzRecoveryServicesBackupRetentionPolicyObject kullanın.
- Benzer şekilde, varsayılan zamanlama ilkesini almak için Get-AzRecoveryServicesBackupSchedulePolicyObject kullanabilirsiniz.
- New-AzRecoveryServicesBackupProtectionPolicy cmdlet'i, yedekleme ilkesi bilgilerini tutan bir PowerShell nesnesi oluşturur.
- Zamanlama ve bekletme ilkesi nesneleri New-AzRecoveryServicesBackupProtectionPolicy cmdlet'ine giriş olarak kullanılır.
Varsayılan olarak, zamanlama ilkesi nesnesinde bir başlangıç zamanı tanımlanır. Başlangıç saatini istenen başlangıç saatiyle değiştirmek için aşağıdaki örneği kullanın. İstenen başlangıç saati de UTC olarak olmalıdır. Aşağıdaki örnekte, günlük yedeklemeler için istenen başlangıç saatinin 01:00 UTC olduğu varsayılır.
$schPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureVM"
$UtcTime = Get-Date -Date "2019-03-20 01:00:00Z"
$UtcTime = $UtcTime.ToUniversalTime()
$schpol.ScheduleRunTimes[0] = $UtcTime
Önemli
Başlangıç zamanını yalnızca 30 dakikalık katlar halinde sağlamanız gerekir. Yukarıdaki örnekte yalnızca "01:00:00" veya "02:30:00" olabilir. Başlangıç saati "01:15:00" olamaz
Aşağıdaki örnek zamanlama ilkesini ve bekletme ilkesini değişkenlerde depolar. Örnek, bir koruma ilkesi (NewPolicy) oluştururken parametreleri tanımlamak için bu değişkenleri kullanır.
$retPol = Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureVM"
New-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -WorkloadType "AzureVM" -RetentionPolicy $retPol -SchedulePolicy $schPol -VaultId $targetVault.ID
Çıktı aşağıdaki örneğe benzer:
Name WorkloadType BackupManagementType BackupTime DaysOfWeek
---- ------------ -------------------- ---------- ----------
NewPolicy AzureVM AzureVM 4/24/2016 1:30:00 AM
Korumayı etkinleştir
Koruma ilkesini tanımladıktan sonra, bir öğe için ilkeyi etkinleştirmeniz gerekir. Korumayı etkinleştirmek için Enable-AzRecoveryServicesBackupProtection komutunu kullanın. Korumayı etkinleştirmek için iki nesne gerekir: öğe ve ilke. İlke kasayla ilişkilendirildikten sonra, yedekleme iş akışı ilke zaman çizelgesinde tanımlanan zamanda tetikler.
Önemli
Aynı anda birden çok VM için yedeklemeyi etkinleştirmek için PowerShell kullanırken, tek bir ilkeyle ilişkilendirilmiş 100'den fazla VM olmadığından emin olun. Bu önerilen en iyi yöntemdir. Şu anda PowerShell istemcisi 100'den fazla VM varsa açıkça engellemez, ancak denetimin gelecekte eklenmesi planlanır.
Aşağıdaki örnekler, NewPolicy ilkesini kullanarak V2VM öğesi için korumayı etkinleştirir. Örnekler, VM'nin şifrelenip şifrelenmediğine ve şifreleme türüne göre farklılık gösterir.
Şifrelenmiş olmayan Resource Manager VM'lerinde korumayı etkinleştirmek için:
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1" -VaultId $targetVault.ID
Şifrelenmiş VM'lerde korumayı etkinleştirmek için (BEK ve KEK kullanılarak şifrelenmiş), Azure Backup hizmetine anahtar kasasından anahtarları ve gizli dizileri okuma izni vermeniz gerekir.
Set-AzKeyVaultAccessPolicy -VaultName "KeyVaultName" -ResourceGroupName "RGNameOfKeyVault" -PermissionsToKeys backup,get,list -PermissionsToSecrets get,list -ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1" -VaultId $targetVault.ID
Şifrelenmiş VM'lerde korumayı etkinleştirmek için (yalnızca BEK kullanılarak şifrelenir) Azure Backup hizmetine anahtar kasasından gizli dizileri okuma izni vermeniz gerekir.
Set-AzKeyVaultAccessPolicy -VaultName "KeyVaultName" -ResourceGroupName "RGNameOfKeyVault" -PermissionsToSecrets backup,get,list -ServicePrincipalName 262044b1-e2ce-469f-a196-69ab7ada62d3
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Policy $pol -Name "V2VM" -ResourceGroupName "RGName1" -VaultId $targetVault.ID
Dekont
Azure Kamu bulutu kullanıyorsanız Set-AzKeyVaultAccessPolicy cmdlet'inde ServicePrincipalName parametresinin değerini ff281ffe-705c-4f53-9f37-a40e6f2c68f3
kullanın.
Bu senaryolarda belirtildiği gibi birkaç diski seçmeli olarak yedeklemek ve diğerlerini dışlamak istiyorsanız, burada belirtildiği gibi korumayı yapılandırabilir ve yalnızca ilgili diskleri yedekleyebilirsiniz.
Yedekleme işini izleme
Azure portalını kullanmadan yedekleme işleri gibi uzun süre çalışan işlemleri izleyebilirsiniz. Devam eden bir işin durumunu almak için Get-AzRecoveryservicesBackupJob cmdlet'ini kullanın. Bu cmdlet belirli bir kasanın yedekleme işlerini alır ve bu kasa kasa bağlamında belirtilir. Aşağıdaki örnek, devam eden bir işin durumunu dizi olarak alır ve durumu $joblist değişkeninde depolar.
$joblist = Get-AzRecoveryservicesBackupJob –Status "InProgress" -VaultId $targetVault.ID
$joblist[0]
Çıktı aşağıdaki örneğe benzer:
WorkloadName Operation Status StartTime EndTime JobID
------------ --------- ------ --------- ------- ----------
V2VM Backup InProgress 4/23/2016 5:00:30 PM cf4b3ef5-2fac-4c8e-a215-d2eba4124f27
Bu işleri tamamlanmak üzere yoklama yerine (gereksiz ek koddur) Wait-AzRecoveryServicesBackupJob cmdlet'ini kullanın. Bu cmdlet, iş tamamlanana veya belirtilen zaman aşımı değerine ulaşılana kadar yürütmeyi duraklatır.
Wait-AzRecoveryServicesBackupJob -Job $joblist[0] -Timeout 43200 -VaultId $targetVault.ID
Azure VM yedeklemelerini yönetme
Koruma ilkesini değiştirme
Koruma ilkesini değiştirmek için Set-AzRecoveryServicesBackupProtectionPolicy kullanarak SchedulePolicy veya RetentionPolicy nesnelerini değiştirin.
Zamanlanmış saati değiştirme
Koruma ilkesi oluşturduğunuzda, varsayılan olarak bir başlangıç saati atanır. Aşağıdaki örneklerde bir koruma ilkesinin başlangıç saatinin nasıl değiştirileceği gösterilmektedir.
$SchPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureVM"
$UtcTime = Get-Date -Date "2019-03-20 01:00:00Z" (This is the time that you want to start the backup)
$UtcTime = $UtcTime.ToUniversalTime()
$SchPol.ScheduleRunTimes[0] = $UtcTime
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -VaultId $targetVault.ID
Set-AzRecoveryServicesBackupProtectionPolicy -Policy $pol -SchedulePolicy $SchPol -VaultId $targetVault.ID
Bekletmeyi değiştirme
Aşağıdaki örnek, kurtarma noktası saklama süresini 365 gün olarak değiştirir.
$retPol = Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureVM"
$retPol.DailySchedule.DurationCountInDays = 365
$pol = Get-AzRecoveryServicesBackupProtectionPolicy -Name "NewPolicy" -VaultId $targetVault.ID
Set-AzRecoveryServicesBackupProtectionPolicy -Policy $pol -RetentionPolicy $RetPol -VaultId $targetVault.ID
Anlık geri yükleme anlık görüntüsü saklamayı yapılandırma
Dekont
Azure PowerShell sürüm 1.6.0'dan itibaren, PowerShell kullanarak ilkedeki anlık geri yükleme anlık görüntüsü saklama süresini güncelleştirebilirsiniz
$bkpPol = Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureVM" -VaultId $targetVault.ID
$bkpPol.SnapshotRetentionInDays=7
Set-AzRecoveryServicesBackupProtectionPolicy -policy $bkpPol -VaultId $targetVault.ID
Varsayılan değer 2 olacaktır. Değeri en az 1 ve en fazla 5 olacak şekilde ayarlayabilirsiniz. Haftalık yedekleme ilkeleri için süre 5 olarak ayarlanır ve değiştirilemez.
Anlık görüntü saklama sırasında Azure Backup kaynak grubu oluşturma
Dekont
Azure PowerShell sürüm 3.7.0'dan itibaren anlık görüntüleri depolamak için oluşturulan kaynak grubunu oluşturabilir ve düzenleyebilirsiniz.
Kaynak grubu oluşturma kuralları ve diğer ilgili ayrıntılar hakkında daha fazla bilgi edinmek için Sanal Makineler için Azure Backup kaynak grubu belgelerine bakın.
$bkpPol = Get-AzureRmRecoveryServicesBackupProtectionPolicy -name "DefaultPolicyForVMs"
$bkpPol.AzureBackupRGName="Contosto_"
$bkpPol.AzureBackupRGNameSuffix="ForVMs"
Set-AzureRmRecoveryServicesBackupProtectionPolicy -policy $bkpPol
Korumalı vm için diskleri dışlama
Azure VM yedeklemesi, bu senaryolarda yararlı olan diskleri seçmeli olarak dışlama veya dahil etme özelliği sağlar. Sanal makine zaten Azure VM yedeklemesi tarafından korunuyorsa ve tüm diskler yedekleniyorsa, burada belirtildiği gibi korumayı diskleri seçmeli olarak dahil etmek veya hariç tutmak için değiştirebilirsiniz.
Yedekleme tetikleme
Yedekleme işini tetikleme için Backup-AzRecoveryServicesBackupItem kullanın. İlk yedekleme ise tam yedeklemedir. Sonraki yedeklemeler artımlı bir kopya alır. Aşağıdaki örnek, 60 gün boyunca tutulacak bir VM yedeklemesi alır.
$namedContainer = Get-AzRecoveryServicesBackupContainer -ContainerType "AzureVM" -Status "Registered" -FriendlyName "V2VM" -VaultId $targetVault.ID
$item = Get-AzRecoveryServicesBackupItem -Container $namedContainer -WorkloadType "AzureVM" -VaultId $targetVault.ID
$endDate = (Get-Date).AddDays(60).ToUniversalTime()
$job = Backup-AzRecoveryServicesBackupItem -Item $item -VaultId $targetVault.ID -ExpiryDateTimeUTC $endDate
Çıktı aşağıdaki örneğe benzer:
WorkloadName Operation Status StartTime EndTime JobID
------------ --------- ------ --------- ------- ----------
V2VM Backup InProgress 4/23/2016 5:00:30 PM cf4b3ef5-2fac-4c8e-a215-d2eba4124f27
Dekont
PowerShell'de StartTime ve EndTime alanlarının saat dilimi UTC'dir. Ancak, saat Azure portalında gösterildiğinde, saat yerel saat diliminize göre ayarlanır.
Yedekleme öğeleri için ilkeyi değiştirme
Mevcut ilkeyi değiştirebilir veya yedeklenen öğenin ilkesini İlke1'den İlke2'ye değiştirebilirsiniz. Yedeklenen bir öğenin ilkelerini değiştirmek için ilgili ilkeyi getirin ve öğeyi yedekleyin ve Enable-AzRecoveryServices komutunu kullanarak parametre olarak yedekleme öğesini kullanın.
$TargetPol1 = Get-AzRecoveryServicesBackupProtectionPolicy -Name <PolicyName> -VaultId $targetVault.ID
$anotherBkpItem = Get-AzRecoveryServicesBackupItem -WorkloadType AzureVM -BackupManagementType AzureVM -Name "<BackupItemName>" -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Item $anotherBkpItem -Policy $TargetPol1 -VaultId $targetVault.ID
Komut, yapılandırma yedeklemesi tamamlanana kadar bekler ve aşağıdaki çıkışı döndürür.
WorkloadName Operation Status StartTime EndTime JobID
------------ --------- ------ --------- ------- -----
TestVM ConfigureBackup Completed 3/18/2019 8:00:21 PM 3/18/2019 8:02:16 PM 654e8aa2-4096-402b-b5a9-e5e71a496c4e
Korumayı durdurma
Verileri saklama
Korumayı durdurmak isterseniz Disable-AzRecoveryServicesBackupProtection PowerShell cmdlet'ini kullanabilirsiniz. Bu, zamanlanmış yedeklemeleri durdurur, ancak şimdiye kadar yedeklenen veriler sonsuza kadar korunur.
$bkpItem = Get-AzRecoveryServicesBackupItem -BackupManagementType AzureVM -WorkloadType AzureVM -Name "<backup item name>" -VaultId $targetVault.ID
Disable-AzRecoveryServicesBackupProtection -Item $bkpItem -VaultId $targetVault.ID
Yedeklemeyi sürdür
Koruma durdurulur ve yedekleme verileri korunursa, korumayı bir kez daha sürdürebilirsiniz. Yenilenen koruma için bir ilke atamanız gerekir. Cmdlet, yedekleme öğelerinin değişiklik ilkesiyle aynıdır.
$TargetPol1 = Get-AzRecoveryServicesBackupProtectionPolicy -Name <PolicyName> -VaultId $targetVault.ID
$anotherBkpItem = Get-AzRecoveryServicesBackupItem -WorkloadType AzureVM -BackupManagementType AzureVM -Name "<BackupItemName>" -VaultId $targetVault.ID
Enable-AzRecoveryServicesBackupProtection -Item $anotherBkpItem -Policy $TargetPol1 -VaultId $targetVault.ID
Yedekleme verilerini silme
Kasada depolanan yedekleme verilerini tamamen kaldırmak için '-RemoveRecoveryPoints' bayrağını/anahtarını 'disable' protection komutuna ekleyin.
Disable-AzRecoveryServicesBackupProtection -Item $bkpItem -VaultId $targetVault.ID -RemoveRecoveryPoints
Azure VM'yi geri yükleme
Azure portalını kullanarak bir VM'yi geri yükleme ile PowerShell kullanarak bir VM'yi geri yükleme arasında önemli bir fark vardır. PowerShell ile, kurtarma noktasından diskler ve yapılandırma bilgileri oluşturulduktan sonra geri yükleme işlemi tamamlanır. Geri yükleme işlemi sanal makineyi oluşturmaz. Diskten sanal makine oluşturmak için, Geri yüklenen disklerden VM oluşturma bölümüne bakın. VM'nin tamamını geri yüklemek istemiyorsanız ancak Azure VM yedeklemesinden birkaç dosyayı geri yüklemek veya kurtarmak istiyorsanız, dosya kurtarma bölümüne bakın.
Bahşiş
Geri yükleme işlemi sanal makineyi oluşturmaz.
Aşağıdaki grafik, nesne hiyerarşisini aşağıdan RecoveryServicesVault
BackupRecoveryPoint
öğesine doğru gösterir.
Yedekleme verilerini geri yüklemek için yedeklenen öğeyi ve belirli bir noktaya ait verileri barındıran kurtarma noktasını belirleyin. Kasadaki verileri hesabınıza geri yüklemek için Restore-AzRecoveryServicesBackupItem komutunu kullanın.
Azure VM'yi geri yüklemenin temel adımları şunlardır:
- VM’yi seçin.
- Bir kurtarma noktası seçin.
- Diskleri geri yükleyin.
- Depolanan disklerden VM'yi oluşturun.
Artık, yukarıdaki adımları ayrı ayrı gerçekleştirmeden yedekleme içeriğini doğrudan bir VM'ye (özgün/yeni) geri yüklemek için PowerShell'i de kullanabilirsiniz. Daha fazla bilgi için bkz . PowerShell kullanarak verileri sanal makineye geri yükleme.
VM'yi seçin (dosyaları geri yüklerken)
Doğru yedekleme öğesini tanımlayan PowerShell nesnesini almak için kasadaki kapsayıcıdan başlayın ve nesne hiyerarşisinde ilerleyin. VM'yi temsil eden kapsayıcıyı seçmek için Get-AzRecoveryServicesBackupContainer cmdlet'ini kullanın ve bunu Get-AzRecoveryServicesBackupItem cmdlet'ine yöneltin.
$namedContainer = Get-AzRecoveryServicesBackupContainer -ContainerType "AzureVM" -Status "Registered" -FriendlyName "V2VM" -VaultId $targetVault.ID
$backupitem = Get-AzRecoveryServicesBackupItem -Container $namedContainer -WorkloadType "AzureVM" -VaultId $targetVault.ID
Bir kurtarma noktası seçin (dosyaları geri yüklerken)
Yedek öğenin tüm kurtarma noktalarını listelemek için Get-AzRecoveryServicesBackupRecoveryPoint cmdlet'ini kullanın. Ardından geri yükleneceği kurtarma noktasını seçin. Hangi kurtarma noktasını kullanacağınızdan emin değilseniz, listedeki en son RecoveryPointType = AppConsistent noktasını seçmek iyi bir uygulamadır.
Aşağıdaki betikte $rp değişkeni, seçilen yedekleme öğesi için son yedi güne ait bir kurtarma noktaları dizisidir. Dizi, dizin 0'daki en son kurtarma noktasıyla zamanın ters sırasına göre sıralanır. Kurtarma noktasını seçmek için standart PowerShell dizi dizini oluşturmayı kullanın. Örnekte $rp[0] en son kurtarma noktasını seçer.
$startDate = (Get-Date).AddDays(-7)
$endDate = Get-Date
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -Item $backupitem -StartDate $startdate.ToUniversalTime() -EndDate $enddate.ToUniversalTime() -VaultId $targetVault.ID
$rp[0]
Çıktı aşağıdaki örneğe benzer:
RecoveryPointAdditionalInfo :
SourceVMStorageType : NormalStorage
Name : 15260861925810
ItemName : VM;iaasvmcontainer;RGName1;V2VM
RecoveryPointId : /subscriptions/XX/resourceGroups/ RGName1/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;RGName1;V2VM/protectedItems/VM;iaasvmcontainer; RGName1;V2VM/recoveryPoints/15260861925810
RecoveryPointType : AppConsistent
RecoveryPointTime : 4/23/2016 5:02:04 PM
WorkloadType : AzureVM
ContainerName : IaasVMContainer;iaasvmcontainer; RGName1;V2VM
ContainerType : AzureVM
BackupManagementType : AzureVM
Diskleri geri yükleme
Bir yedekleme öğesinin verilerini ve yapılandırmasını kurtarma noktasına geri yüklemek için Restore-AzRecoveryServicesBackupItem cmdlet'ini kullanın. Bir kurtarma noktası belirledikten sonra bunu -RecoveryPoint parametresinin değeri olarak kullanın. Yukarıdaki örnekte, $rp[0] kullanılacak kurtarma noktasıydı. Aşağıdaki örnek kodda $rp [0] diski geri yüklemek için kullanılacak kurtarma noktasıdır.
Diskleri ve yapılandırma bilgilerini geri yüklemek için:
$restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -VaultId $targetVault.ID
$restorejob
Yönetilen diskleri geri yükleme
Dekont
Yedeklenen VM'de yönetilen diskler varsa ve bunları yönetilen diskler olarak geri yüklemek istiyorsanız, Azure PowerShell RM modülü v 6.7.0'dan bu özelliği kullanıma sunuyoruz. Itibaren.
Yönetilen disklerin geri yükleneceği RG'yi belirtmek için ek bir TargetResourceGroupName parametresi sağlayın.
Önemli
Yönetilen diskleri geri yüklemek için TargetResourceGroupName parametresinin kullanılması kesinlikle önerilir çünkü önemli performans iyileştirmeleri sağlar. Bu parametre verilmezse, anlık geri yükleme işlevinden yararlanamazsınız ve geri yükleme işlemi karşılaştırıldığında daha yavaş olacaktır. Amaç yönetilen diskleri yönetilmeyen diskler olarak geri yüklemekse, bu parametreyi sağlamayın ve parametreyi -RestoreAsUnmanagedDisks
sağlayarak amacı açıkça belirtin. -RestoreAsUnmanagedDisks
parametresi, Azure PowerShell 3.7.0'dan itibaren kullanılabilir. Sonraki sürümlerde, doğru geri yükleme deneyimi için bu parametrelerden birinin sağlanması zorunlu olacaktır.
$restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -TargetResourceGroupName "DestRGforManagedDisks" -VaultId $targetVault.ID
VMConfig.JSON dosyası depolama hesabına geri yüklenir ve yönetilen diskler belirtilen hedef RG'ye geri yüklenir.
Çıktı aşağıdaki örneğe benzer:
WorkloadName Operation Status StartTime EndTime JobID
------------ --------- ------ --------- ------- ----------
V2VM Restore InProgress 4/23/2016 5:00:30 PM cf4b3ef5-2fac-4c8e-a215-d2eba4124f27
Geri Yükleme işinin tamamlanmasını beklemek için Wait-AzRecoveryServicesBackupJob cmdlet'ini kullanın.
Wait-AzRecoveryServicesBackupJob -Job $restorejob -Timeout 43200
Geri Yükleme işi tamamlandıktan sonra, geri yükleme işleminin ayrıntılarını almak için Get-AzRecoveryServicesBackupJobDetail cmdlet'ini kullanın. JobDetails özelliği, VM'yi yeniden derlemek için gereken bilgilere sahiptir.
$restorejob = Get-AzRecoveryServicesBackupJob -Job $restorejob -VaultId $targetVault.ID
$details = Get-AzRecoveryServicesBackupJobDetail -Job $restorejob -VaultId $targetVault.ID
Diskleri geri yüklemek için yönetilen kimlik kullanma
Azure Backup, disklerin geri yüklenmesi gereken depolama hesaplarına erişmek için geri yükleme işlemi sırasında yönetilen kimliği (MSI) kullanmanıza da olanak tanır. Bu seçenek şu anda yalnızca yönetilen disk geri yükleme için desteklenmektedir.
Diskleri geri yüklemek için kasanın sistem tarafından atanan yönetilen kimliğini kullanmak istiyorsanız Restore-AzRecoveryServicesBackupItem komutuna ek bir -UseSystemAssignedIdentity bayrağı geçirin. Kullanıcı tarafından atanan bir yönetilen kimlik kullanmak istiyorsanız, parametrenin değeri olarak kasanın yönetilen kimliğinin Azure Resource Manager Kimliği ile -UserAssignedIdentityId parametresini geçirin. Kasalarınız için yönetilen kimliği etkinleştirmeyi öğrenmek için bu makaleye bakın.
Seçmeli diskleri geri yükleme
Bir kullanıcı, yedeklenen kümenin tamamı yerine birkaç diski seçmeli olarak geri yükleyebilir. Gerekli disk LUN'larını burada belgelendiği gibi kümenin tamamı yerine yalnızca geri yüklemek için parametre olarak sağlayın.
Önemli
Diskleri seçmeli olarak geri yüklemek için diskleri seçmeli olarak yedeklemek gerekir. Daha fazla ayrıntı burada verilmiştir.
Diskleri geri yükledikten sonra vm'yi oluşturmak için sonraki bölüme gidin.
Diskleri ikincil bölgeye geri yükleme
VM'lerinizi koruduğunuz kasada bölgeler arası geri yükleme etkinleştirildiyse, yedekleme verileri ikincil bölgeye çoğaltılır. Geri yükleme gerçekleştirmek için yedekleme verilerini kullanabilirsiniz. İkincil bölgede geri yükleme tetikleme için aşağıdaki adımları gerçekleştirin:
Geri yükleneceği doğru yedekleme öğesini seçin.
Geri yüklemeyi gerçekleştirmek için kullanmak istediğiniz ikincil bölgede uygun kurtarma noktasını seçin.
Bu adımı tamamlamak için şu komutu çalıştırın:
$rp=Get-AzRecoveryServicesBackupRecoveryPoint -UseSecondaryRegion -Item $backupitem -VaultId $targetVault.ID $rp=$rp[0]
İkincil bölgede geri yüklemeyi tetikleme parametresiyle
-RestoreToSecondaryRegion
Restore-AzRecoveryServicesBackupItem cmdlet'ini yürütün.Bu adımı tamamlamak için şu komutu çalıştırın:
$restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -TargetResourceGroupName "DestRGforManagedDisks" -VaultId $targetVault.ID -VaultLocation $targetVault.Location -RestoreToSecondaryRegion -RestoreOnlyOSDisk
Çıkış aşağıdaki örneğe benzeyecektir:
WorkloadName Operation Status StartTime EndTime JobID ------------ --------- ------ --------- ------- ---------- V2VM CrossRegionRestore InProgress 4/23/2016 5:00:30 PM cf4b3ef5-2fac-4c8e-a215-d2eba4124f27
Geri yükleme işini izlemek için parametresiyle
-UseSecondaryRegion
Get-AzRecoveryServicesBackupJob cmdlet'ini yürütür.Bu adımı tamamlamak için şu komutu çalıştırın:
Get-AzRecoveryServicesBackupJob -From (Get-Date).AddDays(-7).ToUniversalTime() -To (Get-Date).ToUniversalTime() -UseSecondaryRegion -VaultId $targetVault.ID
Çıkış aşağıdaki örneğe benzeyecektir:
WorkloadName Operation Status StartTime EndTime JobID ------------ --------- ------ --------- ------- ----- V2VM CrossRegionRestore InProgress 2/8/2021 4:24:57 PM 2d071b07-8f7c-4368-bc39-98c7fb2983f7
Bölgeler arası geri yükleme
Azure bölgesi sabitlenmiş VM'leri aynı bölgedeki kullanılabilirlik alanlarında geri yükleyebilirsiniz.
Vm'yi başka bir bölgeye geri yüklemek için Restore-AzRecoveryServicesBackupItem cmdlet'inde parametresini belirtinTargetZoneNumber
.
$restorejob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -StorageAccountName "DestAccount" -StorageAccountResourceGroupName "DestRG" -VaultId $targetVault.ID -TargetZoneNumber 3
Çıkış aşağıdaki örneğe benzeyecektir:
WorkloadName Operation Status StartTime EndTime JobID
------------ --------- ------ --------- ------- -----
zonevmeus2 Restore InProgress 1/3/2022 10:27:20 AM b2298...
Bölgeler arası geri yükleme yalnızca şu senaryolarda desteklenir:
- Kaynak VM bölge sabitlenmiş ve ŞIFRELENMEDİ.
- Kurtarma noktası yalnızca kasa katmanında bulunur. Yalnızca anlık görüntüler veya anlık görüntü ve kasa katmanı desteklenmez.
- Kurtarma seçeneği yeni bir VM oluşturmak veya diskleri geri yüklemektir. Diskleri değiştir seçeneği kaynak verilerin yerini alır; bu nedenle kullanılabilirlik alanı seçeneği geçerli değildir.
- Kasanın depolama yedekliliği ZRS olduğunda aynı bölgede VM/disk oluşturma. Kaynak VM bölge sabitlenmiş olsa bile kasanın depolama yedekliliği GRS ise çalışmadığını unutmayın.
- Kasanın depolama yedekliliği Bölgeler Arası Geri Yükleme için etkinleştirildiğinde ve eşleştirilmiş bölge bölgeleri destekliyorsa, eşleştirilmiş bölgede VM/disk oluşturma.
Azure VM'de diskleri değiştirme
Diskleri ve yapılandırma bilgilerini değiştirmek için aşağıdaki adımları uygulayın:
- 1. Adım: Diskleri geri yükleme
- 2. Adım: PowerShell kullanarak veri disklerini ayırma
- 3. Adım: PowerShell ile Windows VM'ye veri diski ekleme
Geri yüklenen disklerden VM oluşturma
Diskleri geri yükledikten sonra, diskten sanal makine oluşturmak ve yapılandırmak için aşağıdaki adımları kullanın.
Dekont
- AzureAz modülü 3.0.0 veya üzeri gereklidir.
- Geri yüklenen disklerden şifrelenmiş VM'ler oluşturmak için Azure rolünüzün Microsoft.KeyVault/vaults/deploy/action eylemini gerçekleştirme iznine sahip olması gerekir. Rolünüz bu izne sahip değilse, bu eylemle özel bir rol oluşturun. Daha fazla bilgi için bkz . Azure özel rolleri.
- Diskleri geri yükledikten sonra, artık yeni bir VM oluşturmak için doğrudan kullanabileceğiniz bir dağıtım şablonu alabilirsiniz. Şifrelenmiş/şifrelenmemiş yönetilen/yönetilmeyen VM'ler oluşturmak için farklı PowerShell cmdlet'lerine ihtiyacınız yoktur.
Dağıtım şablonunu kullanarak VM oluşturma
Sonuçta elde edilen iş ayrıntıları, sorgulanabilen ve dağıtılabilir şablon URI'sini verir.
$properties = $details.properties
$storageAccountName = $properties["Target Storage Account Name"]
$containerName = $properties["Config Blob Container Name"]
$templateBlobURI = $properties["Template Blob Uri"]
Müşterinin depolama hesabı ve belirtilen kapsayıcı altında olduğundan şablona doğrudan erişilemez. Bu şablona erişmek için tam URL'ye (geçici bir SAS belirteci ile birlikte) ihtiyacımız var.
İlk olarak templateBlobURI'sinden şablon adını ayıklayın. Biçim aşağıda belirtilmiştir. Bu URL'den son şablon adını ayıklamak için PowerShell'deki bölme işlemini kullanabilirsiniz.
https://<storageAccountName.blob.core.windows.net>/<containerName>/<templateName>
Ardından tam URL burada açıklandığı gibi oluşturulabilir.
Set-AzCurrentStorageAccount -Name $storageAccountName -ResourceGroupName <StorageAccount RG name> $templateBlobFullURI = New-AzStorageBlobSASToken -Container $containerName -Blob <templateName> -Permission r -FullUri
Burada açıklandığı gibi yeni bir VM oluşturmak için şablonu dağıtın.
New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup -TemplateUri $templateBlobFullURI
Yapılandırma dosyasını kullanarak VM oluşturma
Aşağıdaki bölümde, dosya kullanarak VMConfig
VM oluşturmak için gerekli adımlar listelanmıştır.
Dekont
Vm oluşturmak için yukarıda ayrıntılarıyla belirtilen dağıtım şablonunun kullanılması kesinlikle önerilir. Bu bölüm (Puan 1-6) yakında kullanımdan kaldırılacaktır.
İş ayrıntıları için geri yüklenen disk özelliklerini sorgula.
$properties = $details.properties $storageAccountName = $properties["Target Storage Account Name"] $containerName = $properties["Config Blob Container Name"] $configBlobName = $properties["Config Blob Name"]
Azure depolama bağlamını ayarlayın ve JSON yapılandırma dosyasını geri yükleyin.
Set-AzCurrentStorageAccount -Name $storageaccountname -ResourceGroupName "testvault" $destination_path = "C:\vmconfig.json" Get-AzStorageBlobContent -Container $containerName -Blob $configBlobName -Destination $destination_path $obj = ((Get-Content -Path $destination_path -Raw -Encoding Unicode)).TrimEnd([char]0x00) | ConvertFrom-Json
VM yapılandırmasını oluşturmak için JSON yapılandırma dosyasını kullanın.
$vm = New-AzVMConfig -VMSize $obj.'properties.hardwareProfile'.vmSize -VMName "testrestore"
İşletim sistemi diskini ve veri disklerini ekleyin. Bu adım, çeşitli yönetilen ve şifrelenmiş VM yapılandırmaları için örnekler sağlar. VM yapılandırmanıza uygun örneği kullanın.
- Yönetilmeyen ve şifrelenmemiş VM'ler - Yönetilmeyen, şifrelenmemiş VM'ler için aşağıdaki örneği kullanın.
Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.StorageProfile'.osDisk.vhd.Uri -CreateOption "Attach" $vm.StorageProfile.OsDisk.OsType = $obj.'properties.StorageProfile'.OsDisk.OsType foreach($dd in $obj.'properties.StorageProfile'.DataDisks) { $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach" }
- Microsoft Entra Id ile yönetilmeyen ve şifrelenmiş VM'ler (yalnızca BEK) - Microsoft Entra Id ile yönetilmeyen, şifrelenmiş VM'ler için (yalnızca BEK kullanılarak şifrelenir), diskleri ekleyebilmek için önce gizli diziyi anahtar kasasına geri yüklemeniz gerekir. Daha fazla bilgi için bkz. Azure Backup kurtarma noktasından şifrelenmiş bir sanal makineyi geri yükleme. Aşağıdaki örnekte şifrelenmiş VM'ler için işletim sistemi ve veri disklerinin nasıl eklenip eklenmeyği gösterilmektedir. İşletim sistemi diskini ayarlarken ilgili işletim sistemi türünden bahsetmeyi unutmayın.
$dekUrl = "https://ContosoKeyVault.vault.azure.net:443/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163" $dekUrl = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault" Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.storageProfile'.osDisk.vhd.uri -DiskEncryptionKeyUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -CreateOption "Attach" -Windows/Linux $vm.StorageProfile.OsDisk.OsType = $obj.'properties.storageProfile'.osDisk.osType foreach($dd in $obj.'properties.storageProfile'.dataDisks) { $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach" }
- Microsoft Entra Id (BEK ve KEK) ile yönetilmeyen ve şifrelenmiş VM'ler - Microsoft Entra Id (BEK ve KEK kullanılarak şifrelenmiş) ile yönetilmeyen, şifrelenmiş VM'ler için, diskleri eklemeden önce anahtarı ve gizli diziyi anahtar kasasına geri yükleyin. Daha fazla bilgi için bkz . Azure Backup kurtarma noktasından şifrelenmiş bir sanal makineyi geri yükleme. Aşağıdaki örnekte şifrelenmiş VM'ler için işletim sistemi ve veri disklerinin nasıl eklenip eklenmeyği gösterilmektedir.
$dekUrl = "https://ContosoKeyVault.vault.azure.net:443/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163" $kekUrl = "https://ContosoKeyVault.vault.azure.net:443/keys/ContosoKey007/x9xxx00000x0000x9b9949999xx0x006" $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault" Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.storageProfile'.osDisk.vhd.uri -DiskEncryptionKeyUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -KeyEncryptionKeyUrl $kekUrl -KeyEncryptionKeyVaultId $keyVaultId -CreateOption "Attach" -Windows $vm.StorageProfile.OsDisk.OsType = $obj.'properties.storageProfile'.osDisk.osType foreach($dd in $obj.'properties.storageProfile'.dataDisks) { $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach" }
- Microsoft Entra Id olmadan yönetilmeyen ve şifrelenmiş VM'ler (yalnızca BEK) - Microsoft Entra Id olmadan yönetilmeyen, şifrelenmiş VM'ler için (yalnızca BEK kullanılarak şifrelenir), kaynak keyVault/secret kullanılamıyorsa, Azure Backup kurtarma noktasından şifrelenmemiş bir sanal makineyi geri yükleme yordamını kullanarak gizli dizileri anahtar kasasına geri yükleyin. Ardından, geri yüklenen işletim sistemi blobundaki şifreleme ayrıntılarını ayarlamak için aşağıdaki betikleri yürütün (bu adım veri blobu için gerekli değildir). $dekurl geri yüklenen keyVault'tan getirilebilir.
Aşağıdaki betiğin yalnızca kaynak keyVault/secret kullanılabilir olmadığında yürütülmesi gerekir.
$dekUrl = "https://ContosoKeyVault.vault.azure.net/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163" $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault" $encSetting = "{""encryptionEnabled"":true,""encryptionSettings"":[{""diskEncryptionKey"":{""sourceVault"":{""id"":""$keyVaultId""},""secretUrl"":""$dekUrl""}}]}" $osBlobName = $obj.'properties.StorageProfile'.osDisk.name + ".vhd" $osBlob = Get-AzStorageBlob -Container $containerName -Blob $osBlobName $osBlob.ICloudBlob.Metadata["DiskEncryptionSettings"] = $encSetting $osBlob.ICloudBlob.SetMetadata()
Gizli diziler kullanıma sunulduktan ve şifreleme ayrıntıları da işletim sistemi Blobu'nda ayarlandıktan sonra, aşağıda verilen betiği kullanarak diskleri ekleyin.
Kaynak keyVault/gizli diziler zaten kullanılabilir durumdaysa yukarıdaki betiğin yürütülmesi gerekmez.
Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.StorageProfile'.osDisk.vhd.Uri -CreateOption "Attach" $vm.StorageProfile.OsDisk.OsType = $obj.'properties.StorageProfile'.OsDisk.OsType foreach($dd in $obj.'properties.StorageProfile'.DataDisks) { $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach" }
- Microsoft Entra Id (BEK ve KEK) olmadan yönetilmeyen ve şifrelenmiş VM'ler - Microsoft Entra Id (BEK & KEK kullanılarak şifrelenir) olmayan, yönetilmeyen, şifrelenmiş VM'ler için kaynak anahtarVault/anahtar/gizli dizi kullanılamıyorsa, Şifrelenmemiş sanal makineyi Azure Backup kurtarma noktasından geri yükleme yordamını kullanarak anahtarı ve gizli dizileri anahtar kasasına geri yükleyin. Ardından, geri yüklenen işletim sistemi blobundaki şifreleme ayrıntılarını ayarlamak için aşağıdaki betikleri yürütün (bu adım veri blobu için gerekli değildir). $dekurl ve $kekurl geri yüklenen keyVault'tan getirilebilir.
Aşağıdaki betiğin yalnızca kaynak keyVault/key/secret kullanılabilir olmadığında yürütülmesi gerekir.
$dekUrl = "https://ContosoKeyVault.vault.azure.net/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163" $kekUrl = "https://ContosoKeyVault.vault.azure.net/keys/ContosoKey007/x9xxx00000x0000x9b9949999xx0x006" $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault" $encSetting = "{""encryptionEnabled"":true,""encryptionSettings"":[{""diskEncryptionKey"":{""sourceVault"":{""id"":""$keyVaultId""},""secretUrl"":""$dekUrl""},""keyEncryptionKey"":{""sourceVault"":{""id"":""$keyVaultId""},""keyUrl"":""$kekUrl""}}]}" $osBlobName = $obj.'properties.StorageProfile'.osDisk.name + ".vhd" $osBlob = Get-AzStorageBlob -Container $containerName -Blob $osBlobName $osBlob.ICloudBlob.Metadata["DiskEncryptionSettings"] = $encSetting $osBlob.ICloudBlob.SetMetadata()
Anahtar/gizli diziler kullanılabilir duruma gelip şifreleme ayrıntıları işletim sistemi Blobu'nda ayarlandıktan sonra, aşağıda verilen betiği kullanarak diskleri ekleyin.
Kaynak keyVault/key/secrets kullanılabilir durumdaysa yukarıdaki betiğin yürütülmesi gerekmez.
Set-AzVMOSDisk -VM $vm -Name "osdisk" -VhdUri $obj.'properties.StorageProfile'.osDisk.vhd.Uri -CreateOption "Attach" $vm.StorageProfile.OsDisk.OsType = $obj.'properties.StorageProfile'.OsDisk.OsType foreach($dd in $obj.'properties.StorageProfile'.DataDisks) { $vm = Add-AzVMDataDisk -VM $vm -Name "datadisk1" -VhdUri $dd.vhd.Uri -DiskSizeInGB 127 -Lun $dd.Lun -CreateOption "Attach" }
Yönetilen ve şifrelenmemiş VM'ler - Yönetilen şifrelenmemiş VM'ler için, geri yüklenen yönetilen diskleri ekleyin. Ayrıntılı bilgi için bkz . PowerShell kullanarak Windows VM'sine veri diski ekleme.
Microsoft Entra Id ile yönetilen ve şifrelenmiş VM'ler (yalnızca BEK) - Microsoft Entra Id ile yönetilen şifrelenmiş VM'ler için (yalnızca BEK kullanılarak şifrelenir), geri yüklenen yönetilen diskleri ekleyin. Ayrıntılı bilgi için bkz . PowerShell kullanarak Windows VM'sine veri diski ekleme.
Microsoft Entra Id (BEK ve KEK) ile yönetilen ve şifrelenmiş VM'ler - Microsoft Entra Id (BEK ve KEK kullanılarak şifrelenmiş) ile yönetilen şifrelenmiş VM'ler için, geri yüklenen yönetilen diskleri ekleyin. Ayrıntılı bilgi için bkz . PowerShell kullanarak Windows VM'sine veri diski ekleme.
Microsoft Entra Id olmadan yönetilen ve şifrelenmiş VM'ler (yalnızca BEK) -Microsoft Entra Id olmadan yönetilen, şifrelenmiş VM'ler için (yalnızca BEK kullanılarak şifrelenir), kaynak keyVault/secret kullanılamıyorsa, Azure Backup kurtarma noktasından şifrelenmemiş bir sanal makineyi geri yükleme yordamını kullanarak gizli dizileri anahtar kasasına geri yükleyin. Ardından, geri yüklenen işletim sistemi diskinde şifreleme ayrıntılarını ayarlamak için aşağıdaki betikleri yürütün (bu adım veri diski için gerekli değildir). $dekurl geri yüklenen keyVault'tan getirilebilir.
Aşağıdaki betiğin yalnızca kaynak keyVault/secret kullanılabilir olmadığında yürütülmesi gerekir.
$dekUrl = "https://ContosoKeyVault.vault.azure.net/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163" $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault" $diskupdateconfig = New-AzDiskUpdateConfig -EncryptionSettingsEnabled $true $encryptionSettingsElement = New-Object Microsoft.Azure.Management.Compute.Models.EncryptionSettingsElement $encryptionSettingsElement.DiskEncryptionKey = New-Object Microsoft.Azure.Management.Compute.Models.KeyVaultAndSecretReference $encryptionSettingsElement.DiskEncryptionKey.SourceVault = New-Object Microsoft.Azure.Management.Compute.Models.SourceVault $encryptionSettingsElement.DiskEncryptionKey.SourceVault.Id = $keyVaultId $encryptionSettingsElement.DiskEncryptionKey.SecretUrl = $dekUrl $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettings = New-Object System.Collections.Generic.List[Microsoft.Azure.Management.Compute.Models.EncryptionSettingsElement] $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettings.Add($encryptionSettingsElement) $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettingsVersion = "1.1" Update-AzDisk -ResourceGroupName "testvault" -DiskName $obj.'properties.StorageProfile'.osDisk.name -DiskUpdate $diskupdateconfig
Gizli diziler kullanılabilir duruma geldikten ve şifreleme ayrıntıları işletim sistemi diskinde ayarlandıktan sonra, geri yüklenen yönetilen diskleri eklemek için bkz . PowerShell kullanarak Windows VM'sine veri diski ekleme.
- Microsoft Entra Id (BEK ve KEK) içermeyen yönetilen ve şifrelenmiş VM'ler - Microsoft Entra Id (BEK & KEK kullanılarak şifrelenmiş) olmayan yönetilen, şifrelenmiş VM'ler için, kaynak anahtarVault/anahtar/gizli dizi kullanılamıyorsa, Azure Backup kurtarma noktasından şifrelenmemiş bir sanal makineyi geri yükleme yordamını kullanarak anahtarı ve gizli dizileri anahtar kasasına geri yükleyin. Ardından, geri yüklenen işletim sistemi diskinde şifreleme ayrıntılarını ayarlamak için aşağıdaki betikleri yürütün (bu adım veri diskleri için gerekli değildir). $dekurl ve $kekurl geri yüklenen keyVault'tan getirilebilir.
Aşağıdaki betiğin yalnızca kaynak keyVault/key/secret kullanılabilir olmadığında yürütülmesi gerekir.
$dekUrl = "https://ContosoKeyVault.vault.azure.net/secrets/ContosoSecret007/xx000000xx0849999f3xx30000003163" $kekUrl = "https://ContosoKeyVault.vault.azure.net/keys/ContosoKey007/x9xxx00000x0000x9b9949999xx0x006" $keyVaultId = "/subscriptions/abcdedf007-4xyz-1a2b-0000-12a2b345675c/resourceGroups/ContosoRG108/providers/Microsoft.KeyVault/vaults/ContosoKeyVault" $diskupdateconfig = New-AzDiskUpdateConfig -EncryptionSettingsEnabled $true $encryptionSettingsElement = New-Object Microsoft.Azure.Management.Compute.Models.EncryptionSettingsElement $encryptionSettingsElement.DiskEncryptionKey = New-Object Microsoft.Azure.Management.Compute.Models.KeyVaultAndSecretReference $encryptionSettingsElement.DiskEncryptionKey.SourceVault = New-Object Microsoft.Azure.Management.Compute.Models.SourceVault $encryptionSettingsElement.DiskEncryptionKey.SourceVault.Id = $keyVaultId $encryptionSettingsElement.DiskEncryptionKey.SecretUrl = $dekUrl $encryptionSettingsElement.KeyEncryptionKey = New-Object Microsoft.Azure.Management.Compute.Models.KeyVaultAndKeyReference $encryptionSettingsElement.KeyEncryptionKey.SourceVault = New-Object Microsoft.Azure.Management.Compute.Models.SourceVault $encryptionSettingsElement.KeyEncryptionKey.SourceVault.Id = $keyVaultId $encryptionSettingsElement.KeyEncryptionKey.KeyUrl = $kekUrl $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettings = New-Object System.Collections.Generic.List[Microsoft.Azure.Management.Compute.Models.EncryptionSettingsElement] $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettings.Add($encryptionSettingsElement) $diskupdateconfig.EncryptionSettingsCollection.EncryptionSettingsVersion = "1.1" Update-AzDisk -ResourceGroupName "testvault" -DiskName $obj.'properties.StorageProfile'.osDisk.name -DiskUpdate $diskupdateconfig
Anahtar/gizli diziler kullanılabilir duruma geldikten ve şifreleme ayrıntıları işletim sistemi diskinde ayarlandıktan sonra, geri yüklenen yönetilen diskleri eklemek için bkz . PowerShell kullanarak Windows VM'sine veri diski ekleme.
Ağ ayarlarını yapın.
$nicName="p1234" $pip = New-AzPublicIpAddress -Name $nicName -ResourceGroupName "test" -Location "WestUS" -AllocationMethod Dynamic $virtualNetwork = New-AzVirtualNetwork -ResourceGroupName "test" -Location "WestUS" -Name "testvNET" -AddressPrefix 10.0.0.0/16 $virtualNetwork | Set-AzVirtualNetwork $vnet = Get-AzVirtualNetwork -Name "testvNET" -ResourceGroupName "test" $subnetindex=0 $nic = New-AzNetworkInterface -Name $nicName -ResourceGroupName "test" -Location "WestUS" -SubnetId $vnet.Subnets[$subnetindex].Id -PublicIpAddressId $pip.Id $vm=Add-AzVMNetworkInterface -VM $vm -Id $nic.Id
Sanal makineyi oluşturun.
New-AzVM -ResourceGroupName "test" -Location "WestUS" -VM $vm
ADE uzantısını gönderme. ADE uzantıları gönderilmezse veri diskleri şifrelenmemiş olarak işaretlenir, bu nedenle aşağıdaki adımların yürütülmesi zorunlu olur:
Microsoft Entra Kimliğine sahip VM için - Veri diskleri için şifrelemeyi el ile etkinleştirmek için aşağıdaki komutu kullanın
Yalnızca BEK
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm.Name -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -VolumeType Data
BEK ve KEK
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm.Name -AadClientID $aadClientID -AadClientSecret $aadClientSecret -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -KeyEncryptionKeyUrl $kekUrl -KeyEncryptionKeyVaultId $keyVaultId -VolumeType Data
Microsoft Entra Kimliği olmayan VM için - Veri diskleri için şifrelemeyi el ile etkinleştirmek için aşağıdaki komutu kullanın.
Komut yürütme sırasında AADClientID istenirse Azure PowerShell'inizi güncelleştirmeniz gerekir.
Yalnızca BEK
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm.Name -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -SkipVmBackup -VolumeType "All"
BEK ve KEK
Set-AzVMDiskEncryptionExtension -ResourceGroupName $RG -VMName $vm.Name -DiskEncryptionKeyVaultUrl $dekUrl -DiskEncryptionKeyVaultId $keyVaultId -KeyEncryptionKeyUrl $kekUrl -KeyEncryptionKeyVaultId $keyVaultId -SkipVmBackup -VolumeType "All"
Dekont
Şifrelenmiş VM geri yükleme disk işleminin bir parçası olarak oluşturulan JASON dosyalarını el ile sildiğinizden emin olun.
Azure VM yedeklemesinden dosyaları geri yükleme
Diskleri geri yüklemeye ek olarak, Azure VM yedeklemesinden tek tek dosyaları da geri yükleyebilirsiniz. Dosyaları geri yükleme işlevi, bir kurtarma noktasındaki tüm dosyalara erişim sağlar. Dosyaları normal dosyalar için yaptığınız gibi Dosya Gezgini aracılığıyla yönetin.
Azure VM yedeklemesinden bir dosyayı geri yüklemenin temel adımları şunlardır:
- VM'yi seçin
- Bir kurtarma noktası seçin
- Kurtarma noktasının disklerini bağlama
- Gerekli dosyaları kopyalama
- Diski çıkarma
VM'yi seçin (VM geri yüklenirken)
Doğru yedekleme öğesini tanımlayan PowerShell nesnesini almak için kasadaki kapsayıcıdan başlayın ve nesne hiyerarşisinde ilerleyin. VM'yi temsil eden kapsayıcıyı seçmek için Get-AzRecoveryServicesBackupContainer cmdlet'ini kullanın ve bunu Get-AzRecoveryServicesBackupItem cmdlet'ine yöneltin.
$namedContainer = Get-AzRecoveryServicesBackupContainer -ContainerType "AzureVM" -Status "Registered" -FriendlyName "V2VM" -VaultId $targetVault.ID
$backupitem = Get-AzRecoveryServicesBackupItem -Container $namedContainer -WorkloadType "AzureVM" -VaultId $targetVault.ID
Bir kurtarma noktası seçin (VM'yi geri yüklerken)
Yedek öğenin tüm kurtarma noktalarını listelemek için Get-AzRecoveryServicesBackupRecoveryPoint cmdlet'ini kullanın. Ardından geri yükleneceği kurtarma noktasını seçin. Hangi kurtarma noktasını kullanacağınızdan emin değilseniz, listedeki en son RecoveryPointType = AppConsistent noktasını seçmek iyi bir uygulamadır.
Aşağıdaki betikte $rp değişkeni, seçilen yedekleme öğesi için son yedi güne ait bir kurtarma noktaları dizisidir. Dizi, dizin 0'daki en son kurtarma noktasıyla zamanın ters sırasına göre sıralanır. Kurtarma noktasını seçmek için standart PowerShell dizi dizini oluşturmayı kullanın. Örnekte $rp[0] en son kurtarma noktasını seçer.
$startDate = (Get-Date).AddDays(-7)
$endDate = Get-Date
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -Item $backupitem -StartDate $startdate.ToUniversalTime() -EndDate $enddate.ToUniversalTime() -VaultId $targetVault.ID
$rp[0]
Çıktı aşağıdaki örneğe benzer:
RecoveryPointAdditionalInfo :
SourceVMStorageType : NormalStorage
Name : 15260861925810
ItemName : VM;iaasvmcontainer;RGName1;V2VM
RecoveryPointId : /subscriptions/XX/resourceGroups/ RGName1/providers/Microsoft.RecoveryServices/vaults/testvault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainer;RGName1;V2VM/protectedItems/VM;iaasvmcontainer; RGName1;V2VM/recoveryPoints/15260861925810
RecoveryPointType : AppConsistent
RecoveryPointTime : 4/23/2016 5:02:04 PM
WorkloadType : AzureVM
ContainerName : IaasVMContainer;iaasvmcontainer; RGName1;V2VM
ContainerType : AzureVM
BackupManagementType : AzureVM
Kurtarma noktasının disklerini bağlama
Betiğin kurtarma noktasının tüm disklerini bağlamasını sağlamak için Get-AzRecoveryServicesBackupRPMountScript cmdlet'ini kullanın.
Dekont
Diskler, betiğin çalıştırıldığı makineye iSCSI ekli diskler olarak bağlanır. Bağlama hemen gerçekleşir ve herhangi bir ücret ödemezsiniz.
Get-AzRecoveryServicesBackupRPMountScript -RecoveryPoint $rp[0] -VaultId $targetVault.ID
Çıktı aşağıdaki örneğe benzer:
OsType Password Filename
------ -------- --------
Windows e3632984e51f496 V2VM_wus2_8287309959960546283_451516692429_cbd6061f7fc543c489f1974d33659fed07a6e0c2e08740.exe
Betiği, dosyaları kurtarmak istediğiniz makinede çalıştırın. Betiği yürütmek için sağlanan parolayı girmeniz gerekir. Diskler eklendikten sonra, yeni birimlere ve dosyalara göz atmak için Windows Dosya Gezgini kullanın. Daha fazla bilgi için Azure sanal makine yedeklemesinden dosyaları kurtarma başlıklı Yedekleme makalesine bakın.
Diskleri çıkarma
Gerekli dosyalar kopyalandıktan sonra diskleri sökmek için Disable-AzRecoveryServicesBackupRPMountScript kullanın. Kurtarma noktasının dosyalarına erişimin kaldırılması için diskleri çıkardığından emin olun.
Disable-AzRecoveryServicesBackupRPMountScript -RecoveryPoint $rp[0] -VaultId $targetVault.ID
PowerShell kullanarak verileri sanal makineye geri yükleme
Artık birden çok adım gerçekleştirmeden verileri doğrudan özgün/alternatif VM'ye geri yükleyebilirsiniz.
Verileri özgün VM'ye geri yükleme
$vault = Get-AzRecoveryServicesVault -ResourceGroupName "resourceGroup" -Name "vaultName"
$BackupItem = Get-AzRecoveryServicesBackupItem -BackupManagementType "AzureVM" -WorkloadType "AzureVM" -Name "V2VM" -VaultId $vault.ID
$StartDate = (Get-Date).AddDays(-7)
$EndDate = Get-Date
$RP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -StartDate $StartDate.ToUniversalTime() -EndDate $EndDate.ToUniversalTime() -VaultId $vault.ID
$OriginalLocationRestoreJob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $RP[0] -StorageAccountName "DestStorageAccount" -StorageAccountResourceGroupName "DestStorageAccRG" -VaultId $vault.ID -VaultLocation $vault.Location
WorkloadName Operation Status StartTime EndTime
------------ --------- ------ --------- -------
V2VM Restore InProgress 26-Apr-16 1:14:01 PM 01-Jan-01 12:00:00 AM
Son komut, mevcut VM'deki verileri yerinde geri yüklemek için özgün bir konum geri yükleme işlemini tetikler.
Verileri yeni oluşturulan vm'ye geri yükleme
$vault = Get-AzRecoveryServicesVault -ResourceGroupName "resourceGroup" -Name "vaultName"
$BackupItem = Get-AzRecoveryServicesBackupItem -BackupManagementType "AzureVM" -WorkloadType "AzureVM" -Name "V2VM" -VaultId $vault.ID
$StartDate = (Get-Date).AddDays(-7)
$EndDate = Get-Date
$RP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -StartDate $StartDate.ToUniversalTime() -EndDate $EndDate.ToUniversalTime() -VaultId $vault.ID
$AlternateLocationRestoreJob = Restore-AzRecoveryServicesBackupItem -RecoveryPoint $RP[0] -TargetResourceGroupName "Target_RG" -StorageAccountName "DestStorageAccount" -StorageAccountResourceGroupName "DestStorageAccRG" -TargetVMName "TagetVirtualMachineName" -TargetVNetName "Target_VNet" -TargetVNetResourceGroup "" -TargetSubnetName "subnetName" -VaultId $vault.ID -VaultLocation $vault.Location
WorkloadName Operation Status StartTime EndTime
------------ --------- ------ --------- -------
V2VM Restore InProgress 26-Apr-16 1:14:01 PM 01-Jan-01 12:00:00 AM
Son komut, TargetVMName, TargetVNetName, TargetVNetResourceGroup, TargetSubnetName parametreleri tarafından belirtilen girişlere göre Target_RG kaynak grubunda yeni bir VM oluşturmak için alternatif bir konum geri yükleme işlemi tetikler. Bu, verilerin gerekli VM'ye, sanal ağa ve alt ağa geri yüklenmesini sağlar.
Sonraki adımlar
Azure kaynaklarınızla etkileşim kurmak için PowerShell kullanmayı tercih ediyorsanız Windows Server için Yedeklemeyi Dağıtma ve Yönetme başlıklı PowerShell makalesine bakın. DPM yedeklemelerini yönetiyorsanız DPM için Yedeklemeyi Dağıtma ve Yönetme makalesine bakın.