Bagikan melalui


Konfigurasikan pencadangan konsisten aplikasi untuk VM Linux Azure dengan menggunakan Azure Backup

Artikel ini menjelaskan cara membuat cadangan yang konsisten dengan aplikasi untuk komputer virtual (VM) Linux yang disebarkan Azure dengan menggunakan Azure Backup. Ini mencakup cara mengonfigurasi kerangka kerja skrip dan pemecahan masalah.

Saat Azure Backup mengambil rekam jepret VM, konsistensi aplikasi memastikan bahwa aplikasi dimulai dengan benar setelah pemulihan VM. Untuk mencapai perilaku ini, gunakan kerangka kerja preskrip dan postscript Linux, yang mendukung VM Linux yang disebarkan dengan Azure Resource Manager. Skrip ini tidak berfungsi untuk VM yang disebarkan dengan System Center Service Manager atau Windows.

Bagaimana cara kerja kerangka kerja?

Kerangka kerja ini menyediakan opsi untuk menjalankan preskrip dan postscript kustom saat Anda mengambil rekam jepret VM. Script awal berjalan sebelum Anda mengambil snapshot VM. Postscript dijalankan segera setelah Anda mengambil snapshot VM. Praskrip dan postscript memberikan fleksibilitas untuk mengontrol aplikasi dan lingkungan Anda saat Anda mengambil snapshot VM.

Preskrip memanggil API aplikasi asli, yang menenangkan I/Os, dan menghapus konten dalam memori ke disk. Tindakan ini memastikan bahwa rekam jepret konsisten dengan aplikasi. Postscript menggunakan API aplikasi asli untuk mencairkan I/Os, yang memungkinkan aplikasi melanjutkan operasi normal setelah rekam jepret VM.

Mengonfigurasi skrip pra dan skrip pasca untuk mesin virtual (VM) Linux Azure

Untuk mengonfigurasi preskrip dan postscript, ikuti langkah-langkah berikut:

  1. Login sebagai pengguna root ke VM Linux yang ingin Anda backup.

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

  3. Salin skrip awal dan skrip akhir untuk aplikasi Anda di semua mesin virtual yang Anda rencanakan untuk dicadangkan. Anda dapat menyalin skrip ke lokasi mana pun di VM. Pastikan untuk memperbarui jalur lengkap file skrip dalam file VMSnapshotScriptPluginConfig.json .

  4. Untuk menggunakan file berikut, pastikan Anda memiliki izin yang sesuai:

    • VMSnapshotScriptPluginConfig.json: Izin adalah 600. Misalnya, hanya pengguna akar yang harus memiliki izin baca dan tulis ke file ini, dan tidak ada pengguna yang harus memiliki izin eksekusi.
    • File skrip awal: Izin adalah 700. Misalnya, hanya pengguna akar yang seharusnya membaca, menulis, dan menjalankan izin ke file ini. File diharapkan menjadi skrip shell, tetapi secara teoritis, skrip ini dapat muncul secara internal atau merujuk ke skrip lain seperti skrip Python.
    • Postscript: Izin adalah 700. Misalnya, hanya pengguna akar yang seharusnya membaca, menulis, dan menjalankan izin ke file ini. File diharapkan menjadi skrip shell, tetapi secara teoritis, skrip ini dapat muncul secara internal atau merujuk ke skrip lain seperti skrip Python.

    Penting

    Kerangka kerja ini memberi pengguna banyak kekuatan. Amankan kerangka kerja, dan pastikan bahwa hanya pengguna akar yang memiliki akses ke file JSON dan skrip penting.

    Jika persyaratan tidak terpenuhi, skrip tidak dapat berjalan, yang mengakibatkan sistem file mengalami crash dan pencadangan yang 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 file postscript pada VM yang akan dicadangkan.
    • preScriptParams: Berikan parameter opsional yang harus diteruskan ke preskrip. Semua parameter harus dalam tanda kutip. Jika Anda menggunakan beberapa parameter, pisahkan parameter dengan koma.
    • postScriptParams: Berikan parameter opsional yang harus diteruskan ke postscript. Semua parameter harus dalam tanda kutip. Jika Anda menggunakan beberapa parameter, pisahkan parameter dengan koma.
    • preScriptNoOfRetries: Atur berapa kali preskrip harus dicoba kembali jika terjadi kesalahan sebelum mengakhiri. Nol berarti hanya satu percobaan, dan tidak ada coba lagi jika ada kegagalan.
    • postScriptNoOfRetries: Atur berapa kali postscript harus dicoba kembali jika terjadi kesalahan sebelum mengakhiri. Nol berarti hanya satu percobaan, dan tidak ada coba lagi jika ada kegagalan.
    • timeoutInSeconds: Tentukan batas waktu individual untuk preskrip dan postscript (nilai maksimum adalah 1800).
    • continueBackupOnFailure: Atur nilai ini ke true jika Anda ingin Azure Backup kembali ke cadangan yang konsisten dengan sistem file/konsisten crash jika preskrip atau postscript gagal. Mengatur nilai ini ke false membuat pencadangan gagal jika terjadi kegagalan skrip. (Pengecualiannya adalah ketika Anda memiliki VM dengan satu disk yang kembali ke cadangan konsisten ketika terjadi crash, terlepas dari pengaturan ini.) continueBackupOnFailure Ketika nilai diatur ke false, jika pencadangan gagal, operasi pencadangan akan dicoba lagi berdasarkan logika pengulangan dalam layanan (untuk jumlah upaya yang ditetapkan).
    • fsFreezeEnabled: Tentukan apakah Linux fsfreeze harus dipanggil saat Anda mengambil rekam jepret VM untuk memastikan konsistensi sistem file. Kami menyarankan agar Anda mengatur pengaturan ini ke true kecuali aplikasi Anda memiliki dependensi untuk menonaktifkan fsfreeze.
    • ScriptsExecutionPollTimeSeconds: Atur waktu jeda yang harus dilakukan ekstensi di antara setiap polling sebelum eksekusi skrip. Misalnya, jika nilainya adalah 2, ekstensi memeriksa apakah eksekusi preskrip atau pascaskrip selesai setiap 2 detik. Nilai minimum dan maksimum yang dapat diambil adalah 1 dan 5, masing-masing. Nilai harus benar-benar bilangan bulat.
  6. Kerangka kerja skrip sekarang dikonfigurasi. Jika cadangan VM sudah dikonfigurasi, cadangan berikutnya memanggil skrip dan memicu pencadangan yang konsisten dengan aplikasi. Jika cadangan VM tidak dikonfigurasi, konfigurasikan dengan mengikuti langkah-langkah di Mencadangkan komputer virtual Azure ke vault Layanan Pemulihan.

Memecahkan masalah kesalahan pencadangan yang konsisten dengan aplikasi Azure Linux VM

Pastikan Anda menambahkan pengelogan yang sesuai saat menulis preskrip dan postscript. Tinjau log skrip Anda untuk memperbaiki masalah skrip apa pun. Jika Anda masih mengalami masalah saat menjalankan skrip, lihat tabel berikut ini.

Kesalahan Pesan kesalahan Tindakan yang direkomendasikan
Pre-ScriptExecutionFailed Preskrip mengembalikan kesalahan, sehingga cadangan mungkin tidak konsisten dengan aplikasi. Lihat log kegagalan untuk skrip Anda untuk memperbaiki masalah tersebut.
Post-ScriptExecutionFailed Postscript mengembalikan kesalahan yang mungkin memengaruhi status aplikasi. Lihat log kegagalan untuk skrip Anda untuk memperbaiki masalah, dan periksa 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 Postscript tidak ditemukan di lokasi yang ditentukan dalam file konfigurasi VMSnapshotScriptPluginConfig.json. Pastikan postscript ada di jalur yang ditentukan dalam file konfigurasi untuk memastikan pencadangan sesuai aplikasi.
IncorrectPluginhostFile File Pluginhost , yang dilengkapi dengan VmSnapshotLinux ekstensi, rusak, sehingga preskrip dan postscript tidak dapat berjalan dan cadangan tidak konsisten dengan aplikasi. Hapus instalan VmSnapshotLinux ekstensi. Ini secara otomatis menginstal ulang dengan cadangan berikutnya untuk memperbaiki masalah.
IncorrectJSONConfigFile File VMSnapshotScriptPluginConfig.json salah, sehingga preskrip dan postscript tidak dapat dijalankan dan cadangan tidak konsisten dengan aplikasi. Unduh salinan dari GitHub dan konfigurasikan lagi.
InsufficientPermissionforPre-Script Untuk menjalankan skrip, pengguna root harus menjadi pemilik file. File harus memiliki 700 izin. (Artinya, hanya pemilik yang memiliki izin untuk membaca, menulis, dan menjalankan.) Pastikan bahwa pengguna akar adalah pemilik file skrip dan hanya pemilik yang telah membaca, menulis, dan menjalankan izin.
InsufficientPermissionforPost-Script Untuk menjalankan skrip, pengguna root harus menjadi pemilik file. File harus memiliki 700 izin. (Artinya, hanya pemilik yang memiliki izin untuk membaca, menulis, dan menjalankan.) Pastikan bahwa pengguna akar adalah pemilik file skrip dan hanya pemilik yang telah membaca, menulis, dan menjalankan izin.
Pre-ScriptTimeout Eksekusi preskrip untuk pencadangan yang konsisten dengan aplikasi kehabisan waktu. Periksa skrip dan tingkatkan batas waktu dalam file VMSnapshotScriptPluginConfig.json yang terletak di /etc/azure.
Post-ScriptTimeout Eksekusi postscript untuk pencadangan yang konsisten dengan aplikasi kehabisan waktu. Periksa skrip dan tingkatkan batas waktu dalam file VMSnapshotScriptPluginConfig.json yang terletak di /etc/azure.