حاويات سولاريس

حاويات سولاريس (بما في ذلك مناطق سولاريس ) هي تطبيق لتقنية المحاكاة الافتراضية على مستوى نظام التشغيل لأنظمة x86 و SPARC، وقد تم إصدارها لأول مرة للجمهور في فبراير 2004 في الإصدار التجريبي 51 من سولاريس 10 ، ثم في الإصدار الكامل الأول من سولاريس 10، 2005. وهي موجودة في توزيعات illumos (المعروفة سابقًا باسم OpenSolaris )، مثل OpenIndiana و SmartOS و Tribblix و OmniOS، وفي إصدار Oracle Solaris 11 الرسمي.

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

مصطلحات

تغير اسم هذه التقنية خلال مراحل التطوير والفعاليات العامة التي سبقت إطلاقها. قبل إطلاق Solaris Zones في عام 2005، كان مصطلح Solaris Container يشير إلى أي نوع من أحمال العمل المقيدة بميزات إدارة موارد Solaris. وكانت هذه الأخيرة حزمة برمجية منفصلة في السابق. وبحلول عام 2007، أصبح مصطلح Solaris Containers يشير إلى Solaris Zone مُدمجة مع عناصر تحكم إدارة الموارد.

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

لتبسيط المصطلحات، تخلت أوراكل عن استخدام مصطلح "الحاوية" في سولاريس 11، وعادت إلى استخدام مصطلح "منطقة سولاريس" بغض النظر عن استخدام عناصر التحكم في إدارة الموارد.

وصف

لكل منطقة اسم عقدة خاص بها، وإمكانية الوصول إلى واجهات الشبكة الافتراضية أو المادية، [ 2 ] ومساحة تخزين مخصصة لها؛ ولا يُشترط أن تحتوي المنطقة على أي حد أدنى من الأجهزة المخصصة بخلاف مساحة التخزين اللازمة لتكوينها الفريد. وبالتحديد، لا تتطلب وحدة معالجة مركزية مخصصة، أو ذاكرة، أو واجهة شبكة مادية، أو محول مضيف (HBA) ، على الرغم من إمكانية تخصيص أي من هذه العناصر لمنطقة واحدة. [ 3 ]

لكل منطقة حدود أمنية تحيط بها، تمنع أي عملية مرتبطة بمنطقة ما من التفاعل مع العمليات في مناطق أخرى أو مراقبتها. ويمكن تهيئة كل منطقة بقائمة مستخدمين منفصلة خاصة بها. ويتولى النظام إدارة تعارضات معرفات المستخدمين تلقائيًا؛ أي أنه يمكن تعريف معرف مستخدم واحد (10000) لمنطقتين في النظام، وسيتم ربط كل معرف بمعرف عالمي فريد خاص به. [ 4 ]

يمكن أن تكون المنطقة في إحدى الحالات التالية:

  • تم التكوين: تم إكمال التكوين وحفظه.
  • غير مكتمل: حالة انتقالية أثناء عملية التثبيت أو إلغاء التثبيت.
  • تم التثبيت: تم تثبيت الحزم بنجاح.
  • جاهز: تم إنشاء المنصة الافتراضية.
  • جارٍ التشغيل: تم تشغيل المنطقة بنجاح وهي تعمل الآن.
  • إيقاف التشغيل: المنطقة في طور الإيقاف - هذه حالة مؤقتة، تؤدي إلى "إيقاف التشغيل". 
  • معطل: أكملت المنطقة عملية الإغلاق وهي معطلة - هذه حالة مؤقتة، مما يؤدي إلى "مثبت". 

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

الموارد المطلوبة

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

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

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

مناطق تحمل علامات تجارية

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

  • العلامات التجارية التي لا تقوم بترجمة استدعاءات النظام:
    • "الأصلي" هو الإعداد الافتراضي لنظام التشغيل Solaris 10
    • يُعدّ 'ipkg' هو الإعداد الافتراضي لأنظمة OpenSolaris و OpenIndiana و OmniOS
    • "joyent" هو الإعداد الافتراضي لنظام التشغيل SmartOS
    • يُستخدم مصطلح "cluster" للإشارة إلى مناطق مجموعة Solaris
    • تُستخدم كلمة "labeled" للمناطق في بيئة Solaris Trusted Extensions
  • العلامات التجارية التي تقوم بترجمة استدعاءات النظام:
    • يوفر 'solaris8' بيئة Solaris 8 على نظام Solaris 10، بما في ذلك الترجمة من استدعاءات نظام Solaris 8 إلى استدعاءات نظام Solaris 10 (متوفر فقط على أنظمة SPARC ).
    • يوفر 'solaris9' بيئة Solaris 9 على نظام Solaris 10، بما في ذلك الترجمة من استدعاءات نظام Solaris 9 إلى استدعاءات نظام Solaris 10 (متوفر فقط على أنظمة SPARC).
    • يوفر برنامج 'lx' بيئة Red Hat Enterprise Linux 3 على نظام Solaris 10، بما في ذلك ترجمة أوامر النظام من RHEL 3 إلى Solaris 10 (متوفرة فقط على أنظمة x86). على نظام SmartOS، يمكن لمناطق lx توفير بيئة تشغيل لمعظم توزيعات Linux الحديثة، بما في ذلك Ubuntu وDebian وCentOS وAlpine وغيرها. لم يتم دمج دعم LX في إصدار illumos الرئيسي.
    • توفر علامة 's10brand' بيئة Solaris 10 على نظام OpenSolaris أو Oracle Solaris 11، بما في ذلك الترجمة من استدعاءات نظام Solaris 10 إلى استدعاءات نظام OpenSolaris/Oracle Solaris 11
    • يُوفّر برنامج 'solaris-kz' نسخةً منفصلةً من نظام Solaris 11.2 أو أحدث، بنواةٍ خاصةٍ بها وحزمٍ مستقلة، على نظام Oracle Solaris 11.2 أو أحدث. [ 6 ] أُتيحت هذه الميزة للجمهور لأول مرة في الإصدار التجريبي من Solaris 11.2 (تنزيل عام). [ 7 ]

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

بالنسبة للعلامة التجارية 'lx'، يلزم وجود مكتبات من Red Hat 3 أو توزيعة مكافئة مثل CentOS لإكمال البيئة المحاكاة.

الوثائق

يوفر نظام التشغيل Solaris صفحات دليل لـ Solaris Containers بشكل افتراضي؛ ويمكن العثور على وثائق أكثر تفصيلاً في موارد تقنية مختلفة على الإنترنت.

نُشرت أول وثيقة مرجعية عملية حول Solaris Zones في فبراير 2004 بقلم دينيس كلارك في شركة بلاستويف، حيث قدمت أساسيات البدء. وقد توسع بريندان جريج في هذه الوثيقة بشكل كبير في يوليو 2005. [ 8 ] ووثّق دينيس كلارك في بلاستويف حاويات Solaris 8 وSolaris 9 بالتفصيل مرة أخرى في أبريل 2008. كانت وثيقة بلاستويف الخاصة بحاويات Solaris 8 وSolaris 9 في مراحل مبكرة جدًا من دورة إصدار تقنية حاويات Solaris، وقد أسفرت الإجراءات والتنفيذ في بلاستويف عن متابعة من قسم التسويق في شركة صن مايكروسيستمز. يقدم كتاب Oracle Solaris 10 System Virtualization Essentials، من تأليف جيف فيكتور وآخرين، تفاصيل الميزات وأفضل الممارسات. يمكن الاطلاع على وثائق أكثر شمولاً على موقع وثائق أوراكل. [ 9 ]

مشاكل التنفيذ

اعتبارًا من Solaris 10 10/08، يتم دعم المناطق ذات العلامات التجارية على بنية sun4us (خوادم Fujitsu PRIMEPOWER) من خلال الحزمتين FJSVs8brandr و FJSVs9brandr. [ 10 ]

انظر أيضاً

مراجع