کمی درباره OpenStack

دوستانی که مطلبی در خصوص OpenStack به زبان فارسی منتشر کردن به نظر میرسه بیشتر علاقه مند به تاریخ باشن تا اینکه بخوان مباحث فنی رو دنبال کنن و من برعکس همه عزیزان قصد دارم به زبان بسیار ساده ، برای افرادیکه حتی تا به حال اسم OpenStack رو نشنیدن ، این مبحث رو آموزش بدم

کمی درباره OpenStack

به زبان زیادی ساده ! وقتی صحبت از Cloud Computing می کنیم یعنی یک سری سرور هستند در اینترنت یا در شبکه های داخلی ، که اگه در اینترنت و بصورت عمومی سرویس بدن میشن Public Cloud و اگر داخلی و برای شبکه های سازمانی باشن میشن Private Cloud !!! که این سرورها پیچیدگی ها رو از سمت کاربر میگیرن ! یعنی چی ؟ یعنی باز هم به زبان ساده ، کاربر هیچوقت درگیر این مسائل نمیشه که چه نوع سخت افزاری میخام ! منابع دیسک و RAM و ... کمبود دارم !چه نوع سیستم عاملی میخام و ... همه چیز در محیط Cloud آماده میشه و تحویل کاربر میشه و کاربر فقط و فقط نتیجه کار رو میبینه ! برای کاربر اصلا مهم نیست داده هاش دارن کجا ذخیره میشن ! پردازش هاش دارن روی کدوم سرور انجام میشن و اصلا مهم نیست که بکاپ داریم از سرورمون یا نه ! همه اینها وظیفه محیط مدیریتی هست که این پلتفرم Cloud رو در اختیار ما قرار داده

خوب تا اینجای کار متوجه شدیم که حدودا Cloud چی هست ! خوب قطعا این محیط Cloud همینجوری دورهمی مدیریت نمیشه ! بلکه یک نرم افزار هست که داره پشت زمینه کار می کنه و یک چهره یا رابط کاربری هم داره که خیلی ساده در اختیار کاربر قرار می گیره تا پیچیدگی کار رو برای کاربر کم کنه ! اینجاست که یه جرقه ای باید توی ذهن شما روشن بشه که آهاااااا پس OpenStack همون محیط مدیریتی یا پلتفرم مدیریتی Cloud هست ! درسته ؟جوابش اینه که بله ، تا حدود زیادی درسته اما به همین سادگی هم نمیشه گفت که یک نرم افزاره ! حالا جلوتر متوجه میشید که خیلی فراتر از یک نرم افزار هست ... خوب باز هم قبل از اینکه بریم دنبال ادامه ماجرا یه کم منطقی تر برخورد کنیم ! خوب همین Cloud رو نگفتی که چه سرویس هایی ارائه میده ؟ خوب اینجا مهم میشه ! چرا ؟ چون قراره دقیقا بدونید OpenStack چیکار می کنه ! ببینید به زبان باز هم بسیار ساده سه نوع سرویس اصلی در محیط های Cloud ارائه میشن ! یا ما میایم مثلا یه سری منابع زیرساختی مثل هارد دیسک ، CPU و RAM و اساسا ماشینهای مجازی رو از سرویس دهنده Cloud دریافت می کنیم ! مثلا یک ماشین مجازی ویندوز سرور 2012 نسخه R2 میگیریم که 12 گیگ RAM و مثلا 4 هسته CPU داره !!!این رو بهش میگن Infrastructure As A Service که مخففش میشه IaaS !! نوع دوم سرویس هایی که از Cloud دریافت می کنیم اینه که مثلا یک نرم افزار رو شما به عنوان یک کاربر نهایی ( Dummy User ) می خاین استفاده کنید ! مثلا نرم افزار Office رو بصورت آنلاین در سرویس های Cloud نیاز دارید که استفاده کنید ! اگه بخایم مثال بزنیم ، سرویس Office365 مایکروسافت که روی بستر Cloud مایکروسافت که به اسم Azure هست داره سرویس دهی می کنه یک نوع Software As A Service یا SaaS هست !! و در نهایت برای اینکه زیاد بحث رو ادامه ندیم شما نیاز دارید که یک پلتفرم ( یک بستر و زیرساخت برای توسعه و رشد ... ) رو بصورت آنلاین دریافت کنید مثلا شما نیاز دارید که سرویسی مثل محیط برنامه نویسی ویژوال استودیوی مایکروسافت یا MySQL رو نیاز دارید که بصورت آنلاین از محیط Cloud استفاده کنید ! اینجا دارید شما از Platform As A Service یا PaaS استفاده می کنید !

خوب با کلیات آشنایی پیدا کردید ؟ بریم سراغ تعریف ساده OpenStack که چی هست ! ببینید مایکروسافت اومده برای خودش یک محیط Cloud به نام Microsoft Azure ارائه داده که سرویس های IaaS و PaaS و SaaS رو بصورت سه گانه ارائه میده و فقط هم بصورت عمومی سرویس میده یعنی شما نمی تونید بیاین Private Cloud با Microsoft Azure تا جاییکه سواد من میرسه ایجاد کنید ! در همین حین شرکت آمازون هم اومده یک سرویس Cloud دیگه به نام Amazon Web Services ارائه کرده که بصورت مخفف بهش میگن AWS و اون هم سرویس های متنوع Cloud رو ارائه میده اما باز هم مثل مایکروسافت خصوصی بودن تو کارش نیست !خوب اینجای کار میشه که Open Source کارها به غرورشون بر می خوره و با خودشون میگن چه معنی داره که اینها Closed Source باشن و خودخواه ! ما هم میایم و یک Cloud Platform یا یک محیط مدیریتی Cloud کاملا Open Source ایجاد می کنیم ! اسمش رو گذاشتن OpenStack .... اما نکته اینجاست که فعلا OpenStack فقط سرویس IaaS ارائه میده یعنی چی ؟ یعنی فقط به شما سرویس های منابع ذخیره سازی ، منابع پردازشی مثل RAM و CPU و VM و اساسا اینجور چیزها رو ارائه میده اما نکته اینجاست که شما می تونید داخل سازمان خودتون هم برای راه اندازی Private Cloud از این OpenStack استفاده کنید .

خوب خدارو شکر تا اینجای کار متوجه شدیم که OpenStack یک مجموعه نرم افزار یا یک پلتفرم هست ، Open Source هست یعنی هر کسی می تونه به توسعه و رشد و پیشرفتش کمک کنه و یه چیزی براش بنویسه ، زیرساخت در قالب سرویس یا IaaS هست و شما می تونید در کسری از دقیقه ماشین مجازی خودتون رو با هر پیکربندی که نیاز داشته باشید ازش بخاین و ایجاد کنید . حالا سئوال دیگه ای که پیش میاد اینه که خوب مگه نمیگی ماشین مجازی ؟یعنی VM !!! خوب این VM ها رو خود OpenStack ایجاد می کنه ؟ یعنی OpenStack یک هایپروایزور هست ؟ خوب اینجاست که خیلی از دوستان اشتباه می کنن ، در حقیقت OpenStack هیچوقت یک هایپروایزور مثل ESXi یا Hyper-V و KVM و Open-VZ و حتی Docker و ... نیست بلکه یک محیط مدیریتی و نظارتی هست که میاد روی همه اینها نظارت و مدیریت می کنه ، به زبان ساده تر OpenStack می تونه همه اینها رو با هم یکپارچه کنه ! کاربر بدون اینکه بدونه از چه نوع VM ای روی چه هایپروایزوری داره استفاده می کنه از ماشین مجازیش می تونه استفاده کنه که همون هدف Cloud هم هست که کاربر درگیر پیچیدگی های Cloud Computing نمیشه

به OpenStack میگن آینده پردازش ابری ! تعارفی در کار نیست ! دومین پروژه محبوب Open Source در دنیا بعد از پروژه کرنل لینوکس رو در حال حاضر می تونیم بگیم OpenStack هست ! صدها و شاید هزاران توسعه دهنده و برنامه نویس دارن روی این پلتفرم کار می کنن و روزانه هزاران و چه بسا ده ها هزار خط کد بهش اضافه میشه ! اما باز سئوال براتون پیش میاد که خوب این برنامه نویس ها چی برای OpenStack می نویسن ؟ به زبان ساده باید بگیم که OpenStack یک برنامه نیست !
مجموعه ای از برنامه هاست که کنار هم جمع میشن و یک پلتفرم قوی و کامل ایجاد می کنن ! نمیدونم با CMS یا سایت ساز وردپرس آشنایی دارید یا نه ! اگر ساده بگم فکر کنید OpenStack خود وردپرس هست و با Component ها و اجزایی که براش روزانه نوشته میشه سرویس های بهتری رو ارائه میده مثل Plugin های وردپرس و امکانات جدیدتری ارائه میده ! چه بسا در آینده نزدیک سرویس های SaaS و PaaS هم با همین Component ها بهش اضافه بشن

اجزای OpenStack

جزء اول به نام Nova

این کامپوننت از OpenStack رو می تونیم بگیم هسته اصلی پردازشی این پلتفرم کلاود هست ، یعنی چی ؟ یعنی اینکه اون کار اصلی Cloud که بحث عدم نیاز به دونستن زیرساخت های مجازی سازی در سمت کاربر هست رو Nova انجام میده ! یعنی چی ؟ باز هم ساده تر می گم ، وقتی شما میگید OpenStack همه پلتفرم های مجازی سازی و هایپروایزورها رو یکپارچه تحویل کاربر میده بدون اینکه کاربر متوجه بشه از چه هایپروایزوری داره استفاده می کنه یعنی کاری که Nova انجام میده !

این Nova هست که ماشین های مجازی KVM لینوکسی ، ماشین های مجازی ESXi محصول VMWare ، ماشین های مجازی Hyper-V مایکروسافتی ، ساختار ماشین مجازی Container Based ای مثل Docker و حتی LXC ها رو با هم یکپارچه می کنه ! یعنی هسته اینجاست ! Core اینجاست! قربونت برم اصل مطلب کلاود رو در OpenStack این قسمت هماهنگی پلتفرم های مختلف با هم انجام میده که همانا چیزی نیست جز Component ای به نام Nova و بس !!! البته فقط کارش به هماهنگی این پلتفرم ها ختم نمیشه ، قبلا هم گفتیم شما از OpenStack نیازهای IaaS رو میخاین ! یعنی منابع پردازشی و حتی پردازش موازی و ... حتی به مدت زمان معین شاید چند ساعت و چند روز ! اینکه کجا و روی چه ماشین مجازی و چه تکنولوزی انجام میشه برای شمای کاربر اصلا مهم نیست !

حالا اگه در این حین شما نیاز داشته باشید روی چندین سرور همزمان قدرت پردازشی تقسیم بشه ! همه سرورهای شما بصورت یکپارچه روی یک پردازش انرژی بزارن و در اصطلاح جمع کردن قدرت پردازشی رو داشته باشید که در اصطلاح خفنش بهش میگن HPC یا High Performance Computing اونکار رو هم Nova بر عهده داره .. باز هم به زبان ساده تر ، مدیریت پردازش ها و تعداد زیادی از ماشین های مجازی بر عهده Nova جون هست . پانوشت : HCP در لایه سخت افزار سرورها انجام میشه ، با VM ها الزاما درگیری نداره ... به تصویر پایین نگاه کنید !!!

جزء دوم به نام Swift

وقتی راجع به Component ای به نام Swift در OpenStack صحبت می کنیم یعنی داریم در مورد یک فایل سرور صحبت می کنیم ! حالا نگید چقدر مثال مسخره ای هست درستش اینه باید بگیم Object Storage Cloud !! خوب بابا چرا می زنید ! باشه Swift یک Object Storage Cloud هست ! حالا به زبان آدمیزاد Object تو محیط Cloud چه چیزهایی هست ؟

هر چیزی که در قالب فایل نگهداری بشه بهش میگیم Object برای مثال فایل ها ، ویدیوها ، داده های تحلیلی ( Analytics Data ) ، محتوای وب ، فایل های بکاپ و خود بکاپ ، تصاویر ، ماشین های مجازی ، Snapshot های ماشین های مجازی و در کل هر داده ای که در قالب ساختار پایگاه داده و زیرساخت خود OpenStack نباشه و یه جور فایل غیر پیکربندی سیستمی باشه ! وظیفه مدیریتش بر عهده Swift هست . Swift یک بستر نگهداری و مدیریت فایل در OpenStack هست ، فکر کنید قرار هست یک ماشین مجازی ایجاد کنید! خوب دیدید که از Image ها برای اینکار استفاده میشه !

خوب این Image ها توسط Swift مدیریت میشه ، Swift کاری می کنه که تمامی هارد دیسک هایی که در مجموعه Cloud شما وجود دارند به شکلی واحد و یکپارچه دیده بشن ! یعنی اگر مفهوم Storage Cluster رو بدونید Swift رو هم درک کردید ! فکر کنید 100 تا هارد دیسک رو Swift میگیره از 30 تا سرور مختلف و چیزی که شما می بینید یک هارد دیسک مثلا 100 ترابایتی هست و مهم نیست روی کدوم سرور هست ! خوبیش می دونید کجاست ؟ اگه یکی دو تا و ... از این هارد دیسک ها از بین بره ، هیچ داده ای از بین نمیره و وظیفه مدیریت یکپارچه و ذخیره سازی روی هارد دیسک ها مثل یک RAID Controller بر عهده Swift هست .

جزء سوم به نام Cinder

هرچند که واژه cinder به معنی سیلندر هم هست ! اما ترجمه google translate به معنی سیب زمینی هم از آن یاد می کند ! میدونم هیچ ربطی نداشت ولی ترجمه سیب زمینی شاید به ساختار ذخیره سازی داده ها بصورت بلاکی ربط داشته باشه دیگه ! مثلا بلوک هارد دیسک رو سیب زمینی در نظر بگیریم ! در واقع Cinder مسئولیت ذخیره سازی بلوک های داده رو بر عهده داره ، اگر با انواع تجهیزات Storage تحت شبکه مثل SAN Storage ها و NAS Storage ها و حتی شبیه سازهاشون کار کرده باشید باید درک کنید که ساختار داده ای Block Based چی هست و چه کاربردی داره !

به زبان ساده تر ! وقتی در OpenStack ما می خایم برای یک VM هارد دیسک اختصاص بدیم ، این وظیفه Cinder هست که بره شبیه کاری که پروتکل iSCSI برامون انجام میده رو از طریق زیرساختش انجام بده و منابع دیسک رو به VM اختصاص بده ، اگه با SAN Storage هایی مثل NetApp یا HP و حتی EMC کار کرده باشید قشنگ درک می کنید اینجا چه اتفاقی می افته ! این Cinder هست که وظیفه Attach و Deattach کردن Block های هارد دیسک از این Storage ها به زیرساخت IaaS رو بر عهده داره ، البته وظیفه ایجاد کردن یا Create و حذف کردن یا Remove یا Delete رو هم همین Cinder بر عهده داره .

جزء چهارم به نام Neutron

اگر با VMware NSX آشنایی داشته باشید حتما به سادگی کاربرد کامپوننت Neutron را متوجه خواهید شد . وقتی شما چند VM از یک محیط Cloud درخواست می کنید ، احتمالا نیاز دارید که این VM ها با هم در یک لایه شبکه اختصاصی باشند و در محیط کلاود شخص دیگری امکان دسترسی به آنها را نداشته باشد و ... به زبان ساده فرآیند پیکربندی شبکه مجازی یا همان Virtual Networking در محیط OpenStack بر عهده کامپوننت Neutron است .

ایجاد کردن VLAN و ایزوله کردن VM ها و فایروال و حتی IPS و IDS در این لایه و در این کامپوننت در OpenStack کار می کنند . به دلیل همین فرآیند شبکه سازی اختصاصی در محیط Cloud اوپن استک ، سرعت ارتباطی بین سرورها هم از این طریق بیشتر می شود . پس هر جا در OpenStack اسم نوترون را شنیدید یاد شبکه مجازی در محیط مجازی بیوفتید .. شنیده ها حاکی از آن است که نوترون باعث بالا رفتن سرعت ارتباط بین Component های مختلف OpenStack هم می شود.

جزء پنجم به نام Horizon

می دونم که اگه جزو افرادی باشید که با محصولات VMware کار کرده ، وقتی به اسم Horizon برخورد می کنید تصورتون این هست که مثلا داریم در مورد VDI در OpenStack صحبت می کنیم ، این تصور رو کلا دور بریزید چون هیچ ربطی به OpenStack نداره و یک مفهوم کاملا مستقل هست . Horizon در واقع اون چیزی هست که در سمت کاربر دیده میشه ، رابط کاربری تحت وبی که از طریق اون ما کلیه ماژول های OpenStack رو می بینیم و می تونیم محیط کلاود رو مدیریت کنیم رو بهش میگن Horizon ، به زبان فنی همون داشبورد مدیریتی گرافیکی که در جستجوی گوگل از محیط OpenStack می بینید همون Horizon هست. این کامپوننت ملموس ترین کامپوننت OpenStack هست که کاربر باهاش ارتباط میگیره و می تونه محیط Cloud رو و اتفاقاتی که روی محیط Cloud اش میوفته رو مشاهده کنه .Horizon طبق ذات معمول OpenStack با استفاده از زبان برنامه نویسی پایتون و فریمورک جانگو نوشته شده است و روی وب سرور آپاچی اجرا می شود.

جزء ششم به نام Keystone

هر سیستمی که در حوزه کلاود پیاده سازی می شود در نهایت دارای سطوح دسترسی و مجوزهای عبور و سیستم احراز هویت باید باشد ، Keystone به عنوان OpenStack Identity Service شناخته می شود و یک سیستم یکپارچه برای مدیریت کاربران OpenStack ایجاد می کند ، تقریبا شبیه کاری که اکتیودایرکتوری ( LDAP ) در سرویس های مایکروسافتی انجام می دهد با این تفاوت که روش های مختلف احراز هویتی در Keystone از جمله Username و Password ، روش استفاده از Token برای لاگین کردن و حتی مکانیزم لاگین آمازونی AWS در Keystone قابل استفاده هستند. تمام کاربرانی که در فضای OpenStack Cloud تعریف می شوند توسط کامپوننت Keystone مدیریت می شوند .

جزء هفتم به نام Glance

به زبان ساده کاربرد کامپوننت Glance در OpenStack مدیریت و انجام کارهای مرتبط با Image های دیسک و Image های سیستم عامل ( سرورها ) در فضای کلاود هست .

Glance وظیفه شناسایی یا Discovery ، ثبت کردن یا Registration و ارائه یا Delivery سرویس های مربوط به دیسک و سرور (Image) هاش رو بر عهده داره ، دقت کنید ذخیره سازی بهش ارتباطی نداره یعنی فضای ذخیره سازی ارتباطی بهش نداره اون کارش با Swift هست ، ایجاد کردن فالب های آماده از سیستم عامل ها و گرفتن Snapshot ها و در نهایت ایجاد کاتالوگی آماده از سرورها برای انتخاب کردن و فعال سازی در محیط Cloud با استفاده از Glance انجام میشه ... باز هم برای ساده سازی بیشتر ، اگر با استفاده از Template ها و Clone ها در VMware آشنایی داشته باشید و Deploy کردن ماشین های مجازی !! Glance چیزی شبیه به اینکار را در OpenStack انجام می دهد.

جزء هشتم به نام Ceilometer

هرجا در سرویس های کلاود و هر سرویس اینترنتی کلمه متر اومد ! یعنی قراره حساب کتاب کنیم چقدر باید پول بدید ! کامپوننت Ceilometer هم همینه عزیزم ! یعنی یک سیستم اکانتینگ و Billing هست که بصورت آنلاین و در لحظه وقتی کاربر منابع درخواستی خودش رو انتخاب می کنه ، بلافاصله هزینه هایی که نیاز هست براش پرداخت بشه رو محاسبه و بهش اعلام می کنه و در واقع قسمت تجاری و Business ماژول OpenStack محسوب میشه .

شما با استفاده از Ceilometer هست که ایده های تجاریتون رو می تونید در OpenStack پیاده سازی کنید ، مثلا اگر قرار هست به ریال محاسبه بشه و بره تو شبکه شتاب پرداختی داشته باشه از این قسمت باید استفاده بشه . صدور فاکتور و قبض از جمله سرویس هایی هست که در این کامپوننت اجرایی میشه و از طرفی الگوبرداری از سرویس های مشابه اکانتینگی مثل Microsoft Azure و AWS هست که به ازای IaaS هاشون مبلغی شارژ باید پرداخت بشه .

جزء نهم به نام Heat

کامپوننت Heat به عنوان OpenStack Orchestration Program معروف هست که واژه Orchestration به معنی تنظیم یا تنظیمات است ! حالا دقیقا چیکار انجام میده ؟ باز هم به زبان ساده بگیم که وقتی کاربر نیاز به مثلا یک VM داره ! این VM برای خودش یک سیستم عامل با نسخه مشخص داره ، هارد دیسک داره به اندازه ای که کاربر نیاز داره ، نوع هارد دیسک داره ، اندازه RAM و تعداد هسته CPU و نوع CPU داره ، تعداد آدرس IP باید مشخص باشه و خیلی از تنظیمات دیگه ، تا اینجا که اوکی هستید ؟

خوب این اطلاعات باید در یکجا وارد بشه ، انتخاب بشه ، بعد به سمت هسته اصلی OpenStack هدایت بشه و اونجا بر اساس تنظیماتی که گفته شده ماشین مجازی مورد نظر یا منابع درخواستی کاربر ایجاد بشه و بهش تعلق بگیره ، وظیفه اینکار بر عهده مجموعه API و برنامه یا کامپوننت Heat هست . برنامه Heat که خودش چند قسمت داره بصورت کلی یک سری Template داره ، این Template ها هستن که میگن مواردی که گفتیم چی باشه و چقدر باشه و چه مشخصاتی داشته باشه ، اگه مبهمه یادتون بیوفته که فایل vmx ای که تنظیمات ماشین مجازی VMware رو داخل خودش نگه می داره تقریبا چیزی شبیه به همین Template ای هست که Heat ازش استفاده می کنه .

خوب پس Heat با استفاده از Template هایی که داره و یا ما براش ایجاد می کنیم ، یک خط فرمان هم داره و یه سری دستورات ، Template رو میگیره می بره به سمت Heat Engine قسمت دوم ماجرا ! توی این قسمت دوم از طریق Template منابع و موارد خواسته شده از سایر کامپوننت ها دریافت میشن و یکپارچه در اختیار کاربر قرار می گیرند ، تنظیمات یا Orchestration به زبان ساده یعنی Heat میاد از سایر کامپوننت ها مثل Nova و Cinder و Swift و ... منابع رو میگیره و یه چیز کامل رو ایجاد می کنه

جزء دهم به نام Trove

همانطور که قبلا هم گفتیم OpenStack یک سرویس Cloud است که در حال حاضر با IaaS شروع به کار کرده است اما قطعا قرار نیست محدود به IaaS باقی بماند . پروژه Trove به عنوان OpenStack Open Source Database as a Service Mission معروف است و همانطور که مشخص است به عنوان یک Mission یا یک هدف سرویس DaaS یا Database As A Service در محیط کلاود را می خواهد ارائه بدهد .

یعنی شما به جای اینکه خودتان سرور بگیرید و مثلا روی سرور MSSQL یا MySQL یا سایر Database Engine ها را ایجاد کنید ! فقط یک Database Engine ایجاد می کنید و از آن بصورت آنلاین استفاده می کنید بدون نیاز به اینکه بدانید پس زمینه چه سیستم عاملی است و چه منابعی دارد ! این برنامه می تواند هم Database Engine های Relational مثل MSSQL و MySQL و Maria-DB را ارائه بدهد و هم ساختارهای دیتابیس غیر Relational را ارائه بدهد .

جزء یازدهم به نام Sahara

اگر قبلا با پروژه Hadoop آپاچی آشنایی دارید که هیچ ! اگر ندارید هیچ مشکلی نیست چون الان متوجه می شوید که چه ارتباطی بین Sahara و Hadoop وجود دارد . برخی اوقات در محیط کلاود شما Application های تحت وبی دارید که نیاز به قدرت پردازشی بسیار بالا دارند و از طرفی نیاز به تقسیم کردن پردازش ها بین چند سرور نیز وجود دارد ، در این میان قبلا پروژه ای به نام Hadoop برای پردازش های Big Data وجود داشت که تقریبا این روزها زیاد طرفدار ندارد ، Sahara به شما قابلیت Clustering سرورهای application های تحت وب را می دهد و امکان توزیع کردن پردازش ها بین سرورهای کلاستر را فراهم می کند . به زبان ساده امکان پردازش داده های کلان در آینده از آن Sahara است . این پروژه قبلا به اسم Savanna مطرح بود .

جزء دوازدهم به نام Ironic

آیرونیک یکی از پروژه هایی است که درون OpenStack به تازگی ( دو سه سالی هست ) قرار گرفته است و امکان ارائه Bare Metal As A Service را به کاربران OpenStack می دهد ! خوب یه مقدار از ادبیات اساسی استفاده کردیم ! به زبان ساده برخی اوقات شما به عنوان کاربر نیاز دارید که برای انجام کارهای پردازشیتون ، خودتون سیستم عامل رو نصب کنید ، خودتون سرویس ها رو پیکربندی کنید و از طرفی واسط مجازی سازی رو نمیخاین داشته باشید چون برای بالا بردن کارایی ارتباطی مثلا با Storage نیاز دارید که لایه واسط حذف بشه ! آیرونیک به شما این قابلیت رو میده که به جای ماشین مجازی ! شما یک سخت افزار ( سرور سخت افزاری ) در اختیار بگیرید و هر جور خودتون دوست دارید پیکربندیش کنید !

فکر کنید از راه دور با استفاده از پروتکلی مثل VNC یا قابلیت های سروری مثل IPMI به سرور وصل میشید و سرور هم تحت شبکه از طریق PXE کارت شبکه IP گرفته و شما Image رو Mount می کنید و شروع به کار می کنید ! جالبه بدونید OpenStack رو شما می تونید بصورت جداگانه روی OpenStack برای خودتون نصب و راه اندازی کنید !! باور کنید ! فرض کنید شما میخاین ابر خصوصی یا Private Cloud ای داشته باشید که مخصوص شرکت خودتون باشه اما از یک محیط عمومی OpenStack استفاده می کنید ! بهش میگن TripleO یا پروژه OpenStack Over OpenStack !! که اون هم جزو کارهایی هست که آیرونیک امکان انجام شدنش رو به شما میده .

جزء سیزدهم به نام Zaqar

زاکار یا Zaqar سرویس Messaging و Notification پروژه OpenStack است . به زبان ساده چت کردن ! اطلاع رسانی ! ارتباط گیری ! دریافت هشدارها و خطاها و اطلاع رسانی هایی که در کل مجموعه OpenStack انجام می شود تحت نظر Zaqar انجام می شود. کاربرد اصلی این سرویس برای پیام رسانی بین Web Developer ها هست و طبیعتا اونقدر نمیشه گفت سرویس حیاتی هست در کلاود ، ولی به هر حال جزو کامپوننت هایی هست که شما اگر استفاده کنید قطعا متوجه میشید که چه اتفاقاتی داخل مجموعه داره رخ می ده و می تونید با دیگران هم ارتباط بگیرید.

با تشکر از محمد نصیری عزیز

آموزش نصب OpenStack

این آموزش نصب بر روی یک Node که روی آن CentOs 7.5 x86-64 نصب شده است انجام خواهد گرفت. گفتنی است برای نصب OpenStack Queens از روش RDO که سر نام واژه های RedHat Distribution OpenStack می باشد استفاده خواهد شد.

RDO روشی است که شرکت RedHat آن را ارائه نموده که نصب OpenStack را ساده تر و سریع تر انجام می دهد. RDO شامل مجموعه اسکریپتی به نام packstack می باشد که بوسیله ی آن می توان آخرین نسخه از OpenStack را بر روی توزیع های RedHat,CentOS,Scientific Linux و توزیع هایی از این خانواده نصب کرد.

نصب OpenStack Queens با روش RDO

برای شروع به کار اگر سرویس firewalld بر روی سرور وجود داشته باشد آن را stop و disable کنید :

systemctl disable firewalld
systemctl stop firewalld

اکنون سرویس NetworkManager را disable و سرویس network را enable کنید :

systemctl disable NetworkManager
systemctl enable network

سپس جهت نصب مخزن RDO و OpenStack این دستورات را اجرا کنید :

yum install -y https://rdoproject.org/repos/rdo-release.rpm
yum install -y centos-release-openstack-newton

سپس سیستم را بروزرسانی کنید و پس از آن سیستم را reboot کنید تا با آخرین کرنل boot شود :

yum update -y
reboot

پس از بالا آمدن سیستم ، اکنون بسته ی Packstack را نصب کنید :

yum install -y openstack-packstack

اکنون برای نصب OpenStack Queens کافیست تا دستور پایین را اجرا کنید :

packstack --allinone

پس از نصب موفقیت آمیز با همچین پیغامی روبرو خواهید شد :

همانطور که در پیغام خروجی می بینید،برای دسترسی به Dashboard اوپن استک کافیست تا آدرس زیر را در مرورگر وب خود وارد کنید :

http://10.10.22.148/dashboard

بجای IP نوشته شده باید آدرس سرور خود را بنویسید. پس از وارد کردن آدرس بالا در مرورگر وب خود با همچین صفحه ای روبرو خواهید شد :

نام کاربری جهت ورود به پنل ، admin می باشد و پسورد آن را می توانید از فایل keystonerc_admin در مسیر root/ بدست بیاورید. در ادامه تصاویری از پنل تحت وب اوپن استک ( Horizon ) را مشاهده کنید :