امنع تعارضات التنظيف بتعيين مسؤول صيانة واحد لكل مستودع، ومنحه نافذة لا يستطيع خلالها أي عميل نسخ احتياطي بدء أعمال جديدة.
في مستودع مشترك على خادم منزلي، يبدأ الخلل عادةً قبل خطأ القفل بوقت طويل: إذ تمتلك عدة مضيفات جداول صيانة، وتستغرق إحدى عمليات النسخ الاحتياطي وقتًا أطول من المتوقع، ثم تبدأ عملية التنظيف من دون بوابة على مستوى المستودع بأكمله. اعكس هذا التسلسل. ركّز عملية التنظيف، واحجز وقتًا كافيًا، واجعل المهام تعمل بالتتابع خارج Restic، وأرسل تنبيهات بشأن عمليات التشغيل التي تم تخطيها أو تأخرت. إذا كان هناك تعارض قائم بالفعل، فأوقف المهام الجديدة واستخدم مسار الاسترداد الأدنى بدلًا من إضعاف آلية القفل.
عيّن مسؤول صيانة واحدًا لكل مستودع
ابحث في كل عميل وكل خدمة على جانب المستودع عن أوامر صيانة Restic. سجّل الجهة المسؤولة عن forget وprune وcheck وunlock والتنبيهات. عطّل جداول التنظيف المكررة، واحتفظ بوحدة تحكم واحدة تملك بيانات اعتماد المستودع ودرجة الرؤية اللازمة لمراقبة جميع العملاء.
يمكن تنسيق عمليات النسخ الاحتياطي المتعددة حول مستودع واحد، لكن إزالة جميع الأقفال قبل التنظيف تقضي على حد الأمان، وقد تُنشئ التداخل غير الآمن الذي كان الجدول يهدف إلى تجنبه.
ينجح فحص الملكية عندما لا يتمكن من بدء صيانة على مستوى المستودع إلا مضيف واحد، ويعرف كل عميل نسخ احتياطي مكان الإبلاغ عن الأعطال. إذا كان جهاز أو غلاف نسخ احتياطي يستطيع تشغيل صيانة مخفية، فعطّل خياره التلقائي أو أدرجه في وحدة التحكم نفسها قبل المتابعة.
احجز نافذة تنظيف أطول من أطول عملية تشغيل طبيعية
استخدم السجلات الحديثة للعثور على أطول نسخة احتياطية طبيعية، وأطول عملية تنظيف حديثة، وتأخيرات إيقاظ العملاء، وتراكم عمليات إعادة المحاولة. ضع التنظيف بعد أحدث وقت متوقع لاكتمال النسخ الاحتياطي، واترك وقتًا كافيًا لأسوأ مدة طبيعية للعملية نفسها. لا تختر منتصف الليل لمجرد أنه يبدو هادئًا على مضيف واحد.
ينبغي أن تحدد خطة الاحتفاظ أيضًا نطاق اللقطات بحسب المضيف أو الوسم، حتى لا تؤدي سياسة الاحتفاظ متعددة المضيفات إلى اختيار اللقطات الخطأ بينما يخضع المستودع لمسؤول صيانة واحد.
إذا تجاوزت النسخ الاحتياطية الحد المقترح كثيرًا، فانقل التنظيف بدلًا من تقصير نافذة النسخ الاحتياطي. وإذا زادت مدة التنظيف عن الفجوة المتاحة، فقلّل تكرار الاستصلاح الفعلي، أو افحص معدل نقل البيانات في الواجهة الخلفية، أو استخدم نافذة أكبر. تفشل الوقاية عندما يعتمد الجدول على انتهاء كل مهمة في متوسط وقتها.
طبّق الاستبعاد المتبادل وسياسة إعادة محاولة واضحة
استخدم طريقة تسلسل خارجية واحدة تحترمها كل مهمة محلية: ترتيب وحدات systemd، أو غلاف قفل مشترك، أو قائمة انتظار تتحكم بها مضيفة الصيانة. ينبغي أن يرفض الغلاف المهمة اللاحقة أو يؤخرها، وأن يحافظ على أقفال Restic نفسها، وأن يكتب حالة واضحة يمكن لنظام المراقبة إصدار تنبيه بشأنها.
يمكن لجدول Restic المعتمد على systemd فصل خدمات النسخ الاحتياطي والتنظيف المتكررة، بحيث يظل الترتيب وحالة الخروج والسجلات واضحة.
حدّد فاصلًا زمنيًا محدودًا لإعادة المحاولة وتأخيرًا أقصى. ينبغي للنسخة الاحتياطية التي تعيقها الصيانة أن تعيد المحاولة بعد انتهاء النافذة، لا أن تختفي حتى اليوم التالي؛ كما ينبغي للتنظيف الذي تعيقه نسخة احتياطية متأخرة أن يرسل تنبيهًا وينتقل إلى النافذة المعتمدة التالية. لا تجعل إلغاء القفل القسري تلقائيًا إجراءً لإعادة المحاولة.
اختبر سياسة الوقاية واحتفظ بخطة تراجع بسيطة
اختبر الترتيبين على مستودع يمكن التخلص منه أو مجموعة بيانات نموذجية: ابدأ بالنسخ الاحتياطي أولًا واطلب التنظيف، ثم ابدأ بالتنظيف أولًا واطلب النسخ الاحتياطي. في كل حالة، ينبغي لإحدى المهمتين أن تنتظر أو تخرج بحالة واضحة، وأن تعيد وحدة التحكم المحاولة وفق السياسة المُعدّة، وألا تتم إزالة أي قفل تحت عملية نشطة.
بعد النشر، افحص سجلات النسخ الاحتياطي وforget وprune الطبيعية التالية. إذا أصبح المستودع للقراءة فقط بعد الصيانة، فاستخدم مسار الاسترداد المنفصل للتنظيف المتقطع بدلًا من إضعاف بوابة الوقاية.
تنجح السياسة عندما تكتمل دورتان من دون تداخل، وتعيد المهام المؤجلة المحاولة بوضوح، وتصدر التنبيهات عند تفويت النوافذ، وتظل عملية استعادة تجريبية صالحة. وإذا فشلت، فعطّل أتمتة التنظيف أولًا، وأبقِ النسخ الاحتياطية العادية قيد التشغيل مع آلية القفل المعتادة. صعّد المشكلة عندما لا تناسب أي نافذة صيانة عبء العمل المقاس، أو عندما يتعذر على الواجهة الخلفية إكمال التنظيف بشكل موثوق.
الدعم والنصائح
المزيد للقراءة

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

كيفية إزالة قفل Restic العالق دون مقاطعة عملية نسخ احتياطي نشطة
سير عمل لفتح قفل Restic بأقل قدر من التدخل، يحمي عمليات النسخ الاحتياطي النشطة، ويزيل الحالة القديمة فقط، ويؤكد الاسترداد وفق الجدول المعتاد.

لماذا تتوقف نسخة Restic الاحتياطية عند بدء مضيف آخر في تنظيف النسخ القديمة؟
تشخيص مركّز لتعارض أقفال Restic أثناء عملية التنظيف، بما في ذلك التحقق من مالك القفل، والاسترداد الآمن، وإعادة اختبار حالة المُشغِّل، وشروط الإيقاف.

