الطايير
{ | مشرف قسم أنظمة التشغيل | }







السمعة:
جزء آخر و خاصية ومفهوم واجب علينا التطرق إليه قبل البدأ في إختيار و تثبيت اللينكس كنظام وبدأ العمل الفعلي ، وهي خاصية الـ Virtualization فقوة لينكس العظيمة تكمن في تنوعه. حيث يتمثل أحد جوانب هذا التنوع في القدرة على استخدام لينكس بمختلف الوسائل للاستضافة مع أنظمة تشغيل أخرى ، أو كتطبيقات فردية ، في بيئة وهمية معزولة وآمنة تمامًا
في بادئ الأمر يجب الإشارة الى أن الـ virtualization أو الإفتراضية هي خاصية في الأجهزة ، فقد لا تتوفر الخاصية في الجهاز او قد لا يدعمها ...
وهنا يأتي السؤال المنطقي : ما هي خاصية الإفتراضية Virtualization وعلى أي أساس وكيف تعمل ؟
VIRTUALIZATION
الإفتراضية Virtualization هي تقنية تسمح لمنصة برمجية (Software platform) تُسمى مدير التشغيل (Hypervisor) بتشغيل عمليات تحتوي نظام حاسوب مُحاكى بالكامل بعبارة أخرى تقسيم موارد جهاز كمبيوتر واحد إلى أجهزة كمبيوتر افتراضية متعددة. يُعد الـ Hypervisor مسؤولاً عن إدارة موارد الجهاز المادية (الـ Hardware) التي يمكن أن تستخدمها آلات افتراضية فردية. تسمى هذه الآلات الافتراضية بـ "الضيوف" (Guests) لدى الـ Hypervisor . ويمتلك الجهاز الافتراضي الـ Virtual-Machine العديد من جوانب الحاسوب المادي الحقيقي المُحاكاة في الـ Hypervisor، مثل نظام التشغيل (BIOS) ووحدات أقراص التخزين. وغالبًا ما يستخدم الجهاز الافتراضي الـ VM صورا للأقراص الصلبة التي يتم تخزينها كملفات فردية على الجهاز او النظام الأساسي ، وسيكون هذا الجهاز الإفتراضي الـ VM لديه القدرة على الوصول إلى ذاكرة الوصول العشوائي (RAM) ووحدة المعالجة المركزية (CPU) للآلة المضيفة (Host ويقصد به النظام أو الجهاز الأساسي الذي يعمل عليه الـ Hypervisor) ويصل هذا الجهاز الإفتراضي لتلك الموارد من خلال برنامج الـ Hypervisor .و يقوم مدير التشغيل أو الـ Hypervisor بتقسيم تلك الموارد الخاصة بالنظام المضيف الـ Host بين الضيوف الـ Guests الذي هم الآلات الإفتراضية الـ Virtual-Machines ، مما يسمح بتشغيل أنظمة تشغيل متعددة على نظام مضيف واحد بقدر معين من الموارد التي يتم تقسيمها عن طريق الـ Hypervisor .- الإفتراضية: تقنية تقسيم موارد جهاز كمبيوتر واحد إلى أجهزة كمبيوتر افتراضية متعددة.
ويمكننا تلخيص المفهوم في أربع نقط رئيسية كالتالي :
- مدير التشغيل (Hypervisor): برنامج يدير موارد الجهاز المُعدَّات ويخصصها للآلات الافتراضية.
- الضيف (Guest): جهاز كمبيوتر افتراضي يعمل على نظام التشغيل الخاص به وستخدم جزء من موارد الهجاز الأساسي .
- المضيف (Host): النظام الأساسي الذي يعمل عليه الـ Hypervisor ويتم تقسيم موارده. ( في حالة إذا كان الـ Hypervisor من Type-2 )
مميزات الإفتراضية: تشغيل أنظمة تشغيل متعددة على جهاز واحد، تحسين كفاءة استخدام الموارد، تسهيل إدارة البنية التحتية.
هناك نوعان من الـ Hypervisor :الـ Hypervisor من النوع 1:
- Type-1 Hypervisor
- Type-2 Hypervisor
يُعدّ كل من الـ Hypervisor من النوع 1 والنوع 2 تقنيات أساسية لتشغيل الآلات الافتراضية (VMs) على جهاز كمبيوتر واحد. بينما يتشاركان نفس الهدف النهائي، تختلف طريقة عملهما وميزاتهما بشكل كبير.
الـ Hypervisor من النوع 2:
- يُعرف أيضًا باسم Bare-Metal Hypervisor.
- يتم تثبيته مباشرة على الأجهزة دون الحاجة لنظام تشغيل ، مما يجعله يتحكم بشكل مباشر في الموارد المادية مثل وحدة المعالجة المركزية (CPU) والذاكرة والتخزين.
- يُوفر أداءً أفضل وكفاءة أكبر لأنّه لا يحتاج إلى تشغيل نظام تشغيل أساسي يستخدم موارد الجهاز .
- يُستخدم عادةً في بيئات الإنتاج عالية الأداء مثل مراكز البيانات وخوادم المؤسسات التي تحتاج الى تشغيل العديد من الأنظمة لتلبية وظائف مختلفة .
- أمثلة على الـ Hypervisor من النوع 1: VMware vSphere/ESXi، و Microsoft Hyper-V، و Xen و KVM .
- يُعرف أيضًا باسم Hosted Hypervisor.
- يتم تثبيته على نظام تشغيل موجود مثل Windows أو macOS أو Linux .
- يعمل كطبقة برمجية داخل نظام التشغيل المضيف، مما يسمح بتشغيل آلات افتراضية متعددة.
- سهل الاستخدام و سهل التثبيت، مما يجعله خيارًا شائعًا للمستخدمين المنزليين واختبار البيئات.
- أداء أقل من الـ Hypervisor من النوع 1 بسبب طبقة نظام التشغيل الإضافية التي تستهلك بعض من موارد الجهاز وفي حالة حدوث عطل أو خلل في النظام المضيف يؤثر على النظام الإفتراضي .
- أمثلة على الـ Hypervisor من النوع 2: VMware Workstation Player، و Oracle VM VirtualBox و Microsoft Virtual PC .
يمكننا تلخيص ما سبق في صورة مقارنة للتوضيح
الميزة | الـ Hypervisor من النوع 1 | الـ Hypervisor من النوع 2 |
---|---|---|
يطلق عليه | Bare-Metal Hypervisor | Hosted Hypervisor |
التثبيت | يُثبت مباشرة على الأجهزة | يُثبت على نظام تشغيل موجود |
التحكم في الموارد | يتحكم بشكل مباشر في الموارد | يتحكم في الموارد من خلال نظام التشغيل المضيف |
الأداء | أفضل | أقل |
الاستخدام | بيئات الإنتاج عالية الأداء | الاستخدام الفردي على مستوى المستخدم العادي واختبار البيئات |
الأمثلة | VMware vSphere/ESXi، و Microsoft Hyper-V، و Xen و KVM | VMware Workstation Player، و Oracle VM VirtualBox و Microsoft Virtual PC |
وهنا بعض من أشهر برامج التشغيل (Hypervisor) المستخدمة مع لينكس:
- Xen: برنامج تشغيل مفتوح المصدر من النوع الأول (Type-1) يعمل مباشرة على أجهزة الحاسوب دون الحاجة إلى نظام تشغيل أساسي. وكما ذكرنا يُسمى هذا النوع من برامج التشغيل بـ (Bare-Metal) حيث يمكن للكمبيوتر أن يقلع مباشرة إلى برنامج التشغيل.
- KVM (Kernel-based Virtual Machine): عبارة عن وحدة نمطية تعمل ضمن نواة لينكس خاصة بالافتراضية. فيعتبر KVM برنامج تشغيل من النوع الأول والنوع الثاني في نفس الوقت. فهو يحتاج إلى نظام تشغيل لينكس عام للعمل ، إلا أنه قادر على أداء وظيفة برنامج التشغيل بشكل مثالي من خلال التكامل مع نظام لينكس قيد التشغيل (فيكون نواه نظام الينكس بالإضافة للـ KVM كبرنامج Hypervisor بحد ذاته). تستخدم الآلات الافتراضية التي يتم نشرها (Deployed) باستخدام KVM برنامج تشغيل libvirt والأدوات المساعدة المرتبطة به لإنشائها وإدارتها.
- VirtualBox: تطبيق سطح مكتب شهير يسهل إنشاء وإدارة الآلات الافتراضية. برنامج Oracle VM VirtualBox متعدد المنصات ويعمل على أنظمة لينكس و macOS و Microsoft Windows. وبما أن VirtualBox يتطلب نظام تشغيل أساسي للتشغيل، فهو يعتبر برنامج تشغيل من النوع الثاني (Type-2).
من ضمن مميزات خاصية الإفتراضية Virtualization هي نقل الآلات الافتراضية بين برامج التشغيل (Hypervisor)
حيث تدعم بعض برامج التشغيل إمكانية نقل الآلة الافتراضية بشكل ديناميكي. وتسمى عملية نقل الآلة الافتراضية من تثبيت برنامج تشغيل إلى آخر بالترحيل (Migration)، وتختلف التقنيات المستخدمة بين تطبيقات برامج التشغيل المختلفة.
فهناك نوعين من الترحيل:
- ترحيل في وضع الإيقاف (Offline Migration): يمكن إجراء هذا النوع فقط عندما يتم إيقاف تشغيل نظام الضيف (الآلة الافتراضية) بالكامل.
- ترحيل حي (Live Migration): يُعد هذا النوع من الترحيل أكثر تقدمًا ويسمح بنقل الآلة الافتراضية حتى وهي قيد التشغيل.
وتعتبر تقنيات الترحيل مفيدة في الحالات التالية:
- صيانة أجهزة التشغيل: يمكن استخدام الترحيل لنقل الآلات الافتراضية مؤقتًا إلى برنامج تشغيل آخر أثناء إجراء صيانة على برنامج التشغيل الأصلي.
- تحسين تحمل النظام: في حال تعطل برنامج تشغيل ما، يمكن استخدام الترحيل الحي لنقل الآلة الافتراضية إلى برنامج تشغيل آخر يعمل بشكل سليم، مما يقلل من وقت التعطل ويضمن استمرارية عمل التطبيقات.
هناك أنواع من الآلات الافتراضية Virtual Machines
هناك ثلاثة أنواع رئيسية للآلات الافتراضية: الآلة الافتراضية كاملة الافتراضية، والآلة الافتراضية شبه المفترضة، والآلة الافتراضية الهجينة.
1. الآلة الافتراضية كاملة الافتراضية (Fully Virtualized Guest)
يجب أن تكون جميع التعليمات التي يتوقع أن يقوم نظام التشغيل الضيف أو الـ Guest Machine بتنفيذها قابلة للتشغيل داخل هذا التثبيت من نظام التشغيل الافتراضي كامل . والسبب في ذلك هو أنه لا يتم تثبيت أي برامج تشغيل إضافية (Software Drivers) داخل الضيف لترجمة التعليمات إلى Hardware محاكى أو Hardware حقيقي. تعتبر الآلة الافتراضية كاملة الافتراضية هي تلك التي يجهل فيها الضيف (أو HardwareVM) أنه يعمل كنسخة من آلة افتراضية. بعبارة أخرى أنه لا يتم توفير لهذا الـ machine الوهمي اي درايفرات مخصصة أو تعديلات على التعليمات الأساسية للنظام فيتعامل الـ machine مع الجهاز بالدرايفرات الأصلية والشكل الأصلي وكأنه النظام الوحيد على الجهاز
لكي يحدث هذا النوع من الافتراضية على أجهزة تعتمد معالجات x86، يجب تمكين الـ (CPU-Extensions) امتدادات وحدة المعالجة المركزية Intel VT-x أو AMD-V على النظام الذي يحتوي على برنامج التشغيل (Hypervisor). ويمكن القيام بذلك من خلال اعدادات الـ BIOS أو UEFI.
2. الآلة الافتراضية شبه المفترضة (Paravirtualized Guest)
الآلة الافتراضية شبه المفترضة (أو PVM) هي تلك التي يدرك فيها نظام التشغيل الضيف أنه يعمل كنسخة من آلة افتراضية. تستخدم هذه الأنواع من الضيوف نواة معدلة Modified kernel وبرامج تشغيل خاصة (المعروفة ببرامج تشغيل الضيف) - Special Drivers knows as guest dirvers - تساعد نظام التشغيل الضيف على الاستفادة من برامج وأجهزة برنامج التشغيل (Hypervisor). يكون أداء الآلة الافتراضية شبه المفترضة في الغالب أفضل من أداء الآلة الافتراضية كاملة الافتراضية بسبب الميزة التي توفرها برامج التشغيل هذه الـ Modified special drivers حيث يتم تعديلها لخدمة هذة الآلة الإفتراضية الـ Guest Virtual-Machine .
3. الآلة الافتراضية الهجينة (Hybrid Guest)
يمكن الجمع بين الافتراض الجزئي والافتراض الكامل للسماح لأنظمة التشغيل غير المعدلة بالحصول على أداء إدخال وإخراج قريب من الأداء الأصلي باستخدام برامج تشغيل افتراضية جزئية على أنظمة تشغيل افتراضية كاملة. تحتوي برامج التشغيل الافتراضية الجزئية على برامج تشغيل لأجهزة التخزين والشبكة مع تحسين أداء إدخال وإخراج القرص والشبكة.
توفر منصات الافتراضية في كثير من الأحيان حزمًا من برامج تشغيل الضيوف Guest Drivers لأنظمة التشغيل الافتراضية. فمثلاً يستخدم KVM برامج تشغيل من مشروع Virtio، بينما يستخدم Oracle VM VirtualBox ملحقات الضيف أو Guest extensions المتوفرة خلال ملف صورة قرص مضغوط قابل للتنزيل بصيغة ISO.
تتكون الآلة الافتراضية الـ Virtual Machine في الغالب من مجموعة ملفات، كملف XML الذي يحدد شكل الآلة حيث يحدد هذا الملف إعدادات الآلة الافتراضية بما في ذلك اعدادات الـ Hardware ، واعدادات واتصال الشبكة ، و خصائص العرض ، وهكذا ويكون هذا الملف مصحوباً بملف أخر هو ملف صورة القرص الصلب أو الـ Hard disk image ويحتوي هذا الملف على نظام التشغيل الذي تم تثبيته و الدريفرات الخاصة بالنظام . فيمكننا تشبيه مجموعة ملفات الآلة الافتراضية بحاوية تحتوي على كل ما تحتاجه الآلة الافتراضية للتشغيل، بما في ذلك إعدادات الأجهزة ونظام التشغيل والبيانات .
مرفق لشكل ملف XML لاعدادات شبكة احد الأجهزة الإفتراضية باستخدام KVM كـ Hypervisor![]()
وبالنسبة الى ملف صورة القرص الصلب hard disk image : نأخذ مثال على تخزين أقراص الآلات الافتراضية فلنلق نظرة على تخزين القرص الصلب لآلة افتراضية تعمل بنظام التشغيل RHEL8 على KVM كـ Hypervisor حيث يقع ملف صورة القرص الصلب لهذه الآلة الافتراضية في مسار : /var/lib/libvirt/images/rhel8.
![]()
باستخدام الأمر ls -lh نرى في المرفق السابق أن حجم صورة القرص الحالي يستهلك فقط 5.5 جيجابايت من مساحة التخزين على موزع التشغيل (Hypervisor).
![]()
على الرغم من أن صورة القرص تستهلك 5.5 جيجابايت فقط، يرى نظام التشغيل داخل الآلة الافتراضية قرصًا بحجم 23.3 جيجابايت، كما هو موضح في مالرفق السابق في إخراج الأمر lsblk داخل الآلة الافتراضية.
يعود سبب هذا الاختلاف إلى نوع تخصيص القرص المستخدم للآلة الافتراضية. فهناك نوعان رئيسيان من صور الأقراص التي يمكن للآلة الافتراضية استخدامها:
- COW إختصاراً لـ Copy-on-Write (نسخ عند الكتابة): هي طريقة يتم فيها إنشاء ملف قرص بحد أعلى محدد مسبقًا لحجمه. يزداد حجم صورة القرص فقط عند كتابة بيانات جديدة إلى القرص. على غرار المثال السابق، يرى نظام التشغيل الضيف حد القرص المحدد مسبقًا وهو 23.3 جيجابايت، ولكنه لم يكتب سوى 5.5 جيجابايت من البيانات إلى ملف القرص. صيغة ملف صورة القرص المستخدمة في هذا المثال هي qcow2 وهي صيغة ملف QEMU COW.
- RAW (الأقراص الخام): هو ملف يتم تخصيص كل مساحة تخزينه مسبقًا. على سبيل المثال، يستهلك ملف صورة قرص خام بحجم 10 جيجابايت مساحة فعلية تبلغ 10 جيجابايت على موزع التشغيل (Hypervisor). تتمتع هذه الطريقة بأداء أفضل لأن مساحة القرص المطلوبة موجودة بالفعل، لذلك يمكن لموزع التشغيل الأساسي كتابة البيانات إلى القرص مباشرة دون الحاجة إلى مراقبة صورة القرص للتأكد من أنها لم تصل بعد إلى حدها وزيادة حجم الملف مع كتابة بيانات جديدة إليه.
العمل مع قوالب الآلات الافتراضية
نظرًا لأن الآلات الافتراضية عادةً ما تكون مجرد ملفات تعمل على موزع تشغيل (Hypervisor)، فمن السهل إنشاء قوالب يمكن تخصيصها لسيناريوهات معينة. في كثير من الأحيان، سيكون للآلة الافتراضية نظام تشغيل أساسي مثبت وإعدادات تكوين مسبقة للمصادقة لتسهيل عمليات تشغيل أنظمة جديدة لاحقًا. وهذا يقلل من الوقت اللازم لبناء نظام جديد عن طريق تقليل العمل الذي يتم تكراره بشكل متكرر، مثل تثبيت الحزم الأساسية وإعدادات اللغة. بعد ذلك، يمكن نسخ قالب الآلة الافتراضية هذا لاحقًا إلى نظام ضيف جديد. وفي هذه الحالة، سيتم إعادة تسمية الضيف الجديد، وإنشاء عنوان MAC جديد لواجهة شبكته، ويمكن إجراء تعديلات أخرى بناءً على الغرض المقصود من استخدامه. بعبارة أخرى ، أنه يمكن تخصيص قوالب آلة افتراضية لتلبية السيناريوهات المختلفة ... كمثلاً تجهيز قالب لنظام به بعض الثغرات أو بعض المشاكل التقنية للأغراض التعليمية ويقوم المستخدم بتحميل هذا القالب كنظام افتراضي وبدأ محاولة ترقيع تلك الثغرات وحل هذه المشاكل التقنية وهكذا ...
وهنا أخيراً نكون قد وصلنا بفضل الله الى النهاية بعد أن وفقنا الله الى التطرق وعرض وشرح بشكل مبسط موضوع آخر من ضمن مواضيع رحلتنا مع اللينكس
التعديل الأخير: