PowerShell kullanarak Azure dosya paylaşımını yedekleme

Bu makalede, Azure Backup Kurtarma Hizmetleri kasası aracılığıyla bir Azure Dosyalar dosya paylaşımını yedeklemek için Azure PowerShell nasıl kullanılacağı açıklanır.

Bu makalede şunların nasıl yapıldığını açıklanmaktadır:

  • PowerShell'i ayarlayın ve Kurtarma Hizmetleri sağlayıcısını kaydedin.
  • Kurtarma Hizmetleri kasası oluşturun.
  • Azure dosya paylaşımı için yedeklemeyi yapılandırma.
  • Bir yedekleme işi çalıştırın.

Başlamadan önce

  • Kurtarma Hizmetleri kasaları hakkında daha fazla bilgi edinin.

  • Azure kitaplığında Az.RecoveryServices cmdlet başvurusu başvuruyu gözden geçirin.

  • Kurtarma Hizmetleri için aşağıdaki PowerShell nesne hiyerarşisini gözden geçirin:

    Kurtarma Hizmetleri nesne hiyerarşisi

PowerShell'i ayarlama

Not

Azure ile etkileşime geçmek 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.

Not

Azure PowerShell şu anda saatlik zamanlamaya sahip yedekleme ilkelerini desteklememektedir. Bu özelliği kullanmak için lütfen Azure Portal'ı kullanın. Daha fazla bilgi edinin

PowerShell'i aşağıdaki gibi ayarlayın:

  1. Azure PowerShell'nin en son sürümünü indirin.

    Not

    Azure dosya paylaşımlarını yedeklemek için gereken en düşük PowerShell sürümü Az.RecoveryServices 2.6.0'dır. En son sürümü veya en azından en düşük sürümü kullanmak, mevcut betiklerle ilgili sorunları önlemenize yardımcı olur. Aşağıdaki PowerShell komutunu kullanarak en düşük sürümü yükleyin:

    Install-module -Name Az.RecoveryServices -RequiredVersion 2.6.0
    
  2. Bu komutu kullanarak Azure Backup için PowerShell cmdlet'lerini bulun:

    Get-Command *azrecoveryservices*
    
  3. Azure Backup, Azure Site Recovery ve Kurtarma Hizmetleri kasası için diğer adları ve cmdlet'leri gözden geçirin. Aşağıda, görebileceklerinize bir örnek verilmiş. Tam bir cmdlet listesi değil.

    Kurtarma Hizmetleri cmdlet'lerinin listesi

  4. Connect-AzAccount kullanarak Azure hesabınızda oturum açın.

  5. Görüntülenen web sayfasında hesap kimlik bilgilerinizi girmeniz istenir.

    Alternatif olarak, -Credential kullanarak hesap kimlik bilgilerinizi Connect-AzAccount cmdlet'ine parametre olarak ekleyebilirsiniz.

    Kiracı adına çalışan bir CSP iş ortağıysanız, müşteriyi kiracı olarak belirtin. Kiracı kimliğini veya kiracı birincil etki alanı adını kullanın. Connect-AzAccount -Tenant "fabrikam.com" örnektir.

  6. Bir hesabın birkaç aboneliği olabileceğinden, kullanmak istediğiniz aboneliği hesapla ilişkilendirin:

    Select-AzSubscription -SubscriptionName $SubscriptionName
    
  7. Azure Backup ilk kez kullanıyorsanız, Azure Kurtarma Hizmetleri sağlayıcısını aboneliğinize kaydetmek için Register-AzResourceProvider cmdlet'ini kullanın:

    Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  8. Sağlayıcıların başarıyla kaydedildiğini doğrulayın:

    Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  9. Komut çıktısında RegistrationState değerinin Kayıtlı olarak değiştiğini doğrulayın. Aksi takdirde Register-AzResourceProvider cmdlet'ini yeniden çalıştırın.

Kurtarma Hizmetleri kasası oluşturma

Kurtarma Hizmetleri kasası Resource Manager bir kaynak olduğundan bir kaynak grubuna yerleştirmeniz gerekir. Mevcut bir kaynak grubunu kullanabilir veya New-AzResourceGroup cmdlet'ini kullanarak bir kaynak grubu oluşturabilirsiniz. Bir kaynak grubu oluşturduğunuzda, bunun adını ve konumunu belirtin.

Kurtarma Hizmetleri kasası oluşturmak için şu adımları izleyin:

  1. Mevcut bir kaynak grubunuz yoksa New-AzResourceGroup cmdlet'ini kullanarak yeni bir tane oluşturun. Bu örnekte Batı ABD bölgesinde bir kaynak grubu oluşturacağız:

    New-AzResourceGroup -Name "test-rg" -Location "West US"
    
  2. Kasayı oluşturmak için New-AzRecoveryServicesVault cmdlet'ini kullanın. Kaynak grubu için kullandığınız kasa için aynı konumu belirtin.

    New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "test-rg" -Location "West US"
    

Abonelikteki kasaları görüntüleme

Abonelikteki tüm kasaları görüntülemek için Get-AzRecoveryServicesVault komutunu kullanın:

Get-AzRecoveryServicesVault

Çıkış aşağıdakine benzer. Çıkışın ilişkili kaynak grubunu ve konumu sağladığını unutmayın.

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

Kasa bağlamını ayarlama

Kasa nesnesini bir değişkende depolayın ve kasa bağlamını ayarlayın.

Birçok Azure Backup cmdlet'i giriş olarak Kurtarma Hizmetleri kasa nesnesini gerektirir, bu nedenle kasa nesnesini bir değişkende depolamak uygundur.

Kasa bağlamı, kasada korunan veri türüdür. Set-AzRecoveryServicesVaultContext komutunu kullanarak ayarlayın. Bağlam ayarlandıktan sonra sonraki tüm cmdlet'ler için geçerlidir.

Aşağıdaki örnek testvault için kasa bağlamını ayarlar:

Get-AzRecoveryServicesVault -Name "testvault" | 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. Kasa bağlamını ayarlamadıysanız veya belirli bir kasa için çalıştırılacak komutu belirtmek istiyorsanız, kasa kimliğini -vaultID aşağıdaki gibi tüm ilgili komutlara geçirin:

$vaultID = Get-AzRecoveryServicesVault -ResourceGroupName "Contoso-docs-rg" -Name "testvault" | select -ExpandProperty ID
New-AzRecoveryServicesBackupProtectionPolicy -Name "NewAFSPolicy" -WorkloadType "AzureFiles" -RetentionPolicy $retPol -SchedulePolicy $schPol -VaultID $vaultID

Yedekleme ilkesi yapılandırma

Yedekleme ilkesi, yedeklemeler için zamanlamayı ve yedekleme kurtarma noktalarının ne kadar süreyle tutulacağı belirtir.

Yedekleme ilkesi en az bir bekletme ilkesiyle ilişkilendirilir. Bekletme ilkesi, kurtarma noktasının silinmeden önce ne kadar süre tutulduğunu tanımlar. Yedeklemeleri günlük, haftalık, aylık veya yıllık saklama ile yapılandırabilirsiniz. Birden çok yedekleme ilkesiyle, yedeklemelerin saatlik saklamasını da yapılandırabilirsiniz.

İlke türü seçin:

Yedekleme ilkeleri için bazı cmdlet'ler şunlardır:

Varsayılan olarak, zamanlama ilkesi nesnesinde bir başlangıç saati 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 Evrensel Eşgüdümlü Saat (UTC) olmalıdır. Örnekte, günlük yedeklemeler için istenen başlangıç saatinin 01:00 UTC olduğu varsayılır.

$schPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureFiles"
$UtcTime = Get-Date -Date "2019-03-20 01:30:00Z"
$UtcTime = $UtcTime.ToUniversalTime()
$schpol.ScheduleRunTimes[0] = $UtcTime

Önemli

Başlangıç saatini 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. Daha sonra bu değişkenleri yeni bir ilke (NewAFSPolicy) için parametre olarak kullanır. NewAFSPolicy günlük yedekleme alır ve 30 gün boyunca saklar.

$schPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureFiles"
$retPol = Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureFiles"
New-AzRecoveryServicesBackupProtectionPolicy -Name "NewAFSPolicy" -WorkloadType "AzureFiles" -RetentionPolicy $retPol -SchedulePolicy $schPol

Çıkış aşağıdakine benzer:

Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
NewAFSPolicy           AzureFiles            AzureStorage              10/24/2019 1:30:00 AM

Yedeklemeyi etkinleştirme

Yedekleme ilkesini tanımladıktan sonra, ilkeyi kullanarak Azure dosya paylaşımı için korumayı etkinleştirebilirsiniz.

Yedekleme ilkesi alma

Get-AzRecoveryServicesBackupProtectionPolicy kullanarak ilgili ilke nesnesini getirirsiniz. İş yükü türüyle ilişkili ilkeleri görüntülemek veya belirli bir ilkeyi almak için bu cmdlet'i kullanın.

İş yükü türü için ilke alma

Aşağıdaki örnek , AzureFiles iş yükü türü için ilkeleri alır:

Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureFiles"

Çıkış aşağıdakine benzer:

Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
dailyafs             AzureFiles         AzureStorage         1/10/2018 12:30:00 AM

Not

PowerShell'deki BackupTime alanının saat dilimi UTC'dir. Yedekleme zamanı Azure portal gösterildiğinde, saat yerel saat diliminize göre ayarlanır.

Belirli bir ilkeyi alma

Aşağıdaki ilke dailyafs adlı yedekleme ilkesini alır:

$afsPol =  Get-AzRecoveryServicesBackupProtectionPolicy -Name "dailyafs"

Korumayı etkinleştirme ve ilkeyi uygulama

Enable-AzRecoveryServicesBackupProtection komutunu kullanarak korumayı etkinleştirin. İlke kasayla ilişkilendirildikten sonra yedeklemeler ilke zamanlamasına uygun olarak tetiklenir.

Aşağıdaki örnek, dailyafs ilkesiyle depolama hesabı testStorageAcct içinde Azure dosya paylaşımı testiAzureFS için korumayı etkinleştirir:

Enable-AzRecoveryServicesBackupProtection -StorageAccountName "testStorageAcct" -Name "testAzureFS" -Policy $afsPol

Komut, yapılandırma koruma işi bitene kadar bekler ve aşağıdaki örneğe benzer bir çıkış verir:

WorkloadName       Operation            Status                 StartTime                                                                                                         EndTime                   JobID
------------             ---------            ------               ---------                                  -------                   -----
testAzureFS       ConfigureBackup      Completed            11/12/2018 2:15:26 PM     11/12/2018 2:16:11 PM     ec7d4f1d-40bd-46a4-9edb-3193c41f6bf6

Depolama hesabı için dosya paylaşımlarının listesini alma hakkında daha fazla bilgi için bu makaleye bakın.

Önemli bildirim: Yedekleme öğesi tanımlama

Bu bölümde, genel kullanılabilirlik hazırlığı için Azure dosya paylaşımlarının yedeklemelerinde önemli bir değişiklik özetlenmiştir.

Kullanıcı, Azure dosya paylaşımları için yedeklemeyi etkinleştirirken müşteriye varlık adı olarak bir dosya paylaşımı adı verir ve bir yedekleme öğesi oluşturulur. Yedekleme öğesinin adı, Azure Backup hizmetinin oluşturduğu benzersiz bir tanımlayıcıdır. Tanımlayıcı genellikle kullanıcı dostu bir addır. Ancak, bir dosya paylaşımının silinebildiği ve aynı adla başka bir dosya paylaşımının oluşturulabildiği geçici silme senaryolarını işlemek için, azure dosya paylaşımının benzersiz kimliği artık bir kimliktir.

Her öğenin benzersiz kimliğini öğrenmek için, tüm ilgili öğeleri almak üzere backupManagementType ve WorkloadType için uygun filtrelerle Get-AzRecoveryServicesBackupItem komutunu çalıştırın. Ardından döndürülen PowerShell nesnesi/yanıtında ad alanını gözlemleyin.

Öğeleri listelemenizi ve ardından yanıttaki ad alanından benzersiz adlarını almanızı öneririz. Öğeleri Name parametresiyle filtrelemek için bu değeri kullanın. Aksi takdirde, öğeyi kimliğiyle almak için FriendlyName parametresini kullanın.

Önemli

Azure dosya paylaşımlarının yedekleri için PowerShell'in en düşük sürüme (Az.RecoveryServices 2.6.0) yükseltildiğinden emin olun. Bu sürümle, Get-AzRecoveryServicesBackupItem komutu için FriendlyName filtresi kullanılabilir.

Azure dosya paylaşımının adını FriendlyName parametresine geçirin. Dosya paylaşımının adını Name parametresine geçirirseniz, bu sürüm adı FriendlyName parametresine geçirmek için bir uyarı oluşturur.

En düşük sürümün yüklenmemesi, mevcut betiklerde hataya neden olabilir. Aşağıdaki komutu kullanarak PowerShell'in en düşük sürümünü yükleyin:

Install-module -Name Az.RecoveryServices -RequiredVersion 2.6.0

İsteğe bağlı yedekleme tetikleme

Korumalı bir Azure dosya paylaşımı için isteğe bağlı yedekleme çalıştırmak için Backup-AzRecoveryServicesBackupItem kullanın:

  1. Get-AzRecoveryServicesBackupContainer komutunu kullanarak yedekleme verilerinizin bulunduğu kasadaki kapsayıcıdan depolama hesabını alın.
  2. Bir yedekleme işi başlatmak için Get-AzRecoveryServicesBackupItem komutunu kullanarak Azure dosya paylaşımı hakkında bilgi edinin.
  3. Backup-AzRecoveryServicesBackupItem komutunu kullanarak isteğe bağlı yedekleme çalıştırın.

İsteğe bağlı yedeklemeyi aşağıdaki gibi çalıştırın:

$afsContainer = Get-AzRecoveryServicesBackupContainer -FriendlyName "testStorageAcct" -ContainerType AzureStorage
$afsBkpItem = Get-AzRecoveryServicesBackupItem -Container $afsContainer -WorkloadType "AzureFiles" -FriendlyName "testAzureFS"
$job =  Backup-AzRecoveryServicesBackupItem -Item $afsBkpItem

Komut, aşağıdaki örnekte gösterildiği gibi izlenecek kimliği olan bir iş döndürür:

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   -----
testAzureFS       Backup               Completed            11/12/2018 2:42:07 PM     11/12/2018 2:42:11 PM     8bdfe3ab-9bf7-4be6-83d6-37ff1ca13ab6

Yedeklemeler alınırken Azure dosya paylaşımı anlık görüntüleri kullanılır. Genellikle iş, komutun bu çıkışı döndürdüğü zamana kadar biter.

Sonraki adımlar