إصدار نظام إدارة الحاويات LXD 5.0

نشرت شركة Canonical إصدار مدير الحاويات LXD 5.0 ​​ونظام الملفات الافتراضي LXCFS 5.0. كود LXD مكتوب بلغة Go ويتم توزيعه بموجب ترخيص Apache 2.0. تم تصنيف الفرع 5.0 على أنه إصدار دعم طويل المدى - سيتم إنشاء التحديثات حتى يونيو 2027.

كوقت تشغيل لإطلاق الحاويات، يتم استخدام مجموعة أدوات LXC، والتي تتضمن مكتبة liblxc، ومجموعة من الأدوات المساعدة (lxc-create، وlxc-start، وlxc-stop، وlxc-ls، وما إلى ذلك)، وقوالب لبناء الحاويات و مجموعة من الروابط لمختلف لغات البرمجة. يتم إجراء العزل باستخدام آليات Linux kernel القياسية. لعزل العمليات ومكدس شبكة IPC وuts ومعرفات المستخدم ونقاط التثبيت، يتم استخدام آلية مساحات الأسماء. يتم استخدام مجموعات cgroup للحد من الموارد. لتقليل الامتيازات والحد من الوصول، يتم استخدام ميزات kernel مثل ملفات تعريف Apparmor وSELinux وسياسات Seccomp وChroots (pivot_root) والإمكانات.

بالإضافة إلى LXC، يستخدم LXD أيضًا مكونات من مشروعي CRIU وQEMU. إذا كانت LXC عبارة عن مجموعة أدوات منخفضة المستوى للمعالجة على مستوى الحاويات الفردية، فإن LXD توفر أدوات للإدارة المركزية للحاويات المنتشرة في مجموعة من عدة خوادم. يتم تنفيذ LXD كعملية خلفية تقبل الطلبات عبر الشبكة عبر REST API وتدعم واجهات التخزين الخلفية المتنوعة (شجرة الدليل، ZFS، Btrfs، LVM)، واللقطات مع شريحة الحالة، والترحيل المباشر للحاويات قيد التشغيل من جهاز إلى آخر، وأدوات لتخزين حاويات الصور. يتم استخدام LXCFS لمحاكاة pseudo-FS /proc و/sys في الحاويات، والتمثيل الافتراضي cgroupfs لإعطاء الحاويات مظهر نظام مستقل عادي.

التحسينات الرئيسية:

  • إمكانية التوصيل السريع وفصل محركات الأقراص وأجهزة USB. في الجهاز الظاهري، يتم اكتشاف قرص جديد من خلال ظهور جهاز جديد على ناقل SCSI، ويتم اكتشاف جهاز USB من خلال إنشاء حدث التوصيل السريع عبر USB.
  • من الممكن تشغيل LXD حتى عندما يكون من المستحيل إنشاء اتصال بالشبكة، على سبيل المثال، بسبب عدم وجود جهاز الشبكة اللازم. بدلاً من عرض خطأ عند بدء التشغيل، يقوم LXD الآن بتشغيل أكبر عدد ممكن من البيئات في ظل الظروف الحالية، ويتم تشغيل البيئات المتبقية بعد إنشاء اتصال الشبكة.
  • تمت إضافة دور جديد لعضو المجموعة - هيكل ovn، المخصص للمجموعات التي تستخدم OVN (الشبكة الافتراضية المفتوحة) للاتصالات عبر الشبكة (من خلال تعيين دور هيكل ovn، يمكنك تحديد خوادم لأداء وظائف أجهزة توجيه OVN).
  • تم اقتراح الوضع الأمثل لتحديث محتويات أقسام التخزين. في الإصدارات السابقة، كان التحديث يتألف أولاً من نسخ مثيل الحاوية أو القسم، على سبيل المثال، باستخدام وظيفة الإرسال/التلقي في zfs أو btrfs، وبعد ذلك تتم مزامنة النسخة التي تم إنشاؤها عن طريق تشغيل برنامج rsync. لتحسين كفاءة تحديث الأجهزة الافتراضية، يستخدم الإصدار الجديد منطق الترحيل المتقدم، حيث إذا كانت خوادم المصدر والوجهة تستخدم نفس مجمع التخزين، فسيتم استخدام اللقطات وعمليات الإرسال/التلقي تلقائيًا بدلاً من rsync.
  • تمت إعادة صياغة منطق تحديد البيئات في cloud-init: بدلاً من أسماء البيئة، يتم الآن استخدام UUID كمعرف المثيل.
  • تمت إضافة دعم لربط استدعاء النظام sched_setscheduler، مما يسمح للحاويات غير المميزة بتغيير أولويات العملية.
  • تم تنفيذ خيار lvm.thinpool_metadata_size للتحكم في حجم البيانات التعريفية في Thinpool.
  • تمت إعادة تصميم تنسيق الملف الذي يحتوي على معلومات الشبكة لـ lxc. تمت إضافة دعم للبيانات المتعلقة بربط الواجهة وجسور الشبكة وشبكة VLAN وشبكة OVN.
  • تمت زيادة متطلبات الحد الأدنى من إصدارات المكونات: Linux kernel 5.4 وGo 1.18 وLXC 4.0.x وQEMU 6.0.
  • أضاف LXCFS 5 دعمًا للتسلسل الهرمي الموحد لمجموعة التحكم (cgroup2)، وطبق /proc/slabinfo و/sys/devices/system/cpu، واستخدم مجموعة أدوات meson للتجميع.

المصدر: opennet.ru

إضافة تعليق