هل ينبغي إيقاف حاويات التطبيقات مؤقتًا أم استخدام نسخ احتياطية للتطبيقات قبل أخذ لقطة لحظية من جهاز NAS؟

إيفا وونغ هي كاتبة تقنية و ومهندسة هاوية في ZimaSpace. مهووسة بالتكنولوجيا مدى الحياة ولديها شغف بالمختبرات المنزلية والبرمجيات مفتوحة المصدر، تتخصص في تبسيط المفاهيم التقنية المعقدة إلى أدلة عملية وسهلة الفهم. تؤمن إيفا بأن الاستضافة الذاتية يجب أن تكون ممتعة وليست مخيفة. من خلال دروسها، تمكّن المجتمع من تبسيط إعدادات الأجهزة، بدءًا من بناء أول نظام تخزين شبكي NAS وحتى إتقان حاويات Docker.

تتمثل الطريقة الآمنة في التعامل مع الاختيار الخاص بكل عبء عمل بين النسخ الاحتياطي للتطبيق، أو الإيقاف المنسق مؤقتًا، أو الإيقاف النظيف قبل أخذ اللقطة، باعتباره سلسلة من نقاط تحقق قابلة للملاحظة، وليس أمرًا واحدًا.

في التطبيقات الموجودة داخل حاويات على جهاز NAS يدعم اللقطات، يكمن الخطر العملي في عدم اليقين بشأن ما إذا كانت لقطة NAS المباشرة ستستعيد حالة الحاويات ذات الحالة باستمرار. سجّل الهوية الحالية ونقطة الاسترداد، وابدأ بأقل العوامل تداخلاً للتمييز، وفسّر نتائج النجاح والفشل قبل تغيير متغير آخر، وتوقف عندما يصبح التخزين غير مستقر أو عندما تصبح النسخة الوحيدة القابلة للاسترداد مكشوفة للخطر. لا ينتهي سير العمل أدناه إلا بعد نجاح عبء العمل الأصلي أو وصول الأدلة إلى حد التصعيد.

اتخذ قرار الاتساق قبل لمس المكدس

استخدم نسخة احتياطية أصلية للتطبيق عندما يوفر التطبيق أو قاعدة البيانات هذه الإمكانية. استخدم خطاف الإيقاف المؤقت المنسق وأخذ اللقطة فقط عندما تدعم قاعدة البيانات سير العمل هذا، واستخدم الإيقاف النظيف عندما يكون التوقف القصير مقبولًا. اعتبر الإيقاف المؤقت البسيط للحاوية متسقًا مع الأعطال في أفضل الأحوال، وليس متسقًا تلقائيًا مع التطبيق.

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

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

اختر المسار الصحيح الأقل إزعاجًا

بالنسبة إلى PostgreSQL وMariaDB وقواعد بيانات الخدمات الأخرى، فضّل عملية التفريغ أو النسخ الاحتياطي الفعلي المدعومة من تلك القواعد. وبالنسبة إلى SQLite، استخدم تصدير التطبيق أو النسخ الاحتياطي عبر الإنترنت في SQLite متى توفر. التقط الملفات المحمّلة والإعدادات ضمن نافذة الاسترداد نفسها حتى لا تشير قاعدة البيانات إلى ملفات مفقودة أو مستقبلية.

عندما لا يتوفر مسار مدعوم عبر الإنترنت، أوقف عمليات الكتابة أولًا، ثم أوقف قاعدة البيانات بشكل نظيف وتأكد من خروج العمليات قبل أخذ اللقطة. يمكن أن يكون الإيقاف المؤقت جسرًا ضيق النطاق فقط عندما تُظهر الوثائق واختبار الاسترداد أن الاسترداد بعد التعطل كافٍ لعبء العمل المحدد هذا؛ وليس بديلًا عامًا عن النسخ الاحتياطي للتطبيق.

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

نفّذ نافذة لقطة منسقة

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

أضف معالجًا للأخطاء إلى كل خطاف مخصص. إذا فشل التحضير، فلا تأخذ اللقطة؛ وإذا فشل إنشاء اللقطة، فاستأنف التطبيق دائمًا؛ وإذا فشل الاستئناف، فأبقِ المستخدمين خارج الخدمة واستعد الخدمة عمدًا. سجّل كل انتقال حتى لا يؤدي انتهاء مهلة خطاف تمهيدي بصمت إلى إنتاج مهمة نسخ احتياطي تبدو ناجحة زيفًا.

يُعد الاختبار ناجحًا عندما يعود التطبيق إلى حالته الطبيعية، وتحتوي اللقطة على الطابع الزمني ومجموعات البيانات المتوقعة، ولم تُلتقط أي تبعية خارج النافذة. تراجع عن أتمتة العملية إذا ظلت أي حاوية متوقفة مؤقتًا أو أبلغت قاعدة البيانات عن الاسترداد في كل لقطة روتينية.

أثبت صحة الاختيار باسترداد معزول

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

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

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

الدعم والنصائح

المزيد للقراءة

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.