امروزه نرم افزار های بسیاری برای ایجاد و مدیریت پلتفرم های پردازش ابری عمومی یا Public و خصوصی یا private وجود دارد که یکی از آنها نرم افزار openstack است. این نرم افزاریک پروژه رایانش ابری است که به تجهیز بستری متن باز و قابل دسترس در همه جا برای ابرهای شخصی و عمومی کمک می کند. به کاربران اجازه میدهد تا بتوانند ماشین های مجازی و دیگر نمونه ها برای کنترل وظایف گوناگون در مدیریت یک محیط ابری در حال اجرا را توسعه دهند. این مجموعه ابزار ، گسترش افقی را آسان می کند به این معنی که وظایفی که از اجرای همزمان سود می برند میتوانند در زمان اجرا به آسانی با تنظیم نمونه های متفاوت، به کاربران بیشتر یا کمتری خدمات ارائه دهند. در ادامه مقاله قصد بر آن است که شناخت کلی از این نرم افزار کاربردی بدست آوریم.
اپن استک یک مجازی ساز یا Hypervisor نیست بلکه روی مجازی ساز پیاده سازی می شود تا شما بتوانید منابع را به بهینه ترین شکل ممکن کنترل و استفاده نمایید. نکته جالب در مورد Openstack این است که منحصر به یک نرم افزار یا سخت افزار خاص نیست. بنابراین قابل پیاده سازی بر روی کلیه مجازی ساز ها از جمله kvm، xen، openvz، Hyper-V، vSphere می باشد. OpenStack مجموعه ای از نرم افزار ها برای ایجاد و مدیریت پلتفرم های پردازش ابری Public و Private است، در حقیقت اوپن استک یک نرم افزاری است که مفهوم Cloud را پیاده سازی میکند.
این سرویس یک سیستم عامل ابری است که حجم عظیمی از منابع محاسباتی، ذخیره سازی و شبکه را در یک مرکز داده کنترل می کند. همه این امکانات از طریق API ها با روش های تأیید شده تهیه و مدیریت می شود. برای هر یک از کاربران نیز یک فضای داشبورد فراهم است که به آنها اجازه می دهد تا منابع خود را ایجاد کنند و آنها را کنترل نمایند. توجه داشته باشید که اوپن استک یک مجازی ساز نیست بلکه نرم افزاری است که روی مجازی ساز پیاده می شود تا امکان کنترل و استفاده از منابع به بهترین شکل ممکن برای کاربران فراهم شود. اوپن استک با انواع سخت افزارها و نرم افزارها سازگاری دارد. در نتیجه امکان نصب آن بر روی انواع مجازی سازها از جمله vSphere، kvm، xen و Hyper-V فراهم است. اوپن استک بعد از لینوکس بزرگترین پروژه متن باز است و توسط شرکت های بزرگ زیادی مورد حمایت قرار دارد. متن باز بودن آن به معنای آن است که هر فردی می تواند به منبع کد نرم افزار دسترسی پیدا کند و تغییرات لازم را انجام دهد. سرعت اوپن استک نسبت به سایر نرم افزار های شبیه به آن بسیار بیشتر است.
آنچه که به تاریخچه openstack اختصاص می یابد، به شرکت Rackspace و ناسا در سال 2010 ختم می شود و هدف از طراحی آن ایجاد و مدیریت پلتفرم های پردازش ابری عمومی و خصوصی بوده است. پشتیبانی نرم افزار اپن استک از طریق بسیاری از بزرگترین کمپانی های تولید نرم افزار و هاستینگ و همچنین هزاران نفر از اعضای جامعه فردی انجام می گیرد؛ بسیاری باور دارند که اوپن استک آینده رایانش ابری در جهان را از آن خود می کند. مدیریت نرم افزار OpenStack بوسیله این بنیاد که یک سازمان غیر انتفاعی می باشد، صورت می پذیرد و برای نظارت توسعه و جامعه سازی در رابطه با این پروژه تشکیل شده است. هم اکنون بیش از ۵۰۰ شرکت از جمله IBM، فوجیتسو، اوراکل، یاهو، سیتریکس، دل، AMD، اینتل، کنونیکال، سوزه، اچ پی و سیسکو سیستمز و شرکت های بسیار دیگری به این پروژه پیوسته اند.
OpenStack یک پروژه متن باز یا Open Source است به این معنی که هر کسی که بخواهد می تواند دسترسی به متن و کد های مخصوص به خود را داشته باشد، تغییرات مورد نیاز خود را روی آن اعمال کند و بر اساس نیاز خود آن را Custom سازی کند ودر نهایت بصورت رایگان عضو جامعه بزرگ OpenStack شود. این به این معنی است که اوپن استک این فایده را دارد که هزاران توسعه دهنده در سطح دنیا می توانند پشت سر هم در جهت تولید محصولات قوی تر، تنومند تر و ایمن تر فعالیت کنند. یک روش که با استفاده از آن می توانید بدون تحمل مشکلات روبرو شدن با اجزای فیزیکی ، این کار را انجام دهید TryStack است. با TryStack می توانید نرم افزار خود را در محیط Sandbox تست فرمایید.
مزایا و ویژگی های OpenStack
1. در اوپن استک شما میتوانید منابع تمامی سخت افزار های موجود cpu, ram, hard, bandwidth را بصورت یکپارچه مانیتور نمایید.
2. تغییر و نصب سیستم عامل بصورت خودکار در این قابلیت انجام می شود.
3. در آن امکان کنترل تمام منابع سخت افزاری به صورت یکپارچه وجود دارد. همچنین اینکه تغییر و نصب نرم افزار در آن به صورت خودکار انجام می شود. به علاوه امکان انتقال سرور مجازی از یک سرور به سرور دیگر به راحتی امکان پذیر است و می توان منابع را در چندین سرور مختلف به صورت یکپارچه روی یک سرویس به اشتراک گذاشت. توجه داشته باشید که در آن تمامی لاگ های موجود در سخت افزارها به صورت یکپارچه نمایش داده می شوند.
4. امکان انتقال سرور مجازی از یک سرور به سرور دیگر را فراهم می سازد.
5. اشتراک گذاری منابع در چندین سرور مختلف بصورت یکپارچه بر روی یک سرویس انجام می شود.
6. از دیگر ویژگی های بسیار خوب این نرم افزار می توان به امنیت آن اشاره کرد. از جدیدترین و کارا ترین شیوه ها برای حفظ امنیت حداکثر و محافظت از داده ها استفاده شده است. همه اینها حاصل تلاش جمع کثیری از متخصصان و کارشناسان امنیتی است که نظارت و تقویت ایمنی آن به عهده آنان است. این گروه به صورت مستمر ابعاد امنیتی آن را آزمایش می کنند و اگر مشکلی باشد در لحظه برطرف می نمایند.
7. در اوپن استک تمامی لاگ های موجود در سخت افزارها بصورت یکپارچه نمایش داده میشود.
8. یکی از ویژگی های بسیار خوب سرور های ابری این است که می توان به اندازه نیاز از منابع آن استفاده کرد. اوپن استک نیز به شما این امکان را می دهد که در زمانهای خاص، بسته به نیاز خود، از منابع و ترافیک استفاده نمایید. در این صورت نیاز نخواهد بود تا منابع ثابتی را برای خود بخرید و این امکان وجود دارد که هزینه میزان استفاده از منابع را در لحظه پرداخت نمایید.
اجزای مختلف و سرویس های Open Stack
OpenStack از تعداد بسیاری از Component های در حال حرکت ایجاد شده است. به این دلیل در حال حرکت که اوپن استک یک جامعه آزاد است و هر کسی میتواند Component های جدید به آن اضافه کند و یا Component های موجود را بهبود ببخشد، این قابلیت ها همگی بخشی از هسته این نرم افزار هستند که به عنوان بخشی از هر سیستم اوپن استک که رسماً برای آن حفظ شده است توسعه داده شده اند. OpenStack دارای اجزای متغیر زیادی است، به اقتضای طبیعت Open Source هر کسی می تواند اجزایی را به اوپن استک اضافه کند تا نیازهای خود را برآورده کند. ولی به طور رسمی میتوان به موارد زیر اشاره کرد:
Nova : این بخش یک موتور پردازشی اصلی است که پشت OpenStack قرار می گیرد. Nova برای مدیریت تعداد بسیار زیاد ماشین های مجازی داخل شبکه OpenStack استفاده می شود تا بتواند وظایف پردازشی را مدیریت کند.
Cinder : بخش منظر یک Component ذخیره سازی block های اطلاعاتی است که بیشتر شبیه مفهوم سنتی این است که کامپیوتر قادر خواهد بود به مکان های مختلف روی هارد دسترسی داشته باشد.
Swift : یک سیستم ذخیره سازی است برای اشیاء و فایل های داخل مجموعه OpenStack که مورد استفاده قرار می گیرد.
Neutron : نوترون قابلیت راه اندازی شبکه OpenStack را فراهم می کند. نوترون کمک می کند که هر کامپوننت در مجموعه اوپن استک با دیگر اجزا با سرعت بالا در ارتباط باشد.
Horizon : این بخش یک داشبورد پشت OpenStack است که فقط یک رابط گرافیکی است، پس کاربرانی که قصد تست و بررسی اوپن استک را دارند، این اولین Component از اوپن استک است که می بینند. توسعه دهنده ها با استفاده از رابط برنامه نویسی یا API می توانند به تمام کامپوننت ها دسترسی داشته باشند اما داشبورد می تواند این قابلیت را بدهد که مدیر سیستم ببیند چه اتفاقاتی روی Cloud در حال افتادن است و با استفاده از آن، آنها را مدیریت کند.
Keystone : خدمات هویتی OpenStack را فراهم می کند در واقع یک لیست مرکزی از تمام یوزرهایی که در فضای ابری اوپن استک ما وجود دارند در این Component قرار دارد و دسترسی های کاربران به Component های مختلف از طریق این Component اعطا می شود.
Glance : خدمات تصویر را در OpenStack فراهم می کند. در این مورد تصاویر به تصاویر موجود در هارد دیسک اشاره می دهد. Glance به تصاویر اجازه می دهد زمانی که یک ماشین مجازی جدید در حال deploy شدن است به عنوان الگو قرار بگیرند.
Ceilometer : سرویس های دورسنجی Telemetry را ارائه می دهد و با استفاده از آن می توان سرویس های Billing را به استفاده کنندگان Cloud ارائه داد. Ceilometer همچنین لیستی قابل بررسی Verifiable از استفاده هر یک از کاربران از اجزای مختلف OpenStack دارد.
Heat : هماهنگ سازی در OpenStack را به عهده دارد که توسعه دهندگان با استفاده از آن، نیازمندی های نرم افزار Cloud را در یک فایل ذخیره می کنند که تعیین می کند چه منابعی برای آن نرم افزار ضروری است. با این روش Heat به زیرساخت مورد نیاز برای اجرای سرویس ها بر روی Cloud کمک می کند.
Nagios : یک سیستم نظارتی Open Source برای اجرا روی سیستم عامل لینوکس برنامه ریزی شده است و می تواند دستگاه های تحت سیستم عامل لینوکس، ویندوز و سیستم عامل های یونیکس را نظارت کند. این بخش نرم افزار برای شبکه های کامپیوتری است که براساس پارامترهای بحرانی برای اپلیکیشن ها، شبکه و سرور به صورت دوره ای آن ها را چک می کند.
Rule-based alarm actions یا Aodh : این سرویس هشدار دهنده توانایی اجرای اقدامات مبتنی بر قوانین تعریف شده، برعلیه داده های متریک یا داده های رویدادی جمع آوری شده توسط Ceilometer یا Gnocchi را دارد.