Aracılığıyla paylaş


Azure Backup kullanarak Azure Linux VM'leri için uygulamayla tutarlı yedeklemeyi yapılandırma

Bu makalede, Azure Backup kullanarak Azure tarafından dağıtılan Linux sanal makineleri (VM) için uygulamayla tutarlı yedeklemelerin nasıl oluşturulacağı açıklanır. Betik yapısını yapılandırmayı ve sorun gidermeyi kapsar.

Azure Backup vm'nin anlık görüntüsünü aldığında, uygulama tutarlılığı vm geri yüklemeden sonra uygulamaların doğru şekilde başlatılmasını sağlar. Bu davranışı elde etmek için Azure Resource Manager ile dağıtılan Linux VM'lerini destekleyen Linux prescript ve postscript çerçevesini kullanın. Bu betikler System Center Service Manager veya Windows ile dağıtılan VM'lerde çalışmaz.

Çerçeve nasıl çalışır?

Çerçeve, VM anlık görüntüleri alırken özel tanımlayıcıları ve postscript'leri çalıştırma seçeneği sağlar. Ön komutlar, VM anlık görüntüsünü almadan önce çalıştırılır. Vm anlık görüntüsünü aldıktan hemen sonra postscript'ler çalıştırılır. Tanımlayıcılar ve postscript'ler, VM anlık görüntüleri alırken uygulamanızı ve ortamınızı denetleme esnekliği sağlar.

Tanımlayıcılar, G/Ç'leri sessize alan ve bellek içi içeriği diske boşaltan yerel uygulama API'lerini çağırır. Bu eylemler anlık görüntünün uygulamayla tutarlı olmasını sağlar. Postscript'ler G/Ç'leri çözmek için yerel uygulama API'lerini kullanır ve bu da uygulamanın VM anlık görüntüsünden sonra normal işlemleri sürdürmesini sağlar.

Azure Linux VM'leri için prescript ve postscript yapılandırma

Ön komut ve postscript'i yapılandırmak için şu adımları izleyin:

  1. Yedeklemek istediğiniz Linux VM'sinde kök kullanıcı olarak oturum açın.

  2. GitHub'danVMSnapshotScriptPluginConfig.json indirin ve yedeklemek istediğiniz tüm VM'ler için /etc/azure klasörüne kopyalayın. /etc/azure klasörü yoksa oluşturun.

  3. Yedeklemeyi planladığınız tüm VM'lerde uygulamanızın ön ekini ve postscript'ini kopyalayın. Betikleri VM'de herhangi bir konuma kopyalayabilirsiniz. VMSnapshotScriptPluginConfig.json dosyasındaki komut dosyalarının tam yolunu güncelleştirdiğinizden emin olun.

  4. Aşağıdaki dosyaları kullanmak için ilgili izinlere sahip olduğunuzdan emin olun:

    • VMSnapshotScriptPluginConfig.json: İzin 600'dür. Örneğin, bu dosyada yalnızca kök kullanıcının okuma ve yazma izinleri olmalıdır ve hiçbir kullanıcının yürütme izinleri olmamalıdır.
    • Önkoşul dosyası: İzin 700'dür. Örneğin, bu dosyada yalnızca kök kullanıcının okuma, yazma ve yürütme izinleri olmalıdır. Dosyanın bir kabuk betiği olması beklenir, ancak teorik olarak bu betik dahili olarak oluşturulabilir veya Python betiği gibi diğer betiklere başvurabilir.
    • Postscript: İzin 700'dür. Örneğin, bu dosyada yalnızca kök kullanıcının okuma, yazma ve yürütme izinleri olmalıdır. Dosyanın bir kabuk betiği olması beklenir, ancak teorik olarak bu betik dahili olarak oluşturulabilir veya Python betiği gibi diğer betiklere başvurabilir.

    Önemli

    Çerçeve, kullanıcılara çok sayıda güç verir. Çerçevenin güvenliğini sağlayın ve yalnızca kök kullanıcının kritik JSON ve betik dosyalarına erişimi olduğundan emin olun.

    Gereksinimler karşılanmazsa, betik çalıştırılamaz ve bu, dosya sisteminin çökmesine ve yedekleme sırasında tutarsızlıklara neden olur.

  5. VMSnapshotScriptPluginConfig.json burada açıklandığı gibi yapılandırın:

    • pluginName: Bu alanı olduğu gibi bırakın, aksi durumda betikleriniz beklendiği gibi çalışmayabilir.
    • preScriptLocation: Yedeklenecek VM'de tanımlayıcının tam yolunu belirtin.
    • postScriptLocation: Yedeklenecek VM'de postscript'in tam yolunu belirtin.
    • preScriptParams: İlkeye geçirilmesi gereken isteğe bağlı parametreleri sağlayın. Tüm parametreler tırnak içinde olmalıdır. Birden çok parametre kullanıyorsanız, parametreleri virgülle ayırın.
    • postScriptParams: Postscript'e geçirilmesi gereken isteğe bağlı parametreleri sağlayın. Tüm parametreler tırnak içinde olmalıdır. Birden çok parametre kullanıyorsanız, parametreleri virgülle ayırın.
    • preScriptNoOfRetries: Sonlandırmadan önce bir hata oluşursa, tanımlayıcının kaç kez yeniden denenmesi gerektiğini ayarlayın. Sıfır, yalnızca bir deneme anlamına gelir ve hata olduğunda yeniden deneme yapılmaz.
    • postScriptNoOfRetries: Sonlandırmadan önce bir hata oluşursa postscript'in kaç kez yeniden denenmesi gerektiğini ayarlayın. Sıfır, yalnızca bir deneme anlamına gelir ve hata olduğunda yeniden deneme yapılmaz.
    • timeoutInSeconds: Prescript ve sonsözcük için farklı zaman aşımlarını belirtin (maksimum değer 1800 saniyedir).
    • continueBackupOnFailure: Önişlem veya sonrası komut dosyası başarısız olursa Azure Backup'ın dosya sistemiyle tutarlı/kilitlenmeyle tutarlı bir yedeklemeye geri dönmesini istiyorsanız, bu değeri true olarak ayarlayın. Bu değeri false olarak ayarlamak, bir betik hatası oluşursa yedeklemede başarısız olur. (Bu ayardan bağımsız olarak tek diskli bir VM'niz varsa ve o, kilitlenme-tutarlı yedeklemeye düşüyorsa bu bir istisnadır.) continueBackupOnFailure Değer false ayarlandığında, yedekleme başarısız olursa, hizmette belirlenen deneme sayısına göre yeniden deneme mantığıyla yedekleme işlemi tekrar yapılır.
    • fsFreezeEnabled: Dosya sistemi tutarlılığını sağlamak için VM anlık görüntüsünü alırken Linux'un fsfreeze çağrılıp çağrılmayacağını belirtin. Uygulamanızın devre dışı bırakma bağımlılığı yoksa bu ayarı fsfreeze olarak ayarlamanızı öneririz.
    • ScriptsExecutionPollTimeSeconds: Uzantının, betik çalıştırması sırasında her sorgulama arasında uyku moduna geçmesi gereken süreyi ayarlayın. Örneğin, değer 2 ise uzantı, prescript veya postscript çalıştırmasının 2 saniyede bir tamamlanıp tamamlanmadığını denetler. En düşük ve en yüksek değer sırasıyla 1 ve 5'tir. Değer kesinlikle bir tamsayı olmalıdır.
  6. Betik çerçevesi yapılandırıldı. VM yedeklemesi zaten yapılandırılmışsa, sonraki yedekleme betikleri çağırır ve uygulamayla tutarlı yedeklemeyi tetikler. VM yedeklemesi yapılandırılmadıysa, Azure sanal makinelerini Kurtarma Hizmetleri kasalarına yedekleme bölümünde yer alan adımları izleyerek bunu yapılandırın.

Azure Linux VM uygulamayla tutarlı yedekleme hatalarını giderme

Pre-script ve post-script yazarken uygun günlükleme eklediğinizden emin olun. Betik sorunlarını düzeltmek için betik günlüklerinizi gözden geçirin. Betikleri çalıştırırken sorun yaşamaya devam ediyorsanız aşağıdaki tabloya bakın.

Hata Hata mesajı Önerilen eylem
Pre-ScriptExecutionFailed Skript bir hata döndürdü, bu nedenle yedekleme uygulamayla uyumlu olmayabilir. Sorunu çözmek için komut dosyanızın hata günlüklerine bakın.
Post-ScriptExecutionFailed Postscript, uygulama durumunu etkileyebilecek bir hata döndürdü. Sorunu düzeltmek için betiğinizin hata günlüklerine bakın ve uygulama durumunu denetleyin.
Pre-ScriptNotFound VMSnapshotScriptPluginConfig.json yapılandırma dosyasında belirtilen konumda belirtim bulunamadı. Uygulamayla tutarlı yedeklemeyi sağlamak için, yapılandırma dosyasında belirtilen yolda tanımlayıcının bulunduğundan emin olun.
Post-ScriptNotFound Postscript, VMSnapshotScriptPluginConfig.json yapılandırma dosyasında belirtilen konumda bulunamadı. Uygulamayla tutarlı yedeklemeyi sağlamak için postscript'in yapılandırma dosyasında belirtilen yolda bulunduğundan emin olun.
IncorrectPluginhostFile Pluginhost Uzantısına sahip VmSnapshotLinux dosyası bozuk olduğundan, prescript ve postscript çalıştırılamadığı için yedekleme uygulamayla uyumlu değildir. Uzantıyı VmSnapshotLinux kaldırın. Sorunu çözmek için bir sonraki yedeklemeyle otomatik olarak yeniden yüklenir.
IncorrectJSONConfigFile VMSnapshotScriptPluginConfig.json dosyası yanlış olduğundan, ön script ve son script çalıştırılamaz ve yedekleme uygulama tutarlılığı sağlanamıyor. Kopyayı GitHub'dan indirin ve yeniden yapılandırın.
InsufficientPermissionforPre-Script Betikleri çalıştırmak için, kök kullanıcı dosyanın sahibi olmalıdır. Dosyanın 700 izni olmalıdır. (Yani, yalnızca sahibin okuma, yazma ve yürütme izinleri olmalıdır.) Kök kullanıcının betik dosyasının sahibi olduğundan ve yalnızca sahibin okuma, yazma ve yürütme izinlerine sahip olduğundan emin olun.
InsufficientPermissionforPost-Script Betikleri çalıştırmak için, kök kullanıcı dosyanın sahibi olmalıdır. Dosyanın 700 izni olmalıdır. (Yani, yalnızca sahibin okuma, yazma ve yürütme izinleri olmalıdır.) Kök kullanıcının betik dosyasının sahibi olduğundan ve yalnızca sahibin okuma, yazma ve yürütme izinlerine sahip olduğundan emin olun.
Pre-ScriptTimeout Uygulamayla tutarlı yedekleme için önkoşulun yürütülmesi zaman aşımına uğradı. Betiği denetleyin ve /etc/azure konumundaki VMSnapshotScriptPluginConfig.json dosyasında zaman aşımını artırın.
Post-ScriptTimeout Uygulamayla tutarlı yedekleme için postscript'in yürütülmesi zaman aşımına uğradı. Betiği denetleyin ve /etc/azure konumundaki VMSnapshotScriptPluginConfig.json dosyasında zaman aşımını artırın.