إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح هذه المقالة كيفية إنشاء نسخ احتياطية متوافقة مع التطبيق لأجهزة Linux الظاهرية (VMs) المنشورة في Azure باستخدام Azure Backup. يغطي كيفية تكوين إطار عمل البرنامج النصي واستكشاف الأخطاء وإصلاحها.
عندما يأخذ Azure Backup لقطة من جهاز ظاهري، يضمن تناسق التطبيق بدء تشغيل التطبيقات بشكل صحيح بعد استعادة الجهاز الظاهري. لتحقيق هذا السلوك، استخدم إطار عمل Linux prescript وPostscript، الذي يدعم أجهزة Linux الظاهرية المنشورة مع Azure Resource Manager. لا تعمل هذه البرامج النصية مع الأجهزة الظاهرية المنشورة مع System Center Service Manager أو Windows.
كيف يعمل إطار العمل؟
يوفر إطار العمل خيارا لتشغيل البرامج النصية والتذييلات المخصصة أثناء التقاط لقطات الجهاز الظاهري. يتم تشغيل Prescripts قبل التقاط لقطة الجهاز الظاهري. يتم تشغيل التذييلات مباشرة بعد التقاط لقطة الجهاز الظاهري. توفر Prescripts وPostscripts المرونة للتحكم في التطبيق والبيئة أثناء التقاط لقطات الجهاز الظاهري.
تستدعي البرامج النصية واجهات برمجة تطبيقات التطبيقات الأصلية، التي تعمل على تهدئة الإدخال/الإخراج، ومسح المحتوى الموجود في الذاكرة إلى القرص. تضمن هذه الإجراءات أن اللقطة متسقة مع التطبيق. تستخدم Postscripts واجهات برمجة تطبيقات التطبيق الأصلي لإذابة الإدخال/الإخراج، مما يمكن التطبيق من استئناف العمليات العادية بعد لقطة الجهاز الظاهري.
تكوين prescript وpostscript لأجهزة Azure Linux الظاهرية
لتكوين prescript و postscript، اتبع الخطوات التالية:
سجل الدخول كمستخدم جذر إلى Linux VM الذي تريد نسخه احتياطيا.
من GitHub، قم بتنزيل VMSnapshotScriptPluginConfig.json وانسخه إلى المجلد /etc/azure لجميع الأجهزة الظاهرية التي تريد نسخها احتياطيا. إذا لم يكن المجلد /etc/azure موجودا، فقم بإنشائه.
انسخ prescript وpostscript للتطبيق الخاص بك على جميع الأجهزة الظاهرية التي تخطط لنسخها احتياطيا. يمكنك نسخ البرامج النصية إلى أي موقع على الجهاز الظاهري. تأكد من تحديث المسار الكامل لملفات البرنامج النصي في ملف VMSnapshotScriptPluginConfig.json .
لاستخدام الملفات التالية، تأكد من أن لديك الأذونات المقابلة:
- VMSnapshotScriptPluginConfig.json: الإذن 600. على سبيل المثال، يجب أن يكون لدى المستخدم الجذر فقط أذونات القراءة والكتابة لهذا الملف، ويجب ألا يكون لدى أي مستخدم أذونات تنفيذ.
- ملف Prescript: الإذن هو 700. على سبيل المثال، يجب أن يكون لدى المستخدم الجذر فقط أذونات القراءة والكتابة والتنفيذ لهذا الملف. من المتوقع أن يكون الملف عبارة عن برنامج نصي shell ، ولكن من الناحية النظرية ، يمكن لهذا البرنامج النصي أن يولد داخليا أو يشير إلى برامج نصية أخرى مثل برنامج Python النصي.
- حاشية: الإذن 700. على سبيل المثال، يجب أن يكون لدى المستخدم الجذر فقط أذونات القراءة والكتابة والتنفيذ لهذا الملف. من المتوقع أن يكون الملف عبارة عن برنامج نصي shell ، ولكن من الناحية النظرية ، يمكن لهذا البرنامج النصي أن يولد داخليا أو يشير إلى برامج نصية أخرى مثل برنامج Python النصي.
هام
يمنح إطار العمل المستخدمين العديد من الصلاحيات. قم بتأمين إطار العمل، وتأكد من أن المستخدم الجذر فقط هو الذي يمكنه الوصول إلى ملفات JSON والبرامج النصية الهامة.
إذا لم يتم استيفاء المتطلبات، فلا يمكن تشغيل البرنامج النصي، مما يؤدي إلى تعطل نظام الملفات والنسخ الاحتياطي غير المتناسق.
قم بتكوين VMSnapshotScriptPluginConfig.json كما هو موضح هنا:
-
pluginNameاترك هذا الحقل كما هو، وإلا فقد لا تعمل البرامج النصية كما هو متوقع.: -
preScriptLocationتوفير المسار الكامل للنص النصي على الجهاز الظاهري المراد نسخه احتياطيا.: -
postScriptLocationقم بتوفير المسار الكامل للتذييل على الجهاز الظاهري المراد نسخه احتياطيا.: -
preScriptParamsتوفير المعلمات الاختيارية التي يجب تمريرها إلى النص.: يجب أن تكون جميع المعلمات في علامات اقتباس. إذا كنت تستخدم معلمات متعددة، فافصل بين المعلمات بفاصلة. -
postScriptParamsقم بتوفير المعلمات الاختيارية التي يجب تمريرها إلى التذييل.: يجب أن تكون جميع المعلمات في علامات اقتباس. إذا كنت تستخدم معلمات متعددة، فافصل بين المعلمات بفاصلة. -
preScriptNoOfRetriesقم بتعيين عدد المرات التي يجب فيها إعادة محاولة النص في حالة حدوث خطأ قبل الإنهاء.: الصفر يعني محاولة واحدة فقط ، ولا إعادة محاولة إذا كان هناك فشل. -
postScriptNoOfRetriesقم بتعيين عدد المرات التي يجب إعادة محاولة فيها التذييل في حالة حدوث خطأ قبل الإنهاء.: الصفر يعني محاولة واحدة فقط ، ولا إعادة محاولة إذا كان هناك فشل. -
timeoutInSecondsحدد المهلات الفردية للنص والتذييل (القيمة القصوى هي 1800.: -
continueBackupOnFailureقم بتعيين هذه القيمة إلى true إذا كنت تريد أن يعود Azure Backup إلى نسخة احتياطية متسقة مع نظام الملفات/متوافقة مع الأعطال إذا فشل prescript أو postscript.: يؤدي تعيين هذه القيمة إلى false إلى فشل النسخ الاحتياطي في حالة حدوث فشل في البرنامج النصي. (الاستثناء هو عندما يكون لديك جهاز ظاهري أحادي القرص يعود إلى النسخ الاحتياطي المتسق مع الأعطال بغض النظر عن هذا الإعداد.) عند تعيين القيمةcontinueBackupOnFailureإلى false، إذا فشل النسخ الاحتياطي، تتم محاولة عملية النسخ الاحتياطي مرة أخرى استنادا إلى منطق إعادة المحاولة في الخدمة (لعدد المحاولات المنصوص عليه). -
fsFreezeEnabledحدد ما إذا كان يجب استدعاء Linuxfsfreezeأثناء التقاط لقطة الجهاز الظاهري لضمان تناسق نظام الملفات.: نوصي بالاحتفاظ بتعيين هذا الإعداد إلى true ما لم يكن التطبيق الخاص بك يعتمد على تعطيلfsfreeze. -
ScriptsExecutionPollTimeSecondsقم بتعيين الوقت الذي يجب أن تكون فيه الإضافة في وضع السكون بين كل استطلاع لتنفيذ البرنامج النصي.: على سبيل المثال، إذا كانت القيمة 2، يتحقق الملحق مما إذا كان تنفيذ prescript أو postscript قد اكتمل كل ثانيتين. الحد الأدنى والحد الأقصى للقيمة التي يمكن أن يأخذها هو 1 و 5 على التوالي. يجب الالتزام الشديد بأن تكون القيمة عدداً صحيحاً.
-
تم تكوين إطار عمل البرنامج النصي الآن. إذا تم تكوين النسخ الاحتياطي للجهاز الظاهري بالفعل، فإن النسخ الاحتياطي التالي يستدعي البرامج النصية ويشغل النسخ الاحتياطي المتناسق مع التطبيق. إذا لم يتم تكوين النسخ الاحتياطي للجهاز الظاهري، فقم بتكوينه باتباع الخطوات الواردة في النسخ الاحتياطي لأجهزة Azure الظاهرية إلى مخازن خدمات الاسترداد.
استكشاف أخطاء النسخ الاحتياطي المتوافق مع تطبيق Azure Linux VM وإصلاحها
تأكد من إضافة التسجيل المناسب أثناء كتابة النص والتذييل. راجع سجلات النصوص البرمجية لإصلاح أي مشاكل في النص البرمجي. إذا كنت لا تزال تواجه مشكلات في تشغيل البرامج النصية، فارجع إلى الجدول التالي.
| خطأ | رسالة الخطأ | الإجراء الموصى به |
|---|---|---|
Pre-ScriptExecutionFailed |
قام النص بإرجاع خطأ، لذلك قد لا يكون النسخ الاحتياطي متسقا مع التطبيق. | انظر إلى سجلات الفشل للبرنامج النصي الخاص بك لإصلاح المشكلة. |
Post-ScriptExecutionFailed |
قام التذييل بإرجاع خطأ قد يؤثر على حالة التطبيق. | اطلع على سجلات الفشل الخاصة بالنص البرمجي لإصلاح المشكلة، وتحقق من حالة التطبيق. |
Pre-ScriptNotFound |
لم يتم العثور على prescript في الموقع المحدد في ملف التكوين VMSnapshotScriptPluginConfig.json. | تأكد من وجود البرنامج النصي في المسار الذي تم تحديده في ملف التكوين لضمان النسخ الاحتياطي المتوافق مع التطبيق. |
Post-ScriptNotFound |
لم يتم العثور على التذييل في الموقع الذي تم تحديده في ملف التكوين VMSnapshotScriptPluginConfig.json. | تأكد من وجود التذييل في المسار الذي تم تحديده في ملف التكوين لضمان النسخ الاحتياطي المتسق مع التطبيق. |
IncorrectPluginhostFile |
الملف Pluginhost ، الذي يأتي مع الامتداد VmSnapshotLinux ، تالف ، لذلك لا يمكن تشغيل prescript و postscript ولا يكون النسخ الاحتياطي متسقا مع التطبيق. |
قم بإلغاء تثبيت الملحق VmSnapshotLinux . يتم إعادة تثبيته تلقائيا مع النسخة الاحتياطية التالية لإصلاح المشكلة. |
IncorrectJSONConfigFile |
ملف VMSnapshotScriptPluginConfig.json غير صحيح، لذلك لا يمكن تشغيل prescript و postscript والنسخ الاحتياطي غير متسق مع التطبيق. | قم بتنزيل النسخة من GitHub وقم بتكوينها مرة أخرى. |
InsufficientPermissionforPre-Script |
لتشغيل البرامج النصية ، يجب أن يكون المستخدم الجذر هو مالك الملف. يجب أن يحتوي الملف على 700 إذن. (أي أن المالك فقط يجب أن يكون لديه أذونات القراءة والكتابة والتنفيذ.) | تأكد من أن المستخدم الجذر هو مالك ملف البرنامج النصي وأن المالك فقط لديه أذونات القراءة والكتابة والتنفيذ. |
InsufficientPermissionforPost-Script |
لتشغيل البرامج النصية ، يجب أن يكون المستخدم الجذر هو مالك الملف. يجب أن يحتوي الملف على 700 إذن. (أي أن المالك فقط يجب أن يكون لديه أذونات القراءة والكتابة والتنفيذ.) | تأكد من أن المستخدم الجذر هو مالك ملف البرنامج النصي وأن المالك فقط لديه أذونات القراءة والكتابة والتنفيذ. |
Pre-ScriptTimeout |
انتهت مهلة تنفيذ النص النصي للنسخ الاحتياطي المتوافق مع التطبيق. | تحقق من البرنامج النصي وقم بزيادة المهلة في ملف VMSnapshotScriptPluginConfig.json الموجود في /etc/azure. |
Post-ScriptTimeout |
انتهت مهلة تنفيذ التذييل للنسخ الاحتياطي المتسق مع التطبيق. | تحقق من البرنامج النصي وقم بزيادة المهلة في ملف VMSnapshotScriptPluginConfig.json الموجود في /etc/azure. |