Pencadangan komputer virtual Azure Linux yang konsisten dengan aplikasi menggunakan Azure Backup

Artikel ini menjelaskan cara membuat cadangan Komputer Virtual Linux anda yang konsisten dengan aplikasi ke Azure dengan menggunakan Azure Backup. Dalam artikel ini, Anda akan mengonfigurasi kerangka kerja skrip untuk mencadangkan VM Linux yang disebarkan Azure. Artikel ini juga menyediakan informasi pemecahan masalah.

Saat Anda mengambil rekam jepret cadangan VM, konsistensi aplikasi berarti aplikasi Anda dimulai ketika VM boot setelah dipulihkan. Seperti yang dapat Anda bayangkan, konsistensi aplikasi sangatlah penting. Untuk memastikan VM Linux Anda konsisten dengan aplikasi, Anda dapat menggunakan kerangka kerja preskrip dan pasca-skrip Linux untuk mengambil cadangan yang konsisten dengan aplikasi. Kerangka kerja preskrip dan pasca-skrip mendukung komputer virtual Linux yang disebarkan Azure Resource Manager. Skrip untuk konsistensi aplikasi tidak mendukung komputer virtual yang disebarkan Manajer Layanan atau komputer virtual Windows.

Cara kerja kerangka kerja

Kerangka kerja ini menyediakan opsi untuk menjalankan preskrip kustom dan pasca-skrip saat Anda mengambil rekam jepret VM. Preskrip berjalan tepat sebelum Anda mengambil rekam jepret VM, dan pasca-skrip berjalan segera setelah Anda mengambil rekam jepret VM. Preskrip dan pasca-skrip memberikan fleksibilitas untuk mengontrol aplikasi dan lingkungan Anda, saat Anda mengambil rekam jepret VM.

Preskrip memanggil API aplikasi asli, yang menghentikan IO, dan menghapus konten dalam memori ke disk. Tindakan ini memastikan snapshot tersebut konsisten dengan aplikasi. Pasca-skrip menggunakan API aplikasi native untuk mencairkan IO, yang memungkinkan aplikasi melanjutkan operasi normal setelah rekam jepret VM.

Mengonfigurasi preskrip dan pasca-skrip untuk Azure Linux VM

Untuk mengonfigurasi Prescript dan post-script, ikuti langkah-langkah berikut:

  1. Masuk sebagai pengguna root ke VM Linux yang ingin Anda cadangkan.

  2. Dari GitHub, unduh VMSnapshotScriptPluginConfig.jsdan lalu salin ke folder /etc/azure untuk semua VM yang ingin Anda cadangkan. Jika folder /etc/azure tidak ada, buatlah.

  3. Salin preskrip dan pasca-skrip untuk aplikasi Anda di semua VM yang Anda rencanakan untuk dicadangkan. Anda dapat menyalin skrip ke lokasi mana pun di VM. Pastikan untuk memperbarui jalur lengkap file skrip di file VMSnapshotScriptPluginConfig.jspada.

  4. Pastikan izin berikut untuk file ini:

    • VMSnapshotScriptPluginConfig.json: Permission “600.” Misalnya, hanya pengguna "akar" yang harus memiliki izin "baca" dan "tulis" terhadap file ini, dan seharusnya tidak ada pengguna memiliki izin "eksekusi".

    • File pra-skrip: Izin "700." Misalnya, hanya pengguna "akar" yang seharusnya memiliki izin "baca", "tulis", dan "eksekusi" ke file ini. File diharapkan menjadi skrip shell tetapi secara teoritis skrip ini dapat secara internal menelurkan atau merujuk ke skrip lain seperti skrip Python.

    • Pasca-skrip Izin "700." Misalnya, hanya pengguna "akar" yang seharusnya memiliki izin "baca", "tulis", dan "eksekusi" ke file ini. File diharapkan menjadi skrip shell tetapi secara teoritis skrip ini dapat secara internal menelurkan atau merujuk ke skrip lain seperti skrip Python.

    Penting

    Kerangka kerja memberi pengguna banyak kekuatan. Amankan kerangka kerja, dan pastikan hanya pengguna "root" yang memiliki akses ke JSON dan file skrip yang penting. Jika persyaratan tidak terpenuhi, skrip tidak akan berjalan, yang mengakibatkan crash sistem file dan cadangan tidak konsisten.

  5. Konfigurasikan VMSnapshotScriptPluginConfig.json seperti yang dijelaskan di sini:

    • pluginName: Biarkan bidang ini apa adanya, atau skrip Anda mungkin tidak berfungsi seperti yang diharapkan.

    • preScriptLocation: Berikan jalur lengkap preskrip pada VM yang akan dicadangkan.

    • postScriptLocation: Berikan jalur lengkap pasca-skrip pada VM yang akan dicadangkan.

    • preScriptParams: Berikan parameter opsional yang perlu diteruskan ke preskrip. Semua parameter harus dalam tanda kutip. Jika Anda menggunakan beberapa parameter, pisahkan parameter dengan koma.

    • preScriptParams: Berikan parameter opsional yang perlu diteruskan ke pasca-skrip. Semua parameter harus dalam tanda kutip. Jika Anda menggunakan beberapa parameter, pisahkan parameter dengan koma.

    • preScriptNoOfRetries: Atur berapa kali preskrip harus dicoba ulang jika ada kesalahan sebelum mengakhiri. Nol berarti hanya mencoba satu kali dan tidak mencoba lagi jika ada kegagalan.

    • postScriptNoOfRetries: Atur berapa kali pasca-skrip harus dicoba ulang jika ada kesalahan sebelum mengakhiri. Nol berarti hanya mencoba satu kali dan tidak mencoba lagi jika ada kegagalan.

    • timeoutInSeconds: Tentukan batas waktu individual untuk preskrip dan pasca-skrip (nilai maksimum bisa 1800).

    • continueBackupOnFailure: Atur nilai ini ke true jika Anda ingin Azure Backup kembali ke cadangan konsisten sistem file/crash konsisten jika preskrip atau pasca-skrip gagal. Menyetel ini ke false menggagalkan cadangan jika ada kegagalan skrip (kecuali ketika Anda memiliki VM disk tunggal yang kembali ke cadangan yang konsisten terhadap crash terlepas dari pengaturan ini). Ketika nilai continueBackupOnFailure diatur ke false, jika cadangan gagal operasi cadangan akan dicoba lagi berdasarkan logika coba ulang dalam layanan (untuk jumlah upaya yang ditentukan).

    • fsFreezeEnabled: Tentukan apakah Linux fsfreeze harus dipanggil saat Anda mengambil rekam jepret VM untuk memastikan konsistensi sistem file. Sebaiknya Anda tetap menyetel setelan ini ke true kecuali aplikasi Anda memiliki dependensi untuk menonaktifkan fsfreeze.

    • ScriptsExecutionPollTimeSeconds: Atur waktu di mana ekstensi harus tidur di antara setiap poll ke eksekusi skrip. Misalnya, jika nilainya adalah 2, ekstensi memeriksa apakah eksekusi pra/pasca skrip selesai setiap 2 detik. Nilai minimum dan maksimum yang dapat diambil masing-masing adalah 1 dan 5. Nilai harus benar-benar bilangan bulat.

  6. Kerangka kerja skrip sekarang dikonfigurasi. Jika cadangan VM sudah dikonfigurasi, cadangan berikutnya akan memanggil skrip dan memicu cadangan yang konsisten dengan aplikasi. Jika cadangan VM tidak dikonfigurasi, konfigurasikan dengan menggunakan Cadangkan komputer virtual Azure ke kubah Layanan Pemulihan.

Pemecahan Masalah

Pastikan Anda menambahkan pengelogan yang sesuai saat menulis preskrip dan pasca-skrip, dan meninjau log skrip Anda untuk memperbaiki masalah skrip apa pun. Jika Anda masih mengalami masalah dalam menjalankan skrip, lihat tabel berikut ini untuk informasi selengkapnya.

Kesalahan Pesan kesalahan Tindakan yang direkomendasikan
Pra-ScriptExecutionFailed Preskrip mengembalikan kesalahan, sehingga cadangan mungkin tidak konsisten dengan aplikasi. Lihat log kegagalan untuk skrip Anda untuk memperbaiki masalah.
Post-ScriptExecutionFailed Pasca-skrip mengembalikan kesalahan yang mungkin memengaruhi status aplikasi. Lihatlah log kegagalan untuk skrip Anda untuk memperbaiki masalah dan memeriksa status aplikasi.
Pre-ScriptNotFound Preskrip tidak ditemukan di lokasi yang ditentukan dalam file konfigurasi VMSnapshotScriptPluginConfig.json . Pastikan bahwa preskrip ada di jalur yang ditentukan dalam file konfigurasi untuk memastikan pencadangan yang konsisten dengan aplikasi.
Post-ScriptNotFound Pasca-skrip tidak ditemukan pada lokasi yang ditentukan dalam berkas konfigurasi VMSnapshotScriptPluginConfig.json. Pastikan bahwa pasca-skrip ada di jalur yang ditentukan dalam file konfigurasi untuk memastikan pencadangan yang konsisten dengan aplikasi.
IncorrectPluginhostFile File Pluginhost , yang dilengkapi dengan ekstensi VmSnapshotLinux, rusak, sehingga preskrip dan pasca-skrip tidak dapat berjalan dan cadangan tidak akan konsisten dengan aplikasi. Hapus instalasi ekstensi VmSnapshotLinux, dan secara otomatis akan diinstal ulang dengan cadangan berikutnya untuk memperbaiki masalah.
IncorrectJSONConfigFile File VMSnapshotScriptPluginConfig.json salah, sehingga preskrip dan pasca-skrip tidak dapat dijalankan dan cadangan tidak akan konsisten dengan aplikasi. Unduh salinan dari GitHub dan konfigurasikan lagi.
InsufficientPermissionforPre-Script Untuk menjalankan skrip, pengguna "akar" harus menjadi pemilik file dan file harus memiliki izin "700" (artinya, hanya "pemilik" yang harus memiliki izin "baca", "tulis", dan "eksekusi"). Pastikan pengguna "akar" adalah "pemilik" file skrip dan bahwa hanya "pemilik" yang memiliki izin "baca", "tulis" dan "eksekusi".
InsufficientPermissionforPost-Script Untuk menjalankan skrip, pengguna "akar" harus menjadi pemilik file dan file harus memiliki izin "700" (artinya, hanya "pemilik" yang harus memiliki izin "baca", "tulis", dan "eksekusi"). Pastikan pengguna "akar" adalah "pemilik" file skrip dan bahwa hanya "pemilik" yang memiliki izin "baca", "tulis" dan "eksekusi".
Pre-ScriptTimeout Eksekusi pra-skrip cadangan yang konsisten aplikasi kehabisan waktu. Periksa skrip dan tingkatkan batas waktu dalam VMSnapshotScriptPluginConfig.json file yang terletak di /etc/azure.
Post-ScriptTimeout Waktu eksekusi pasca-skrip cadangan yang konsisten dengan aplikasi habis. Periksa skrip dan tingkatkan batas waktu dalam VMSnapshotScriptPluginConfig.json file yang terletak di /etc/azure.

Langkah berikutnya

Mengonfigurasi cadangan VM ke kubah Layanan Pemulihan