نرم افزار OpenStack چیست؟ معرفی کاربردهای اپن استک

معرفی پلتفرم ابری OpenStack و کاربردهای آن

در این مقاله قصد داریم تا شما را با مفاهیم و پیش نیازهای لازم جهت نصب و راه‌اندازی نرم افزار OpenStack آشنا کنیم. نرم افزار OpenStack یک پلتفرم ابری متن باز است و یکی از ۳ پروژه متن باز بزرگ جهان محسوب می‌شود. پیش از پرداختن به آن اجازه دهید ابتدا اجازه دهید تا نگاهی داشته به باشیم به گزینه‌هایی که جهت راه‌اندازی یک Could یا ابر در اختیار خواهیم داشت.

گزینه‌‌های راه‌اندازی یک Cloud

جهت راه‌اندازی یک Cloud، در حالات Private Cloud، Public Cloud و Hybrid Cloud جدولی با 12 بخش در شکل زیر آورده شده است که شامل ابزارهای مختلفی برای راه‌اندازی سطوح مورد نیاز می‌باشند (البته همه آنها الزامی نیستند و بسته به نوع ابر شما می‌توانند بخش‌هایی حذف شوند) که در هر بخش نیز خوشبختانه انتخاب‌های متفاوتی در دسترس می‌باشد.

گزینه‌‌های راه‌اندازی یک Cloud
شکل 1 بخش‌های یک Cloud

به عنوان مثال همانطور که در جدول شکل فوق مشاهده می‌کنید، جهت راه‌اندازی یک Private Cloud ابزارهای مختلفی از جمله: VMware vCloud، Apache CloudStack، OpenStack و… را در اختیار داریم، حال با توجه به در نظر گرفتن سیاست‌های مختلف از جمله موارد زیر می‌توان یکی از آنها را برای راه‌اندازی Private Cloud خود انتخاب نمود:

  • توانایی‌ها و featureهای مختلف محصول
  • تجاری بودن یا رایگان بودن محصول (بحث تهیه لایسنس)
  • پشتیبانی و بروزرسانی
  • داکیومنت‌ها و راهنماهای مختلف
  • سازگاری با دیگر محصولات
  • پروسه نصب و راه‌اندازی
  • نگهداری و مدیریت
  • و… .

ما در این فصل قصد داریم یک ابر خصوصی یا Private Cloud راه‌اندازی کنیم. محصولی نرم‌افزاری در نظر گرفته شده نیز برای این مطلب نیز، نرم‌افزار OpenStack می‌باشد. اما سوال این است که به چه علت این نرم‌افزار را انتخاب می‌کنیم؟ چه ویژگی‌ها و مزایایی برای ما دارد؟ چگونه باید آن را راه راه‌اندازی، پیکربندی و مدیریت نمود؟ چه پیش نیازهایی جهت نصب و راه‌اندازی نیاز دارد؟ و… همگی سوالاتی هستند که سعی خواهیم کرد تا در طول مطالب این فصل به آنها پاسخ جامع و کاملی دهیم. بنابراین در ادامه مباحث این فصل با ما همراه باشید.

زیرساخت رایانش ابری

زیرساخت رایانش ابری

یکپارچگی منابع سخت‌افزاری و ایجاد بستری قدرتمند برای سرویس‌ها بر روی ماشین‌های مجازی یکی از دلایل اصلی استفاده از زیرساخت رایانش ابری می‌باشد. مهم‌ترین تفاوت رایانش ابری با شیوه سنتی، صرفه‌جویی در مصرف، مدیریت و نگهداری منابع و سرویس‌ها است.

در زیرساخت رایانش ابری تعدادی سرور خواهیم داشت که با جمع کردن (aggregate) آنها، به یک سرور ابری واحد قدرتمند‌تر خواهیم رسید که اجزا‌ء سازنده آن را همه آن سرورها تشکیل می‌دهند و قدرت سخت‌افزاری آن از جمع تمام ‌رم‌ها، پردازنده‌ها و هارد دیسک‌ها تشکیل می‌شود.

یکی از پیش زمینه‌های مهم جهت ایجاد رایانش ابری، نرم افزار OpenStack است که از سال 2010 توسط سازمان تحقیقات فضایی آمریکا آغاز شده و به موجب متن باز بودن، تا به امروز توسط بسیاری از شرکت‌های فعال در زمینه توسعه نرم‌افزارهای متن باز مورد استقبال قرار گرفته و در حال حاضر یکی از مهم‌ترین زمینه‌های مورد توجه در نرم‌ افزارهای متن باز می‌باشد.

در این فصل به بررسی رایانش ابری و روش‌های نصب و راه‌اندازی نرم افزار OpenStack خواهیم پرداخت.

OpenStack چیست؟

OpenStack چیست؟

اپن استک یا OpenStack به دسته‌ای از ابزارها اشاره دارد که برای ایجاد و مدیریت زیرساخت‌های رایانش ابری، شامل ابرهای خصوصی (Private) و عمومی (Public) بکار می‌رود. این پروژه‌‌ی متن باز به کمک تعداد زیادی کمپانی بزرگ که سال‌هاست در زمینه‌هایی مانند میزبانی، شبکه و… فعالیت دارند و هزاران توسعه دهنده دیگر، پیش می‌رود و توسعه داده می‌شود.

نرم افزار OpenStack‌ این شرایط را برای کاربران خود مهیا می‌کند تا ماشین‌های مجازی را (که به آنها نمونه یا Instance گفته می‌شود) به منظور مدیریت یا انجام وظایف مختلف در محیط ابری با مشخصات سخت‌افزاری و شبکه‌ای دلخواه در مدت زمان بسیار کمی بسازند. در این محیط، مقیاس‌پذیری افقی به معنای افزودن و کاهش ماشین‌های مجازی با توجه به به بار کاری در حال اجرا، به راحتی امکان‌پذیر است.

بطور مثال تصور کنید یک سرویس تحت وب مثل WordPress روی ۵ ماشین مجازی در حال پاسخ به درخواست کاربران است، اگر در این شرایط تعداد درخواست‌های وارد شده به این سرویس بیش از حد آستانه‌ای که از پیش تعریف شده است شود یک ماشین مجازی به این مجموعه اضافه و تعداد ماشین‌های در حال سرویس‌دهی را به ۶ عدد می‌رساند و بطور مشابه زمانی که بار کاری به حالت قبل بازگردد و در یک بازه زمانی مشخص از حد آستانه کم‌تر بماند ماشین ساخته شده پس از این مدت مشخص پاک و پیکربندی محیط بروزرسانی می‌شود.

نکته‌ مهمی که باید مجدداً به آن اشاره شود این است که نرم افزار OpenStack پروژه‌ای متن باز است. این به این معنی است که هر کس قادر است به کد منبع این پروژه دسترسی داشته باشد و تغییرات مورد نظر و یا مورد احتیاج خود را در آن اعمال کند و آنها را با جامعه OpenStack به اشتراک بگذارد. این بدین معناست که نرم افزار OpenStack از توانمندی هزاران توسعه دهنده در سراسر دنیا بهره می‌برد که منجر به بزرگ‌تر شدن و قدرتمندتر شدن آن می‌شود.

مقدمه‌ای بر OpenStack

پروژه OpenStack از سال ۲۰۱۰ بوسیله سازمان تحقیقات فضایی‌ NASA‌ به عنوان پروژه‌ی IaaS و شرکت خدمات دیتاسنتر Rackspace آغاز شد و تا به امروز (سال 2017) با گذشت 45 سال از توسعه این بستر رایانش ابری، به عنوان محبوب‌ترین پروژه متن باز یا Open Source از لحاظ مشارکت‌کنندگان و میزان توسعه در این مدت کوتاه شناخته شده است.

OpenStack بستر نرم‌افزاری است که به سرورهای مجازی اجازه می‌دهد تا همانند یک ابر بصورت تکه تکه به یکدیگر متصل شوند، اما مهمترین چیزی که در مورد نرم افزار OpenStack حائز اهمیت است، این است که این نرم‌افزار Open source یا متن باز بوده و این اجازه را می‌دهد تا هر کسی برای انطباق نرم‌افزار با نیازهای خود بتواند آن را تغییر و توسعه دهد.

OpenStack به عنوان یک زیرساخت سرویس IaaS مورد استفاده قرار می‌گیرد تا حدی که این پلتفرم می‌تواند به سادگی اجزاء جدیدی از ابر را روی بستر سرورها پیاده‌سازی کرد.

این پروژه به واسطه متن باز بودن تاکنون توسط خیلی از شرکت‌های فعال در زمینه توسعه نرم‌افزار‌های متن‌باز مورد استقبال قرار گرفته و در توسعه آن مشارکت فعال و آن را در کنار محصولات خود به عنوان راهکار رایانش ابری به مشتریانشان عرضه می‌کنند.

شرکت‌هایی مثل Red Hat و Canonical از جمله شرکت‌های Open Source هستند که حضوری فعال در زمینه توسعه نرم افزار OpenStack دارند بطوریکه در سال ۲۰۱۳ و ۲۰۱۴ شرکت Red Hat به عنوان بیشترین مشارکت در توسعه OpenStack و Canonical، سیستم‌عاملش یعنی Ubuntu به عنوان سیستم‌عامل مرجع و رفرنس برای توسعه و پیاده‌سازی پروژه‌های گسترده و Enterprise از سوی بنیاد OpenStack نام‌گذاری‌ شده است.

OpenStack یک پلتفرم منبع باز پردازش ابری است که توسعه‌دهندگان آن را بصورت جهانی منتشر کرده و به سادگی قابل دریافت است. نرم افزار OpenStack در بزرگترین شرکت‌های نرم‌افزاری و میزبانی وب بکار گرفته شده است. اجرای آسان و قابلیت‌های بزرگ توابع این سیستم باعث شده تا در سیستم‌های ابری از آن استفاده شود.

OpenStack توسط شرکت میزبانی Rackspace و برای اولین بار در پروژه NASA در سال ۲۰۱۰ مورد استفاده قرار گرفت و تا به امروز بیش از ۲۰۰ شرکت از آن استفاده می‌کنند.

در واقع سیستم OpenStack یک مجموعه از نرم‌افزارهای ابری است که توانایی اجرا بر روی سیستم‌های عادی را دارد. این سیستم برای اجرا به سخت‌افزار خاص یا پیش‌نیاز نرم‌افزاری خاصی نیاز ندارد و می‌تواند به خوبی با محصولات دیگر هماهنگ شود و از کارایی بسیار مناسبی هم برخوردار است. به عبارت دیگر می‌توان گفت این محصول می‌تواند به عنوان زیرساخت یک سازمان استفاده شود.

همانطور که اشاره شد، این سیستم در ابتدا توسط سازمان NASA و RackSpace توسعه پیدا کرد و اولین انتشار آن در سال 2010 بوده است. این محصول از ابتدا برای استفاده عمومی بوده و به صورت متن باز عرضه شده است.

تاریخچه OpenStack

همانطور که پیش‌تر نیز اشاره شد، اپن استک یک پلتفرم رایگان و متن باز رایانش ابری است که:

در جولای سال 2010، شرکت‌های Rackspace و NASA با همکاری یکدیگر این پروژه را شروع کردند و بعدا نام OpenStack را به آن دادند. پروژه OpenStack به منظور کمک کردن به سازمان‌ها برای راه‌اندازی سرویس‌های رایانش ابری بر روی سخت‌افزار استاندارد در نظر گرفته شد.

اولین نسخه ارائه شده این کامیونیتی Austin نام داشت و بعد از 4 ماه تصمیم بر آن گرفته شد که بصورت دوره‌های ماهیانه بروزرسانی‌هایی برای این نرم‌افزار ارائه شود. کمی بعد نیز پروژه‌ای با نام مستعار Nebula در سیستم Rackspace Cloud File platform راه‌اندازی شد.

در سال 2011، برنامه‌نویسان توزیع اوبونتو لینوکس، پروژه OpenStack را به صورت پیش نمایشی با نام Bexar در اوبونتو 11.04 ارائه کردند. در نهایت نیز در همان سال دبیان پروژه اپن استک با نام Cactus را بر روی سیستم‌عامل دبیان 7.0 (Wheezy) ارائه کرد. در اکتبر سال 2011، SUSE نیز یک نسخه پیش نمایش از اپن استک را با نام Diablo ارائه کرد.

در سال 2012، Red Hatیک توزیع از نرم افزار OpenStack با عنوان (Essex) را معرفی کرد و پس از آن نیز در سال 2013 نسخه‌ای با پشتیبانی تجاری از اپن استک با عنوان Grizzly را در ماه جولای معرفی نمود.

در دسامبر سال 2013، شرکت Oracle اقدام به ورود به پروژه اپن استک کرد و برای قرارگیری آن بر روی Oracle Solaris اسپانسر شد. در ماه می سال 2014، شرکت HP یک سیستم با عنوان Helion را معرفی کرد که یک نسخه نمایشی از سیستم اپن استک برای HP بر پایه Icehouse بود.

از ماه مارس سال 2015، ناسا هم‌چنان از اپن استک به عنوان رایانش ابری اختصاصی برای سیستم‌های خود استفاده کرده و پشتیبان OpenStack public cloud نیز می‌باشد.

در جدول زیر لیست نسخه‌های مختلف OpenStack و تاریخ انتشار هر یک از آن‌ها آورده شده است.

جدول 1 لیست نسخه‌های مختلف OpenStack

Series Status Initial Release Date Next Phase EOL Date
Zed Development 2022-10-05 estimated (schedule) Maintained estimated 2022-10-05
Yoga Maintained 2022-03-30 Extended Maintenance estimated 2023-09-30
Xena Maintained 2021-10-06 Extended Maintenance estimated 2023-04-06
Wallaby Maintained 2021-04-14 Extended Maintenance estimated 2022-11-02
Victoria Extended Maintenance (see note below) 2020-10-14 Unmaintained TBD
Ussuri Extended Maintenance (see note below) 2020-05-13 Unmaintained TBD
Train Extended Maintenance (see note below) 2019-10-16 Unmaintained TBD
Stein Extended Maintenance (see note below) 2019-04-10 Unmaintained TBD
Rocky Extended Maintenance (see note below) 2018-08-30 Unmaintained TBD
Queens Extended Maintenance (see note below) 2018-02-28 Unmaintained TBD
Pike Extended Maintenance (see note below) 2017-08-30 Unmaintained TBD
Ocata End Of Life 2017-02-22 2021-06-15
Newton End Of Life 2016-10-06 2017-10-25
Mitaka End Of Life 2016-04-07 2017-04-10
Liberty End Of Life 2015-10-15 2016-11-17
Kilo End Of Life 2015-04-30 2016-05-02
Juno End Of Life 2014-10-16 2015-12-07
Icehouse End Of Life 2014-04-17 2015-07-02
Havana End Of Life 2013-10-17 2014-09-30
Grizzly End Of Life 2013-04-04 2014-03-29
Folsom End Of Life 2012-09-27 2013-11-19
Essex End Of Life 2012-04-05 2013-05-06
Diablo End Of Life 2011-09-22 2013-05-06
Cactus End Of Life 2011-04-15
Bexar End Of Life 2011-02-03
Austin End Of Life 2010-10-21

همانطور که در جدول فوق مشاهده می‌کنید، آخرین نسخه منتشر (Release) شده از نرم افزار OpenStack در زمان تهیه این مقاله نسخه Queens می‌باشد.

اما پیش از پرداختن به ادامه مطلب اجازه دهید تا به برخی از مهم‌ترین سوالاتی که همواره از سوی کارشناسان و مدیران IT در خصوص انتخاب محصول OpenStack به عنوان ابزاری جهت راه‌اندازی یک Private Cloud و ابزاری برای برپاسازی سرویس IaaS در مقایسه با vCloud مطرح می‌شود، پاسخ دهیم:

  • سوال 1: برای راه‌اندازی سیستم Private Cloud در مجموعه و شرکت خود از OpenStack استفاده کنیم یا از VMware vCloud؟
  • سوال 2: آیا این ابزارها رایگان هستند یا تجاری می‌باشند و برای استفاده از آنها نیازمند خرید لایسنس (License) هستیم؟
  • سوال 3: نصب و راه‌اندازی و نگهداری کدام یک ساده‌تر است؟
  • سوال 4: از چه Hypervisorهایی پشتیبانی می‌کنند؟
  • سوال 5: از چه Storageهایی پشتیبانی می‌کنند؟

در پاسخ به این سوالات توجه شما را به جدول زیر که مقایسه‌ای بین دو محصول OpenStack و vCloud می‌باشد، جلب می‌کنیم.

جدول 2 مقایسه بین دو محصول OpenStack و vCloud جهت راه‌اندازی Private Cloud

ویژگی‌ها vCloud OpenStack
Install & Management نیازمند یک مدیر سیستم ساده با دانش: سیستم، شبکه، مجازی‌سازی و ذخیره‌سازی نیازمند دانش و مهارت بسیار بالا شامل در زمینه‌های: سیستم، شبکه، مجازی‌سازی، لینوکس، ذخیره‌سازی، امنیت، پایگاه داده و…
Hypervisor تنها از ESXi پشتیبانی می‌کند. از انواع Hypervisorها و تکنولوژی‌های Container از جمله: KVM، VMware ESXi، Microsoft Hyper-V، Citrix XenServer، Docker و LXC پشتیبانی می‌کند.
Storage VMware VMFS over SAN and iSCSI پشتیبانی از کامپوننت Cinder به عنوان Block Storage و همچنین Ceph به عنوان یک SDS و بسیاری از vendorهای دیگر سازنده storage
Network پشتیبانی از زیرساخت سوئیچینگ سنتی  VMware و شبکه‌های مبتنی بر نرم‌افزار یا SDN پشتیبانی از سوئیچینگ سنتی و همچنین شبکه‌های مبتنی نرم‌افزار  یا SDN
Image Management پشتیبانی از VMware Catalogها و templateها و همچنین OVF کامپوننت OpenStack Glance Service که تقریباً از تمامی فرمت‌های image پشتیبانی می‌کند.
Management System استفاده از نرم‌افزار VMware vCenter Server استفاده از کامپوننت Nova به عنوان Virtual Machine Management و Cluster Controller
High Availability استفاده از VMware vCenter Heartbeat یا vCenter HA استفاده از کامپوننت Nova برای VMs HA و پروژه OpenStack HA برای کامپوننت‌های زیرساخت
APIها اختصاصی VMware و اکثراً تحت Perl و PowerShell هستند. استفاده از Open REST APIها و سازگار با Amazon EC2 & S3
هزینه‌ها شامل هزینه‌های License بعلاوه هزینه نگهداری رایگان و بدون نیاز به License

 

چه شرکت‌هایی برای راه‌اندازی Private Cloud خود از OpenStack استفاده می‌کنند؟

امروز شرکت‌های بسیار معتبری همچون Cisco، IBM، Dell، HP، Sony و… همگی به منظور راه‌اندازی زیرساخت ابر خصوصی یا Private Cloud خود از نرم افزار OpenStack استفاده می‌کنند و همین امر به تنهایی مهر تأییدی بر قابلیت‌های این محصول نرم‌افزاری است.

چه شرکت‌هایی برای راه‌اندازی Private Cloud خود از OpenStack استفاده می‌کنند؟
شکل 2 شرکت‌های استفاده کننده از OpenStack

چگونه از OpenStack در محیط ابری استفاده می‌شود؟

هدف ابر یا Cloud ارائه سرویس رایانشی به کاربران راه دور است که در آن، نرم‌افزار حقیقی به جای کامپیوتر کاربر نهایی، بصورت سرویس روی سرورهای قابل اعتماد و مقیاس‌پذیر اجرا می‌شود. مفهوم رایانش ابری در صنعت، ارائه چیزی «به عنوان سرویس» است (بطور مثال نرم‌افزار، پلتفرم و یا زیرساخت).

همانطور که پیش‌تر نیز اشاره شد، OpenStack به عنوان سرویسی در دسته‌ زیرساخت قرار می‌گیرد. فراهم آوردن زیرساخت به این معناست که‌ اپن استک، فرایند ساختن و یا اضافه کردن نمونه‌ها را برای کاربران تسهیل می‌کند که این می‌تواند به عنوان یک زیرساخت برای فراهم آوردن بستر پلتفرم برای توسعه‌دهندگان نرم افزار بکار رود.

نرم افزار OpenStack‌ برای چه کسانی مناسب است؟

شما ممکن است همین الان هم کاربر OpenStack باشید و از آن اطلاعی نداشته باشید. هر روز، سازمان‌ها و شرکت‌های بیشتری در حال حرکت به سمت استفاده از OpenStack هستند. همچنین دنیای برنامه‌های کاربردی که روی بستر OpenStack اجرا می‌شوند رو به گسترش است.

اجزاء سیستم یا کامپوننت‌های  OpenStack

OpenStack‌ بر پایه معماری ماژولار به همراه اجزا و کامپوننت‌های مختلف راه‌اندازی شده است. تاکنون 56 کامپوننت مختلف برای OpenStack ایجاد شده که عبارتند از:

Astara، Barbican، Cinder، Cloudkitty، Congress، Cue، Designate، ِDocumentation، Dragonflow، Freezer، Fuel، Glance، Heat، Horizon، Infrastructure، Ironic، Karbor، Keystone، Kolla، Kuryr، Magnum، Manila، Mistral، Monasca، Murano، Neutron، Nova، Octavia، Openstack Ansible، Openstackclient، Oslo، Packaging-Rpm، Puppet Openstack، Quality Assurance، Rally، Refstack، Release Management، Requirements، Sahara، Searchlight، Security، Senlin، Solum، Sqlalchemy-Migrate، Storlets، Swift، Tracker، Telemetry، Tricircle، Tripleo، Trove، Vitrage، Watcher، Winstackers، Zaqar و Zun.

جالب است بدانید که در نسخه اولیه اپن استک که با نام Austin شناخته می‌شد، تنها دو کامپوننت Nova و Swift وجود داشتند و رفته‌رفته سایر کامپوننت‌ها در نسخه‌های بعدی به آن اضافه شدند.

جدول 3 OpenStack Project Timeline تا سال 2017

نام نسخه منتشر شده تاریخ انتشار لیست کامپوننت‌های پشتیبانی شده
Austin 21 October 2010 Nova, Swift
Bexar 3 February 2011 Nova, Glance, Swift
Cactus 15 April 2011 Nova, Glance, Swift
Diablo 22 September 2011 Nova, Glance, Swift
Essex 5 April 2012 Nova, Glance, Swift, Horizon, Keystone
Folsom 27 September 2012 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder
Grizzly 4 April 2013 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder
Havana 17 October 2013 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer
Icehouse 17 April 2014 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove
Juno 16 October 2014 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara
Kilo 30 April 2015 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic
Liberty 16 October 2015 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight
Mitaka 7 April 2016 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum
Newton 6 October 2016 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher
Ocata 22 February 2017 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer, Trove, Sahara, Ironic, Zaqar, Manila, Designate, Barbican, Searchlight, Magnum, aodh, cloudkitty, congress, freezer, mistral, monasca-api, monasca-log-api, murano, panko, senlin, solum, tacker, vitrage, Watcher
شکل 3 لوگوی نسخه‌های مختلف OpenStack
شکل 3 لوگوی نسخه‌های مختلف OpenStack

شما باید بسته به نیاز خود هر یک از کامپوننت‌های مورد نظر را نصب و راه‌اندازی و در صورت لزوم با بقیه کامپوننت‌ها integrate (یکپارچه سازی) نمایید.

جدول زیر لیستی از کامپوننت‌های اصلی برای اپن استک نسخه Queens را نشان می‌دهد.

جدول 4 لیست کامپوننت‌های OpenStack نسخه Queens

سرویس نام پروژه توصیف
Identity Service Keystone User Management
Compute Service Nova Virtual Machine Management
Image Service Glance Manages Virtual image like kernel image or disk image
Dashboard Horizon Provides GUI console via Web browser
Object Storage Swift Provides Cloud Storage
Block Storage Cinder Storage Management for Virtual Machine
Network Service Neutron Virtual Networking Management
Orchestration Service Heat Provides Orchestration function for Virtual Machine
Metering Service Ceilometer Provides the function of Usage measurement for accounting
Database Service Trove Database resource Management
Data Processing Service Sahara Provides Data Processing function
Bare Metal Provisioning Ironic Provides Bare Metal Provisioning function
Messaging Service Zaqar Provides Messaging Service function
Shared File System Manila Provides File Sharing Service
DNS Service Designate Provides DNS Server Service
Key Manager Service Barbican Provides Key Management Service

بطور کلی کامپوننت‌های اپن استک در سه دسته کلی: Compute، Networking ‌و Storage تقسیم‌بندی می‌شوند.

دسته‌بندی انواع کامپوننت‌های OpenStack
شکل 4 دسته‌بندی انواع کامپوننت‌های OpenStack

در ادامه به توضیح مختصر هر یک از کامپوننت‌های نرم افزار OpenStack خواهیم پرداخت:

کامپوننت Identity Service Keystone

OpenStack Identity Keystone این امکان را فراهم می‌کند که دایرکتوری مرکزی از کاربران به سرویس‌های‌ OpenStack‌ دسترسی داشته باشند. این سیستم بدین صورت عمل می‌کند که می‌تواند به عنوان یک سیستم مشترک بین سیستم‌عامل‌های ابری باشد یا با سیستم‌های موجود شناسایی همانند LDAP سازگار شود.

کامپوننت Keystone وظیفه دایرکتوری مرکزی کاربران مانند Microsoft Active Directory و LDAP برای دسترسی به بخش‌های مختلف‌‌ اپن استک را به عهده دارد. Keystone از چندین متد احراز هویت در OpenStack پشتیبانی می‌کند.

متدهای احراز هویتی مانند نام کاربری/پسورد مبتنی بر توکن یا Password/Username‌ Based-Token و AWS-Style مانند‌(Amazon Services Web) قابل پشتیبانی در ‌Keystone می‌باشند. توسعه‌دهندگان می‌توانند برای کاربران محدودیت‌هایی ایجاد کنند که هر کاربر چه منابعی را بتواند استفاده کند.

کامپوننت Compute Nova

کامپوننت Compute Nova کنترلر اصلی رایانش ابری است که بخش اصلی و هسته مرکزی و پردازشی سیستم IaaS بوده که کار هماهنگی با فناوری‌های مجازی‌سازی و Hypervisorهایی مثل KVM بر روی لینوکس، ESXi بر روی VMware  و Hyper-V بر روی سیستم مجازی‌سازی مایکروسافت و XenServer شرکت Citrix و همچنین Linux Container technology‌ مانند LXC را برعهده دارد.

این بخش برای مدیریت و اتوماسیون‌سازی دریای منابع کامپیوتری طراحی شده است و می‌تواند با گستره‌ای از تکنولوژی‌های مجازی‌سازی، همانند bare metal و‌ HPC یا High-Performance Computing برای یکپارچه‌سازی سخت‌افزار مورد استفاده در IaaS کار کند.

این سیستم بر پایه زبان Python نوشته شده است و تعداد زیادی کتابخانه‌های خارجی مانند: ‌Eventlet (for concurrent programming)،‌ Kombu (for AMQP communication)‌ و‌ SQLAlchemy (for database access) را استفاده می‌کند.

معماری رایانش بدین صورت طراحی شده است که مقاس‌پذیری افقی (افزودن چند Node یا Computer به سیستم) بدون وابستگی به سخت‌افزار یا پیش نیاز نرم‌افزاری داشته باشد و این قدرت را دارد تا با سیستم‌های قدیمی و تکنولوژی‌های دیگر سازگاری داشته باشد.

کامپوننت Image Service Glance

OpenStack Image Service Glance راهکاری است که اکتشاف، ثبت‌نام و سرویس تحویل برای دیسک و سرور image را فراهم می‌کند.‌Image های ذخیره شده می‌توانند به عنوان Template (قالب) استفاده شوند. همچنین می‌توان به عنوان ذخیره کردن نسخه‌های پشتیبان از آن استفاده کرد.

در واقع بخش Glance در نرم افزار OpenStack کار مدیریت و نگهداری ‌imageهای ماشین‌های مجازی را بر عهده دارد. از ایجاد template برای‌ ماشین‌های مجازی گرفته تا backup و Snapshot برای آنها از جمله وظایف Glance در  اپن استک‌ می‌باشد. همچنین Glance‌ از‌ طیف وسیعی از ‌imageهای مجازی‌سازی از qcow2 در لینوکس و KVM و  VMDK‌در VMware گرفته تا استاندارد OVF را پشتیبانی می‌کند.

کامپوننت Object Storage Swift

کامپوننت Object Storage Swift یک سیستم ذخیره‌سازی مقیاس‌پذیر است. فایل‌ها و اشیاء در هاردهای مختلف سرورها در مرکز داده نوشته می‌شوند. سیستم نرم‌افزاری اپن استک مسئول نگهداری و رونوشت از داده‌ها است. سیستم ذخیره‌سازی Cluster قابلیت مقایس‌پذیری افقی دارد یعنی به سادگی می‌توان به آن سرور جدید افزود.

هر زمان که سرور یا هارد درایو مختل می‌شود، OpenStack رونوشتی از اطلاعات را از‌ Node های فعال به مکان دیگری در سیستم‌ Cluster‌ منتقل می‌کند. به دلیل اینکه سیستم‌ نرم افزار OpenStack‌ منطقی است همواره رونوشت مطمئنی از اطلاعات برروی دستگاه‌های مختلف قرار دارد و نیازی به داشتن تجهیزات و هارددیسک‌های گران قیمت نیست.

در واقع وظیفه Swift به نوعی مشابه ذخیره سازی Cluster است که فضای یکپارچه‌ای از هارد دیسک‌های تمام سرورهای مورد استفاده در IaaS‌ را ایجاد می‌کند. از دید کاربر تمامی هارد دیسک‌ها بر روی همه سرورها بصورت یک هارددیسک واحد دیده می‌شود و ذخیره‌سازی اطلاعات بر روی تمام هاردها صورت می‌گیرد و در صورت از دست رفتن یک هارد دیسک یا حتی یک سرور، اطلاعات از بین نمی‌رود و با جایگزین کردن منابع سخت‌افزاری از دست رفته دوباره بازسازی می‌شود.

در سال 2009، Rackspace سیستم OpenStack Object Storage را جایگزین محصول ‌Cloud File های خود کرد. ‌SwiftStack یک شرکت ذخیره‌سازی اشیاء است که در حال حاضر پیشرو Swift می‌باشد.

کامپوننت Dashboard Horizon

OpenStack Dashboard Horizon برای مدیران و کاربران یک اینترفیس گرافیکی برای دسترسی، تدارک و اتوماسیون منابع ابری را فراهم می‌کند. طراحی سیستم به‌گونه‌ای است که سرویس‌های خارجی همانند: مدیریت مالی، مانیتورینگ و ابزارهای اضافی مدیریت را در خود جای می‌دهد.

داشبورد، قابلیت برندینگ برای ارائه‌دهندگان سرور و سرور مجازی دارد. داشبورد یکی از چندین راه برقراری ارتباط با منابع‌ OpenStack‌ می‌باشد. توسعه‌دهندگان می‌توانند دسترسی اتوماتیک ایجاد کنند و ابزارهایی بسازند که منابع را توسط‌OpenStack AP I  مدیریت کنند.

کامپوننت Networking Neutron

کامپوننت Networking Neutron, که قبلا Quantum ‌نام داشت یک سیستم برای مدیریت شبکه و آدرس IP‌ها می‌باشد. OpenStack Networking همواره مطمئن می‌شود که شبکه در تنگنا یا فاکتور محدودیتی بر روی توسعه ابر قرار ندارد.

این کامپوننت وظیفه فراهم کردن شبکه‌های مجازی و ارائه آن به عنوان یک سرویس بین دستگاه‌های مختلفی که توسط سایر سرویس‌های ‌OpenStack‌ مدیریت می‌شوند برعهده دارد، این کامپوننت‌ها این امکان را فراهم می‌کنند که کاربران بتوانند شبکه‌های مورد نظر خودشان را برای ارتباط‌ بین دستگاه‌های مورد نیازشان فراهم کنند. برای مثال ماشین‌های مجزایی که توسط Nova مدیریت‌ می‌شوند، می‌توانند توسط یک شبکه مجزا ایجاد شده توسط کاربر به یکدیگر مرتبط شوند.

این کامپوننت مدل‌های مختلف شبکه را برای برنامه‌های مختلف فراهم می‌کند. مدل استاندارد آن، شامل شبکه هم‌سطح یا ‌VLAN می‌شود که ترافیک و سرورها را از هم جدا می‌سازد.

OpenStack Networking آدرس‌های آی پی (IP) را مدیریت می‌کند، ایجاد آدرس IP اختصاصی یا‌ آدرس IP شناور (DHCP Floating IP Address)، امکان این را دارد که ترافیک به صورت پویا مجدداً مسیریابی بین منابع زیرساخت شود، پس کاربر می‌تواند ترافیک را در زمان تعمیرات یا اختلال در سیستم مسیردهی کند.

کاربران می‌توانند شبکه اختصاصی خودشان را بسازند، ترافیک را مدیریت کنند و سرور و دستگاه‌ها را به یک یا چند شبکه متصل کنند. مدیران هم می‌توانند همانند OpenFlow برای پشتیبانی از سطح‌های بالا SDN داشته باشند.

OpenStack Networking‌ یک framework دارد که می‌توان بر روی آن سرویس‌های مجزا شبکه همانند: IDS، Load Balancing، Firewall‌ ‌و VPN را مدیریت نمود.

کامپوننت Block Storage Cinder

کامپوننت Block Storage Cinder قابلیت Block-level storage مداوم برای استفاده در سیستم ‌OpenStack compute را فراهم می‌کند. سیستم ذخیره‌سازی بلوک مدیریت، ایجاد، اتصال و لغو اتصال بلوک به سرور را برعهده دارد. Block Storage‌ بصورت کامل با‌ OpenStack Compute‌ سازگار است و داشبورد آن امکان مدیریت فضای ذخیره‌سازی را به کاربر می‌دهد.

یکی از اجزای پیاده‌سازی رایانش ابری استفاده از سرور ذخیره سازی یا Server Storage جهت نگهداری اطلاعات است. در نرم افزار OpenStack از طیف وسیعی‌ از سرورهای ذخیره سازی شناخته شده در سطح Enterprise پشتیبانی می‌شود. از HP گرفته تا IBM و NetApp همه و همه در اپن استک قابل پشتیبانی هستند. Cinder در پروژه اپن استک وظیفه مدیریت ساخت (Creation) و ورود و خروج ‌(Detach – Attach) بلوک‌های ذخیره‌ساز را بر‌عهده دارد.

به غیر از سرور ذخیره سازی محلی لینوکس یا local Linux server Storage این سیستم از پلتفرم‌های: IBM، Hitachi Data Systems، GlusterFS،‌EMC (ScaleIO, VMAX and VNX)، Coraid، CloudByte، Ceph، NetApp، Linux LIO، SolidFire، Scality، Nexenta و‌ Storage (Storwize family, SAN Volume Controller, XIV Storage System, and GPFS) نیز می‌تواند استفاده کند.

Block Storage‌ یک سیستم تأثیرگذار بر کارآمدی سیستم‌های دیگر همانند  Database Storage File Systems می‌باشد. مدیریت Snapshot‌ این امکان را فراهم می‌کند تا نسخه پشتیبان از داده‌ها بر روی بستر Block Storage ذخیره شود.

کامپوننت Orchestration Heat

کامپوننت Heat‌ یک سرویس به منظور هماهنگ سازی برنامه‌های مرکب ابری توسط Template (قالب) در بستر‌ OpenStack Native API یا Cloud Formation Query API‌ می‌باشد.

کامپوننت Telemetry Ceilometer

کامپوننت Telemetry Ceilometer سیستم شمارش منابع مصرفی برای یک کاربر مشخص به منظور استفاده در سیستم مدیریت مالی می‌باشد. این سیستم یک شمارنده قابل گسترش می‌باشد که شمارش منابع کل سیستم نرم افزار OpenStack به همراه تمامی اجزاء آن را برعهده می‌گیرد.

در واقع Ceilometer کار حساب (accounting) و billing در مصارف تجاری را مدیریت می‌کند. این بخش قابلیت ایجاد یک طرح تجاری را به کاربر می‌دهد تا ایده تجاری ابری را بر روی بستر OpenStack پیاده‌سازی کند و بتواند به صورت آنلاین خدمات خود را ارائه دهد.

کامپوننت Database Trove

Trove‌ یک سیستم DataBase-as-a-Service یا DBaaS برای پیاده‌سازی relational و ‌non-relational database engine‌ می‌باشد.

کامپوننت DNSaaS Designate

کامپوننت Designate به عنوان DNS as a Service در زیرساخت اپن استک عمل می‌کند.

کامپوننت Dashboard Horizon

داشبورد OpenStack به نام Horizon مدیریت همه بخش‌های دیگر که در قسمت‌های پیشین معرفی شدند را از طریق رابط کاربری ‌گرافیکی تحت وب‌ انجام می‌دهد. Horizon مثل سایر بخش‌های OpenStack با زبان برنامه‌نویسی پایتون نوشته شده است و با استفاده از فریم ورک جنگو ‌Django بر روی بستر وب و قابل اجرا بر روی مرورگر وب پیاده‌سازی شده است.

نمایی از معماری و کامپوننت‌های OpenStack
شکل 5 نمایی از معماری و کامپوننت‌های OpenStack

توجه داشته باشید که هر یک از کامپوننت‌های معرفی شده اپن استک از یک سری از پورت‌ها برای انجام وظایف و سرویس‌دهی خود استفاده می‌کنند. در جدول زیر لیست شماره پورت‌های رایج برای سرویس‌های OpenStack آورده شده است.

جدول 5 لیست شماره پورت‌های رایج سرویس‌های (کاموپننت‌های) نرم افزار OpenStack

OpenStack Service Network Port Number
Public API endpoint port for Keystone 5000
Admin API endpoint port for Keystone 35357
Cinder Block Storage service 8776
Image service Glance 9292
Glance Registry 9191
Compute service Nova 8774
Object Storage services Swift 8080 and 6001-6003
Networking service Neutron 9696
Telemetry service Ceilometer 8777
Orchestration service Heat 8004

واکاوی OpenStack

‌ساختار هسته اپن استک شامل اجزای زیر است:

OpenStack Compute: ماژول مدیریت و فراهم آوردن ماشین‌مجازی است. این ماژول با عنوان Nova شناخته می‌شود. این ماژول ‌hypervisorهایی‌ از جمله: LXC، QEMU، KVM و XenServer را پشتیبانی می‌کند. این ماژول کنترل تمامی بخش‌های: شبکه‌بندی، پردازشگر، ذخیره‌سازی، حافظه اصلی، ساخت، کنترل و حذف ماشین‌های مجازی، امنیت و کنترل دسترسی را برعهده دارد. این مدیریت می‌تواند از طریق خط فرمان یا محیط گرافیکی وبی انجام شود.

OpenStack Glance: مدیریت سرویس image سیستم OpenStack را برعهده دارد. این زیر سیستم imageهای ماشین‌مجازی از جمله: QEMU/KVM، VirtualBox، VMware (VMDK, OVF)، Hyper-V و RAW را پشتیبانی می‌کند.

OpenStack Object Store: همان طور که از عنوان نام این سرویس مشخص است، وظیفه مدیریت ذخیره‌سازی را برعهده دارد. به منظور امکان ذخیره‌سازی در تمام فرمت‌های مورد نیاز، این زیر سیستم به صورت توزیع شده می‌باشد.هم چنین به منظور جلوگیری از پاک شدن داده‌ها چندین لایه افزونگی و تکرار خودکار وجود دارد و بازگردانی داده‌ها به صورت خودکار انجام می‌شود.

معماری OpenStack

شکل زیر نمایی از معماری زیرساخت OpenStack را نشان می‌دهد.

نمایی از معماری زیرساخت نرم افزار OpenStack
شکل 6-نمایی از معماری زیرساخت OpenStack

شکل زیر، نمایی از معماری OpenStack در قالب کامپوننت‌های اصلی و سرویس‌های آنها را نمایش می‌دهد.

نمایی از معماری نرم افزار OpenStack
شکل 7 نمایی از معماری OpenStack در قالب کامپوننت‌های اصلی و سرویس‌های آنها

راه‌‌اندازی یک ماشین مجازی بر بستر Cloud شامل اجرای بسیاری از فرآیندها می‌شود. شکل زیر یک نمای کلی از سرویس‌های OpenStack را ارائه می‌دهد.

نمایی از معماری ارتباطی اجزاء OpenStack
شکل 8 ‌نمایی از معماری ارتباطی اجزاء OpenStack

انواع معماری OpenStack

نرم افزار OpenStack از نظر پیکربندی و سفارشی‌سازی قابلیت‌های بالایی دارد. بطور کلی اپن استک با چهار معماری متفاوت به شرح زیر پیاده‌سازی می‌گردد:

  1. معماری یک Node با استفاده از مدل شبکه قدیمی
  2. معماری دو Node با استفاده از مدل شبکه قدیمی
  3. معماری سه Node به همراه زیرساخت شبکه Neutron
  4. معماری چهار Node به همراه زیرساخت شبکه Neutron

با توجه به اینکه معماری یک و دو Node قدیمی هستند و معماری سه و چهار Node دارای قابلیت‌های به مراتب بیشتری می‌باشند. در ادامه معماری سه Node را که از معماری‌های رایج امروزی است را مورد بررسی قرار می‌دهیم.

معماری سه Node دارای ویژگی‌ها و قابلیت های زیر می‌باشد:

بر روی Controller Node سرویس‌هایی از قبیل احراز هویت و Image و بخش‌های مدیریتی سرویس‌های شبکه و محاسبات و سرویس داشبورد قرار می‌گیرد. علاوه بر این می‌توان پایگاه داده اپن استک و NTP و سرویس واسط پیام یا Message Broker را نیز بر روی این node‌ نصب و راه‌اندازی نمود. می‌توان سرویس‌هایی مانند سرویس بلاک، سرویس اشیاء، سرویس پایگاه داده،‌ سرویس اندازه‌گیری و همچنین سرویس زمان بندی و همانگی ‌Orchestration  را بصورت انتخابی بر روی این node نصب نمود.

بر روی نود شبکه یا Network Node سرویس‌هایی مانند پلاگین‌های شبکه ‌Networking plug-in ، سرویس لایه دوم و انواع عامل‌های مدیریت لایه سوم شبکه مستقر می‌گردد. سرویس لایه دوم شامل ایجاد زیرساخت شبکه مجازی و تانل (Tunnel) می‌باشد. سرویس لایه سوم شامل مسیریابی و سرویس NAT‌ و DHCP می‌باشد. این node همچنین وظیفه ایجاد اتصال شبکه داخل ماشین‌های مجازی به بیرون از شبکه OpenStack را بر عهده دارد.

نودهای محاسباتی یا Compute Node وظیفه اجرای ماشین‌های مجازی را برعهده دارند. نودهای محاسبات به طور پیش‌فرض از مدیر ماشین مجازی یا KVM استفاده می‌نمایند. می‌توان از بیش از چند نود محاسبات استفاده نمود. همچنین بر روی نودهای محاسبات‌ عامل‌های اندازه‌گیری سرویس اندازه‌گیری اجرا می‌گردد.

در شکل زیر معماری سه node آمده است.

معماری سه node در OpenStack
شکل 9 معماری سه node در OpenStack

در ادامه نمایی از معماری‌های دو node و چهار node در نرم افزار OpenStack نیز آورده شده است.

معماری دو node در OpenStack
شکل 10 معماری دو node در OpenStack
معماری چهار node در OpenStack
شکل 11 معماری چهار node در OpenStack

5/5 - (1 امتیاز)
ممکن است شما دوست داشته باشید
ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.

چهارده − یک =