XCP ( Xen Cloud Platform ) ، یک راه حل مجازی سازی کلیدی است که فراتر از مجازی سازی و رایانش ابری می باشد چراکه برپایه فوق ناظر Xen است که در بین تمام فوق ناظر ها ، در ردیف اول از قدرت و جامعیت می باشد .علاوه بر Xen ، چیزی که XCP را قدرت بخشیده Xen API toolstack است که با کمک آن Xen به پلت فرمی برای Cloud تبدیل شد . قابلیت هایی که این API در اختیار قرار می دهد شامل :
مدیریت گستره ای از سیستم های میزبان
پشتیبانی از مخازن ذخیره سازی پیشرفته
پشتیبانی از چند مستاجری
پشتیبانی از گارانتی SLA ( تضمین سطح کیفی خدمات ارائه شده )
معیارهای دقیقی برای مصرف برپایه شارژ و فاکتورهای دیگر
می باشد .
XCP و XenServer:
XenServer توزیع تجاری XCP است . XCP شامل زیرمجموعه ای از ویژگی های عملکردی XenServer است . در واقع XenServer شامل Xen ( قدرتمند ترین فوق ناظر ) و کلی API اضافه شده به آن است که باعث شده اند Xen از یک فوق ناظر خارج و بستر مدیریت داینامیک و یکپارچه مدیریت منابع شود . XenServer مانند XCP رایگان است .
بیاین قبل اینکه وارد جزئیات بیشتر شویم کمی در مورد Xen صحبت کنیم :
Xen:
مسئولیت های یک فوق ناظر ، مدیریت حافظه و زمان بندی CPU ماشین مجازی (دامنه ها) است تا بتوانیم دامنه های متمایز بیشتری بر روی سیستم داشته باشیم . dom0 ماشین مجازی پیش فرضی است که دارای دسترسی مستقیم به سخت افزار است . از طریق dom0 فوق ناظر می تواند مدیریت شود و دامنه های دیگر را (domU) راه اندازی کند .
Dom0 عمدتا نسخه ای از لینوکس است . دامنه های کاربر ممکن است سیستم عامل های سنتی مانند مایکروسافت ویندوز یا سیستم عامل های مجازی شده دیگری باشند . Xen با کمک یک bootloader مانند GNU GRUB بوت می شود و سپس سیستم عامل میزبان را بارگذاری می کند . مثلا فرض کنید شما روی سیستم خود ، سیستم عامل دبیان را نصب دارید حالا تصمیم گرفته اید فوق ناظر Xen را نصب کنید . پس از نصب این سیستم عامل خواهید دید که در صفحه GRUB ، Xen هم مانند یک سیستم عامل قرار گرفته و به صورت پیش فرض سیستم بر روی آن بارگذاری می شود . پس از بارگذاری آن ، شما می بینید که سیستم عامل دبیان شما به عنوان dom0 تلقی شده است . ( با نصب Xen بر روی سیستم تان ، بهتر این مفهوم را درک میکنید )
جالب است بدانید پروژه توسعه برنامه Xen از ابتدا منبع باز نبود و چندین سال یک پروژه اصطلاحاً کد بسته تلقی میشد . اما بعدا که وارد دنیای متن بازها شد توانست در مقایسه با دیگر پروژههای منبعباز، سازگاری و یکپارچهسازی بیشتری با هسته سیستمعامل لینوکس فراهم و بستری برای پشتیبانی سختافزار سیستمهای کامپیوتری مانند اینتل و ایامدی ایجاد کند .
دلیل دیگر موفقیت XEN ، تفاوت عمده آن در شیوه پیادهسازی ماشینهای مجازی روی یک سیستم نسبت به دیگر برنامه های مجازی سازی است. برنامه Xen از تکنیک Paravirtualization برای پیادهسازی سیستمعاملهای میهمان استفاده می کند.
درParavirtualization ، سیستمعامل و سختافزار مادر در یک سطح و ماشینهای مجازی در سطحهای دیگر پیادهسازی می شوند. مزیت این روش، عدم تداخل فرایندهای اجرایی سیستمعامل و امکان افزودن فرآیندهای جدید به هسته سیستمعامل بدون دستکاری هسته است.
Xen از یک مدل چهار لایهای برای سیستمهای X86، X386 و X64 استفاده میکند که به هر لایه یک ring گفته میشود. در ring0 سیستمعامل مادر و خود برنامه Xen اجرا میشود. ring1 و ring2 به سیستمعاملهای میهمان اختصاص دارد و در ring3 برنامههای کاربردی اجرا خواهند شد. در زمان شروع به کار، Xen به حافظه ring0 مراجعه مینماید و ماشین مجازی پایه که Domain0 خوانده میشود را در ring1 اجرا میکند. از این Domain دیگر Domainها ساخته، حذف و جایگزین میشوند.
ویژگی دیگر Xen این است که درایورهای سختافزاری را در Domain0 اجرا میکند بنابراین Xenبه توابع و ماژولهای سختافزاری موجود در هسته سیستمعامل لینوکس تکیه میکند و خود را از طراحی و ساخت ماژولهای سختافزاری برای ماشینهای مجازی فارغ مینماید.
XenAPI چیست ؟
یک رابط برای تنظیم و کنترل مهمان های مجازی سازی شده در حال اجرا روی یک میزبان که Xen را اجرا کرده است . در واقع هسته اصلی XCP و XenServer ،XAPI است چراکه قابلیت های اضافه ای نسبت به Xen در اختیار کاربر قرار می دهد . از جمله این قابلیت های اضافه می توان به موارد زیر اشاره کرد :
توسعه نرم افزار برای پوشش میزبان های مختلف
افزایش چرخه عمر VM
فعال سازی ردیابی رویداد
ایجاد امکان ارتقا
Openstack با کمک XenAPI ، میتواند هم روی XCP و هم روی XenServer پیاده سازی شود . در واقع هربرنامه ای که روی XenServer اجرا می شود روی XCP ( آخرین نسخه اش ) هم اجرا خواهد شد.
اگر تصمیم بگیریدopenstack را روی XCP یا XenServerنصب کنید ، روی domU قرار خواهد گرفت . معماری این نصب شبیه شکل زیر خواهد بود :
همانطور که در شکل هم قابل مشاهده است :
فوق ناظرXen است .
در Domain 0 ، xapi و بخش هایی از openstack اجرا می شوند .
کدهای nova-compute روی DomU اجرا می شوند .می توانیم چندین ماشین مجازی paravirtualize شده رو اجرا کنیم و روی هرکدام نمونه ها (instance) هایی از nova-compute رو اجرا کنیم . البته nova-network هم مدیریت آدرس های مستاجرهای ماشین مجازی را از طریق DHCP انجام می دهد .
Nova ، کتابخانه پایتون XenAPI را برای گفتگو با xapi بکار می برد . برای اینکار شبکه مدیریت داخلی میزبان را بکار می برد تا بتواند بدون ترک میزبان از dom0 به domU برسد .
برای توضیح بیشتر این معماری و درک درست تر کاربرد XenServer و XCP به همراه openstack ، شروع به نصب openstack برروی Xen نموده ام . نتیجه کار را در فرصت آتی در اختیار شما نیز قرار خواهم داد .
لازم میدونم از همکار بزرگوارم جناب مهندس صابری برای بیان این طرح در ذهنم تشکر کنم