فحص نسخة احتياطية متسقة مع التطبيق للأجهزة الظاهرية لـ Azure Linux

مكتمل

عند تنفيذ لقطات النسخ الاحتياطي للأجهزة الظاهرية الخاصة بك، فإن تناسق التطبيق يعني أنه يجب أن تكون التطبيقات الخاصة بك قادرة على بدء التشغيل عند إعادة تشغيل الأجهزة الظاهرية بعد استعادتها. في الأجهزة الظاهرية التي تعمل بنظام التشغيل Windows، تعتمد اللقطات على خدمة نُسخ الظل الاحتياطية لوحدات التخزين (VSS) لتسهيل تناسق التطبيق. للأجهزة الظاهرية التي تعمل بنظام التشغيل Linux، يمكنك استخدام إطار عمل ما قبل البرنامج النصي وما بعده في Linux لتنفيذ نسخ احتياطية متسقة مع التطبيق.

يوفر إطار العمل خيارًا لتشغيل البرامج النصية المخصصة المسبقة واللاحقة في أثناء التقاط لقطات الأجهزة الظاهرية. تعمل البرامج النصية المسبقة قبل التقاط لقطة للجهاز الظاهري، وتعمل البرامج النصية اللاحقة بعد التقاط اللقطة على الفور.

استدعاء البرامج النصية pre-scripts واجهات برمجة التطبيقات التطبيق الأصلي quiesce IOs ثم تدفق المحتوى في الذاكرة إلى القرص. تضمن هذه الإجراءات أن تكون اللقطة متناسقة مع التطبيق. تستخدم البرامج النصية اللاحقة واجهات برمجة التطبيقات الأصلية لإلغاء تجميد عمليات الإدخال والإخراج، ما يتيح للتطبيق استئناف العمليات العادية بعد لقطة الجهاز الظاهري.

خطوات تكوين البرامج النصية السابقة واللاحقة

  1. سجّل الدخول بصفتك المستخدم الأصلي إلى الجهاز الظاهري الذي يعمل بنظام التشغيل Linux الذي تريد نسخه احتياطيًا.

  2. تحميل VMSnapshotScriptPluginConfig.json من GitHub، ونسخه إلى الدليل/ وما إلى ذلك/ azure من جميع الأجهزة الظاهرية التي تريد النسخ الاحتياطي. إذا كان الدليل /etc/azure غير موجود، فقم بإنشائه.

  3. انسخ البرنامج النصي السابق والبرنامج النصي اللاحق للتطبيق الخاص بك في كافة الأجهزة الظاهرية التي تخطط لإجراء نسخ احتياطي لها. يمكنك نسخ البرامج النصية في أي موقع على الجهاز الظاهري. تأكد من تحديث المسار الكامل لملفات البرنامج النصي في الملف VMSnapshotScriptPluginConfig.json.

  4. تأكد من الأذونات التالية لهذه الملفات:

    • VMSnapshotScriptPluginConfig.json: إذن "600". يجب أن يكون لدى المستخدم «الأصلي» فقط أذونات «قراءة» و«كتابة» على هذا الملف، ويجب ألا يكون لدى أي مستخدم أذونات «تنفيذ».
    • ملف البرنامج النصي المسبق: إذن "700". يجب أن يكون لدى المستخدم «الأصلي» فقط أذونات «قراءة»، و«كتابة» و«تنفيذ» بهذا الملف.
    • البرنامج النصي اللاحق إذن "700". يجب أن يكون لدى المستخدم «الأصلي» فقط أذونات «قراءة»، و«كتابة» و«تنفيذ» بهذا الملف.
  5. قم بتكوين VMSnapshotScriptPluginConfig.json كما هو موضح هنا:

    • pluginName: اترك هذا الإدخال كما هو، أو قد لا تعمل البرامج النصية كما هو متوقع.
    • preScriptLocation: توفير المسار الكامل للبرنامج النصي المسبق على الجهاز الظاهري الذي سيتم نسخه احتياطيا.
    • postScriptLocation: توفير المسار الكامل للبرنامج النصي اللاحق على الجهاز الظاهري الذي سيتم نسخه احتياطيا.
    • preScriptParams: توفير المعلمات الاختيارية التي تحتاج إلى تمريرها إلى البرنامج النصي المسبق.
    • postScriptParams: توفير المعلمات الاختيارية التي تحتاج إلى تمريرها إلى البرنامج النصي اللاحق.
    • preScriptNoOfRetries: عيّن عدد مرات التي يجب فيها إعادة محاولة البرنامج النصي المسبق إذا كان هناك أي خطأ قبل الإنهاء. يشير الصفر إلى محاولة واحدة فقط ولا تتوفر إعادة المحاولة إذا فشلت العملية.
    • postScriptNoOfRetries: قم بتعيين عدد المرات التي يجب فيها إعادة محاولة post-script إذا حدث أي خطأ قبل الإنهاء. يشير الصفر إلى محاولة واحدة فقط ولا تتوفر إعادة المحاولة إذا فشلت العملية.
    • timeoutInSeconds: حدد المهلات الفردية للبرنامج النصي المسبق والبرنامج النصي اللاحق (يمكن أن تكون القيمة القصوى 1800).
    • continueBackupOnFailure: قم بتعيين هذه القيمة إلى true إذا كنت تريد أن يعود Azure Backup إلى نسخة احتياطية متسقة/متناسقة مع تعطل نظام الملفات إذا فشل البرنامج النصي المسبق أو البرنامج النصي اللاحق. يؤدي تعيين هذا إلى خطأ إلى فشل النسخ الاحتياطي فشل البرنامج النصي (إلا عندما يكون لديك جهاز ظاهري أحادي القرص، وفي هذه الحالة، يؤدي فشل البرنامج النصي دائما إلى نسخ احتياطي متناسق مع الأعطال).
    • fsFreezeEnabled: حدد ما إذا كان يجب استدعاء Linux fsfreeze أثناء أخذ لقطة الجهاز الظاهري لضمان تناسق نظام الملفات. نوصي باستمرار تعيين هذا الإعداد إلى صواب ما لم يحتوِ تطبيقك على أحد التبعيات لتعطيل fsfreeze.
  6. تم تكوين إطار عمل البرنامج النصي الآن. في حال تكوين النسخ الاحتياطي للجهاز الظاهري من قبل، تستدعي النسخة الاحتياطية التالية البرامج النصية وتشغل النسخ الاحتياطي المتسق مع التطبيق.

هام

يمنح إطار العمل المستخدمين الكثير من الصلاحيات. يؤمّن إطار العمل، ويضمن أن يكون للمستخدم «الأصلي» فقط حق الوصول إلى ملفات JSON والبرامج النصية بالغة الأهمية. إذا لم يتم استيفاء المتطلبات، فلن يتم تشغيل البرنامج النصي، ما يؤدي إلى تعطل نظام الملفات وعدم تناسق النسخ الاحتياطي.