اجزای تشکیل دهنده openstack – قسمت اول
OpenStack به دلیل ماژولار بودن از اجزای مختلفی تشکیل شده است. از آن جایی که OpenStack متنباز است، افراد میتوانند بنا به نیاز خود ماژولی را به آن اضافه کنند.
در مقالهی قبلی به توضیح چیستی OpenStack پرداختیم. برای مطالعهی مقالهی قبلی به لینک زیر مراجعه کنید.
اجزای OpenStack
OpenStack به دلیل ماژولار بودن از اجزای مختلفی تشکیل شده است. از آن جایی که OpenStack متنباز است، افراد میتوانند بنا به نیاز خود ماژولی را به آن اضافه کنند. البته جامعه OpenStack ماژولهای زیر را به عنوان اجزا اصلی (یا هسته) در نظر گرفته است که به طور رسمی توسط این جامعه توسعه داده میشوند. این اجزا به شرح زیر میباشند:
Horizon
Horizon داشبورد گرافیکی و تحتوب OpenStack است. این سرویس اولین مولفهای است که کاربر OpenStack از این مجموعه میبیند. توسعهدهندگان میتوانند به طور انفرادی به تمام مؤلفههای OpenStack از طریق واسطهای برنامه نویسی API دسترسی داشته باشند، ولی داشبورد این امکان را به مدیر سیستم میدهد تا به صورت گرافیکی متوجه شود که در ابر چه میگذرد و به صورت گرافیکی با API تعامل کند.
Keystone
Keystone سرویس احراز هویت OpenStack است. بهطور ابتدایی میتوان گفت که این سرویس شامل لیستی از تمام کاربران OpenStack است که روی تمام سرویسهای ارائه شده توسط OpenStack نگاشت شده است و اجازهی دسترسی را صادر میکند. این سرویس از ابزارهای دسترسی گوناگونی پشتیبانی میکند، بدین ترتیب توسعهدهندگان میتوانند روشهای موجود دسترسی کاربران خود را با آن همگن کنند ولی Keystone به صورت پیشفرض از مکانیزم User/Pass جهت احراز هویت استفاده می کند.
Glance
Glance یکی از اجزای OpenStack است. این سرویس کار مدیریت Imageهایی که سیستمعاملها از طریق آن ها launch میشوند را انجام میدهد. در این متن منظور از Image کپی مجازی هارد دیسک است که شامل سیستمعامل پایه با تنظیمات خاصی است که نمونههای جدید از روی آن ساخته میشوند. وظیفهی این سرویس فراهم کردن این imageها در فرآیند ایجاد ماشینها یا instanceهای جدید است.
Neutron
Neutron قابلیت شبکهبندی را برای OpenStack فراهم میکند. این سرویس این اطمینان را میدهد که تمام مؤلفههای OpenStack میتوانند به صورت کارآمد و سریع با یکدیگر ارتباط برقرار کنند. این سرویس از زیرساخت SDN جهت شبکهسازی استفاده میکند.
Nova
Nova موتور اصلی پردازشی OpenStack است. این سرویس به منظور استقرار و مدیریت تعداد زیادی ماشین مجازی بکار میرود و بدین ترتیب عملیات رایانشی را مدیریت میکند و همچنین می تواند با hypervisorهای مختلف مجتمع شود ولی به طور پیشفرض OpenStack از KVM به عنوان hypervisor استفاده میکند.
Cinder
Cinder سرویس ذخیرهسازی بلوکی داده است. این سرویس بسیار شبیه سرویسهای سنتی است که در آن جهت دسترسی به فایل بایستی به مکان مشخص آن روی هارد دیسک اشاره شود. این روش سنتی دسترسی ممکن است در سناریوهای خاصی که در آن سرعت دسترسی به داده از اهمیت بالایی برخوردار است مفید باشد. توسط این سرویس می توان volumeهای جدید را ایجاد کرده و به ماشینهای ساخته شده الحاق کرد و همچنین از ماشین و volume میتوان snapshot تهیه کرد. این سرویس به طور پیشفرض از LVM استفاده میکند ولی می تواند از راهکارهای ذخیرهسازی مبتنی بر نرم افزار دیگر مانند GlasterFS و یا Ceph استفاده کند.
Swift
Swift سیستم ذخیرهسازی اشیا و فایلهاست. بهجای ایده سنتی ارجاع فایلها توسط مکان فیزیکی آنها روی هارد دیسک، توسعهدهندگان میتوانند به یک شناسه منحصربهفرد فایل یا تکیهای از اطلاعات ارجاع کنند و اجازه دهند OpenStack تصمیم بگیرد که این داده در کجا ذخیره شود. این سیستم فایلها را همچنین بدون هیچ metadata اضافهای ذخیره میکند. این ویژگیها سبب میشود تا فرآیند مقیاسپذیری سادهتر شود، بدین صورت که توسعهدهندگان دیگر نیاز نیست نگران ظرفیت یک سیستم واحد پشت نرمافزارشان باشند. این اجازه را میدهد که سیستم، به جای توسعهدهنده، نگران این باشد که آیا از داده به بهترین شکل پشتیبان تهیه شده است که در صورت خرابی یک ماشین یا اتصال شبکه از بین نرود.
Ceilometer
Ceilometer یکی دیگر از اجزای OpenStack سرویس اندازهگیری در محیط OpenStack است. به کمک خروجیهای تولید شده توسط این سرویس که توسط نمونههایی که از هر منبع به دست میآید، این امکان برای ارائهکنندگان فراهم میشود تا میزان مصرف کاربران از منابع ابر را مانیتور کنند. این میزان به تفکیک هر مؤلفه خواهد بود. در نهایت به کمک یک سرویس ثانویه امکان صدور صورتحساب برای کاربران و مشتریان فراهم میگردد.
Heat
Heat سرویس همنواسازی و خودکارسازی در محیط OpenStack است. به کمک این سرویس توسعهدهندگان میتوانند نیازمندیهای منبع برنامهی کاربردی خود را در یک فایل تعریف کنند و مدیریت تخصیص این منابع به صورت خودکار صورت پذیرد. همچنین از این فایل می توان جهت مقایسپذیری و launch کردن پشتهای از ماشینهای مجازی استفاده کرد.
در این مقاله به توضیح بخشی از اجزای محیط OpenStack پرداختیم. در مقالهی بعدی به سری از پروژههای OpenStack آشنا خواهیم شد.