سرويس مشترک image در
اوپن استک نام دیگری نیز دارد که به آن Glance میگویند و محلی برای نگهدرای ماشین های مجازی و همچنین image دیسک ها را در اختیار قرار می دهد. سرويس Glance قابليتهاي پيشرفتهاي را به زيرساختهاي قديميتر مجازي سازي داده است. به عنوان مثال بكارگيري اين سرويس در كنار Vmware قابليتهايي نظير vMotion، HA، DRS را ايجاد نموده است.
هدف HA حذف تمامی نقاط Single Point Of Failure) SPOF) در تمامی لایه های معماری
رایانش ابری است. در این بخش مقدمه ای درباره HA در OpenStack آورده شده است. سطوح مختلفی از HA در OpenStack وجود دارند. این سطوح عبارتند از:
- سطح ۱: این سطح شامل هاست های فیزیکی، تجهیزات ذخیره سازی و شبکه و همچنین ابرناظرها (hypervisors) است.
- سطح ۲: این سطح شامل سرویس های OpenStack مانند سرویس compute، شبکه، پایگاه داده ها و سرویس های انتقال پیام است.
- سطح ۳: این سطح شامل ماشین های مجازی است که روی هاست های فیزیکی قرار دارند و توسط سرویس های OpenStack مدیریت می شوند.
- سطح ۴: این سطح شامل برنامه های کاربردی است که روی ماشین های مجازی اجرا می شوند.
از بین چهار سطح فوق، سطوح یک و دو بیشتر در OpenStack پشتیبانی می شوند. یکی از پارامترهایی که در بحث HA مورد توجه قرار می گیرد، نوع سرویس ها از نظر stateless یا stateful بودن است. در ادامه توضیحات مختصری درباره هر یک از این دو نوع سرویس بیان میشود:
سرویس های Stateless
سرویس های stateless سرویس هایی هستند که نیاز به ذخیره سازی درخواست های (requests) قبلی ندارند. به عبارت دیگر هر درخواستی تنها نیاز به اطلاعاتی دارد که به همراه آن درخواست ارسال می شود و هیچ وابستگی به درخواست های قبلی یا بعدی ندارد. هیچ ارتباط و وابستگی بین درخواست های مختلف وجود ندارد و اگر درخواستی از بین برود به سادگی می تواند روی سرویس دهنده دیگری اجرا شود.
سرویس های Stateful
سرویس های stateful سرویس هایی هستند که در این سرویس ها بین درخواسته ای مختلف وابستگی وجود دارد. هر درخواستی ممکن است وابسته به نتایج درخواست های قبلی باشد و با درخواست های بعدی نیز وابستگی هایی داشته باشد. مدیریت سرویس های staeful به مراتب سخت تر از مدیریت سرویس های stateless است زیرا درخواست های مختلف باید به منظور حفظ سازگاری با یکدیگر سنکرون باشند.
از جمله سرویس های stateless مربوط به OpenStack سرویس های nova-api، nova-conductor، glance-api، keystone-api، neytron-api، nova-scheduler و web server هستند. سرویس های MySQL و RabbitMQ هم مثال هایی از سرویس های stateful مربوط به OpenStack هستند. در حال حاضر سه روش کلی برای پیاده سازی HA در OpenStack وجود دارد. هر یک از این روش ها در ادامه به اختصار توضیح داده شده اند:
۱- در ساده ترین روش می توان از یک گره cloud controller استفاده کرد و این گره را مجازی سازی کرد و سپس با استفاده از VMware clustering یا Linux clustering ماشین مجازی را HA کرد. اگرچه این روش، روشی ساده است ولی تنها باید در نواحی (regions) با تعداد محدودی از گره های پردازشی (compute) و تعداد محدود فراخوانی های API استفاده شود. همچنین این روش تنها دارای قابلیت مقیاس پذیری عمودی (vertical) است و از مقیاس پذیری افقی (horizontal) پشتیبانی نمی کند. در عمل از این شیوه استفاده چندانی نمیشود.
۲- دومین روش برای فراهم کردن HA استفاده از روش Active/Passive است. این روش، شبیه روشی است که در قسمت قبل توضیح داده شد ولی به جای استفاده از VMware clustering یا Linux clustering برای شروع مجدد ماشین مجازی از کار افتاده، سرویس های از کار افتاده را روی یک گره کنترلر دیگر روی Linux clustering بالا می آورد.
۳- سومین روش برای فراهم کردن HA روش Active/Active است. در این روش سرویس ها به صورت افقی (horizontally) مقیاس پذیر هستند و یک موازنه کننده بار (load balancer) برای توزیع بار وجود دارد. هر دو روش Active/Passive و Active/Active نیازمند نرم افزارهای کلاسترینگ برای بررسی در دسترس بودن سرویس ها و هاست ها هستند. دو نمونه متداول از این نرم افزارها Pacemaker و Keepalived هستند.
شرکت سیگما دارای قابلیت پیاده سازی OpenStack به صورت HA در سرویسهای
سرور ابری ابرسیگما است.