يصل LXD 5.20 مع ترخيص AGPLv3 وتحسينات والمزيد

شعار LXD

شعار LXD

النسخة الجديدة من تم إصدار LXD 5.20 الآن ويقدم ميزات وميزات جديدة مثل تغيير الترخيص من Apache 2.0 إلى AGPLv3، وإصلاح ترتيب جهاز التمهيد، بالإضافة إلى إصلاحات الأخطاء والمزيد.

بالنسبة لأولئك الذين لا يعرفون عن LXD، يجب أن يعرفوا أن هذه أداة تسهل الإدارة المركزية للحاويات والأجهزة الافتراضية في كتلة الخادم. إنها تأتي كعملية خلفية تقبل الطلبات عبر الشبكة باستخدام REST API. بالإضافة إلى ذلك، يوفر LXD الدعم لمختلف واجهات التخزين الخلفية، بما في ذلك شجرة الدليل، وZFS، وBtrfs، وLVM.

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

ما الجديد في LXD 5.20؟

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

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

ونتيجة لهذا التغيير، سيتم تسليم مشروع LXD بشروط مختلطة: ستكون بعض الأكواد البرمجية ضمن AGPLv3، بينما ستظل أكواد الطرف الثالث التي لا تملك Canonical أي حقوق ملكية عليها تحت Apache 2.0. الأهم من ذلك، أن Canonical ليس لديها القدرة على تغيير الترخيص لجميع أكواد LXD، مما يؤدي إلى انقسام في شروط ترخيص المشروع.

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

يذكر الكنسي أن:

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

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

من جانب التغييرات التي تبرز هذا الإصدار الجديد من LXD 5.20 هو حل لترتيب جهاز تمهيد CSMكما تمت إضافة دعم إلى البرامج الثابتة LXD snap package EDK2 لاحترام تكوين القرص من الأجهزة أفضلية التشغيل عند استخدام الوضع Security.csm. سابقا، هذا تسبب في حدوث مشكلة عند استيراد الأجهزة الافتراضية المستندة إلى BIOS والتي لم يتم التمهيد باستخدام UEFI لأن البرنامج الثابت VM حاول تشغيل أجهزة UEFI أولاً، وهذا يعني أنه تمت محاولة تمهيد شبكة PXE قبل القرص الجذر المستند إلى BIOS، مما تسبب في فترات طويلة من تأخير التمهيد.

من التغييرات البارزة الأخرى وضع تصحيح أخطاء تمهيد VM الجديد، وأصبح من الممكن الآن تشغيل جهاز VM باستخدام البرنامج الثابت EDK2 UEFI  (boot.debug_edk2=true). يتم حفظ سجل التصحيح في الملف $LXD_DIR/logs//edk2.log.

إلى جانب ذلك ، تمت إزالة دعم Shiftfs لذا الآن، لتعيين معرفات المستخدم، يجب عليك استخدام idmapped mount، والذي أصبح مدعومًا الآن من قبل ZFS وCephfs (بالإضافة إلى الدعم الطويل الأمد لـ ext4، وxfs، وbtrfs).

علاوة على ذلك، أصبح من الممكن الآن توصيل أجهزة القرص أثناء التشغيل وفصلها أثناء التشغيل، حيث تم نقل البيئة المضيفة من قاعدة تعليمات Incus fork.

من التغييرات الأخرى التي تبرز:

  • تم تقسيم رمز التفويض إلى وحدات لتوفير دعم OpenFGA بالإضافة إلى التفويض باستخدام شهادات TLS وRBAC.
  • يتطلب تجميع LXD الآن Go 1.20 على الأقل.
  • تمت إزالة الدعم للبرامج الثابتة UEFI بسعة 2 ميجابايت (يجب استخدام البرامج الثابتة بسعة 4 ميجابايت).
  • تمت إعادة تسمية معرف الجهاز org.linuxcontainers.lxd إلى com.canonical.lxd (لا يزال المعرف القديم مدعومًا للتوافق مع الإصدارات السابقة).
  • تم نقل دعم إنشاء مخازن تعتمد على تقنية NVME من قاعدة بيانات Incus fork.

أخيرا إذا كنت مهتمًا بمعرفة المزيد عنها، يمكنك التحقق من التفاصيل في الرابط التالي.