Breaking News
القائمة

شرح وحدات Btrfs الفرعية: لماذا تتفوق على أقسام Linux التقليدية؟

شرح وحدات Btrfs الفرعية: لماذا تتفوق على أقسام Linux التقليدية؟
Advertisement

محتويات المقال

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

يعد هذا الدليل أساسياً لمستخدمي نظام Linux الذين يعتمدون على توزيعات حديثة مثل نظام Fedora أو نظام openSUSE، ويرغبون في تحسين مساحات التخزين وحماية أنظمتهم. من خلال الاستفادة من ميزة Btrfs subvolumes، يمكن للمستخدمين إنشاء لقطات فورية للنظام (Snapshots) ومنع المشكلة الشائعة المتمثلة في امتلاء قسم الجذر (Root) بينما تظل الأقسام الأخرى فارغة تماماً. تتيح هذه المعرفة للمسؤولين بناء بيئات Linux مرنة قادرة على التعافي الذاتي.

مشكلة تقسيم Ext4 التقليدي

في إعدادات نظام Ext4 التقليدية، يجب على المسؤولين تحديد مخصصات التخزين مسبقاً. يتضمن السيناريو الشائع تخصيص مساحة 50GB للدليل الجذري (/) وتخصيص المساحة المتبقية لدليل المستخدم (/home). ورغم أن هذا يبدو منطقياً في البداية، إلا أنه غالباً ما يؤدي إلى اختناقات شديدة في التخزين بمرور الوقت.

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

نهج أكثر ذكاءً مع وحدات Btrfs الفرعية

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

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

الميزةالأقسام التقليدية (Ext4)وحدات Btrfs الفرعية
تخصيص التخزينثابت عند التثبيتديناميكي ومرن
مشاركة المساحةمعزولة لكل قسممشتركة عبر المجمع بأكمله
لقطات النظام (Snapshots)تتطلب أدوات/أقراص خارجيةمدمجة، فورية، وموفرة للمساحة

كيفية التحقق من تكوين Btrfs الخاص بك

إذا كنت تستخدم نظام Fedora أو نظام openSUSE، فمن المحتمل أن نظامك يستخدم بالفعل وحدات Btrfs الفرعية افتراضياً. يمكنك بسهولة تأكيد نوع نظام الملفات الحالي لديك عن طريق تشغيل أمر findmnt -no FSTYPE /. إذا أكدت المخرجات وجود نظام Btrfs، فإن تخطيط الوحدة الفرعية الخاص بك نشط بالفعل.

لفحص تخطيط الوحدة الفرعية الخاص بك مباشرة، استخدم أمر sudo btrfs subvolume list /. من المحتمل أن ترى إدخالات لدليل root ودليل home، وهو ما يمثل تخطيطاً مسطحاً شائعاً حيث يتم فصل النظام الرئيسي والملفات الشخصية منطقياً ولكنهما يشتركان في نفس مساحة القرص الفعلية.

يمكنك التحقق بشكل أكبر من هذه البنية المشتركة عن طريق التحقق من كيفية تركيب الأدلة باستخدام أمر mount | grep btrfs. ستوضح المخرجات أن كلاً من الدليل الجذري ودليل المستخدم ينبعان من نفس القسم الفعلي تماماً، مما يؤكد عدم استخدام أجهزة كتل منفصلة.

اللقطات وكفاءة تقنية Copy-on-Write

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

لإنشاء لقطة، قم أولاً بإنشاء دليل مخصص باستخدام أمر sudo mkdir /snapshots. بعد ذلك، التقط الحالة الحالية للوحدة الفرعية الجذرية الخاصة بك باستخدام أمر sudo btrfs subvolume snapshot / /snapshots/before-update. إذا حدث خطأ ما في تحديث النظام، فلديك الآن خيار تراجع فوري جاهز للاستعادة.

يتم تشغيل هذه الكفاءة المذهلة بواسطة تقنية Copy-on-Write (CoW). عندما تشترك وحدتان فرعيتان في كتلة من البيانات، فإنهما تشيران ببساطة إلى نفس الملفات الأساسية. يكتب نظام Btrfs البيانات الجديدة فقط إلى موقع مختلف عندما يتم تعديل ملف فعلياً، مما يؤدي إلى تحديث المؤشر لتلك الوحدة الفرعية المحددة مع الحفاظ على البيانات الأصلية.

إدارة استخدام القرص والسلبيات

يمكن أن تكون تقارير مساحة القرص مربكة مع نظام Btrfs لأن الأدوات التقليدية مثل أمر df -h لا تحسب بيانات اللقطات المشتركة بدقة. للحصول على عرض دقيق لمساحة التخزين الخاصة بك، يجب على المسؤولين دائماً استخدام أمر sudo btrfs filesystem usage /.

إذا بدا القرص الخاص بك ممتلئاً بشكل غير متوقع، فعادة ما تكون اللقطات القديمة هي السبب. لا يؤدي حذف ملف في نظامك المباشر إلى تحرير مساحة فعلية إذا كانت لقطة أقدم لا تزال تحتفظ بمرجع لذلك الملف. يمكنك تنظيف اللقطات القديمة باستخدام أمر sudo btrfs subvolume delete /snapshots/old-snapshot-name.

على الرغم من مزاياه، فإن نظام Btrfs له مقايضات، خاصة بالنسبة لأعباء العمل كثيفة الكتابة مثل قواعد البيانات أو صور أقراص الأجهزة الظاهرية. يمكن أن تؤدي آلية CoW إلى عقوبة في الأداء وتؤدي إلى تجزئة الملفات بمرور الوقت. للتخفيف من ذلك، يمكنك تعطيل ميزة CoW لأدلة محددة باستخدام أمر chattr +C /var/lib/libvirt/images.

رأيي التقني

يمثل الانتقال من نظام Ext4 إلى نظام Btrfs تطوراً ضرورياً في بنية أنظمة Linux. من خلال اعتماد مجمع تخزين مشترك وقدرات Copy-on-Write المدمجة، تعطي توزيعات مثل نظام Fedora ونظام openSUSE الأولوية لمرونة النظام على التوافق القديم. إن القدرة على أخذ لقطة فورية للنظام قبل إجراء تحديث رئيسي دون استهلاك ضعف مساحة القرص تغير بشكل أساسي كيفية تعاملنا مع صيانة النظام. ومع تزايد متطلبات التخزين بشكل غير متوقع بسبب تقنيات الحاويات وملفات Flatpaks، لم تعد الحدود الصارمة للأقسام التقليدية قابلة للتطبيق في بيئات سطح المكتب أو الخوادم الحديثة.

الأسئلة الشائعة

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

هل يمكنني تعطيل ميزة Copy-on-Write للملفات المحددة التي تتطلب أداءً عالياً؟
نعم، يمكنك إلغاء الاشتراك في سلوك CoW لأدلة محددة، وهو أمر يوصى به بشدة لصور الأجهزة الظاهرية وقواعد البيانات. يمكنك تحقيق ذلك من خلال تطبيق أمر chattr +C على الدليل المستهدف.

هل تتطلب وحدات Btrfs الفرعية صيانة يدوية في الخلفية؟
في حين أن نظام Btrfs يتطلب صيانة عرضية في الخلفية، مثل موازنة التخزين عبر المجمع لمنع التجزئة، فإن معظم توزيعات Linux الحديثة تتعامل مع هذه المهام تلقائياً عبر خدمات النظام المجدولة.

المصادر: itsfoss.com ↗
Advertisement
هل أعجبك هذا المقال؟

عمليات البحث الشائعة