السلام عليكم ورحمة الله وبركاته ...
الموضوع هذا تم نقله من مجلة مجتمع لينوكس العربي (العدد الثاني) وذلك للفائدة أكثر، خاصة لمن فاته قراءة العدد في ذلك الوقت، ولهذا هو منقول وليس جديد.
مقدمة:
الـ Virtualization أحد أهم وأكثر العناوين والمواضيع العلمية سخونة في الوقت الحالي وذلك بسبب كونها أحد تقنيات توفير الموارد وإستغلالها بشكل مميز. لكن، فكرت الـ Virtualization ليست جديدة على الإطلاق، وهناك أجهزة كالتي تنتجها شركة IBM كالـ pSeries والـ zSeries وغيرها من الأجهزة التي تدعم الـ Virtualization منذ وقت طويل جداً. وأيضاً هناك برامج مثل برنامج الـ VMWare أو الـ VirtualBox التي تدعم هذه التقنية أيضاً على الأجهزة التي هيكليتها من نوع x86 أو الـ Intel Based.
الآن الـ Virtualization يتجه صوب الـ Intel x86 والـ AMD ﻷنها أصبحت ذات كفاءة عالية وقادرة على تزويد الموارد/العتاد لتشغيل أكثر من جهاز تخيلي Virtual Machine واحد عليها بنفس الوقت، وهذا هو من أهم أسباب إختراع هذه التقنية أصلاً. أيضاً من الجدير بالذكر بإن الـ Virtualization أصبحت مزودة ظمن التوزيعات خاصة الـ SLES والـ openSUSE، وكل ما عليك هو تنصيب بعض البرامج والمشغلات الإضافية لهم عند تنصيب النظام أو بعده.
أولاً: التعرف على مفهوم الـ Virtualization
وهي فصل نظام التشغيل عن العتاد الذي يعمل عليه، بحيث يصبح النظام التشغيلي يعمل في بيئة تخيلية وكأنها حاسوب منفصل. هذه التقنية تتيح لنا أولاً مشاركة الموارد/العتاد الحقيقية وثانياً تشغيل أكثر من نظام تشغيل على نفس الموارد/العتاد وبنفس اللحظة.

من أهم مميزات الـ Virtualization بصورة عامة:
1- إستعمال العتاد بشكل مميز. حيث في بعض الأحيان تشغيل نظام واحد على العتاد ﻻ يقوم بإستغلال كامل لمواصفات العتاد وبالتالي نخسر هذه الإمكانيات التي يمكن إستغلالها بشكل أفضل.
2- تقليل وتقليص الوقت الزمني لتوقف الجهاز والنظام معاً، أي تقليل الـ Down Time للنظام. وذلك ﻷنه بإمكانك نقله بسهولة من جهاز الى آخر في حالة حصول أي مشكلة في العتاد على سبيل المثال.
3- المرونة في الإضافة/الحذف للعتاد عند الحاجة. بعض الأحيان تتغيير متطلبات النظام ويحتاج الى تغيير في العتاد المزود له (RAM، HardDisk، CPU، الى آخره) سواءاً بإضافة عتاد أكثر أو حذفها حسب الرغبة، أو أن تقوم بنقل النظام كله الى جهاز آخر إن لم يكن لديك عتاد يكفي لتشغيل ذلك الجهاز التخيلي.
ثانياً: التعرف على كيفية عمل الـ XEN
كما سبق وأن ذكرنا بإن فكرة الـ Virtualization ليست جديدة وإن لشركة IBM العديد من الأجهزة مبني بداخلها هذه التقنية. اليوم ومع التطور الكبير الذي يشهده عالم المصادر الحرة والمجانية تم عمل تقنية جديدة إسمها XEN. هذه التقنية تتيح لنا تشغيل أكثر من جهاز تخيلي على عتاد من نوع Intel x86. حسب آخر معلوماتي بإن هذه التقنية ﻻزالت غير قادرة على تشغيل جميع أنظمة التشغيل بسبب إنها تحتاج الى التعديل على مصدر Code الخاص بالنظام التشغيلي. ولهذا هي تشغل حالياً وبشكل مميز جداً الأنظمة التي مصدرها مفتوح Open Source System مثل Linux و BSD وﻻ أعرف إن كانت تستطيع تشغيل أنظمة مثل الـ Windows بسبب كون المصدر الخاص به غير مفتوح، بإستثناء نظام التشغيل Netware وذلك ﻷن شركة Novell نفسها قامت بالتعديل عليه لكي يصبح يعمل تحت تقنية الـ Xen. أيضاً بما إنني أتحدث هنا على الـ Virtualization كان لابد أن أشير الى إنه كل من شركة Intel و AMD تطور حالياً إضافات لمعالجاتها بحيث تصبح مبنية من الأساس وداعمة لمبدأ الـ Virtualization. شركة Intel تسمي هذه الإضافة بـ Vanderpool و AMD تسميه Pacifica في حال أردت عزيزي القاريء البحث عنهم ومعرفة المزيد حول هذين الإضافتين. الجميل في هذه الإضافات إنه في حال أصبحت مكتملة فإن الـ Xen سيستطيع تشغيل أي نظام تشغيل حتى لو كان مغلق المصدر مثل الـ Windows.
الآن لمعرفة كيف يعمل الـ Xen، علينا أن نتعرف على كل من:
1) معرفة أنواع الـ Virtualization
2) فهم هيكلية الـ Xen
1) نأتي الى الى معرفة أنواع الـ Virtualization أوﻻً:
النوع الأول: Full Virtualization
في هذا النوع يقوم البرنامج الخاص بالـ Virtualization بعمل بيئة تخيلية بالكامل متظمنة للعتاد أيضاً. ويصبح النظام التشغيلي الضيف الذي يعمل في هذه البيئة بمخاطبة والتعامل مع هذا العتاد التخيلي الذي قام البرنامج بعمله له. يعتبر برنامج الـ VMWare من أبرز البرامج التي تستعمل هذا النوع من الـ Virtualization.

النوع الثاني: Para Virtualization
بدل من عمل بيئة تخيلية بالكامل تقوم البرامج التي تعتمد هذا النوع بتزويد النظام الضيف بما يسمى النوافذ المبرمجة Application Programming Interface ومختصرها API. هذه النوافذ تسمح للنظام الضيف من إستعمال العتاد الحقيقي Physical Hardware عند الحاجة من خلال التخاطب معه. هذا النوع من الـ Virtualization يتطلب أن يكون النظام قادر على أن يعرف بإنه يعمل في بيئة تخيلية لكي يستطيع أن يطلب إستعمال النوافذ المبرمجة API. من أبرز البرامج التي تستخدم هذه الطريقة هي الـ Xen، أي الـ Xen هو عبارة عن برنامج Para-Virtualization.

الـ Para Virtualization تقدم أداء أفضل من الـ Full Virtualization وذلك ﻷنها ﻻ تقوم بعمل عتاد تخيلي Virtual Hardware وإنما تستعمل العتاد الموجود حسب الحاجة بواسطة البوابات البرمجية API's وبهذا ﻻ تحجز شيء هي ليست بحاجة له. وقد يقول البعض بإن سلبية الـ Para Virtualization والذي يستعمله الـ Xen هي كونه حالياً يشغل Linux و BSD و Netware فقط وﻻ يستطيع تشغيل الـ Windows مثلاً, أي الأنظمة مغلقة المصدر. لكن الحقيقة إنه صحيح الـ Full Virtualization قادر على تشغيل الأنظمة مغلقة المصدر، لكنه ﻻ يستطيع تشغيلها بنفس كفاءة وإمكانية البرامج التي تستخدم الـ Para Virtualization. ومن ميزات الـ Para Virtualization الأخرى على الـ Full Virtualization هي المرونة في الإضافة والحذف للعتاد عند الحاجة دون الحاجة الى عمل إعادة تشغيل للنظام الضيف. مثلاً تستطيع إضافة مساحات أخرى من الـ RAM للنظام الضيف عند حاجته لذلك دون أن تقوم بوقف عمل النظام وإعادة تشغيله مرة أخرى، أي كل هذا يتم في الـ Run Time.
2) فهم هيكلية الـ Xen
تقنية الـ Xen تعتمد على جزئين أساسيين إثنين، هما:
1- برنامج مراقبة الحاسوب التخيلي Virtual Machine Monitor. هذا الجزء يمثل الطبقة ما بين الأنظمة التخيلية المستضافة وبين العتاد، أي بعبارة أخرى هو حلقة الوصل التي تربط النظام الضيف والعتاد الرئيسي Physical Hardware. وبصورة عامة يسمى هذا البرنامج بالـ Hypervisor.
2- أدوات Xen أي Xen tools. وهي عبارة عن مجموعة من البرامج التي تسعتمل من خلال سطر الأوامر التي يحتاجها مدير النظام لإستخدام وإدارة الـ Virtual Machines.
برنامج الـ Virtual Machine Monitor يجب أن يكون يعمل قبل أن نستطيع تشغيل أي نظام تخيلي Virtual Machine. طبعاً عند العمل مع تقنية الـ Xen يسمى الـ Virtual Machine بالدومين Domain. أيضاً هذا البرنامج Virtual Machine Monitor ﻻ يملك مشغلات Drivers للتخاطب مع العتاد Hardware للجهاز المضيف وﻻ يملك منافذ Interface لكي يتم من خلالهم التواصل والتخاطب مع مدير النظام الـ Administrator. هذه الأمور تتم من خلال نظام تشغيل يعمل في الدومين رقم صفر Domain0. حيث يمثل الـ Domain0 المتحكم Controller بالأنظمة الأخرى المستضافة Guests التخيلية. أي بعبارة أخرى هو الذي من خلاله نستطيع أن نتحكم بباقي الأنظمة التخيلية التي تعمل على الجهاز. يتم ذلك كله من خلال خدمة إسمها xend والتي تعمل في الـ Domain0، وهي الخدمة التي تدير جميع الدومينات الأخرى.
تقنية الـ Xen تعتمد على جزئين أساسيين إثنين، هما:
1- برنامج مراقبة الحاسوب التخيلي Virtual Machine Monitor. هذا الجزء يمثل الطبقة ما بين الأنظمة التخيلية المستضافة وبين العتاد، أي بعبارة أخرى هو حلقة الوصل التي تربط النظام الضيف والعتاد الرئيسي Physical Hardware. وبصورة عامة يسمى هذا البرنامج بالـ Hypervisor.
2- أدوات Xen أي Xen tools. وهي عبارة عن مجموعة من البرامج التي تسعتمل من خلال سطر الأوامر التي يحتاجها مدير النظام لإستخدام وإدارة الـ Virtual Machines.
برنامج الـ Virtual Machine Monitor يجب أن يكون يعمل قبل أن نستطيع تشغيل أي نظام تخيلي Virtual Machine. طبعاً عند العمل مع تقنية الـ Xen يسمى الـ Virtual Machine بالدومين Domain. أيضاً هذا البرنامج Virtual Machine Monitor ﻻ يملك مشغلات Drivers للتخاطب مع العتاد Hardware للجهاز المضيف وﻻ يملك منافذ Interface لكي يتم من خلالهم التواصل والتخاطب مع مدير النظام الـ Administrator. هذه الأمور تتم من خلال نظام تشغيل يعمل في الدومين رقم صفر Domain0. حيث يمثل الـ Domain0 المتحكم Controller بالأنظمة الأخرى المستضافة Guests التخيلية. أي بعبارة أخرى هو الذي من خلاله نستطيع أن نتحكم بباقي الأنظمة التخيلية التي تعمل على الجهاز. يتم ذلك كله من خلال خدمة إسمها xend والتي تعمل في الـ Domain0، وهي الخدمة التي تدير جميع الدومينات الأخرى.

ملاحظة: في عالم الـ Xen يسمى الـ Domain0 بالدومين صاحب الصلاحيات Privileged Domain والذي سيكون هو المضيف Host بينما الدومينات الأخرى التي ليس لها صلاحيات تسمى بالـ DomainU وهي الدومينات الضيف.
ثالثاً: فوائد الـ Virtualization بإستعمال تقنية Xen تحديداً
- أعلى إمكانية لإدارة العتاد وإستغلاله بشكل صحيح.
- تقليل من تكاليف العتاد.
- مرونة أكثر في الإستعمال.
- Virtual Hosting.
- تقليل من الـ Down-time وبها نصل الى زيادة الـ Avilability.
- زيادة الحماية بالمقارنة مع إستعمال الـ chroot والـ jails.
- إمكانية نقل النظام من مكان لآخر بسهولة.
- سهولة في الصيانة والترقية للعتاد.
- جعل النظام قابل للـ Hot Swap بغض النظر عن نوعه.
- إمكانية عمل التجارب ومن ثم التشغيل.
- غير ذلك.
رابعاً: الأنظمة التي يدعمها Xen
كود:
- Linux 2.4 - Linux 2.6 - NetWare 6.5 + - NetBSD - FreeBSD - Plan9 - OpenSolaris
يتبع ...
تعليق