يمكن أن يترك إيقاف حاوية لقطة Btrfs مشغولة عندما لا تزال عملية أخرى أو مساحة أسماء للتركيب أو تركيب ربط أو مهمة إرسال أو وحدة فرعية متداخلة تشير إليها.
يُنهي إيقاف حاوية تطبيق عمليتها الرئيسية، لكنه لا يثبت أن كل تركيب مرتبط أو عملية مساعدة أو واجهة تشغيل أو جلسة صدفة أو مهمة نسخ احتياطي أو مساحة أسماء قد حررت مسار اللقطة. قد ترفض Btrfs الحذف أيضًا عندما يكون الهدف مركبًا أو مشاركًا في عملية إرسال أو مضبوطًا كوحدة فرعية افتراضية أو يحتوي على وحدات فرعية متداخلة. شخّص المرجع الدقيق قبل فرض فك التركيب أو حذف بيانات الحاوية.
تأكيد كائن Btrfs والخطأ بدقة
سجّل مسار اللقطة الكامل، ومعرّف الوحدة الفرعية، ومعرّف الوحدة الأب، وحالة القراءة فقط، ومعرّف UUID، ومعرّف UUID المستلَم، وخطأ الحذف الدقيق. تأكد من أن المسار وحدة فرعية في Btrfs وليس مجلدًا عاديًا داخل وحدة فرعية.
يوضح مرجع الوحدات الفرعية في Btrfs أن اللقطات هي وحدات فرعية، ويوثق الحالات التي تمنع الحذف، بما في ذلك كونها الوحدة الفرعية الافتراضية ووجود عملية إرسال نشطة.
إذا لم يكن الخطأ هو EBUSY، فاتبع سبب الفشل الفعلي. تتطلب مشكلات الأذونات والتركيب للقراءة فقط والوحدة الفرعية الافتراضية والوحدات الفرعية المتداخلة فحوصات مختلفة عن مرجع تركيب نشط.
الفصل بين إيقاف الحاوية وإزالتها
اعرض الحاويات في حالات التشغيل والإيقاف والتعطل والإزالة. سجّل معرّفات الحاويات التي استخدمت اللقطة عبر تركيبات الربط أو وحدات التخزين المسماة أو برنامج تخزين Btrfs.
يوضح مرجع CLI الخاص بـ Docker أن docker stop يرسل إشارة إلى العملية الرئيسية؛ وهذا لا يعني إزالة تعريف الحاوية أو بياناتها الوصفية الخاصة بوقت التشغيل أو كل علاقة التخزين على المضيف.
لا تحذف اللقطة لمجرد أن واجهة التطبيق تقول إن الحزمة متوقفة. تحقق مما إذا كانت هناك سياسة إعادة تشغيل أو أداة مساعدة للفحص الصحي أو صدفة exec أو حاوية جانبية أو عملية لوقت تشغيل الحاويات لا تزال موجودة.
فحص التركيبات في كل مساحة أسماء ذات صلة
قارن جدول التركيبات على المضيف مع مساحات أسماء التركيبات الخاصة بوقت تشغيل الحاوية وأدوات الحاويات المتوقفة ووكلاء النسخ الاحتياطي وأي صدفة طويلة الأمد دخلت إلى الحاوية.
يوضح دليل Linux أن مساحات أسماء التركيبات تعزل قوائم التركيبات، لذلك قد يظهر المسار غير مركب على المضيف بينما يظل مركبًا داخل مساحة أسماء عملية أخرى.
استخدم معلومات التركيبات الخاصة بالعمليات بدلًا من فحص الصدفة الحالية فقط. قد يخفي فك التركيب الكسول من المضيف المشكلة دون تحرير مساحة الأسماء التي لا تزال تملك المرجع.
البحث عن تركيبات الحاوية التي بقيت في مساحة أسماء أخرى
حدّد معرّف العملية لوقت تشغيل الحاوية أو الواجهة الوسيطة أو وكيل المراقبة أو الأداة المساعدة التي قد تحتفظ بمساحة الأسماء. افحص شجرة تركيبها ومسار المصدر المطابق للقطة Btrfs.
توثق Red Hat حالة مؤكدة حيث يتسبب تركيب في مساحة أسماء أخرى في أخطاء انشغال الجهاز أو المورد أثناء التنظيف، وهو ما يطابق الحالة التي يبدو فيها المضيف خاليًا بينما تظل اللقطة مرتبطة.
لا تُنهِ إلا الأداة المساعدة القديمة التي ثبت أنها السبب، أو أعد تشغيل وقت التشغيل ذي الصلة أثناء نافذة صيانة. قد يؤدي إنهاء مالكي مساحات الأسماء غير المرتبطين إلى تعطيل حاويات وتركيبات أخرى.
استخدام فحوصات fuser والمقابض المفتوحة مع مراعاة حدود مساحات الأسماء
افحص الملفات المفتوحة وأدلة العمل الحالية والملفات المعينة والعمليات التي تستخدم التركيب تحت مسار اللقطة. شغّل الأدوات بامتيازات كافية وقارن قائمة عملياتها بعمليات وقت التشغيل.
يحذّر دليل fuser في Debian من أنه قد لا يرى أجهزة الكتل المركبة بواسطة عمليات في مساحة أسماء تركيب مختلفة، لذلك لا تثبت النتيجة الفارغة أن اللقطة غير مستخدمة.
تحقق أيضًا من جلسات الصدف التي يقع دليلها الحالي داخل اللقطة، وخدمات فهرسة الملفات، وبرامج مكافحة الفيروسات، وقارئات النسخ الاحتياطي، وأدوات تتبع سجلات التطبيقات. أغلق مستخدمًا مؤكدًا واحدًا في كل مرة، ثم أعد محاولة فحص الحالة للقراءة فقط.
استبعاد الوحدات الفرعية المركبة والافتراضية والمتداخلة والمرسِلة
اعرض كل تركيب يُحل إلى معرّف الوحدة الفرعية الخاص باللقطة، وتحقق من الوحدة الفرعية الافتراضية لنظام الملفات، واحصر الوحدات الفرعية الابنة المتداخلة، وافحص مهام إرسال Btrfs النشطة.
تنصح ArchWiki بأنه ينبغي عدم حذف وحدة فرعية مركبة، مما يجعل التحقق من هوية التركيب والتخطيط المتداخل ضروريًا قبل الإزالة.
لا يؤدي إيقاف حاويات التطبيقات إلى إيقاف عملية إرسال Btrfs مستقلة أو نسخ متماثل للقطات أو عملية نسخ احتياطي. انتظر حتى يكتمل الإرسال أو أوقفه بطريقة سليمة، ثم أعد فحص حالة اللقطة.
تحرير المرجع المؤكد والحذف بأمان
افصل تركيب اللقطة من مساحة الأسماء التي تملكه، وأزل كائن وقت تشغيل الحاوية القديم أو أعد تشغيله عند الاقتضاء، واخرج من أدلة العمل، وأوقف مهمة الإرسال المؤكدة، واحذف الوحدات الفرعية المتداخلة حسب ترتيب التبعيات.
يوفر مقال ZimaSpace حول إنشاء لقطات لبيانات تطبيقات NAS السياق المرتبط لتحديد المسارات الدائمة وحالات التطبيقات التي تغطيها لقطة الحاوية فعليًا.
تُحل المشكلة عندما لا تعود أي مساحة أسماء أو عملية تشير إلى الوحدة الفرعية، وتُحذف اللقطة الصحيحة غير الافتراضية عبر أمر Btrfs المدعوم، ويكتمل التنظيف في الخلفية، وتُعاد حزمة التطبيق مع بقاء مسارات البيانات النشطة المقصودة سليمة.
الدعم والنصائح
المزيد للقراءة

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

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

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

