ورود به حساب کاربری

نام کاربری *
رمز عبور *
مرا به خاطر بسپار.

بنیاد توسعه رایانش سریع و ابری

HPC and Cloud Computing Development Foundation

معرفي چارچوب زير ساخت به عنوان سرويس OpenNebula

در سال هاي اخير روند رو به رشدي در استفاده از متن باز[1] مشاهده مي شود . OpenNebula يك سكوي نرم افزاري متن باز براي رايانش ابري است و وظيفه كلي آن مديريت تهيه ماشين هاي مجازي براي فراهم نمودن زير ساخت به عنوان سرويس در ابر است و جايگزيني مهم براي افرادي است كه نمي خواهند از ابر هاي تجاري استفاده نمايند. اين سكو به ميزان زيادي از قابليت سفارشي سازي براي راهبران و كاربران پشتيباني مي نمايد . OpenNebula يكي از پيشرفته ترين و مقياس پذير ترين ابزار هاي رايانش ابري متن باز مي باشد. اگر كه بخواهيد بدانيد كه رايانش ابري چيست و چگونه محقق مي شود، يا نياز به راهي ساده و آسان براي مديريت زير ساخت شلوغ و آشفته خود به يك روش ساده و منسجم داريد، راه درستي را انتخاب نموده ايد. تقریبا 8 سال از زمانی که اولین نگارش OpenNebula که یک پروژه دانشگاهی حاصل از جمع آوری نتایج تحقیقات در زیر ساخت های توزیع شده ی ابری منتشر شده است می گذرد.

OpenNebula از لحاظ طراحی بسیار سبک است (از نظر وابستگی ها و مولفه ها)، به آسانی توسعه داده می شود و مقیاس پذیر مي باشد. همچنین طراحی کاملا کارای آن به جهت استقرار چابک[2] و انعطاف پذیري در ابر، در سرتاسر دنیا به اثبات رسیده و مورد پذیرش قرار گرفته است. OpenNebula يك پروژه متن باز فعال با اجتماعي از كاربران و توسعه دهندگاني است كه تعداد آن ها هر ساله بيش از دو برابر مي شود. OpenNebula چندين هزار بار در ماه از سايت رسمي خود دانلود مي گردد و در چندين محيط با مقياس بزرگ استفاده مي شود. OpenNebula به پيكربندي سخت افزاري يا نرم افزاري خاصي نياز ندارد. شما بايد يك سرور (يا لپ تاپ) به همراه نصب يك توزيع جديد از گنو لينوكس كه ما دبيان يا اوبانتو را ترجيح مي دهيم، داشته باشيد. OpenNebula به عنوان يك پروژه تحقيقاتي توسط گروه تحقيقاتي معماري سيستم هاي توزيع شده (DSA[3]) با مقدار كمي از ويژگي هاي نسخه هاي جاري در سال 2005 در مادريد اسپانيا آغاز به كار كرد و در سال 2008 به صورت كاملا متن باز منتشر شد و امروزه توسط اجتماع وسيعي از كاربران به صورت پويا در سراسر دنيا توسعه داده مي شود.


 

 تاريخچه ي OpenNebula.

تفاوت اصلي بين OpenNebula و ديگر راهكار هاي تجاري ابري، متن باز بودن كامل آن مي باشد كه تضمين كننده ي يكپارچگي با هر مولفه ي زير ساخت موجود است.  بنابراين اين موضوع از وابستگي به فروشندگاندر استفاده از استاندارد هاي صنعتي باز رايج مانند API هاي EC2 و OCCI[4] جلوگيري مي نمايد. بر خلاف ديگر جايگزين هاي متن باز، OpenNebula ناظر[5] خاصي را شامل نمي شود. همچنين نيازي به ملزومات زير ساختي خاصي ندارد، به خوبي با محيط هاي از پيش موجود، ذخيره سازي، شبكه يا سياست هاي مديريت كاربر هماهنگ مي شود. به دليل مدل افزونه اي[6] كه در پياده سازي OpenNebula به كار رفته است، به يكپارچه كنندگان سيستم، امكان سفارشي نمودن هر جنبه اي مانند مجازي سازي، ذخيره سازي، اطلاعات، اعتبارسنجي[7]، تعيين اختيارات[8] و سرويس هاي ابري راه دور را فراهم مي نمايد. هر عملي توسط يك اسكريپت bash مديريت مي شود كه مي تواند به آساني اصلاح گردد يا به ديگر اسكريپت هاي سفارشي ديگر و يا با نرم افزار هاي نوشته شده به هر زباني كه توسط سيستم عامل پشتيباني گردد وصل شود. شكل شماره 5 به فهم بيشتر اين كه كدام مولفه ها در OpenNebula وجود دارند و همچنين سطحي كه در آن به ايفاي نقش مي پردازند كمك مي نمايد (سطوح پايين تر به طور مستقيم با منابع ميزبان[9] تعامل برقرار مي كنند و سطوح بالاتر با واسط هاي كاربر تعامل برقرار مي نمايند).


 

  معماري منطقي OpenNebula .

در پايين ترين سطح، درايور ها وجود دارند كه به طور مستقيم با مولفه هاي نرم افزاري سيستم عامل ارتباط برقرار مي نمايند. اين درايور ها عبارتند از 1) درايور هاي انتقال كه  اين درايور ها براي مديريت image هاي ديسك سيستم ذخيره سازي، مانند سيستم هاي ذخيره سازي اشتراكي[10] مانند NFS[11] يا iSCSI[12] يا سيستم هاي ذخيره سازي غير اشتراكي[13] مانند يك كپي ساده بر روي[14]SSH استفاده مي شوند، 2) درايور هاي ماشين مجازي كه اين درايور ها مخصوص ناظر[15] هستند و براي مديريت نمونه هاي ماشين مجازي بر روي ميزبان فعلي به كار مي روند و 3) درايور هاي اطلاعات كه اين درايور ها براي بازيابي وضعيت فعلي نمونه هاي ماشين مجازي و ميزبان ها به كار مي روند. اين درايور ها مخصوص ناظر نيز هستند و از طريق SSH در هر ميزبان فيزيكي كپي مي گردند و از راه دور اجرا مي شوند. تمام اطلاعات مانيتور شده كه از ميزبان هاي فيزيكي و نمونه هاي ماشين مجازي گردآوري شده اند به همراه پيكربندي هر ماشين مجازي، image هاي ديسك موجود (كاتالوگ image ها) و شبكه هاي مجازي، در يك پايگاه داده ساده SQLite يا يك پايگاه داده MySQL ذخيره مي شوند. اين اطلاعات به آساني توسط اسكريپت هاي سفارشي سازي شده يا نرم افزار، بسته به نياز هاي زير ساخت، بازيابي يا تغيير داده مي شوند. اربر مي تواند از مزيت API هاي ابري OpenNebula كه به صورت هاي Java، Ruby و XML-RPC در دسترس هستند بهره ببرد.

اين مسئله، دسترسي به تمامي توابع موجود را ممكن مي سازد و اجازه مي دهد تا يك يكپارچگي ساده از روال هاي سفارشي سازي شده، قبل و بعد از استاندارد سازي آن ها انجام شود. به جهت مسائل كارايي، هسته ي OpenNebula با كد هاي بسيار بهينه سازي شده ي C++ نوشته شده است كه باعث ارايه مقياس پذيري بالا مي شود. نمونه اي خوب از استحكام آن، نمونه ي زير ساخت CERN است كه در بهار سال 2010 تعداد 480 سرور ميزبان را مديريت مي نمود. اين سرور هاي ميزبان، تعداد 16000 نمونه ي ماشين مجازي را مديريت مي نمودند. امنيت نيز به طور جدي در نظر گرفته شده است. ارتباطات ميزبان ها منحصرا از طريق اتصال هاي امن كه با زوج كليد هاي SSH RSA و پروتكل SSL[16] محافظت مي شوند صورت مي گيرد. هر شبكه مجازي با يك ديوار آتش ebtables محصور شده است. اين امكان در سطح ARP[17] كار مي كند كه در پشته ي OSI در لايه پيوند داده ها شناخته مي شود. OpenNebula يك تيم اختصاصي تضمين كيفيت دارد كه با تست هاي unit و functional به همراه دامنه ي وسيعي از سناريو ها سر و كار دارند. اين مسئله به ميزان زيادي تعداد خطا[18] ها را كاهش مي دهد يا حداقل به ميزان زيادي كاربر را از چنين خطا هايي آگاه مي سازد. همچنين يك سيستم يكپارچه سازي پيوسته به نام Hudson وجود دارد كه به صورت خودكار هر مجموعه تغييري كه توسط توسعه دهندگان به OpenNebula وارد مي شود را تست مي نمايد. اين نوع اعمال باعث مي شود مردم براي استفاده از OpenNebula بيشتر جذب شوند و در توسعه پرژه شركت نمايند. به دليل تقاضا هاي بالا در اواسط سال 2010 آزمايشگاه هاي C12G براي پشتيباني هاي رسمي اين پروژه تاسيس شدند.

اولين مراحل كار با OpenNebula به سمت محقق سازي ابر خصوصي است. يك ابر خصوصي هيج API اي را به كار نمي برد و هر منبع فقط براي اهداف داخلي استفاده مي شود. هنگامي كه منابع ابر براي كاربران از طريق مجموعه اي از API هاي از پيش تعريف شده موجود باشند، اين ابر، عمومي ناميده مي شود. هنگامي كه از منابع خارجي براي بهبود ابر شما استفاده مي شود و يا شما منابع محلي خود را در دسترس كاربران ديگر قرار مي دهيد و يا هر دو مورد، اين ابر، تركيبي ناميده مي شود. براي آغاز به كار با ابر خصوصي، مي توانيم مجموعه اي از ويژگي ها را در OpenNebula به شرح زير شناسايي نماييم:

·        مديريت كاربر: پيكربندي كاربران متعدد امكان پذير است، افراد فقط به نمونه هاي خود دسترسي خواهند داشت، قابليت حسابرسي براي منابع استفاده شده وجود دارد و سهم بندي نيز ممكن شده است.

·        مديريت image ماشين مجازي: هر image ديسك ثبت شده و توسط كاتالوگ مركزي مديريت شده است.

·        مديريت شبكه مجازي: تعريف چندين شبكه به واسط هاي فيزيكي مختلف با تخصيص آدرس IP ايستا يا پويا ممكن شده است.

·        مديريت ماشين مجازي: هر ماشين مجازي مجموعه ويژگي هاي خودش را دارد (به عنوان مثال CPU، حافظه، ذخيره سازي ديسك و شبكه ي مجازي) و مي تواند تحت هر ناظري روي كلاستر اجرا شود.

·        مديريت سرويس: يك گروه از ماشين هاي مجازي مي توانند جهت استقرار، با هم در زمان راه اندازي[19] گروه بندي شوند و هر ماشين مجازي مي تواند در زمان راه اندازي بدون نياز به تخصيص image هاي ديسك مختلف براي ماشين هاي يكسان، پيكربندي شود.

·        مديريت زير ساخت: ميزبان هاي فيزيكي مي توانند به تنهايي يا به صورت گروهي روي كلاستر هاي مستقل مديريت شوند و اين مسئله هنگامي مفيد است كه يك محيط ناهمگن داشته باشيم.

·        مديريت ذخيره سازي:‌ پشتيباني از اغلب راهكار هاي رايح ذخيره سازي در مراكز داده مانند FibreChannel، iSCSI و ذخيره سازي اشتراكي مانند NAS[20] با پشتيباني خاص مديريت image ديسك نوري، انجام شده است.

·        مديريت اطلاعات: هر ميزبان و هر ماشين مجازي به صورتي فعال هر چند ثانيه مانيتور مي شود و اين مسئله قبلا توسط ابزار هاي استاندارد مانيتورينگ مانند Ganglia در دسترس قرار گرفته بوده است.

·        زمانبندي: ماشين هاي مجازي كه روي گره هاي ميزبان مستقر مي شوند از نيازمندي هاي خاص كاربر و سياست هاي آگاه از منبع[21] مانند packing، striping يا load-aware پيروي مي كنند.

·        واسط كاربر: OpenNebula شامل ابزار هاي خط فرمان براي مديريت هر جنبه اي از خود مي باشد (مانند وضعيت كلاستر، وضعيت ماشين هاي مجازي، مخزن image و ...).

·        مركز عمليات[22]: اغلب اطلاعات و وظايف موجود از طريق خط فرمان، روي واسط هاي وب قابل مرور با هر مرورگر امروزي روي هر سيستم عاملي (حتي گوشي هاي هوشمند Android يا تبلت ها) در دسترس هستند.

براي آغاز به كار با ابر تركيبي كه هم از منابع محلي و هم از منابع راه دور استفاده مي نمايد، دو ويژگي اصلي در OpenNebula وجود دارند كه عبارتند از 1) Cloud-bursting كه اين ويژگي عبارت است از قابليت افزودن منابع محاسباتي به زير ساخت محلي با استفاده از منابع خارجي به منظور مواجه شدن با حداكثر ميزان نيازمندي ها[23] يا پياده سازي استراتژي هاي در دسترس بودن بالا[24] واكنش به تهديد ها و 2) Federation كه اين ويژگي عبارت است از قابليت تركيب كلاستر هاي مختلف با هم، جا به جا نمودن در محل هاي فيزيكي مختلف، فعال سازي سطوح بالاتري از مقياس پذيري و قابليت اطمينان. براي يك ابر عمومي، ويژگي اصلي، در دسترس قرار دادن منابع ابر توسط يك يا چند واسط استاندارد به كاربران خارجي است. مانند واسط هاي ابري كه با استفاده از واسط هاي OCCI و API استاندارد EC2 دسترس پذيري منابع ابر را به يك روش امن براي كاربران خارجي ممكن مي سازند.

به خاطر داشته باشید که توصیه های زیر فقط ایده ای نسبت به نوع سخت افزار مورد نیاز به شما خواهند داد. هر زیر ساختی نیازمندی های خود را می طلبد و سنجش شما می تواند متفاوت باشد.

4-6-2-1-CPU

یکی از جذاب ترین نکاتی که وجود دارد این است که هیچ نیازمندی سخت افزاری خاصی برای میزبان های ابر شما وجود ندارد به جز داشتن یک CPU با قابلیت پشتیبانی از مجازی سازی. در لینوکس فایلی وجود دارد که مشخصات CPU در آن قرار گرفته است و با اجرای دستور زیر می توان به آن مشخصات دست پیدا نمود:

egrep ‘(vmx|svm)’ /proc/cpuinfo|wc -l

 در واقع در این دستور به دنبال فلگ های vmx برای پردازنده های Intel و svm برای پردازنده های AMD می گردیم. اگر خروجی این دستور 0 باشد به این معناست  که یا CPU از مجازی سازی پشتیبانی نمی نماید یا اینکه این قابلیت باید در تنظیمات Setup فعال گردد، در غیر این صورت این دستور تعداد هسته های CPU را بر می گرداند. پشتیبانی از مجازی سازی پیوسته در CPU ها در حال بهبود است و شرکت های بزرگ مانند Intel و AMD ویژگی های خاصی را برای افزایش کارایی در محیط های مجازی سازی شده در CPU های خود قرار می دهند. جدول شماره 1 به طور خلاصه فلگ های رایج CPU را با توضیحی مختصر از آن ها ارایه می دهد.


فلگ هاي رايج CPU .

 

4-6-2-2-حافظه

دومین مسئله ای که باید در هنگام برنامه ریزی برای زیر ساخت سخت افزاری در نظر گرفته شود، مقدار حافظه ی سرور ها است. این مقدار به نوع کاربرد و تعداد نمونه های ماشين مجازي که بر روی ابر اجرا خواهند شد وابسته است. بر اساس اندازه حافظه می توان سه دسته را مشخص نمود كه عبارتند از 1) برای ماشین های مجازی کوچک مانند برنامه های کاربردی تحت وب با ترافیک پایین، برای هر ماشین مجازی 256 MB کافی است، 2) برای ماشین های با اندازه متوسط مانند سرور های پایگاه داده که مقدار حافظه ي نهان آن ها برای رسیدگی به درخواست ها کم است، مقدار 1 GB کافی است و 3) برای ماشین های مجازی با اندازه ی بزرگ مانند سرور های برنامه های کاربردی جاوا، 2 GB برای هر نمونه، اغلب مورد نیاز است. به خاطر داشته باشید که 4 GB برای آغاز به کار خوب است اما به آسانی می توانید این مقدار را افزایش دهید تا توازن بهینه ای با قدرت CPU موجود برقرار شود.

4-6-2-3-دیسک و RAID

اگر قبلا مجازی سازی را تجربه نموده باشید ممکن است بدانید که تگنا در چنین محیط هایی اغلب ورودی/خروجی دیسک است. با تعداد زیادی از ماشین های مجازی که به صورت همروند اجرا می شوند، حتی با درخواست های خواندن و نوشتن کوتاه، رسیدن به حداکثر عمليات ورودی/خروجی در ثانیه[26] که توسط دستگاه های ذخیره سازی پشتیبانی می شود، به سرعت رخ می دهد. انتخاب های مانند [27]SATA-2 با سرعت 7200 دور در دقیقه[28] می توانند برای آغاز به کار خوب باشند. این مدل برای کاربرد هایی که تگنای محاسباتی[29] و تگنای شبکه ای[30] دارند مانند سرور های برنامه های کاربردی جاوا، وب سرور ها و پایگاه داده های با بار کاری کم، کافی هستند. به محض این که به تگنای SATA-2 رسیدیم باید به دستگاه های ذخیره سازی [31]SAS (یا معادل آن ها) سویچ کنیم که سرعتی برابر با 10 هزار دور تا 15 هزار دور در دقیقه دارند. تجهیزات SAS اغلب برای کاربرد های با ترافیک بالا یا پایگاه داده های بزرگ با هزاران درخواست در دقیقه مورد نیاز می باشند. قيمت تجهيزات SAS به مراتب از تجهيزات SATA-2 بيشتر است. امروزه ديسك هاي solid-state رايج شده اند و مي توانند هم از لحاظ قيمت و هم از لحاظ سرعت مناسب باشند. به دليل اينكه اين نوع ديسك ها، هد هاي خواندن و نوشتن متحرك ندارند، زمان جستجوي[32] آن ها صفر است و در محيط هايي با تعداد بالاي خواندن و نوشتن هاي تصادفي، بسيار خوب عمل مي نمايند. جدا از تجهيزات فيزيكي، رايج ترين تكنيك براي بهبود كارايي و قابليت اطمينان ديسك ها، RAID[33] (آرايه افزونه از ديسك هاي مستقل) است. RAID مجموعه اي از چند ديسك سخت است كه در يك واحد منطقي گروه بندي مي شوند و پيكربندي هاي مختلفي دارد. استفاده از RAID نرم افزاري لينوكس، نقطه ي آغاز خوبي است و ثابت شده است كه براي استفاده در سطح سازمان ها هم قابل اطمينان است، همچنين هزينه اضافه اي نيز براي كارت اضافه ي RAID در بر ندارد. هر توزيع رايج از گنو لينوكس شامل پشتيباني از پيكربندي RAID نرم افزاري در هنگام فرآيند نصب مي باشد. از طرف ديگر RAID هاي سخت افزاري ، كارايي بهتري دارند و در هنگام خرابي ديسك بهتر عمل مي نمايند.

4-6-2-4-كارت شبكه

انتخاب  كارت شبكه به بار كاري شما وابسته است و توصيه مي شود اگر قصد استفاده از پيكربندي ذخيره سازي اشتراكي (مانند NFS، iSCSI و AoE) را داريد، حداقل يك كارت گيگابيت اترنت يا بهتر از آن موجود باشد .

4-6-3- پيكربندي هاي رايج مورد نياز براي كار با OpenNebula

OpenNebula به يك ساختار نصب كلاستر مانند براي frontend احتياج دارد كه شامل واسط مديريتي و تعدادي گره كلاستر است. در يك زير ساخت كوچك، استفاده از گره frontend به عنوان يك گره كلاستر نيز مشكلي ايجاد نمي كند. در زير ساخت هاي بزرگ تر، گره frontend مي تواند به تعدادي CPU، حافظه و منابع ديسك نياز داشته باشد كه بايد در يك گره ي منفرد قرار گيرند. شكل زیر نشان دهنده ي پيكربندي يك سيستم OpenNebula است.

 

پبكربندي يك سيستم OpenNebula ].

مولفه هاي پايه براي يك سيستم OpenNebula به شرح زير هستند:

·        frontend: اين مولفه، سرويس هاي OpenNebula را اجرا مي نمايد.

·        ميزبان ها: بر روي اين گره ها ناظر ها وجود دارد كه به طور فيزيكي بر روي زير ساخت اجرا مي شوند.

·        مخزن Image: اين مولفه، Image هاي پايه ي ماشين هاي مجازي را نگهداري مي نمايد.

·        شبكه ي فيزيكي: اين مولفه VLAN را براي پيوند هاي زير ساخت ماشين هاي مجازي (مانند ذخيره سازي) فراهم مي نمايد.

 نيازمندي هاي نرم افزاري frontend

ماشيني كه OpenNebula را اجرا مي نمايد، frontend ناميده مي شود. سرويس ها OpenNebula شامل مولفه هايي هستند كه عبارتند از daemon مديريت (oned)، زمانبند ماشين مجازي (mm_sched)، daemon نظارت[34] و حسابرسي[35] (onecctd)، سرور واسط وب (Sunstone)، سرور هاي API ابر (EC2-query و يا OCCI). به ياد داشته باشيد كه اين مولفه ها با يكديگر از طريق واسط XML-RPC ارتباط برقرار مي نمايند و به دلايل امنيت يا كارايي مي توانند بر روي ماشين هاي متفاوتي نصب گردند.

 نيازمندي هاي نرم افزاري ميزبان

ميزبان ها، ماشين هاي فيزيكي هستند كه ماشين هاي مجازي را اجرا خواهند نمود. ميزبان ها به صورت مستقيم توسط daemon هاي OpenNebula كه بر روي frontend اجرا مي شوند و با استفاده از SSH ارتباط برقرار مي نمايند، مديريت مي شوند. نيازي به نصب بسته هاي خاص OpenNebula بر روي هيچ كدام از ميزبان ها نمي باشد و تنها نيازمندي هاي آن ها عبارتند از 1) يك سرور SSH كه با قابليت اعتبارسنجي كليد عمومي اجرا شده باشد، 2) يك ناظر مانند Xen/KVM و 3) يك زبان برنامه نويسي متن باز مانند Ruby 1.8.4.

- مخزن image و ذخيره سازي

OpenNebula براي مديريت فايل هاي image ماشين هاي مجازي، داراي مخزن image است و بايد از طريق frontend با استفاده از يك فناوري مناسب، مانند NAS، SAN، direct attached storage يا سيستم فايل توزيع شده ي شبكه ي گنو لينوكس قابل دسترس باشد. مخزن image متعلق به OpenNebula با يا حتي بدون ذخيره سازي مشترك بين ميزبان ها به صورت زير مي تواند كار كند:

·        با ذخيره سازي مشترك: مي توانيد از قابليت هاي ناظر مانند Live Migration و سرعت بخشيدن به زمان استقرار ماشين مجازي كاملا بهره ببريد.

·        بدون ذخيره سازي مشترك: فايل هاي image ماشين مجازي از يك ميزبان به ديگري قبل از اجرا يا migration ماشين مجازي منتقل خواهند شد و شما تنها قادر به cold migration خواهيد بود.

مخزن image براي ذخيره ي تمامي image هاي ماشين هاي مجازي روي زير ساخت، بايد به اندازه ي كافي بزرگ باشد. هنگام آغاز به كار يك ماشين مجازي مي تواند براي كار با كپي هاي يكساني از image هاي اصلي پيكربندي شود يا به صورت مستقيم از يك image موجود در مخزن استفاده نمايد. به عنوان نمونه، يك كلاستر 64 هسته اي كه 80 ماشين مجازي را اجرا مي نمايد و هر ماشين مجازي به طور متوسط نياز به 10 گيگابايت فضاي ديسك دارد را در نظر بگيريد. بنابراين نياز به 800 گيگابايت فضا براي دايركتوري /var/lib.one مي باشد. همچنين نياز به ذخيره 10 تا 15 عدد image اصلي داريم كه حدود 200 GB براي دايركتوري /var/lib/one/images مورد نياز خواهد بود. بنابراين در مجموع براي نياز هاي ياد شده 1 TB فضا كافي است .

 

مخزن image و ذخيره سازي در OpenNebula [.

 سريع ترين روش براي راه اندازي و اجراي OpenNebula

علاوه بر اينكه OpenNebula را مي توان بر روي يكي از توزيع هاي لينوكس، نصب و اجرا نمود، اين قابليت نيز وجود دارد تا يك نسخه ي از پيش تنظيم شده را از سايت رسمي OpenNebula دريافت نمود و از آن استفاده كرد. اين نسخه ي از پيش تنظيم شده را Cloud Sandbox مي نامند. سكو مجازي سازي براي اجراي Cloud Sandbox با 4 نوع VirtualBox، KVM، VMware ESX و Amazon موجود مي باشد. فلسفه چنين نسخه اي اين است كه بتوان يك ابر واقعي را در مدت زمان كوتاهي به عنوان مثال بر روي لپ تاپ راه اندازي نمود.  در اين سمينار براي تست و اجرا از اين روش استفاده خواهيم نمود. نسخه مورد استفاده ي ما سيستم عامل CentOS 6.3 به همراه OpenNebula كه از پيش تنظيم شده اند و در قالب فرمت استاندارد VMware ارايه گرديده اند مي باشد. براي آغاز به كار در سايت رسمي OpenNebula[36] بر روي منوي Try out كليك مي نماييم و از قسمت Cloud Sandbox گزينه ي VMware ESX را انتخاب مي نماييم و در مرحله ي بعدي، روي گزينه ي دانلود كليك مي نماييم. OpenNebula 3.8 ESX Sandbox يك image ماشين مجازي سيستم عامل لينوكس CentOS 6.3 64-bit است كه به همراه front-end مربوط به OpenNebula 3.8.1 از قبل تنظيم شده است و ميزبان مجازي سازي آن از QEMU استفاده مي نمايد. اين مجموعه براي تجربه كامل و غني يك محيط ابري آماده سازي گرديده است. هر نسخه اي از VMware قابل استفاده مي باشد و در صورت سازگار نبودن مي توان از ابزار هاي تبديل استفاده نمود. ما در اين سمينار از محصول VMware Workstation 9 استفاده مي نماييم. بعد از نسخه ي بسيار فشرده ي آن كه حدود 683 MB مي باشد استفاده مي نماييم و با استفاده از ابزار 7-Zip در ويندور مي توان اين فايل را از حالت فشرده خارج نمود كه براي اين كار به 10 GB فضاي خالي نياز مي باشد. براي ساخت ماشين مجازي در VMware Workstation دقت كنيد كه ماشين مجازي بايد حداقل 512 MB حافظه ي اصلي داشته باشد و image اي كه از حالت فشرده خارج شده است را بايد به عنوان ديسك سخت اين ماشين مجازي تعريف نماييم. بعد از روشن نمودن ماشين مجازي تعريف شده، سيستم عامل لينوكس CentOS 6.3 64-bit آغاز به كار مي نمايد و بعد از راه اندازي آن مي توان با كلمه ي كاربري root به همراه كلمه ي عبور از پيش تعريف شده ي opennebula وارد فضاي كاري كاربر root شد. يكي از مهم ترين اقداماتي كه بايد در اين مرحله انجام شود دانستن آدرس IP ماشين مجازي تعريف شده مي باشد. براي اين كار كافي است تا از دستور ifconfig eth0 در محيط لينوكس استفاده نمايم.

 توضيحاتي پيرامون محيط Sunstone

بعد از بدست آوردن آدرس IP كه در بخش قبل گفته شد، مي توانيم با استفاده از آدرس http://<IP>:9869 وارد محيطSunstone  شويم. محيطSunstone  محيطي است كه براي راهبران و كاربران ابر خصوصي جهت مديريت ابر به كار برده مي شود. اين محيط در يك مرورگر اينترنتي اجرا مي گردد كه خود OpenNebula براي حداكثر بهره وري و سازگاري مرورگر هاي Mozilla Firefox و يا Google Chrome را پيشنهاد مي نمايد. بعد از ورود به محيطSunstone  كافي است تا با نام كاربري oneadmin و كلمه ي عبور opennebula وارد شويم. تمامي فرمان هاي قابل اجرا در محيط گرافيكي Sunstone داراي معادل هايي در محيط خط فرمان نيز مي باشند كه در اينجا به لحاظ رعايت اختصار در نوشتار، گفته نمي شوند. در سمت چپ محيط Sunstone پنج بخش وجود دارد كه در ادامه به توضيح مختصر هر يك مي پردازيم (تمامي اطلاعات به صورت گراف و نمودار به صورتي كاملا حرفه اي نمايش داده مي شوند).

-بخش Dashboard

در اين بخش اطلاعاتي به صورت گراف و نمودار در مورد ميزبان ها، مانند تعداد و وضعيت آن ها، وضعيت و ميزان استفاده از CPU توسط آن ها و ميزان استفاده از حافظه ي اصلي توسط آن ها نمايش داده مي شود. همچنين اطلاعاتي در مورد ماشين هاي مجازي مانند تعداد و وضعيت آن ها، پهناي باند upload و download و نرخ انتقال كل نمايش داده مي شود. همچنين اطلاعاتي در مورد كلاستر ها مانند ميزان CPU تخصيص داده شده در هر كلاستر و ميزان حافظه ي تخصيص داده شده در كلاستر نمايش داده مي شود. همچنين اطلاعاتي در مورد كاربران و گروه ها مانند تعداد كل كاربران، تعداد كل گروه ها و تعداد كاربران در هر گروه نمايش داده مي شوند. اين بخش داراي بخشي با عنوان Configuration است كه در آن مي توان زبان واسط كاربري Sunstone را مشخص نمود. جالب اينجاست كه زبان فارسي نيز در بين آن ها ديده مي شود. همچنين داراي گزينه اي است كه امكان استفاده از SSL را جهت بالا بردن امنيت در اين محيط فراهم مي نمايد.

-بخش System

در اين بخش، كاربران، گروه ها و ليست هاي كنترل دسترسي مشخص مي شوند. گفتني است كه مديريت منابع سيستم تنها توسط كاربران گروه oneadmin قابل دسترس است. اين بخش داري 3 قسمت به شرح زير است:

·        Users: در اين زير قسمت مديريت كاربران مانند تعريف، تغيير كلمه ي عبور، تغيير ميزان سهم آن ها، تغيير روش اعتبارسنجي و حذف انجام مي گردد. همچنين مشخصات گروهي كه كاربران در آن عضو هستند، نوع درايور اعتبار سنجي، تعداد ماشين هاي مجازي، ميزان حافظه ي استفاده شده و ميزان CPU استفاده شده توسط كاربران نيز در اين زير منو نمايش داده مي شوند. همچنين گزارش هاي داراي بازه ي زماني به صورت گراف و نمودار در مورد ميزان CPU، حافظه، پهناي باند ورودي شبكه و پهناي باند خروجي شبكه ي استفاده شده توسط كاربران نير در اين زير منو موجود مي باشند. در مورد ميزان سهم ها بايد گفت كه در OpenNebula براي كاربران 4 نوع سهم بندي وجود دارد كه عبارتند از:

1)     ماشين مجازي: از لحاظ حداكثر تعداد، حداكثر ميزان حافظه و حداكثر ميزان CPU

2)     ذخيره سازي داده ها: از لحاظ حداكثر اندازه و حداكثر image ها

3)     image: از لحاظ حداكثر تعداد قابل تعريف از هر نوع image تعريف شده در OpenNebula

4)     شبكه: از لحاظ حداكثر ميزان قابل استفاده

·        Groups: در اين زير قسمت مديريت گروه ها مانند تعريف، تغيير ميزان سهم آن ها (همان 4 نوع زير منوي Users) و حذف انجام مي گردد. همچنين عنوان كاربراني كه در گروه ها وجود دارند، تعداد ماشين هاي مجازي استفاده شده توسط گروه ها، ميزان حافظه ي استفاده شده و ميزان CPU استفاده شده نيز در اين قسمت قابل مشاهده هستند. همچنين گزارش هاي داراي بازه ي زماني به صورت گراف و نمودار در مورد ميزان CPU، حافظه، پهناي باند ورودي شبكه و پهناي باند خروجي شبكه استفاده شده توسط گروه ها نير در اين قسمت موجود مي باشند.

·        ACLs[37]: در اين قسمت قوانيني تعريف مي شوند كه به كاربران و گروه ها اجازه دسترسي به منابع (ميزبان ها، كلاستر ها، ذخيره ساز هاي داده، ماشين هاي مجازي، شبكه هاي مجازي، Image ها، Template ها، كاربران، گروه ها و اسناد) جهت استفاده، مديريت، راهبري و ايجاد را مي دهند.

بخش Virtual Resources

در اين بخش مديريت Template ها، نمونه ها و ذخيره سازي image هاي ماشين هاي مجازي انجام مي گردد. Template هاي ماشين مجازي مي توانند به تعداد دلخواه نمونه سازي شوند. اين بخش داراي 3 قسمت به شرح زير است:

·        Virtual Machines: اين قسمت براي تعريف ماشين هاي مجازي استفاده مي شود. در هنگام تعريف ماشين مجازي، نام، Template و تعداد نمونه هاي درخواستي بايد مشخص شوند. در هنگام كار با يك ماشين مجازي در قسمت وضعيت آن يكي از حالت هاي چرخه ي حيات ماشين هاي مجازي نوشته مي شود. همچنين در اين قسمت نام كاربر مالك ماشين مجازي، گروهي كه مالك عضو آن است، نام ميزباني كه ماشين مجازي بر روي آن اجرا مي شود، IP ماشين مجازي و لينك دسترسي به ماشين مجازي از طريق VNC قابل دسترس است. از طريق اتصال VNC به راحتي مي توان وارد يك ماشين مجازي شد و از طريق سيستم عامل آن ماشين مجازي، عمليات مورد نظر را انجام داد. همچنين مي توان عمليات تغيير ويژگي ها، تغيير مالك، Shutdown، Deploy، Migrate، Live migrate، Hold، Release، Suspend، Resume، Stop، Restart، Resubmit، Power Off، Reboot، Reset، Cancel و Delete را بر روي يك ماشين مجازي انجام داد. همچنين در اين قسمت مي توان مجوز ها و مشخصات ماشين مجازي، اطلاعات مانيتورينگ مانند ميزان حافظه ي استفاده شده، ميزان CPU استفاده شده، پهناي باند ورودي و خروجي استفاده شده ي شبكه را مشاهده نمود. همچنين مي توان بر روي ديسك يك ماشين مجازي  عمليات Attach، Detach را به صورت Hot plug انجام داد. تمامي وضعيت هاي ماشين مجازي از قبيل كارت شبكه و مشخصات آن، وضعيت ديسك، وضعيت واسطي كه براي ارتباط گرافيكي با ماشين مجازي استفاده مي شود مانند VNC و حتي Port اي كه ارتباط از طريق آن انجام مي شود، log هاي ماشين مجازي و بسياري اطلاعات مفيد ديگر در مورد ماشين مجازي در اين قسمت قابل دسترس مي باشند.

·        Templates: در اين قسمت Template ها تعريف مي گردند. يك Template مشخص كننده ي مشخصات كامل يك ماشين مجازي براي ايجاد شدن است مانند اينكه از چه ناظري استفاده شود، ميزان حافظه و CPU آن چقدر باشد، ويژگي هاي عمليات راه اندازي و سيستم عامل از قبيل معماري پردازنده، روش راه اندازي، انتخاب دستگاه (ديسك سخت، فلاپي ديسك، CDROM) و يا شبكه اي كه بايد راه اندازي از روي آن صورت گيرد، ويژگي هايي مانند PAE و ACPI، افزودن ديسك يا image، تنظيمات شبكه و فايروال، نوع دستگاه هاي ورودي مانند ماوس و گذرگاه ها مانند USB، نوع گرافيك، تعريف متغير هاي محيطي و بسياري امكانات ديگر در قسمت موجود هستند. همچنين عمليات بروز رساني ويژگي ها، تغيير مالك و گروه، ايجاد كپي هاي يكسان و حذف نيز بر روي Template ها قابل انجام مي باشند.

·        Images: در اين قسمت مديريت Image ها انجام مي گيريد. يك Image مي تواند 3 نوع داشته باشد كه عبارتند از 1)سيستم عامل 2) CDROM و 3) Datablock. به عنوان مثال مي توان image هاي سيستم عامل دلخواه را بر روي OpenNebula آپلود نمود و Template اي براي آن ها تعريف كرد و از روي آن Template يك ماشين مجازي ساخت. اگر از روش Cloud Sandbox استفاده نماييد، يك image از نوع سيستم عامل ttylinux به طور پيش فرض وجود دارد. ttylinux يك نسخه بسيار سبك از لينوكس است. همچنين يك Template نيز براي ماشين هاي از نوع اين سيستم عامل تعريف گرديده است. بنابراين به راحتي مي توان ماشين هاي مجازي را از روي اين Template به تعداد دلخواه ايجاد نمود.

بخش Infrastructure

در اين بخش مديريت ميزبان ها، ذخيره سازي داده و شبكه هاي مجازي امكان پذير است. همچنين كاربران گروه oneadmin توانايي مديريت كلاستر ها را نيز دارند. اين بخش داراي 4 قسمت به شرح زير است:

·        Clusters: در اين قسمت امكان مديريت، تعريف، تغيير ويژگي ها و حذف كلاستر ها وجود دارد. همچنين ميزبان ها، شبكه هاي مجازي و Datastore هايي كه از كلاستر ها استفاده مي نمايند در اين قسمت نمايش داده مي شوند.

·        Hosts: در اين قسمت ميزبان ها تعريف، مديريت، بروز رساني، فعال، غير فعال و حذف مي شوند. همچنين كلاستر مورد استفاده، تعداد ماشين هاي مجازي اجرا شده، ميزان CPU و حافظه ي تخصيص داده شده و وضعيت ميزبان ها نيز قابل مشاهده هستند.

·        Datastores: در اين قسمت مديريت، تعريف، بروز رساني ويژگي ها، انتخاب كلاستر ها، تغيير مالك، مشاهده ويژگي ها و حذف Datastore ها انجام مي شود.

·        Virtual Networks: در اين قسمت مديريت شبكه هاي مجازي مانند تعريف، بروز رساني ويژگي ها، تغيير مالك، تغيير گروه، مشاهده ويژگي ها و حذف قابل انجام است. در هنگام تعريف يك شبكه ي مجازي مي توان حالت هاي مختلف شبكه مانند 802.1.Q، ebtables، Open vSwitch و VMware را انتخاب نمود، همچنين مي توان وضعيت Bridge و VLAN را نيز مشخص نمود. در مورد نوع شبكه دو حالت شبكه هاي ثابت و شبكه هاي Range دار قابل تعريف است. همچنين مي توان IP ها و MAC آدرس هاي موجود در شبكه را مشخص نمود. در اين قسمت مديريت IP ها و آدرس هاي MAC به راحتي قابل انجام است.

بخش Marketplace

محتواي اين بخش هنگامي فعال مي باشد كه به اينترنت متصل باشيم. در اين قسمت انواع محصولات قابل دانلود مرتبط با OpenNebula كه قابل افزودن به زير ساخت مي باشند، مانند انواع سيستم عامل هايي كه مي توان به عنوان image وارد OpenNebula نمود يا حتي انواع Sandbox هاي OpenNebula كه بر روي ناظر هاي مختلف اجرا مي شوند و محصولات مرتبط ديگر وجود دارد.

توضيحاتي پيرامون حالت هاي ماشين مجازي

فرامين زيادي براي مديريت نمونه هاي ماشين مجازي وجود دارند و هر فرمان فقط هنگامي مي تواند اجرا شود كه ماشين در حالت خاصي قرار گرفته باشد و اگر در صورتي كه ماشين مجازي در حالت نادرستي قرار داشته باشد تلاش كنيد فرماني را بر روي ماشين مجازي اجرا كنيد، پيام خطا دريافت خواهيد نمود. شكل شماره 10 تمامي انتقال حالت هاي ممكن را براي ماشين هاي مجازي نمايش مي دهد[.

 

 نمودار انتقال حالت هاي ممكن براي ماشين هاي مجازي در OpenNebula [.

 انتخاب سيستم عامل جهت نصب بر روي ماشين هاي مجازي

چارچوب OpenNebula براي نصب سيستم عامل بر روي ماشين هاي مجازي محدوديتي ندارد و هر دو خانواده سيستم عامل هاي Windows و Linux با معماري هاي مختلف بر روي آن قابل نصب مي باشند. با توجه به اينكه در اين سمينار هدف ارايه ي سيستم عاملي به مشتريان است كه بتواند ميزكار ابري EyeOS را به آن ها ارايه نمايد، و با توجه ملزومات نرم افزاري EyeOS كه پشته ي LAMP (سيستم عامل لينوكس، وب سرور آپاچي، سيستم مديريت پايگاه داده ي MySQL و PHP) مي باشد، بهتر است توزيعي از لينوكس ارايه شود كه بهينه باشد و بيشترين تناسب را با نياز هاي كاربر داشته باشد و هزينه ي اضافه اي نيز از جهت متن باز نبودن (مانند خانواده سيستم عامل هاي ويندوز) به مشتري تحميل نشود.

فرض بر اين است كه مشتري نه مي تواند وب سرور خريداري كند و نه مكاني براي قرار دادن آن دارد و نه نيرويي براي نگهداري از آن در اختيار دارد، در چنين شرايطي بايد با يك شركت قراردادي منعقد نمايد تا آن شركت يك وب سرور كامل (مجازي) با پايگاه داده و ديگر نرم افزار هاي كاربردي تحت وب را براي وي فراهم نمايد. اين چنين شركت هايي، سرور هاي فيزيكي خود را با تعداد زيادي از مشتريان سرويس هاي ميزباني وب به اشتراك مي گذارند و اتصال اينترنت، برق، تجهيزات سرمايشي، تهيه نسخه ي پشتيبان و پشتيباني فني را براي مشتريان خود فراهم مي نمايند. به عنوان يك مثال بديهي مي توان سكو به عنوان سرويس را نام برد. تامين كنندگان پيچيده تر سكو به عنوان سرويس، چيزي بيشتر از يك سرور و پشته ي LAMP را فراهم مي نمايند، اغلب آن ها تمامي سرويس هاي رايانش ابري و منابع سخت افزاري مورد نياز را براي ايجاد سكو هاي رايانشي با حجم كاري بالا، ارايه مي نمايند. سكو به عنوان سرويس، ارتباط نزديكي با نرم افزار به عنوان سرويس و زير ساخت به عنوان سرويس دارد. اغلب تامين كنندگان، براي پياده سازي راه كار هاي سكو به عنوان سرويس، سطوح مختلفي از زير ساخت به عنوان سرويس و نرم افزار به عنوان سرويس را تركيب مي نمايند .

 درباره Turnkey Linux

لينوكس Turnkey بيش از 45 پشته متن باز آماده را فراهم مي نمايد. بعضي از اين پشته ها عبارتند از LAMP، Redmine، پايگاه داده MySQL، Moodle، Tomcat بر روي Apache و Bugzilla. به عنوان بعضي از ويژگي هاي مهم آن ها مي توان به اين موارد اشاره داشت كه استفاده از آن ها هيچ هزينه اي ندارد، از پيش پيكربندي شده هستند و از هر ابزاري كه در اين توزيع استفاده شود قابليت تهيه نسخه ي پشتيبان بر روي سرويس ابري S3 شركت آمازون را با هزينه ي بسيار ناچيز 15 سنت به ازاي هر گيگابايت در ماه خواهد داشت. همچنين اين امكان وجود دارد تا در پشته ي LAMP هر زمان كه لازم باشد كل پشته را به سرويس ابري EC2 شركت آمازون منتقل نماييم. اين امكان به تيم هاي دانشجويي كمك مي نمايند تا در هنگام نياز، مقياس سيستم يا پهناي باند مورد نياز خود را ارتقاء دهند . براي انجام اين كار نگارش 12 توزيعي از لينوكس بر مبناي Debian 6.0.5 Squeeze به نام لينوكس Turnkey انتخاب شد. از اين توزيع براي ميزباني بيش از 100 كاربرد مختلف تحت وب استفاده مي گردد. گونه اي از اين توزيع به پشته ي LAMP معروف است كه يك سكوي وب متن باز رايج مي باشد كه جهت اجراي وب سايت هاي پويا و توسعه و استقرار برنامه هاي كاربردي تحت وب به كار برده مي شود. جالب اينجاست كه يكي از وب سرويس هاي شركت آمازون نيز دقيقا از همين توزيع استفاده مي نمايد و هدف آن ارايه ي پشته ي LAMP مي باشد، اين سرويس از سال 2012 در Marketplace مربوط به وب سرويس هاي شركت آمازون قرار گرفته است و از نگارش 12 اين توزيع استفاده مي نمايد و عنوان اين وب سرويس TurnKey Core مي باشد. پشته ي LAMP فراهم شده توسط اين توزيع داراي ويژگي هاي برجسته اي است كه تعدادي از آن ها به قرار زير هستند:

·        پشتيباني از SSL

·        پشتيباني از PHP، Python و Perl براي Apache 2 و MySQL

·        شتاب دهنده PHP opcode caching با عنوان XCache

·        frontend راهبري phpMyAdmin براي MySQL (براي استفاده از SSL پورت 12322 را شنود مي كند)

·        Postfix MTA كه امكان ارسال پست الكترونيكي ار طريق برنامه هاي كاربردي تحت وب را فراهم مي نمايد

·        ماژول هاي Webmin براي پيكربندي Apache 2، PHP، MySQL و Postfix

نام كاربري پنل مديريتي اي ماژول هاي ياد شده root مي باشد و كلمه ي عبور اوليه ي آن ها در زمان نصب سيستم عامل تعيين مي شود. اين توزيع با فرمت هاي مختلفي از سايت آن قابل دريافت است مانند ISO، VMDK، OVF، OpenStack، OpenVZ، Xen و EC2. براي هدف اين سمينار، مناسب ترين فرمت VMDK است كه با ناظر VMware در OpenNebula سازگار است. اندازه ي فايل فشرده شده ي مورد نظر نسخه ي 12 اين توزيع، حدود 205 MB است كه بعد از خارج نمودن از حالت فشرده حدود 649 MB مي شود.

نصب سيستم عامل بر روي ماشين هاي مجازي

با توجه به اينكه يكي از راه هاي انتقال image ها به OpenNebula استفاده از واسط Sunstone است، يادآوري اين نكته ضروري به نظر مي رسد كه از طريق مرورگر هاي رايج معمولا نمي توان فايل هايي با اندازه ي بيشتر 1 GB را آپلود نمود، با وجود اينكه سايز image انتخاب شده كمتر از 1 GB است ولي بهتر است از روش اصولي تر و قابل اطمينان تري مانند استفاده از انتقال image به ديسك ها (CD، DVD و USB) و وارد نمودن آن ها به سيستم عاملي كه OpenNebula بر روي آن نصب گرديده است، استفاده شود (به عنوان مثال اندازه فايل هاي image سيستم عامل لينوكس CentOS 6.3 حدود 8 GB است). در اين جا ابتدا توزيع دانلود شده را حالت فشرده خارج مي نماييم و جهت تبديل نمودن به ديسك، از ابزاري مانند AnyToISO استفاده مي نماييم و فايل ها به صورت يك فايل با فرمت ISO تبديل مي شوند و آن را به صورت يك CD به سيستم عامل لينوكس CentOS معرفي مي نماييم. سپس براي استفاده، آن را با دستور زير mount مي كنيم:

mount /dev/sr0 /mnt

حالا فايل ها را به مسيري مانند /tmp منتقل مي نماييم، به صورت زير:

cp /mnt/turnkey-lamp-12.0-squeeze-x86.vmdk /tmp

به دليل اينكه فرمت QCow2 مزايايي مانند فشردگي و تهيه ي snapshot را دارد و از فرمت raw بهتر است، image با فرمت VMDK را با استفاده از دستور زير به فرمت QCow2 تبديل مي نماييم:

qemu-img convert turnkey-lamp-12.0-squeeze-x86.vmdk –O qcow2 turnkey-lamp-12.0-squeeze-x86.qemu

نكته اي كه در اين مرحله بايد در نظر گرفت اين است كه براي mount نمودن از كاربر root و براي اجراي دستور qemu-img از كاربر oneadmin بايد استفاده شود. براي سويچ نمودن بين كاربر ها از دستور su استفاده مي نماييم. بعد از اين مرحله مي توان با خيالي آسوده علاوه بر روش خط فرمان از طريق واسط Sunstone و از طريق بخش Virtual Resources و گزينه ي Images يك image جديد تعريف كرد، به اين صورت كه بعد از وارد نمودن نام image، در فيلد Provide a path مسير image تبديل شده كه /tmp/turnkey-lamp-12.0-squeeze-x86.qemu مي باشد را وارد نمود و در فيلد Device prefix مقدار vd را وارد كرد و در فيلد Driver مقدار qcow2 را وارد نمود، همچنين در قسمت Target نيز مقدار vda را وارد نمود و image را Create نمود. حالا بايد Template ساخت به اين صورت كه از قسمت Templates يك Template جديد مي سازيم و معماري آن را x86_64 انتخاب نموده و همچنين VNC را فعال مي نماييم تا بتوان وارد محيط سيستم عامل نصب شده شد و پيكربندي هاي مورد نظر را اعمال نمود. بعد از ساختن Template مي توان ماشين هاي مجازي را از روي آن نمونه سازي نمود به اين صورت كه از قسمت Virtual Machines يك ماشين مجازي را با معرفي Template ايجاد شده در مرحله ي قبل، ايجاد مي نماييم. اكنون مي توان از طريق كنسول VNC وارد اين ماشين مجازي شد و مراحل راه اندازي سيستم عامل آن را مشاهده نمود و پيكربندي هاي لازم مانند تنظيم كلمه ي عبور براي كاربر root و تنظيم كلمه ي عبور براي MySQL و غيره را انجام داد.

 امكانات ارايه شده توسط TurnKey LAMP

اين سيستم عامل پس از نصب و پيكربندي، آدرس هايي وبي را ارايه مي نمايد كه از طريق آن  ها مي توان به سرويس هاي تحت وب دست يافت. اين سرويس ها عبارتند از 1) phpMyAdmin 2) Webmin و 3) Web Shell.

 درباره ي phpMyAdmin

phpMyAdmin يك نرم افزار كاربردي تحت وب است كه يك واسط كاملا تحت وب را براي مديريت پايگاه داده هاي MySQL فراهم مي آورد و به عنوان نرم افزاري پيشرو در اين حيطه محسوب مي گردد. phpMyAdmin ويژگي هاي پايه اي عمليات پايگاه داده و جدول MySQL را پوشش مي دهد. همچنين شامل يك سيستم دروني است كه metadata را براي پشتيباني از ويژگي هاي پيشرفته نگهداري مي نمايد. راهبران سيستم مي توانند كاربران و سطوح دسترسي آن ها را از طريق phpMyAdmin مديريت نمايند .

درباره ي Webmin

Webmin برنامه اي است كه فرآيند مديريت سيستم هاي Linux و Unix را آسان مي نمايد. در حالت سنتي نياز به ويرايش دستي فايل هاي پيكربندي و اجراي فرمان ها براي ايجاد حساب هاي كاربر، نصب وب سرور ها، يا مديريت ايميل ها مي باشد. Webmin اجازه مي دهد تا اين وظايف از طريق يك واسط تحت وب آسان انجام گيرند و به صورت خودكار تمامي فايل هاي پيكربندي را براي شما به روز رساني خواهد نمود. اين واسط از خطا هاي نحوي و ديگر خطا هايي كه اغلب در هنگام ويرايش مستقيم فايل هاي پيكربندي رخ مي دهد جلوگيري مي نمايد .

 درباره ي Web Shell

Web Shell واسطي تحت وب است كه با استفاده از آن مي توان از طريق مرورگر وارد وارد محيط خط فرمان Linux شد و اعمال مديريتي را از طريق دستورات Linux انجام داد. بنابراين حتي نيار به ورود به صورت محلي به  TrunKey Linux نخواهد بود و مي توان كليه اعمال مديريتي آن را از طريق مرورگر به انجام رساند.

 ميزكار ابري

فناوري AJAX[41] قابليت هاي فراواني را رواج داده است كه مي توانند در پياده سازي برنامه هاي كاربردي تحت وب مورد استفاده قرار گيرند. اين امر يك جنبه ي اساسي در رايانش ابري محسوب مي شود كه مقدار قابل توجهي از خدمات آن از طريق مرورگر وب تحويل داده مي شود. اين فناوري به همراه رايانش و ذخيره سازي در مقياس بالا، پاسخ گويي به محيط هاي پيچيده ي ميزكار در ابر را ممكن ساخته است و آن ها را از طريق مرورگر وب در دسترس قرار داده است. اين كاربرد ها، ميزكار ابري ناميده مي شوند و به سرعت در حال رواج يافتن هستند. EyeOS يكي از محبوب ترين راه كار هاي ميزكار ابري است و كاركرد هاي يك محيط ميزكار كلاسيك را به همراه برنامه هاي كاربردي از پيش نصب شده براي بيشتر وظايف مديريت فايل و اسناد، فراهم مي نمايد.

 

  معماري EyeOS ].

كاربران مي توانند به محيط ميزكار EyeOS از همه جا و از طريق دستگاه هاي متصل به اينترنت دسترسي پيدا كنند، همچنين ابر خصوصي EyeOS خود را برپا نمايند تا محيط ميزكار كاركنان خود را مجازي سازي كنند و مديريت خود را متمركز نمايند. معماري EyeOS بسيار ساده است، EyeOS در سمت سرور اطلاعات پروفايل كاربران و داده هاي آنان را نگهداري مي نمايد و در سمت كلاينت يك نقطه ي دسترسي را براي كاربران و راهبران فراهم مي نمايد تا با سيستم تعامل داشته باشند. EyeOS داده هاي كاربران و برنامه هاي كاربردي را بر روي سيستم فايل سرور ذخيره مي نمايد. هنگامي كه كاربر با مشخصات خود login مي نمايد، محيط ميزكار در مرورگر كلاينت با دانلود نمودن تمامي كتابخانه هاي لازم جاوا اسكريپت جهت ساخت واسط كاربر و پياده سازي كاركرد هاي پايه اي EyeOS تشكيل مي شود. هر برنامه ي كاربردي كه در محيط بار مي شود با سرور از طريق استفاده از AJAX ارتباط برقرار مي نمايد. اين مدل ارتباطي براي تمامي كار ها مانند ويرايش اسناد، نمايش تصاوير، كپي و ذخيره نمودن فايل ها، ارسال ايميل ها و چت نمودن استفاده مي شود. EyeOS همچنين API هايي را براي توسعه ي برنامه هاي كاربردي جديد و اضافه نمودن قابليت هاي جديد به سيستم فراهم مي نمايد. برنامه هاي كاربردي EyeOS مولفه هايي در سمت سرور هستند كه توسط حداقل دو فايل تعريف مي شوند (در مسير eyeos/apps/appname ذخيره مي شوند كه appname نام برنامه ي كاربردي مي باشد) كه عبارتند از appname.php و appname.js. فايل .php تمامي عملياتي كه برنامه بايد انجام دهد را تعريف و پياده سازي مي نمايد و فايل جاوا اسكريپت شامل كد هاي مورد نياز براي بار شدن در مرورگر به منظور فراهم نمودن تعامل كاربر با برنامه ي كاربردي مي باشد .

 نصب ميزكار ابري بر روي سيستم عامل نصب شده بر روي ماشين هاي مجازي

جهت نصب eyeOS كافي است تا نسخه ي 2.5 آن را از سايت sourceforge.net دانلود نماييم. سپس با استفاده از phpMyAdmin يك پايگاه داده ي خالي به نام eyeos مي سازيم، گفتني است جدول ها و ديگر داده هاي اين پايگاه داده توسط برنامه ي نصب EyeOS ايجاد خواهند شد. بعد از ورود به محيط Webmin از منوي Servers وارد Apache Webserver مي شويم و در صورت نياز يك virtual host تعريف مي نماييم كه عبارت است از يك دايركتوري كه معمولا در مسير /var/www/ قرار مي گيرد و فايل هاي مربوط به يك وب سايت در داخل آن كپي مي گردند و از طريق آدرس و شماره پورت تعريف شده از طريق مرورگر مورد دستيابي قرار مي گيرند. حال كافي است تا از طريق منوي Tools گزينه ي Upload and Download را انتخاب نماييم. حال بايد از قسمت Upload to server فايل هاي مورد نظر را در مسير virtual host مورد نظر آپلود نماييم اما به دليل اينكه EyeOS شامل فايل ها و دايركتوري هاي زيادي است بهتر است ابتدا آن ها را به صورت يك فايل zip تبديل نمود و سپس در قسمت Extract archive or compressed files? گزينه ي Yes, then delete را انتخاب كرد تا فايل ها به صورت خودكار از حالت فشرده خارج شوند و فايل zip آپلود شده پاك شود. حال فايل را در مسير virtual host ساخته شده، آپلود مي نماييم. حالا بايد از طريق مرورگر، آدرس سايت را به همراه /install وارد نمود تا عمليات نصب EyeOS تكميل شود و بعد از معرفي پايگاه داده، نام كاربري و كلمه ي عبور تنظيم شده براي MySQL جدول ها و ديگر داده هاي مربوط به پايگاه داده ايجاد شوند و فرآيند نصب تمام گردد. از اين پس مي توان از طريق مرورگر، آدرس سايت ايجاد شده را بدون /install وارد نمود تا بتوان از امكانات EyeOS استفاده نمود.

 



[1]open source

[2] agile

[3] Distributed Systems Architecture

[4] Open Cloud Computing Interface

[5] hypervisor

[6] plug in

[7] authentication

[8] authorization

[9] host

[10] shared

[11] Network File System

[12] Internet Small Computer System Interface

[13] non-shared

[14] Secure Shell

[15] hypervisor-specific

[16] Secure Socket Layer

[17] Address Resolution Protocol

[18] bug

[19] boot time

[20] Network Attached Storage

[21] resource-aware

[22] operations center

[23] peak demands

[24] high-availability

[25]cache memory

[26] IOPS: Input/Output Operations Per Second

[27] Serial Advanced Technology Attachment

[28] RPM: Round Per Minute

[29] CPU-bound

[30] network-bound

[31] Serial Attached SCSI

[32] seek time

[33] Redundant Array of Independent Disks

[34] monitoring

[35] accounting

[36] http://www.opennebula.org/

[37] Access Control Lists

[38]LAMP: Linux-Apache-MySQL-PHP

[39]https://aws.amazon.com/marketplace/ref=dtl_navhdr_header

[40]http://www.turnkeylinux.org

[41]Asynchronous JavaScript and XML

[42]load

 

برگرفته از سمینار کارشناسی ارشد آقای میلاد امیله