اَبرِ دیجیتال، مرکز تخصصی ارائه سرویس های ابری، سرور مجازی/اختصاصی، هاست و دامنه

اَبرِ دیجیتال، مرکز تخصصی ارائه سرویس های ابری

Openstack چیست + کاربرد و ویژگی

Openstack چیست + کاربرد و ویژگی

مقدمه

 

OpenStack یک پلتفرم متن‌باز مدیریت زیرساخت به‌عنوان سرویس (IaaS) است که به سازمان‌ها امکان می‌دهد منابع محاسباتی، ذخیره‌سازی و شبکه را به‌صورت مقیاس‌پذیر و خودکار در دیتاسنترها یا ابرهای خصوصی/هیبریدی فراهم کنند. این پروژه مجموعه‌ای از سرویس‌ها و ماژول‌های مستقل اما یکپارچه است که از طریق APIها و داشبورد وب (Horizon) امکان مدیریت ماشین‌های مجازی، شبکه‌های مجازی، بلوک/اشیاء ذخیره‌سازی، هویت و تصویرها را مهیا می‌سازد.

کاربردهای رایج OpenStack شامل استقرار ابر خصوصی برای شرکت‌ها، بستر تست و توسعه، میزبانی سرویس‌های تحت وب و ارائه ابر عمومی/محلی می‌باشد. ویژگی‌های کلیدی آن شامل متن‌باز بودن، ماژولار بودن، پشتیبانی از چندین فناوری مجازی‌سازی، خودکارسازی، مقیاس‌پذیری افقی و پشتیبانی از استانداردهای RESTful API است.

 

فهرست کامپوننت‌ها و سرویس‌ها

  1. Nova (Compute)
  2. Neutron (Networking)
  3. Cinder (Block Storage)
  4. Swift (Object Storage)
  5. Glance (Image Service)
  6. Keystone (Identity)
  7. Horizon (Dashboard)
  8. Heat (Orchestration)
  9. Ceilometer / Gnocchi / Aodh (Telemetry / Metering / Alarming)
  10. Trove (Database as a Service)
  11. Manila (Shared File Systems)
  12. Sahara (Data Processing — Hadoop)
  13. Barbican (Key/Certificate Management)
  14. Ironic (Bare Metal Provisioning)
  15. Designate (DNS as a Service)
  16. Magnum (Containers/Orchestration Engines)
  17. Zaqar (Messaging)
  18. Placement (Resource tracking)
  19. Kuryr (Container networking integration)
  20. Blazar (Reservation service)

 

 

 

Nova (Compute)

 

Nova هسته محاسباتی OpenStack است که مسئول ایجاد و مدیریت چرخه عمر ماشین‌های مجازی (VMs) و منابع محاسباتی است. Nova با hypervisorهای مختلف مانند KVM، Xen، Hyper-V و VMware کار می‌کند و شامل اجزایی مانند nova-api برای دریافت درخواست‌ها، nova-scheduler برای تصمیم‌گیری نحوه تخصیص منابع، nova-conductor برای مدیریت ارتباطات دیتابیس و nova-compute که روی هر گره محاسباتی اجرا می‌شود. این سرویس منابع CPU، حافظه و دیسک را مدیریت می‌کند، پشتیبانی از مقیاس‌گذاری افقی و عمودی را فراهم می‌آورد و با سایر سرویس‌ها مانند Neutron برای شبکه و Cinder/Glance برای ذخیره و تصاویر یکپارچه می‌شود. Nova امکاناتی مثل مهاجرت زنده، مدیریت منابع اختصاصی و برنامه‌ریزی سفارشی را نیز ارائه می‌دهد که آن را به ستون فقرات ارائه‌دهندگان IaaS تبدیل می‌کند.

 

Neutron (Networking)

 

Neutron سرویس شبکه نرم‌افزاری OpenStack است که قابلیت‌های شبکه‌ای پیچیده مانند ایجاد شبکه‌های مجازی، زیرشبکه‌ها، آدرس‌دهی IP، روترهای منطقی، امنیت گروه‌ها (security groups)، NAT، بارگذاری متوازن (LBaaS) و VPN را فراهم می‌کند. معماری Neutron ماژولار است و از پلاگین‌ها/درایورها برای تعامل با تکنولوژی‌هایی مانند Open vSwitch، LinuxBridge، VLAN، VXLAN، GRE و راهکارهای SDN تجاری پشتیبانی می‌کند. Neutron کنترل سطح API را ارائه می‌دهد، در حالی که عوامل (agents) روی گره‌ها اعمال تغییرات شبکه‌ای را انجام می‌دهند. این سرویس به مدیران اجازه می‌دهد سیاست‌های شبکه‌ای پیچیده را تعریف کنند، ایزولاسیون چند-مستاجری را تحقق ببخشند و با Nova به‌منظور اتصال ماشین‌های مجازی به شبکه‌ها هماهنگ شود.

 

Cinder (Block Storage)

 

Cinder سرویس ذخیره‌سازی بلوکی OpenStack است که برای ارائه و مدیریت دیسک‌های بلوکی قابل اتصال به ماشین‌های مجازی طراحی شده است. کاربران می‌توانند ولوم‌ها (Volumes) بسازند، آنها را به instances متصل یا جدا کنند، از آنها snapshot تهیه کنند و حجم‌ها را از طریق انواع درایور به بک‌اندهای ذخیره‌سازی مختلف مانند LVM، NFS، iSCSI، Fibre Channel و ذخیره‌سازهای تجاری متصل کنند. Cinder شامل API، سرویس حجمی و scheduler است که تخصیص و مدیریت ظرفیت را هماهنگ می‌کند و از قابلیت‌هایی مثل cloning، resizing، replication و backup پشتیبانی می‌کند. این سرویس مناسب پایگاه‌داده‌ها و بارکاری‌هایی است که نیاز به ذخیره‌سازی بلوکی با کارایی و دوام بالا دارند.

 

Swift (Object Storage)

 

Swift سیستم ذخیره‌سازی آبجکت توزیع‌شده و مقاوم در برابر خطا برای نگهداری و بازیابی مقدار زیادی داده غیرساخت‌یافته (objects) است. برخلاف Cinder، Swift برای دسترسی به اشیاء از طریق APIهای REST طراحی شده و به‌جای دیسک‌های قابل اتصال به VM، داده‌ها را در یک کلاستر توزیع و replica می‌کند تا تحمل خطا و مقیاس‌پذیری بالا تضمین شود. Swift از مدل eventual consistency، نسخه‌بندی اشیاء، lifecycle policies و استراتژی‌های توزیع داده استفاده می‌کند و برای ذخیره‌سازی بکاپ‌ها، آرشیوها، فایل‌های رسانه‌ای و سرویس‌های وب مقیاس‌پذیر مناسب است. پیاده‌سازی Swift شامل proxy server، account/container/object servers و ring برای نگاشت اشیاء به نودها است.

 

Glance (Image Service)

 

Glance سرویس مدیریت تصاویر ماشین مجازی است که وظیفه ذخیره، ثبت و بازیابی تصاویر دیسک و اسنپ‌شات‌ها را بر عهده دارد. Glance به کاربران امکان می‌دهد تصاویر سیستم‌عامل را آپلود، جستجو و در دسترس سایر سرویس‌ها قرار دهند؛ این تصاویر می‌توانند در بک‌اندهای مختلف ذخیره شوند از جمله زیرساخت‌های بلابی یا سرویس‌های ذخیره‌سازی مانند Swift، فایل سیستم محلی یا ذخیره‌سازهای تجاری. Glance از فرمت‌های مختلف تصویر پشتیبانی می‌کند و می‌تواند با Cinder برای ایجاد ولوم از تصویر و با Nova برای استقرار instances یکپارچه شود. همچنین قابلیت ایجاد متادیتا برای تصاویر و نسخه‌بندی را فراهم می‌آورد که در CI/CD و خودکارسازی استقرارها حیاتی است.

 

Keystone (Identity)

 

Keystone سرویس هویت و احراز هویت OpenStack است که مدیریت کاربران، پروژه‌ها (tenants)، نقش‌ها و توکن‌های احراز هویت را فراهم می‌کند. Keystone یک API هویت ارائه می‌دهد که سایر سرویس‌ها برای تأیید هویت و کنترل دسترسی از آن استفاده می‌کنند؛ این سرویس از روش‌های مختلف احراز هویت مانند رمز عبور، توکن و اتصال به سرویس‌های خارجی مانند LDAP و OAuth پشتیبانی می‌کند. علاوه بر این Keystone سرویس صدور توکن، نگهداری سیاست‌های نقش-محور (RBAC) و اطلاعات سرویس‌دهی (service catalog) را فراهم می‌کند تا کلاینت‌ها بدانند کدام endpointها برای سرویس‌های OpenStack در دسترس است. Keystone نقطه مرکزی امنیت و مدیریت دسترسی در ابر OpenStack است.

 

Horizon (Dashboard)

 

Horizon داشبورد وب رسمی OpenStack است که رابط گرافیکی مبتنی بر مرورگر برای مدیریت سرویس‌ها و منابع ارائه می‌دهد. با Horizon کاربران و مدیران می‌توانند بدون استفاده از API خط فرمان به ساخت و مدیریت instanceها، شبکه‌ها، حجم‌ها، تصاویر، کاربران و دسترسی‌ها بپردازند. Horizon ماژولار و قابل توسعه است و می‌توان پلتین‌ها و نماهای سفارشی برای افزونه‌ها اضافه کرد. این داشبورد برای تیم‌های عملیاتی که نیاز به مشاهده گرافیکی از وضعیت ابر و انجام عملیات روزمره دارند مناسب است و تجربه کاربری را ساده می‌کند، در حالی که برای خودکارسازی مقیاس‌پذیری و اسکریپت‌نویسی معمولاً از APIها ترجیح داده می‌شود.

 

 

Heat (Orchestration)

 

Heat سرویس ارکستراسیون و تنظیم‌گری OpenStack است که امکان توصیف و استقرار منابع پیچیده در قالب قالب‌های قابل برنامه‌ریزی (templates) را فراهم می‌کند. Heat از قالب‌های نوشتاری مانند HOT (Heat Orchestration Template) برای تعریف منابعی مانند instanceها، شبکه‌ها، ذخیره‌سازی و وابستگی‌های آنها استفاده می‌کند و می‌تواند برای استقرار برنامه‌های چند-سطحی، خودکارسازی محیط‌های تست/توسعه و مدیریت چرخه عمر پشته‌ها به‌کار رود. Heat با استفاده از API به سایر سرویس‌ها فراخوانی می‌زند و امکان تعریف مقادیر پارامتریک، منابع پویا و سیاست‌های مقیاس‌گذاری را دارد که اجرای منظرهای پیچیده زیرساختی را تسهیل می‌کند.

 

Ceilometer / Gnocchi / Aodh (Telemetry, Metering, Alarming)

 

Ceilometer مجموعه‌ای از سرویس‌ها برای جمع‌آوری و ذخیره‌سازی telemetry و metering در OpenStack بود؛ امروزه داده‌ها معمولاً در Gnocchi برای ذخیره داده‌های سری زمانی و در Aodh برای ایجاد قوانین هشدار پردازش می‌شوند. این ابزارها متریک‌ها و لاگ‌های مصرف منابع (CPU، حافظه، شبکه، فضای دیسک و استفاده از API) را جمع‌آوری کرده و برای صورتحساب، مانیتورینگ و ایجاد آلارم استفاده می‌شوند. معماری شامل agents جمع‌آوری کننده، pipelines برای پردازش و backends برای ذخیره‌سازی است. این مجموعه به مدیران امکان می‌دهد الگوهای مصرف را تجزیه‌وتحلیل، هزینه‌ها را محاسبه و هشدارهای خودکار برای شرایط بحرانی تعریف کنند.

 

Trove (Database as a Service)

 

Trove سرویس مدیریت پایگاه‌داده به‌عنوان سرویس است که ایجاد، مدیریت و مقیاس‌گذاری نمونه‌های پایگاه‌داده رابطه‌ای و NoSQL (مانند MySQL، PostgreSQL، MongoDB و غیره) را ساده می‌کند. Trove وظایفی مانند پروویژن سریع دیتابیس، پشتیبان‌گیری، بازیابی، مانیتورینگ و مقیاس‌گذاری عمودی/افقی را خودکار می‌سازد و الگوها و پیکربندی‌های از پیش آماده را برای تسهیل استقرار ارائه می‌دهد. این سرویس برای تیم‌های توسعه مفید است که می‌خواهند دیتابیس را به‌عنوان یک سرویس مصرف کنند بدون نیاز به مدیریت سطح زیرساخت؛ Trove با دیگر سرویس‌ها مثل Nova و Cinder یکپارچه است تا منابع محاسباتی و ذخیره‌سازی مورد نیاز نمونه‌ها را فراهم کند.

 

Manila (Shared File Systems)

 

Manila سرویس اشتراک فایل شبکه‌ای مدیریت‌شده را فراهم می‌کند و امکان ارائه سیستم‌های فایل اشتراکی (مانند NFS یا CIFS/SMB) را به عنوان یک سرویس در OpenStack می‌دهد. کاربران می‌توانند shareها را ایجاد، mount و مدیریت کنند، سطح دسترسی و سیاست‌های اشتراک را تنظیم نمایند و از backends مختلف ذخیره‌سازی پشتیبانی کنند. Manila مناسب بارکاری‌هایی است که نیاز به سیستم فایل مشترک بین چندین instance دارند، مانند سرویس‌های وب خوشه‌ای یا برنامه‌های پردازش داده توزیع‌شده. این سرویس شامل driverهای یکپارچه‌ساز با تجهیزات ذخیره‌سازی و NASهای تجاری نیز می‌باشد.

 

Sahara (Data Processing)

 

Sahara سرویس پردازش داده است که هدف آن تسهیل استقرار و مدیریت کلاسترهای پردازش داده مانند Hadoop، Spark و دیگر چارچوب‌های توزیع‌شده است. با Sahara می‌توان به‌سرعت کلاسترهای داده را بر بستر OpenStack ایجاد، مقیاس و پیکربندی کرد، فرآیندهای ETL را اجرا نمود و کارهای پردازشی را زمان‌بندی کرد. Sahara منابع محاسباتی و ذخیره‌سازی را از طریق Nova و Cinder مصرف می‌کند و امکان اتصال به Swift برای ذخیره‌سازی داده‌ها را دارد. این سرویس برای پروژه‌های بیگ‌دیتا و تحلیلی که نیاز به محیط موقت یا مقیاس‌پذیر دارند کاربردی است.

 

 

Barbican (Key/Certificate Management)

 

Barbican سرویس مدیریت کلید و اسرار است که ذخیره امن کلیدهای رمزنگاری، گواهی‌ها، گذرواژه‌ها و سایر اسرار را به‌صورت مرکزی فراهم می‌کند. این سرویس APIهایی برای ایجاد، بازیابی، نسخه‌بندی و کنترل دسترسی به اسرار ارائه می‌دهد و از سخت‌افزارهای HSM یا backends رمزنگاری پشتیبانی می‌کند. Barbican به سرویس‌های OpenStack امکان می‌دهد به‌طور امن از کلیدها برای رمزنگاری دیسک، TLS و دیگر نیازهای امنیتی استفاده کنند بدون آنکه کلیدها در متن ساده ذخیره شوند. استفاده از Barbican به افزایش امنیت در محیط‌های تولید و رعایت استانداردهای انطباق کمک می‌کند.

 

Ironic (Bare Metal Provisioning)

 

Ironic یک سرویس پروویژن سخت‌افزاری bare-metal است که امکان ارائه سرورهای اختصاصی به‌عنوان منابع قابل استفاده را فراهم می‌آورد، بدون لایه مجازی‌سازی. این سرویس برای بارکاری‌هایی که نیاز به دسترسی مستقیم به سخت‌افزار، کارت‌های شتاب‌دهنده یا کارایی خاص دارند مفید است. Ironic از پروتکل‌هایی مانند PXE، IPMI و مدیران out-of-band برای نصب سیستم‌عامل، کنترل برق، و مدیریت چرخه عمر سرورهای اختصاصی استفاده می‌کند. با Ironic می‌توان قالب‌های ارکستراسیون را برای استقرار خودکار سرورها تعریف کرد و آن‌ها را به‌صورت مشابه VMها، اما با دسترسی سخت‌افزاری، مدیریت نمود.

 

Designate (DNS as a Service)

 

Designate سرویس DNS به‌عنوان سرویس برای مدیریت منطقه‌ها (zones) و رکوردهای DNS به‌صورت برنامه‌پذیر است. این سرویس API برای ایجاد، حذف و به‌روزرسانی رکوردهای DNS فراهم می‌آورد و می‌تواند با سرویس‌های دیگر به‌منظور خودکارسازی ثبت نام DNS منابع جدید یکپارچه شود. Designate از پلاگین‌های backend برای تعامل با سرورهای DNS مختلف یا ارائه‌دهندگان DNS تجاری پشتیبانی می‌کند. این سرویس برای خودکارسازی عملیات DNS در محیط‌های پویا و چند-مستاجری بسیار مفید است.

 

Magnum (Containers/Orchestration Engines)

 

Magnum سرویس مدیریت خوشه‌های کانتینری است که امکان ارائه و مدیریت کلاسترهای Kubernetes، Swarm و Mesos را روی OpenStack فراهم می‌کند. Magnum منابع محاسباتی و شبکه را از سرویس‌های OpenStack مصرف کرده و قالب‌هایی برای ساخت و پیکربندی خوشه‌ها ارائه می‌دهد تا تیم‌های توسعه بتوانند محیط‌های کانتینری را به‌سرعت راه‌اندازی کنند. این سرویس پیوند بین اکوسیستم کانتینری و زیرساخت سنتی ابر را برقرار می‌سازد و مدیریت چرخه عمر خوشه‌ها، node pools و ادغام با سرویس‌هایی مثل Neutron/Manila را تسهیل می‌کند.

 

Zaqar (Messaging)

 

Zaqar یک سرویس صف و پیام‌رسانی چند-منظوره است که برای برنامه‌های توزیع‌شده طراحی شده و از الگوهای پیام‌رسانی مانند queues و topics پشتیبانی می‌کند. این سرویس APIهایی برای ارسال، دریافت و مدیریت پیام‌ها ارائه می‌کند و می‌تواند برای هماهنگی بین اجزای میکروسرویس‌ها، اعلان‌ها و پردازش غیرهمزمان استفاده شود. Zaqar می‌تواند از backendهای مختلفی برای ذخیره پیام‌ها استفاده کند و امکاناتی مانند احراز هویت یکپارچه و سیاست‌های نگهداری پیام را فراهم می‌سازد.

 

Placement (Resource Tracking)

 

Placement سرویس ردیابی و تخصیص منابع است که اطلاعات دقیق درباره منابع فیزیکی و مجازی (vCPU، RAM، دیسک، شتاب‌دهنده‌ها) در محیط OpenStack فراهم می‌کند. Nova و سایر سرویس‌ها برای تصمیم‌گیری درباره تخصیص منابع از API Placement استفاده می‌کنند؛ این سرویس به schedulerها اجازه می‌دهد ظرفیت قابل‌استفاده، تخصیص‌های جاری و نیازهای ویژگی‌محور را در نظر بگیرند. Placement برای بهینه‌سازی استفاده از منابع، جلوگیری از oversubscription نادرست و پشتیبانی از قابلیت‌هایی مانند ویژگی‌های سخت‌افزاری خاص اهمیت دارد.

 

Kuryr (Container Networking Integration)

 

Kuryr پل بین OpenStack Neutron و سیستم‌های کانتینری مانند Docker و Kubernetes است که هدفش ارائه قابلیت‌های شبکه Neutron به کانتینرها و سرویس‌های کلاستر کانتینری است. با Kuryr می‌توان از مدل‌های شبکه‌ای پیچیده، سیاست‌های امنیتی، LBaaS و ویژگی‌های شبکه‌ای دیگر Neutron برای سرویس‌های کانتینری بهره برد و مدیریت شبکه را در سطح زیرساخت یکپارچه کرد. Kuryr برای تیم‌هایی مفید است که می‌خواهند شبکه‌های کانتینری را با قابلیت‌های شبکه سازمانی ادغام کنند.

 

Blazar (Reservation Service)

 

Blazar سرویس رزرو منابع است که امکان رزرو زمان‌بندی‌شده منابع محاسباتی، شبکه یا ذخیره‌سازی را برای دوره‌های مشخص فراهم می‌کند. این کاربرد برای تحقیق و توسعه، آموزش، یا سناریوهایی که منابع باید در زمان معین تضمین شوند مناسب است. Blazar با نگهداری اطلاعات رزرو و تعامل با schedulerها تضمین می‌کند منابع رزروشده در زمان مورد نیاز در دسترس باشند و از تخصیص آنها به دیگر درخواست‌ها جلوگیری شود.

 

Skyline

 

Skyline یک پروژه/ابزار جانبی در اکوسیستم OpenStack نیست که به‌صورت رسمی جزء پروژه‌های هسته باشد؛ ممکن است به یکی از محصولات شخص ثالث، داشبورد سفارشی یا راهکار مانیتورینگ/بصری‌سازی اشاره کند. با این فرض که منظور «Skyline» به‌عنوان یک راهکار مانیتورینگ و تحلیل لاگ/متریک است: Skyline معمولاً داده‌های متریک را از منابع OpenStack (Nova, Neutron, Cinder, Swift و غیره) جمع‌آوری می‌کند، روندها و انحرافات را شناسایی نموده و داشبوردهای بصری برای تحلیل عملکرد و ظرفیت ارائه می‌دهد. کاربردهای عملی شامل کشف زودهنگام نوسانات مصرف منابع، تحلیل علت ریشه‌ای (RCA)، بهینه‌سازی ظرفیت و تهیه گزارش‌های SLA برای تیم‌های عملیات است. اگر منظور شما پروژه/محصول خاص دیگری است، نام و مرجع دقیق را بفرمایید تا توضیح مرتبط آماده شود.

 

 

Use cases رایج OpenStack

 

– ابر خصوصی سازمانی: ارائه محیط‌های ایزوله برای استقرار اپلیکیشن‌های سازمانی با کنترل کامل بر داده‌ها و زیرساخت. 

– محیط توسعه و تست (CI/CD): ساخت و نابودی سریع محیط‌های تست، تصویرسازی اتوماتیک و تست مقیاس‌پذیری. 

– ابر هیبرید/بکاپ: یکپارچه‌سازی با ابرهای عمومی برای بارگذاری ماشه‌ای یا بازیابی فاجعه. 

– پلتفرم میزبانی و IaaS عمومی: ارائه سرویس‌های میزبانی VPS و خدمات زیرساخت به مشتریان. 

– بیگ‌دیتا و پردازش توزیع‌شده: اجرای کلاسترهای Hadoop/Spark با Sahara و ذخیره‌سازی در Swift. 

– پایگاه‌داده به‌عنوان سرویس: مدیریت و مقیاس‌پذیری DBها با Trove. 

– Container-as-a-Service: اجرای خوشه‌های Kubernetes از طریق Magnum و ادغام شبکه با Kuryr. 

– میزبانی سرویس‌های حساس به عملکرد: استفاده از Ironic برای ارائه سخت‌افزار bare-metal به منظور کارایی بالا یا دسترسی به شتاب‌دهنده‌ها. 

– خدمات شبکه پیشرفته و NFV: پیاده‌سازی توابع شبکه مجازی (VNFs) و خدمات شبکه نرم‌افزارمحور با Neutron.

 

4.6/5 - (2612 امتیاز)

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


4 × 8

قوانین

قوانین ارسال دیدگاه

لطفاً در ارسال دیدگاه از کلمات مناسب استفاده کنید. ارسال اسپم ممنوع است.