Azure Backup kullanarak Azure Linux VM'lerinin uygulamayla tutarlı yedeklemesi

Bu makalede, Azure Backup kullanarak Linux Sanal Makineler Azure'a uygulamayla tutarlı yedeklemelerin nasıl oluşturulacağı açıklanır. Bu makalede, Azure tarafından dağıtılan Linux VM'lerini yedeklemek için betik çerçevesini yapılandıracaksınız. Bu makalede sorun giderme bilgileri de sağlanır.

VM'lerin yedek anlık görüntülerini aldığınızda uygulama tutarlılığı, sanal makinelerin geri yüklendikten sonra önyüklemesi yapıldığında uygulamalarınızın başlatıldığı anlamına gelir. Tahmin edebileceğiniz gibi uygulama tutarlılığı son derece önemlidir. Linux VM'lerinizin uygulamayla tutarlı olduğundan emin olmak için Linux önkoşulunu ve betik sonrası çerçevesini kullanarak uygulamayla tutarlı yedeklemeler alabilirsiniz. Betik öncesi ve betik sonrası çerçevesi, Azure Resource Manager tarafından dağıtılan Linux sanal makinelerini destekler. Uygulama tutarlılığı betikleri Service Manager tarafından dağıtılan sanal makineleri veya Windows sanal makinelerini desteklemez.

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

Çerçeve, VM anlık görüntüleri alırken özel önkoşulları ve son betikleri çalıştırma seçeneği sağlar. Siz VM anlık görüntüsünü almadan hemen önce tanımlayıcılar, vm anlık görüntüsünü aldıktan hemen sonra betikler çalıştırılır. Önkoşullar ve son betikler, VM anlık görüntüleri alırken uygulamanızı ve ortamınızı denetleme esnekliği sağlar.

Tanımlayıcılar, IOS'ları 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. Son betikler, IOS'ları çö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 için ön ek ve son betiği yapılandırma

Prescript ve post-script'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'dan VMSnapshotScriptPluginConfig.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 son betiğini kopyalayın. Betikleri VM'de herhangi bir konuma kopyalayabilirsiniz. VMSnapshotScriptPluginConfig.json dosyasındaki betik dosyalarının tam yolunu güncelleştirin.

  4. Bu dosyalar için aşağıdaki izinlerden emin olun:

    • VMSnapshotScriptPluginConfig.json: İzin "600." Örneğin, yalnızca "kök" kullanıcının bu dosyada "okuma" ve "yazma" izinleri olmalıdır ve hiçbir kullanıcının "yürütme" izinleri olmamalıdır.

    • Betik öncesi dosyası: İzin "700." Örneğin, yalnızca "kök" kullanıcının bu dosyada "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.

    • Betik Sonrası İzin "700." Örneğin, yalnızca "kök" kullanıcının bu dosyada "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 fazla güç sağlar. Ç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ışmaz ve bu da bir dosya sisteminin kilitlenmesine ve tutarsız yedeklemeye 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: Vm'de yedeklenecek olan tanımlayıcının tam yolunu belirtin.

    • postScriptLocation: Vm'de yedeklenecek post-betiğin tam yolunu belirtin.

    • preScriptParams: Prescript'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.

    • postScriptParams: Betik sonrası için 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 herhangi bir hata varsa, 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 herhangi bir hata varsa, betik sonrası yeniden deneme sayısını ayarlayın. Sıfır, yalnızca bir deneme anlamına gelir ve hata olduğunda yeniden deneme yapılmaz.

    • timeoutInSeconds: Betik ve betik sonrası için ayrı ayrı zaman aşımları belirtin (en fazla 1800 olabilir).

    • continueBackupOnFailure: Önkoşul veya betik sonrası başarısız olursa Azure Backup'ın tutarlı/kilitlenmeyle tutarlı bir dosya sistemine geri dönmesini istiyorsanız bu değeri true olarak ayarlayın. Bu ayarı false olarak ayarlamak, bir betik hatası olduğunda yedeklemede başarısız olur (bu ayardan bağımsız olarak kilitlenmeyle tutarlı yedeklemeye geri dönen tek diskli bir VM'niz olması dışında). continueBackupOnFailure değeri false olarak ayarlandığında, yedekleme başarısız olursa yedekleme işlemi hizmetteki bir yeniden deneme mantığına (belirtilen sayıda deneme için) göre yeniden denenecektir.

    • fsFreezeEnabled: Dosya sistemi tutarlılığını sağlamak için VM anlık görüntüsünü alırken Linux fsfreeze'nin çağrılıp çağrılmayacağını belirtin. Uygulamanızın fsfreeze'yi devre dışı bırakma bağımlılığı yoksa bu ayarın true olarak ayarlanmasını öneririz.

    • ScriptsExecutionPollTimeSeconds: Uzantının betik yürütmesi için her bir yoklama arasında uyku süresi ayarlayın. Örneğin, değer 2 ise, uzantı betik öncesi/sonrası yürütme işleminin 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 yedekle'yi kullanarak yapılandırın.

Sorun giderme

Betiğinizi ve betik sonrası yazınızı yazarken uygun günlüğü eklediğinizden emin olun ve 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 daha fazla bilgi için aşağıdaki tabloya bakın.

Hata Hata İletisi Önerilen eylem
ScriptExecutionFailed Öncesi Betik bir hata döndürdü, bu nedenle yedekleme uygulamayla tutarlı olmayabilir. Sorunu düzeltmek için betiğinizin hata günlüklerine bakın.
ScriptExecutionFailed Sonrası Betik sonrası, 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.
ScriptNotFound Öncesi Belirtim, VMSnapshotScriptPluginConfig.json yapılandırma dosyasında belirtilen konumda 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 Betik sonrası, VMSnapshotScriptPluginConfig.json yapılandırma dosyasında belirtilen konumda bulunamadı. Uygulamayla tutarlı yedeklemeyi sağlamak için yapılandırma dosyasında belirtilen yolda betik sonrası öğesinin bulunduğundan emin olun.
IncorrectPluginhostFile VmSnapshotLinux uzantısıyla birlikte gelen Pluginhost dosyası bozulmuştur, bu nedenle betik ve betik sonrası çalıştırılamaz ve yedekleme uygulamayla tutarlı olmaz. VmSnapshotLinux uzantısını kaldırın; sorunu çözmek için sonraki yedeklemeyle otomatik olarak yeniden yüklenir.
IncorrectJSONConfigFile VMSnapshotScriptPluginConfig.json dosyası yanlış olduğundan, betik ve son betik çalıştırılamaz ve yedekleme uygulamayla tutarlı olmaz. GitHub'dan kopyayı indirin ve yeniden yapılandırın.
InsufficientPermissionforPre-Script Betikleri çalıştırmak için "kök" kullanıcı dosyanın sahibi olmalı ve dosyanın "700" izni olmalıdır (yani, yalnızca "sahip" "okuma", "yazma" ve "yürütme" izinlerine sahip olmalıdır). "Root" kullanıcısının betik dosyasının "sahibi" olduğundan ve yalnızca "sahip"in "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ı ve dosyanın "700" izinleri olmalıdır (yani, yalnızca "sahip" "okuma", "yazma" ve "yürütme" izinlerine sahip olmalıdır). "Root" kullanıcısının betik dosyasının "sahibi" olduğundan ve yalnızca "sahip"in "okuma", "yazma" ve "yürütme" izinlerine sahip olduğundan emin olun.
ScriptTimeout Öncesi Uygulamayla tutarlı yedekleme ön betiği yürütme zaman aşımına uğradı. Betiği denetleyin ve /etc/azure konumundaki VMSnapshotScriptPluginConfig.json dosyasında zaman aşımını artırın.
ScriptTimeout Sonrası Uygulamayla tutarlı yedekleme sonrası betiklerin 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.

Sonraki adımlar

Kurtarma Hizmetleri kasasına VM yedeklemesini yapılandırma