الشرح المبسط
الشرح التقني المتقدم
يعد نظام ملفات التراكب (OverlayFS) من الأنظمة المتقدمة في لينكس (Linux) التي توفر آلية لدمج عدة مسارات (Paths) وعرضها كنظام ملفات واحد مدمج. خلف الكواليس، يعتمد هذا النظام على طبقات، مما يسمح للتطبيقات والحاويات بالعمل على بيئة معزولة دون إجراء تغييرات دائمة على ملفات النظام (System) الأساسية، وهو حجر الأساس الذي تعتمد عليه تقنيات تشغيل الحاويات (Containers) الحديثة.
كيفية عمل النظام والطبقات
يعمل النظام من خلال تحديد طبقتين أساسيتين: الطبقة السفلية (Lowerdir) التي تكون عادة للقراءة فقط، والطبقة العلوية (Upperdir) المخصصة للكتابة والتعديلات. يتم دمج هاتين الطبقتين لإنتاج مسار العرض المدمج (Merged). إذا تم تعديل ملف موجود في الطبقة السفلية، يقوم النظام بنسخه إلى الطبقة العلوية وتعديله هناك، تاركا النسخة الأصلية كما هي في الأسفل.
مجلد العمل (Workdir): هو مجلد وسيط ومهم يستخدمه النظام لتجهيز الملفات مؤقتا قبل نقلها إلى الطبقة العلوية، ويضمن أن تكون عمليات النقل والدمج ذرية (Atomic) وخالية من الأخطاء أثناء التعديل.
دمج المسارات عمليا باستخدام الأمر mount
لتطبيق هذه التقنية، نحتاج أولا إلى إنشاء أربعة مجلدات: المجلد السفلي، المجلد العلوي، مجلد العمل، ومجلد العرض النهائي الذي سيتعامل معه المستخدم:
أمر التنفيذ لدمج هذه المجلدات:
sudo mount -t overlay overlay -o lowerdir=lower,upperdir=upper,workdir=work merged
عند تنفيذ هذا الأمر، سيقوم النظام بتفعيل التراكب بين المجلدات المحددة، وفيما يلي تفاصيل ما يحدث خلف الكواليس:
- عند قراءة ملف: يبحث النظام في مسار
upperdirأولا، فإن لم يجده ينتقل للبحث فيlowerdir. - عند حذف ملف من الطبقة السفلية: لا يتم حذفه فعليا، بل يتم إنشاء ملف خاص يسمى (Whiteout) في الطبقة العلوية لإخفائه عن العرض في المجلد المدمج.
- عند تعديل ملف: تطبق آلية النسخ للأعلى (Copy-up) لنسخ الملف إلى الطبقة العلوية قبل تطبيق التعديل، لضمان سلامة الطبقة السفلية.
ملاحظة ختامية: الصورة الكبرى (نصيحة احترافية)
استخدام نظام ملفات التراكب (OverlayFS) يقلل من استهلاك المساحة التخزينية (Storage) بشكل هائل عند تشغيل عدة حاويات تشترك في نفس ملفات النظام الأساسية. كأفضل ممارسة، تأكد دائما من أن مجلد العمل والطبقة العلوية يقعان في نفس قسم القرص (Partition) لضمان نجاح عملية الدمج وتجنب الأخطاء.