تتجنب خوادم Btrfs كثيرة اللقطات استنفاد البيانات الوصفية من خلال الحفاظ على مساحة احتياطية غير مخصصة للكتل والحد من تغيّر البيانات الوصفية قبل ظهور خطأ ENOSPC.
تفترض هذه المقالة الوقائية أن نظام الملفات لا يزال سليمًا وقابلًا للكتابة. والهدف هو مراقبة تخصيص البيانات الوصفية، والمساحة غير المخصصة على الجهاز، وعدد اللقطات، وتغيّر الكائنات في وقت مبكر بما يكفي حتى لا يصل الخادم إلى حالة الاسترداد التي يغطيها دليل إصلاح ENOSPC. لا يمثل تكرار اللقطات وحده المشكلة؛ إذ تحدد مدة الاحتفاظ، وأنماط التحديث، وعمليات الكتابة إلى atime، وملايين كائنات نظام الملفات، وأعمال الصيانة غير المُجدولة جيدًا مدى سرعة نمو الضغط على البيانات الوصفية.
تتبّع البيانات الوصفية والمساحة غير المخصصة معًا
سجّل مخرجات btrfs filesystem usage في يوم عادي وبعد أكثر نوافذ اللقطات أو النسخ الاحتياطي ازدحامًا. وتتبّع البيانات الوصفية المخصصة، والبيانات الوصفية المستخدمة، وتخصيص البيانات، والمساحة غير المخصصة على الجهاز بدلًا من الاعتماد على df وحده.
يوضح شرح لتخزين Btrfs أن المساحة غير المخصصة تموّل الكتل الجديدة عندما يحتاج نظام الملفات إلى سعة إضافية للبيانات الوصفية.
أنشئ تنبيهًا حول حد أدنى احتياطي محافظ يتناسب مع عبء العمل لديك، بدلًا من استخدام نسبة مئوية عامة. فالإشارة المفيدة ليست ببساطة «البيانات الوصفية مستخدمة بنسبة 70%»، بل ما إذا كان لدى Btrfs مساحة غير مخصصة كافية لإنشاء مجموعة كتل البيانات الوصفية المطلوبة التالية.
أطلق تنبيهًا قبل أن يصبح ENOSPC متفاقمًا ذاتيًا
قد يؤدي استنفاد البيانات الوصفية إلى جعل التنظيف أكثر صعوبة، لأن حذف اللقطات والملفات يتطلب أيضًا تحديثات للبيانات الوصفية. اعتبر انخفاض المساحة غير المخصصة إنذارًا مبكرًا، وتصرف بينما لا تزال أوامر الصيانة العادية تملك مساحة كافية للعمل.
يوضح مرجع متخصص حول ENOSPC أن ENOSPC يبدأ عند غياب المساحة الاحتياطية، وليس فقط عندما تُستهلك كل بايتات نظام الملفات الظاهرة.
عند تجاوز الحد الأدنى، أوقف أولًا إنشاء اللقطات الجديدة والمهام الكثيفة بالبيانات الوصفية. ولا تبدأ إعادة موازنة واسعة لمجرد إطلاق التنبيه؛ بل تحقق من فئة المساحة الواقعة تحت الضغط، واحتفظ بمساحة عمل كافية لأصغر إجراء تصحيحي.
قيّد مدة الاحتفاظ باللقطات بدلًا من تكرارها فقط
قد تكون اللقطات كل ساعة عملية عندما تُحذف اللقطات القديمة وفق جدول يمكن التنبؤ به ويكون تغيّر البيانات معتدلًا. أما النمط الخطير فهو خط زمني متزايد باستمرار يحتفظ بأجيال عديدة من الملفات التي تتغير كثيرًا.
يوضح إعداد عملي لـ Snapper أن حدود الاحتفاظ تقيّد سجل اللقطات بدلًا من السماح للأتمتة بتجميع نقاط استعادة غير محدودة.
اختر مدة الاحتفاظ وفق قيمة الاسترداد: نقاط قصيرة الأجل أكثر للتهيئة النشطة، ونقاط طويلة الأجل أقل لصور الأجهزة الافتراضية أو بيانات الحاويات كثيرة التغيّر، ونسخ احتياطية مستقلة لأي بيانات يتجاوز أفق استردادها سعة اللقطات المحلية.
قلّل تغيّر البيانات الوصفية داخل نوافذ اللقطات
ابحث عن أعباء العمل التي تعيد كتابة البيانات الوصفية دون تغيير محتوى الملفات المفيد: تحديثات متكررة لوقت الوصول، وأشجار الحزم أو الحاويات التي تحتوي على أعداد هائلة من الكائنات، وذاكرات التخزين المؤقت الدورية، والتطبيقات التي تلمس أدلة كثيرة أثناء كل عملية فحص.
تشير تحليلات LWN حول لقطات Btrfs إلى أن تحديثات atime تضخم تغيّر اللقطات رغم أن اللقطات العادية تشارك في البداية البيانات والبيانات الوصفية الموجودة.
استخدم إعدادات التحميل والتطبيق المناسبة لعبء العمل، مثل تجنب تغيّر وقت الوصول غير الضروري عندما يكون ذلك آمنًا. ولا تعطل ميزات البيانات الوصفية على مستوى العالم دون فهم متطلبات التطبيقات؛ بل قلّل أولًا عمليات الكتابة التي لا تقدم قيمة استرداد.
راقب نمو البيانات الوصفية باعتباره اتجاهًا
اجمع استخدام البيانات الوصفية وإحصاءات أخطاء Btrfs في لوحة المعلومات نفسها التي تعرض سعة مجموعة التخزين. وقارن النمو يومًا بعد يوم وأسبوعًا بعد أسبوع بعدد اللقطات، وعمليات نشر الحاويات، ومهام النسخ الاحتياطي، والتغييرات الكبيرة في أشجار الملفات.
يعرض جامع Btrfs الحالي في Netdata أن استخدام البيانات الوصفية يمكن مراقبته بدلًا من بقاء ضغط البيانات الوصفية ظاهرًا فقط أثناء جلسة تفاعلية لاستكشاف الأخطاء وإصلاحها.
أطلق التنبيهات بناءً على المسار الزمني وكذلك الحد المطلق. فالخادم الذي يكتسب عدة غيغابايتات من البيانات الوصفية يوميًا بعد تطبيق سياسة نسخ احتياطي جديدة يحتاج إلى التحقيق قبل وقت طويل من وصول المساحة الاحتياطية المتبقية إلى مستوى حرج.
اختبر أعباء العمل كثيرة اللقطات قبل توسيع مدة الاحتفاظ
عند زيادة تكرار اللقطات أو إضافة حاوية جديدة أو أداة نسخ احتياطي أو عبء عمل يعتمد على ملفات صغيرة، قِس نمو البيانات الوصفية خلال دورة تمثيلية واحدة قبل توسيع السياسة لتشمل الخادم بأكمله.
توضح مقالة حديثة حول البنية الداخلية لـ Btrfs أن البيانات الوصفية تتتبع بنية نظام الملفات، بدلًا من كونها تكلفة ثابتة يحددها إجمالي بايتات الملفات وحده.
تنجح سياسة الوقاية عندما يكون نمو البيانات الوصفية قابلًا للتنبؤ، ويجري التنظيف وفق الجدول، وتتعافى المساحة غير المخصصة بعد الصيانة العادية. وتُعد مقالة ZimaSpace ذات الصلة حول استرداد Btrfs من ENOSPC في البيانات الوصفية المسار اللاحق الصحيح عندما تبدأ عمليات الكتابة بالفشل أو يكون نظام الملفات قد استنفد بالفعل مساحة العمل اللازمة للتخصيص.
الدعم والنصائح
المزيد للقراءة

هل يمكن لـ Plex مشاركة وحدة معالجة الرسومات (GPU) مع حاوية Docker أخرى؟
يمكن لـ Plex وحاوية أخرى غالبًا الوصول إلى وحدة معالجة الرسومات نفسها، لكن يجب اختبار دعم برنامج التشغيل، وتعيين الجهاز، وحِمل محرّك الفيديو، والذاكرة،...

كيفية معرفة ما إذا كان خطأ Plex ناتجًا عن العميل أم الخادم
أعِد إنتاج العنصر نفسه على عميل آخر، وقارن مسار الجلسة، ثم اجمع أدلة من الخادم فقط بعد أن يحدد النطاق موضع الفشل الفعلي.

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

