Azure Backup PowerShell Kullanımı – MSOnlineBackup

Azure Backup, Microsoft Azure altyapısında sunular bir Online Yedekleme hizmetidir; Güvenli, düşük maliyetli, devreye alması kolay, güvenilir, yaygın Microsoft iş yükleriyle uyumlu ve bulut tabanlıdır, kullandığın kadar öde modelinde ücretlendirilir.

Azure Backup hizmetinin çeşitli bileşenlerini yönetirken aşağıdaki araçları kullanabiliyorsunuz. Her araç kendi özelinde bazı görevleri gerçekleştirebiliyor, bu yüzden Azure Backup hizmetini derinlemesine yönetmek için tamamına hakim olmanız bence önemli.

Azure Management Portal

Azure Backup’a kayıtlı sunucuların (registered items) ve korunan veri parçalarının (protected items) listelenmesi, istatistik bilgilerinin raporlanması, yeni Backup Vault oluşturulması, Azure Backup Agent kurulum kaynağının veya Backup Vault’lara ait credentials file’ların indirilmesi gibi çeşitli işler için yönetim portalını kullanabilirsiniz. Tüm bu işlemler Web tabanlı bir UI üzerinden gerçekleştirilir. Ama mesela Azure Management Portal’i kullanarak bir backup veya recovery işlemi başlatamazsınız. Veya yedeklenmiş bir dizinin içeriğini browse edemezsiniz.

Azure Backup Agent

Bu Agent aslında bir Windows Server Backup (cbengine.exe) varyasyonudur ve yedeklenen (veya Azure Backup’a kayıtlı) sunucu üzerine kurulması gerekir. Azure Backup Agent sayesinde, Windows tabanlı makineyi bir Azure Backup Vault’a kayıt edebilir, yeni bir yedekleme (backup) veya bir kurtarma (recovery) görevi başlatabilirsiniz. Ayrıca ilgili Backup Vault içerisindeki Recvery Point’leri listeleyebilir ve belirli iş yüklerine ait içerikleri recovery öncesinde browse edebilirsiniz. Tüm bu görevler MMC tabanlı bir UI üzerinden gerçekleştirilir.

Azure Backup PowerShell (Azure Recovery Services Shell)

Azure Recovery Services Shell olarak de bilinen bu modül tıpkı Azure PowerShell gibi aslında bir Windows PowerShell modüldür. PowerShell modül ismi MSOnlineBackup’tır ve sisteme sonradan yüklenir. Azure Backup PowerShell komut setlerini kullanarak Azure Management Portal ve Azure Backup Agent ile yapılabilen her şeyi (ve daha fazlasını) komut satırı tabanlı olarak gerçekleştirebilirsiniz. Ayrıca belirli yedekleme ve kurtarma görevlerini otomatikleştirmek için PowerShell Script dosyaları içerisinde de kullanmanız mümkün. Hatta şurada bir örnek yazmıştım.

Azure Backup PowerShell (Recovery Services Shell) Kurulumu ve Kullanımı

Öncelikle Azure Backup PowerShell modülünü sağlayan kurulumu indirip yüklemeniz gerekiyor. Bunun için en kısa yol ise Azure Backup Agent yüklemek :) Azure Backup Agent setup dosyası MMC tabanlı konsolu aktif ederken beraberinde MSOnlineBackup PowerShell modülünü de sisteme ekler.

Azure Backup Agent (MARSAgentInstaller.exe) kurulum dosyasına ulaşmak için Azure Management Portal üzerinde oturum açın > Recovery Services > herhangi bir Backup Vault > Download Agent bölümüne ulaşın.

azure-backup-agent-indir

Ve indirip kurulumu gerçekleştirin. Kurulum basittir ama yardıma ihtiyacınız olursa daha önce Azure Backup Agent kurulumunu yazmıştım, göz atabilirsiniz.

Azure Backup Agent kurulumu tamamlandıktan sonra sistem üzerinde hem UI yani MMC tabanlı bir konsol, hem de Recovery Services Shell yani MSOnlineBackup PowerShell modülü aktif olur.

Azure Backup PowerShell Nasıl Kullanılır?

Microsoft Azure Recovery Services Shell aracını başlatabilirsiniz veya doğrudan Windows PowerShell içerisinde Import-Module MSOnlineBackup yazarak import edebilirsiniz. Ben Windows PowerShell’e import ederek örneklendireceğim ama Microsoft Azure Recovery Services Shell üzerinden kullanmanızı öneririm.

azure-backup-powershell-1

Azure Backup Agent kurulumu sırasında sunucuyu Backup Vault’a kayıt ederken ilişki zaten kurulmuş olduğundan bu aşamada Backup Vault’a bağlanmak için yeniden bir credentials file import etmeniz gerekmez. Eğer sunucuyu Backup Vault’a kayıt etmeden bir komut çalıştırmak isterseniz aşağıdaki hatayı alırsınız.

The server must be registered with Microsoft Azure Backup before this operation can be performed.

Ayrıca çok sık yapılan hatalardan birisi de Azure Backup PowerShell oturumuna bir diğer credentials file olan Azure Publish Settings File dosyasını (.publishSettings) import etmektir. Gereksizdir ve bu dosya ile gelen ilişki tüm Azure aboneliği üzerinde yetkili olduğu için güvenlik açısından risklidir. Bu hatayı yapmayın.

Ancak şunu da unutmayın: Oluşturulan bir Backup Vault Credentials file dosyası en fazla 2 gün süreyle geçerli kalır ve bu süre sonunda expire olur. Eğer birkaç gün sonra Azure Backup PowerShell’i kullanarak yeniden erişmek isterseniz yeni bir Backup Vault credentials file üretmeniz gerekir.

MSOnlineBackup PS modülü aşağıdaki cmdlet’lere sahiptir ve referans sayfası burada yer alır.

  • Add-OBFileSpec
  • Get-OBAllRecoveryPoints
  • Get-OBAlternateBackupServer
  • Get-OBFileSpec
  • Get-OBJob
  • Get-OBMachineSetting
  • Get-OBMachineUsage
  • Get-OBNotification
  • Get-OBPolicy
  • Get-OBPolicyState
  • Get-OBRecoverableItem
  • Get-OBRecoverableSource
  • Get-OBRetentionPolicy
  • Get-OBSchedule
  • New-OBFileSpec
  • New-OBPagingContext
  • New-OBPolicy
  • New-OBRecoverableItem
  • New-OBRecoveryOption
  • New-OBRetentionPolicy
  • New-OBSchedule
  • Remove-OBFileSpec
  • Remove-OBPolicy
  • Rename-OBVolume
  • Set-OBMachineSetting
  • Set-OBPolicy
  • Set-OBPolicyState
  • Set-OBRetentionPolicy
  • Set-OBSchedule
  • Start-OBBackup
  • Start-OBRecovery
  • Start-OBRegistration
  • Stop-OBJob

Örneğin Azure Backup Agent üzerinde oluşturulmuş ve zamanlanmış bir yedekleme görevi (bir başka ifadeyle Backup Policy) varsa bunu Get-OBPolicy ile listeleyebilirsiniz.

azure-backup-vault-2

Çıktıda her gün ve günde bir kez saat 22:00’da çalışacak ve C:\Test dizinini yedekleyerek Azure Backup Vault’a transfer edecek bir Backup Policy (zamanlanmış yedekleme görevi) görüyorsunuz.

Get-OBPolicy’ye ek olarak New-OBPolicy cmdlet’ini yeni Backup Policy oluşturmak için, Set-OBPolicy cmdlet’ini ise mevcut bir Backup Policy’i düzenlemek için kullanabilirsiniz.

Get-OBAllRecoveryPoints ile Azure Backup Vault içerisinde bu sunucuya ait tüm geri dönüş noktalarını listeleyebilirsiniz.

azure-backup-vault-3

Mesela Get-OBMachineUsage ile Azure Backup Vault üzerinde kullanılan depolama alanı miktarını Byte cinsinden öğrenmeniz mümkün.

azure-backup-vault-4

Hep Get yapmak olmaz tabi, asıl mesele Set yapmak, Start yapmak :) Mesela Azure Backup Vault içerisinde yer alan bir parçayı (Recovery Point diyelim) PowerShell ile geri yüklemek için basit bir Script yazalım. Öncelikle bu sunucu için kurtarılabilir kaynakları (Recoverable Source) ve ihtiyacınız olan kurtarma kaynağına ait kurtarılabilir parçaları (Recoverable Item) listeleyin.

Get-OBRecoverableSource
Get-OBRecoverableItem -Source (Get-OBRecoverableSource)[0]

* İkinci komuttaki [0] index numarasını ilk komuta yanıt olarak dönülen array’de tek bir Recoverable Source (item) olduğu için kullandım. Aslında bu durumda hiç kullanmayabilirdim ama eğer birden fazla olsaydı ve farklı bir tane seçmek isteseydim o zaman 0,1,2,3 gibi ilerleyecekti.

azure-backup-recovery-1

Yakın zamanda oluşturulmuş geri dönülebilir parçaları (ki bunları geri dönüş noktaları olarak düşünebilirsiniz) görüyorsunuz. Mesela ortadaki geri dönüş noktasını (bu array’deki index numarası 1 oluyor) yerel disk üzerindeki S:\ sürücüsüne dönelim. Bu Script en basit haliyle aşağıdaki gibi olmalı.

$recoverySource = Get-OBRecoverableSource
$recoveryPoint = Get-OBRecoverableItem -Source $recoverySource[0]
$recoveryOptions = New-OBRecoveryOption -DestinationPath S:\
Start-OBRecovery -RecoverableItem $recoveryPoint[1] -RecoveryOption $recoveryOptions

Çalıştığında ise aşağıdaki gibi görünür.

azure-backup-recovery-2

Gerisi ihtiyaca ve hayal gücünüze kalmış. Mesela blog üzerinde şöyle de bir yazı var: Azure Backup – Felaket Anında Alternatif Sunucuya Kurtarma. Daha fazlası için ilham verecektir.

Yazı Etiketleri: , , ,

Sayfa Başı ▲

Yorum Ekle