دوشنبه, ۱ بهمن, ۱۴۰۳ / 20 January, 2025
مجله ویستا

مجازی سازی در لینوكس


مجازی سازی در لینوكس

Xen Virtual Machine Monitor Xen VMM یك پروژه اپن سورس است كه در آزمایشگاه های كامپیوتر دانشگاه كمبریج انگلیس توسعه داده می شود

مجازی‌سازی و به ویژه پروژه Xen، یكی از مهم‌ترین موضوعاتی هستند كه در راس وقایع یك ساله اخیر دنیای اپن‌سورس بوده‌اند. پشتیبانی سه توزیع قدرتمند لینوكس (فدوراكور، دبیان و OpenSuSE) از این پروژه، همكاری گروه توسعه‌دهنده برنامه مجازی‌سازی VMWare با پروژه Xen، تمایل شركت‌های بزرگی مانند اینتل و سان‌مایكروسیستمز به توسعه Xen، و نهایتاً بهبود چشمگیر كارایی این برنامه در نسخه‌های جدید، روی هم رفته باعث جلب توجه محافل و صنعت مجازی‌سازی به سوی این برنامه اپن‌سورس شد و هزاران شركت اقدام به آزمایش و به كارگیری آن نمودند كه حاصل آن، انتشار هزاران گزارش، بررسی، مقاله و اسناد علمی معتبر درباره Xen و نهایتاً پیشرفت بیشتر در توسعه آن شد. در این نوشتار ابتداً نگاهی به این پروژه و ویژگی‌های آن خواهیم انداخت و در ادامه راه‌اندازی یك ماشین‌مجازی در لینوكس را بررسی می‌نماییم.

●Xen چیست؟

Xen Virtual Machine Monitor) Xen VMM) یك پروژه اپن‌سورس است كه در آزمایشگاه‌های كامپیوتر دانشگاه كمبریج انگلیس توسعه داده می‌شود. خروجی این پروژه یك برنامه مجازی‌سازی به نام Xen است كه امكان ساخت و برپاسازی چندین ماشین مجازی با قابلیت اجرا توسط سیستم‌عامل‌های مختلف روی یك سخت‌افزار واحد را فراهم می‌كند. با این ابزار، سیستم‌عامل‌های میهمان به هسته لینوكس (نسخه‌های ۲.۴ و ۲.۶) متصل می‌شوند و امكان یكپارچه‌سازی آن‌ها برای هسته سیستم‌عامل‌های NetBSD/FreeBSD نیز وجود دارد. نتیجتاً كاربران قادر خواهند بود با برنامه Xen چندین سیستم‌عامل میهمان را روی سیستم‌عامل‌های خانواده یونیكس بدون نیاز به تغییر و اصلاح كد و ساختار هسته سیستم‌عامل مادر راه‌اندازی نمایند. در این میان شركت سان‌مایكروسیستمز نیز تلاش می‌كند Xen را برای سیستم‌عامل سولاریس سازگار نماید.

جالب است به این نكته اشاره شود كه پروژه توسعه برنامه Xen از ابتدا منبع‌باز نبود و چندین سال یك پروژه اصطلاحاً كد بسته تلقی می‌شد در عوض پروژه‌های منبع‌بازی مانند Bochs IA-۳۲ Emulator و qemu در دنیای اپن‌سورس مطرح بودند كه عمدتاً برنامه‌های شبیه‌سازی معماری‌های سخت‌افزاری بوده و ابداً از كارایی و قابلیت‌های مورد انتظار برخوردار نبوده‌اند. در حقیقت موفقیت پروژه Xen در مقایسه با دیگر پروژه‌های منبع‌باز، سازگاری و یكپارچه‌سازی با هسته سیستم‌عامل لینوكس و فراهم‌سازی بستری برای پشتیبانی سخت‌افزار سیستم‌های كامپیوتری مانند اینتل و ای‌ام‌دی است.

جهش دیگر Xen در آگوست ۲۰۰۵ بود كه شركت XenSource (شركت رسمی پشتیبان‌ و توسعه‌دهنده تجاری پروژهXen اقدام به انتشار‌ Intel Developer Forum) IDF) نمود كه امكان استفاده Xen روی سكوهای سخت‌افزاری مبتنی بر Intel TV را فراهم نمود و در پی آن امكان اجرای مجازی‌ ویندوز اكس‌پی سرویس‌پك دو، در كنار لینوكس فراهم شد. در چنین شرایطی برنامه مجازی‌سازی تجاری VMWare كه برای سرورهای ESX نیز توسعه داده می‌شود، همكاری جدیدی را با توسعه‌دهند‌گان Xen برای دسترسی به كدهای منبع VMware ESX Server و رابط كاربری آن آغاز كرد. مزیت برجسته برنامه VMWare در عدم یكپارچه‌سازی و اتصال سیستم‌عامل میهمان و ارائه راه‌كارهای اجرای سیستم‌عامل‌های میهمان روی ویندوز است.

در این زمان واقعه مهم دیگری نیز برای Xen روی داد و آن، پشتیبانی توزیع لینوكس Fedora Core۴، دبیان و SuSE Professional۹.۳ از این برنامه و اضافه‌‌شدن آن به توزیع لینوكس سرور RHEL۵ بود. پروژه فدورا حتی به ارائه بسته‌های نرم‌افزاری RPM برنامه Xen پرداخت. تمام این وقایع موجب شد برنامه Xen به عنوان گزینه اول برنامه مجازی‌سازی برای لینوكس و دنیای ‌اپن‌سورس مطرح شود و شركت‌های سخت‌افزاری مانند IBM و HP به سوی این محصول حركت نمایند و دیگر توزیع‌ها و برنامه‌های اپن‌سورس Xen را در محصولات خود به كار بگیرند.

●روش مجازی‌سازی

تفاوت عمده Xen با دیگر برنامه‌های مجازی‌سازی و شبیه‌ساز در شیوه پیاده‌سازی ماشین‌های مجازی روی یك سیستم است. برنامه Xen از تكنیك ‌Paravirtualization برای پیاده‌سازی سیستم‌عامل‌های میهمان بهره می‌گیرد.

Paravirtualization سیستم‌عامل و سخت‌افزار مادر را در یك سطح و ماشین‌های مجازی را در سطح‌های دیگر پیاده‌سازی می‌كند. مزیت این روش، عدم تداخل فرایندهای اجرایی سیستم‌عامل‌ و امكان افزودن پروسه‌های جدید به هسته سیستم‌عامل بدون كامپایل هسته یا دستكاری آن است.

Xen از یك مدل چهار لایه‌ای برای سیستم‌های X۸۶، X۳۸۶ و X۶۴ استفاده می‌كند كه به هر لایه یك ring گفته می‌شود. در ring۰ سیستم‌عامل مادر و خود برنامه Xen اجرا می‌شود. به برنامه Xen در این مدل اصطلاحاًHypervisor می‌گویند؛ چرا كه باید در بالاترین سطح دسترسی برای كدهای سیستم‌عامل میهمان باشد.

ring۱ و ring۲ به سیستم‌عامل‌های میهمان اختصاص دارد و در ring۳ برنامه‌های كاربردی اجرا خواهند شد. در زمان شروع به كار، Xen به حافظه ring۰ مراجعه می‌نماید و ماشین مجازی پایه كه Domain۰ خوانده می‌شود را در ring۱ اجرا می‌كند. از این Domain دیگر Domainها ساخته، حذف و جایگزین می‌شوند.

در حقیقت Xen توسط Domain۰ دیگر ماشین‌های مجازی و سخت‌افزار را مدیریت می‌كند. دایمون xend توسط Domain۰ اجرا می‌شود كه مدیریت ماشین‌های مجازی را در هسته لینوكس بر عهده می‌گیرد و كاربر توسط ابزار خط فرمان xm آن را كنترل و مدیریت می‌كند. توسط این ابزار دیگر ماشین‌های مجازی نیز برپا می‌شوند.

درایورهای سخت‌افزاری نیز در Domain۰ اجرا می‌شوند. Xen به توابع و ماجول‌های سخت‌افزاری موجود در هسته سیستم‌عامل لینوكس تكیه می‌كند و خود را از طراحی و ساخت ماجول‌های سخت‌افزاری برای ماشین‌های مجازی فارغ می‌نماید. این موضوع یك مزیت برای این برنامه محسوب می‌شود. چون توسعه‌دهند‌گان Xen را از نوشتن ماجول‌های جدید برای درایورهای سخت‌افزاری بی‌نیاز می‌كند.

●دایمون Xend

دایمون Xend عهده‌دار ساخت Domain جدید و مدیریت آن‌ها، حذف یك ماشین مجازی موجود یا سوییچ میان چندین ماشین مجازی است. یكی از بزرگ‌ترین مسئولیت‌های این دایمون در هسته لینوكس راه‌اندازی و اجرای سرویس‌دهنده HTTP است. پورت پیش‌فرض برای این سرویس‌دهنده ۸۰۰۰‌ است كه Xend از آن برای ارتباط باDomain ها شامل ارسال یك درخواست برای ساخت Domain، خذف یك Domain یا ذخیره و شروع به كار مجدد آن و سوییچ میان آن‌ها استفاده می‌كند.

بخش اعظم دایمون Xend توسط زبان اسكریپت‌نویسی پایتون نوشته شده است و در كنار آن برخی توابع زبان C نیز فراخوانی می‌شوند. از پوسته خط فرمان و اجرای فرمان xend start می‌توان دایمون Xend را برای بوت شدنXen فعال نمود. خود دایمون Xend یك سرویس‌دهنده با نام XCS را فعال می‌‌كند. هنگامی كه xend را فعال می‌نماییم، باید بررسی شود كه آیا XCS نیز اجرا شده است یا خیر. در صورت عدم اجرای آن، باید به صورت دستی اجرا شود. XCS در حقیقت هسته اصلی دایمون Xend را تشكیل می‌دهد و دو پورت TCP برای تبادل اطلاعات و كنترل پروسه‌های در حال اجرا باز می‌كند. تفاوت این دو پورت در همزمان‌سازی درخواست‌ها و هماهنگ‌سازی آن‌ها است.

●Xen در فدوراكور

برنامه Xen همراه با توزیع لینوكس فدوراكور ۴ و ۵ ارائه شده است. همچنین می‌توان بسته نرم‌افزاری نصب آن را از سایت این پروژه به نشانی www.xensource.com/xen/downloads دریافت نمود. برای نصب این برنامه یك ترمینال خط فرمان را باز كنید و دستورات زیر را به ترتیب اجرا نمایید:

yum update $

yum install xen$

yum install kernel-xen۰ $

yum install kernel-xenU$