لماذا توفر طبقات صورة الحاوية مساحة على خادم المنزل لكنها تزيد من عمليات القراءة؟

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

طبقات صورة الحاوية توفر مساحة في خادم المنزل من خلال مشاركة الملفات غير المتغيرة، لكن كل قراءة قد تحتاج إلى نظام ملفات التراكب لتحديد الطبقة التي تملك المسار المطلوب.

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

الطبقات المشتركة تزيل البايتات المكررة

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

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

القراءة يجب أن تحل عرض نظام الملفات المدمج

يقدم OverlayFS أدلة للقراءة فقط أدنى وواحدة قابلة للكتابة كتركيب واحد. عندما يفتح التطبيق مساراً، يحدد نظام الملفات ما إذا كان الإدخال المرئي يأتي من الطبقة العليا، أو من إحدى الطبقات السفلى، أو تم إخفاؤه بواسطة whiteout. شرح OverlayFS يجعل نموذج البحث المدمج هذا ملموساً.

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

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

الملفات الصغيرة تكشف بحث الطبقات أكثر من التدفقات الكبيرة

بدء وقت التشغيل، استيراد العديد من حزم اللغات، أو فحص شجرة التبعيات يمكن أن يفتح آلاف المسارات الصغيرة. قد تكون بايتات الحمولة صغيرة، لكن كل ملف يتطلب عمل اسم المسار، والدليل، والأذونات، وinode. شرح هندسة الحاويات يوضح كيف يجلس تركيب التراكب بجانب الأسماء وضوابط الموارد.

يمكن للملفات الكبيرة المتسلسلة إخفاء نفس تكلفة الإعداد لأن معظم الوقت يُقضى في نقل الحمولة بعد حل المسار. لذلك قد يظهر خادم المنزل سحب صور ونسخ وسائط سريعة بينما تبدأ حاوية تحتوي على شجرة حزم كبيرة ببطء من التخزين البارد.

النسخ للأعلى يحول الكتابة المستقبلية إلى قراءة إضافية

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

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

عمق الطبقة هو جزء واحد فقط من زمن استجابة القراءة في خادم المنزل

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

يجب أن تتطابق هندسة الحاوية أيضاً مع عبء العمل المخزن. تحليل عبء عمل الأقراص الافتراضية الطبقية يصف تأثير سلسلة مشابه: البيانات الأساسية المشتركة توفر السعة، بينما قد تعبر القراءات التراكبات وتخصص الكتابات كتل جديدة. تستخدم الحاويات صيغ مختلفة، لكن المقايضة التخزينية متشابهة هيكلياً.

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

هل كل طبقة إضافية في صورة الحاوية تجعل القراءات أبطأ؟

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

هل حذف ملف من طبقة لاحقة يحرر مساحة صورة الأساس؟

لا. يمكن للطبقة اللاحقة إخفاء الملف بواسطة whiteout، لكن الطبقات السفلية غير القابلة للتغيير لا تزال تحتوي عليه. يتطلب استعادة تلك البايتات إعادة بناء أو إزالة طبقات الصور غير المشار إليها.

هل يجب أن تبقى قواعد بيانات التطبيقات في الطبقة القابلة للكتابة للحاوية؟

عادة لا. وحدة تخزين مخصصة تتجنب سلوك النسخ للأعلى، تفصل الاستمرارية عن دورة حياة الصورة، وتجعل النسخ الاحتياطي، والهجرة، وسياسة التخزين أسهل في التحكم.

مركز التكنولوجيا والذكاء الاصطناعي

المزيد للقراءة

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.