liveserver
May 15th, 2013, 21:28
اشاره :
مجازي*سازي و به ويژه پروژه Xen، يكي از مهم*ترين موضوعاتي هستند كه در راس وقايع يك ساله اخير دنياي اپن*سورس بوده*اند. پشتيباني سه توزيع قدرتمند لينوكس (فدوراكور، دبيان و OpenSuSE) از اين پروژه، همكاري گروه توسعه*دهنده برنامه مجازي*سازي VMWare با پروژه Xen، تمايل شركت*هاي بزرگي مانند اينتل و سان*مايكروسيستمز به توسعه Xen، و نهايتاً بهبود چشمگير كارايي اين برنامه در نسخه*هاي جديد، روي هم رفته باعث جلب توجه محافل و صنعت مجازي*سازي به سوي اين برنامه اپن*سورس شد و هزاران شركت اقدام به آزمايش و به كارگيري آن نمودند كه حاصل آن، انتشار هزاران گزارش، بررسي، مقاله و اسناد علمي معتبر درباره Xen و نهايتاً پيشرفت بيشتر در توسعه آن شد. در اين نوشتار ابتداً نگاهي به اين پروژه و ويژگي*هاي آن خواهيم انداخت و در ادامه راه*اندازي يك ماشين*مجازي در لينوكس را بررسي مي*نماييم.
Xen چيست؟
Xen Virtual Machine Monitor) Xen VMM) يك پروژه اپن*سورس است كه در آزمايشگاه*هاي كامپيوتر دانشگاه كمبريج انگليس توسعه داده مي*شود. خروجي اين پروژه يك برنامه مجازي*سازي به نام Xen است كه امكان ساخت و برپاسازي چندين ماشين مجازي با قابليت اجرا توسط سيستم*عامل*هاي مختلف روي يك سخت*افزار واحد را فراهم مي*كند. با اين ابزار، سيستم*عامل*هاي ميهمان به هسته لينوكس (نسخه*هاي 2.4 و 2.6) متصل مي*شوند و امكان يكپارچه*سازي آن*ها براي هسته سيستم*عامل*هاي NetBSD/FreeBSD نيز وجود دارد. نتيجتاً كاربران قادر خواهند بود با برنامه Xen چندين سيستم*عامل ميهمان را روي سيستم*عامل*هاي خانواده يونيكس بدون نياز به تغيير و اصلاح كد و ساختار هسته سيستم*عامل مادر راه*اندازي نمايند. در اين ميان شركت سان*مايكروسيستمز نيز تلاش مي*كند Xen را براي سيستم*عامل سولاريس سازگار نمايد.
جالب است به اين نكته اشاره شود كه پروژه توسعه برنامه Xen از ابتدا منبع*باز نبود و چندين سال يك پروژه اصطلاحاً كد بسته تلقي مي*شد در عوض پروژه*هاي منبع*بازي مانند Bochs IA-32 Emulator و qemu در دنياي اپن*سورس مطرح بودند كه عمدتاً برنامه*هاي شبيه*سازي معماري*هاي سخت*افزاري بوده و ابداً از كارايي و قابليت*هاي مورد انتظار برخوردار نبوده*اند. در حقيقت موفقيت پروژه Xen در مقايسه با ديگر پروژه*هاي منبع*باز، سازگاري و يكپارچه*سازي با هسته سيستم*عامل لينوكس و فراهم*سازي بستري براي پشتيباني سخت*افزار سيستم*هاي كامپيوتري مانند اينتل و اي*ام*دي است.
جهش ديگر Xen در آگوست 2005 بود كه شركت XenSource (شركت رسمي پشتيبان* و توسعه*دهنده تجاري پروژه
Xen اقدام به انتشار* Intel Developer Forum) IDF) نمود كه امكان استفاده Xen روي سكوهاي سخت*افزاري مبتني بر Intel TV را فراهم نمود و در پي آن امكان اجراي مجازي* ويندوز اكس*پي سرويس*پك دو، در كنار لينوكس فراهم شد. در چنين شرايطي برنامه مجازي*سازي تجاري VMWare كه براي سرورهاي ESX نيز توسعه داده مي*شود، همكاري جديدي را با توسعه*دهند*گان Xen براي دسترسي به كدهاي منبع VMware ESX Server و رابط كاربري آن آغاز كرد. مزيت برجسته برنامه VMWare در عدم يكپارچه*سازي و اتصال سيستم*عامل ميهمان و ارائه راه*كارهاي اجراي سيستم*عامل*هاي ميهمان روي ويندوز است.
در اين زمان واقعه مهم ديگري نيز براي Xen روي داد و آن، پشتيباني توزيع لينوكس Fedora Core4، دبيان و
SuSE Professional9.3 از اين برنامه و اضافه**شدن آن به توزيع لينوكس سرور RHEL5 بود. پروژه فدورا حتي به ارائه بسته*هاي نرم*افزاري RPM برنامه Xen پرداخت. تمام اين وقايع موجب شد برنامه Xen به عنوان گزينه اول برنامه مجازي*سازي براي لينوكس و دنياي *اپن*سورس مطرح شود و شركت*هاي سخت*افزاري مانند IBM و HP به سوي اين محصول حركت نمايند و ديگر توزيع*ها و برنامه*هاي اپن*سورس Xen را در محصولات خود به كار بگيرند.
ساختار لا*يه*اي Xen
روش مجازي*سازي
تفاوت عمده Xen با ديگر برنامه*هاي مجازي*سازي و شبيه*ساز در شيوه پياده*سازي ماشين*هاي مجازي روي يك سيستم است. برنامه Xen از تكنيك *Paravirtualization براي پياده*سازي سيستم*عامل*هاي ميهمان بهره مي*گيرد.
Paravirtualization سيستم*عامل و سخت*افزار مادر را در يك سطح و ماشين*هاي مجازي را در سطح*هاي ديگر پياده*سازي مي*كند. مزيت اين روش، عدم تداخل فرايندهاي اجرايي سيستم*عامل* و امكان افزودن پروسه*هاي جديد به هسته سيستم*عامل بدون كامپايل هسته يا دستكاري آن است.
Xen از يك مدل چهار لايه*اي براي سيستم*هاي X86، X386 و X64 استفاده مي*كند كه به هر لايه يك ring گفته مي*شود. در ring0 سيستم*عامل مادر و خود برنامه Xen اجرا مي*شود. به برنامه Xen در اين مدل اصطلاحاًHypervisor مي*گويند؛ چرا كه بايد در بالاترين سطح دسترسي براي كدهاي سيستم*عامل ميهمان باشد.
ring1 و ring2 به سيستم*عامل*هاي ميهمان اختصاص دارد و در ring3 برنامه*هاي كاربردي اجرا خواهند شد. در زمان شروع به كار، Xen به حافظه ring0 مراجعه مي*نمايد و ماشين مجازي پايه كه Domain0 خوانده مي*شود را در ring1 اجرا مي*كند. از اين Domain ديگر Domainها ساخته، حذف و جايگزين مي*شوند.
در حقيقت Xen توسط Domain0 ديگر ماشين*هاي مجازي و سخت*افزار را مديريت مي*كند. دايمون xend توسط Domain0 اجرا مي*شود كه مديريت ماشين*هاي مجازي را در هسته لينوكس بر عهده مي*گيرد و كاربر توسط ابزار خط فرمان xm آن را كنترل و مديريت مي*كند. توسط اين ابزار ديگر ماشين*هاي مجازي نيز برپا مي*شوند.
درايورهاي سخت*افزاري نيز در Domain0 اجرا مي*شوند. Xen به توابع و ماجول*هاي سخت*افزاري موجود در هسته سيستم*عامل لينوكس تكيه مي*كند و خود را از طراحي و ساخت ماجول*هاي سخت*افزاري براي ماشين*هاي مجازي فارغ مي*نمايد. اين موضوع يك مزيت براي اين برنامه محسوب مي*شود. چون توسعه*دهند*گان Xen را از نوشتن ماجول*هاي جديد براي درايورهاي سخت*افزاري بي*نياز مي*كند.
مجازي*سازي و به ويژه پروژه Xen، يكي از مهم*ترين موضوعاتي هستند كه در راس وقايع يك ساله اخير دنياي اپن*سورس بوده*اند. پشتيباني سه توزيع قدرتمند لينوكس (فدوراكور، دبيان و OpenSuSE) از اين پروژه، همكاري گروه توسعه*دهنده برنامه مجازي*سازي VMWare با پروژه Xen، تمايل شركت*هاي بزرگي مانند اينتل و سان*مايكروسيستمز به توسعه Xen، و نهايتاً بهبود چشمگير كارايي اين برنامه در نسخه*هاي جديد، روي هم رفته باعث جلب توجه محافل و صنعت مجازي*سازي به سوي اين برنامه اپن*سورس شد و هزاران شركت اقدام به آزمايش و به كارگيري آن نمودند كه حاصل آن، انتشار هزاران گزارش، بررسي، مقاله و اسناد علمي معتبر درباره Xen و نهايتاً پيشرفت بيشتر در توسعه آن شد. در اين نوشتار ابتداً نگاهي به اين پروژه و ويژگي*هاي آن خواهيم انداخت و در ادامه راه*اندازي يك ماشين*مجازي در لينوكس را بررسي مي*نماييم.
Xen چيست؟
Xen Virtual Machine Monitor) Xen VMM) يك پروژه اپن*سورس است كه در آزمايشگاه*هاي كامپيوتر دانشگاه كمبريج انگليس توسعه داده مي*شود. خروجي اين پروژه يك برنامه مجازي*سازي به نام Xen است كه امكان ساخت و برپاسازي چندين ماشين مجازي با قابليت اجرا توسط سيستم*عامل*هاي مختلف روي يك سخت*افزار واحد را فراهم مي*كند. با اين ابزار، سيستم*عامل*هاي ميهمان به هسته لينوكس (نسخه*هاي 2.4 و 2.6) متصل مي*شوند و امكان يكپارچه*سازي آن*ها براي هسته سيستم*عامل*هاي NetBSD/FreeBSD نيز وجود دارد. نتيجتاً كاربران قادر خواهند بود با برنامه Xen چندين سيستم*عامل ميهمان را روي سيستم*عامل*هاي خانواده يونيكس بدون نياز به تغيير و اصلاح كد و ساختار هسته سيستم*عامل مادر راه*اندازي نمايند. در اين ميان شركت سان*مايكروسيستمز نيز تلاش مي*كند Xen را براي سيستم*عامل سولاريس سازگار نمايد.
جالب است به اين نكته اشاره شود كه پروژه توسعه برنامه Xen از ابتدا منبع*باز نبود و چندين سال يك پروژه اصطلاحاً كد بسته تلقي مي*شد در عوض پروژه*هاي منبع*بازي مانند Bochs IA-32 Emulator و qemu در دنياي اپن*سورس مطرح بودند كه عمدتاً برنامه*هاي شبيه*سازي معماري*هاي سخت*افزاري بوده و ابداً از كارايي و قابليت*هاي مورد انتظار برخوردار نبوده*اند. در حقيقت موفقيت پروژه Xen در مقايسه با ديگر پروژه*هاي منبع*باز، سازگاري و يكپارچه*سازي با هسته سيستم*عامل لينوكس و فراهم*سازي بستري براي پشتيباني سخت*افزار سيستم*هاي كامپيوتري مانند اينتل و اي*ام*دي است.
جهش ديگر Xen در آگوست 2005 بود كه شركت XenSource (شركت رسمي پشتيبان* و توسعه*دهنده تجاري پروژه
Xen اقدام به انتشار* Intel Developer Forum) IDF) نمود كه امكان استفاده Xen روي سكوهاي سخت*افزاري مبتني بر Intel TV را فراهم نمود و در پي آن امكان اجراي مجازي* ويندوز اكس*پي سرويس*پك دو، در كنار لينوكس فراهم شد. در چنين شرايطي برنامه مجازي*سازي تجاري VMWare كه براي سرورهاي ESX نيز توسعه داده مي*شود، همكاري جديدي را با توسعه*دهند*گان Xen براي دسترسي به كدهاي منبع VMware ESX Server و رابط كاربري آن آغاز كرد. مزيت برجسته برنامه VMWare در عدم يكپارچه*سازي و اتصال سيستم*عامل ميهمان و ارائه راه*كارهاي اجراي سيستم*عامل*هاي ميهمان روي ويندوز است.
در اين زمان واقعه مهم ديگري نيز براي Xen روي داد و آن، پشتيباني توزيع لينوكس Fedora Core4، دبيان و
SuSE Professional9.3 از اين برنامه و اضافه**شدن آن به توزيع لينوكس سرور RHEL5 بود. پروژه فدورا حتي به ارائه بسته*هاي نرم*افزاري RPM برنامه Xen پرداخت. تمام اين وقايع موجب شد برنامه Xen به عنوان گزينه اول برنامه مجازي*سازي براي لينوكس و دنياي *اپن*سورس مطرح شود و شركت*هاي سخت*افزاري مانند IBM و HP به سوي اين محصول حركت نمايند و ديگر توزيع*ها و برنامه*هاي اپن*سورس Xen را در محصولات خود به كار بگيرند.
ساختار لا*يه*اي Xen
روش مجازي*سازي
تفاوت عمده Xen با ديگر برنامه*هاي مجازي*سازي و شبيه*ساز در شيوه پياده*سازي ماشين*هاي مجازي روي يك سيستم است. برنامه Xen از تكنيك *Paravirtualization براي پياده*سازي سيستم*عامل*هاي ميهمان بهره مي*گيرد.
Paravirtualization سيستم*عامل و سخت*افزار مادر را در يك سطح و ماشين*هاي مجازي را در سطح*هاي ديگر پياده*سازي مي*كند. مزيت اين روش، عدم تداخل فرايندهاي اجرايي سيستم*عامل* و امكان افزودن پروسه*هاي جديد به هسته سيستم*عامل بدون كامپايل هسته يا دستكاري آن است.
Xen از يك مدل چهار لايه*اي براي سيستم*هاي X86، X386 و X64 استفاده مي*كند كه به هر لايه يك ring گفته مي*شود. در ring0 سيستم*عامل مادر و خود برنامه Xen اجرا مي*شود. به برنامه Xen در اين مدل اصطلاحاًHypervisor مي*گويند؛ چرا كه بايد در بالاترين سطح دسترسي براي كدهاي سيستم*عامل ميهمان باشد.
ring1 و ring2 به سيستم*عامل*هاي ميهمان اختصاص دارد و در ring3 برنامه*هاي كاربردي اجرا خواهند شد. در زمان شروع به كار، Xen به حافظه ring0 مراجعه مي*نمايد و ماشين مجازي پايه كه Domain0 خوانده مي*شود را در ring1 اجرا مي*كند. از اين Domain ديگر Domainها ساخته، حذف و جايگزين مي*شوند.
در حقيقت Xen توسط Domain0 ديگر ماشين*هاي مجازي و سخت*افزار را مديريت مي*كند. دايمون xend توسط Domain0 اجرا مي*شود كه مديريت ماشين*هاي مجازي را در هسته لينوكس بر عهده مي*گيرد و كاربر توسط ابزار خط فرمان xm آن را كنترل و مديريت مي*كند. توسط اين ابزار ديگر ماشين*هاي مجازي نيز برپا مي*شوند.
درايورهاي سخت*افزاري نيز در Domain0 اجرا مي*شوند. Xen به توابع و ماجول*هاي سخت*افزاري موجود در هسته سيستم*عامل لينوكس تكيه مي*كند و خود را از طراحي و ساخت ماجول*هاي سخت*افزاري براي ماشين*هاي مجازي فارغ مي*نمايد. اين موضوع يك مزيت براي اين برنامه محسوب مي*شود. چون توسعه*دهند*گان Xen را از نوشتن ماجول*هاي جديد براي درايورهاي سخت*افزاري بي*نياز مي*كند.