OpenStack؛ تودههای ابری به سوی شما میآیند.
اگر قصد دارید شرکتی برای خود تأسیس کنید، اما سرمایه و دانش کافی برای تهیه کامپیوتر برای کارمندان خود ندارید، ممکن است از خود پرسیده باشید که آیا میتوان بدون هزینههای گزاف و به دور از پیچیدگی، تعدادی کامپیوتر برای کارمندان تهیه کرد؟ اگر این سؤال چند سال پیش مطرح میشد، بیشک پاسخ چنین بود: «خیر، راهی وجود ندارد.» اما پاسخی که امروز دریافت میکنید با چند سال پیش متفاوت است؛ این جواب را مدیون OpenStack هستید.
ایده اولیه؛ شروعی طوفانی
در سال 2010، ناسا با همکاری شرکت بزرگی به نام «Rackspace Hosting» تصمیم به اجرای پروژه مشترکی برای بهبود توان پردازشی و استفاده بهینه از منابع موجود گرفت. شرکت Rackspace Hosting، یکی از شرکتهای فعال در زمینه رایانش ابری است. نتیجه همکاری این دو غول، پلتفرمی متنباز با نام «OpenStack» شد. ایجاد این نرمافزار به ناسا اجازه داد تا یک Resource Pool از منابع پردازشی، ذخیرهسازی و منابع شبکه برای مراکز داده خود ایجاد کند. در واقع OpenStack مفهومی از ارائه خدمات رایانش ابری بود و ارائه «زیرساخت به عنوان سرویس» (IaaS) را امکانپذیر میکرد. برای مدیریت این پلتفرم سه راه مختلف در نظر گرفته شد: از طریق کنسول مدیریتی تحت وب، خط فرمان و RESTful API. در دسامبر سال 2012، تصمیم گرفته شد بنیادی با همین نام و بدون مقاصد تجاری تأسیس شود تا مسئولیت مدیریت انجمنهای مربوطه و ترویج این نرمافزار را به عهده بگیرد. از آن زمان تاکنون شرکتهای بسیاری از جمله AT&T، Cisco، AMD، EMC، HP و... به استفاده و نشر نسخههای مختص به محصولات خود روی آوردهاند.
شکل 1: نمایی از داشبورد اپناستک که توزیع اوراکل را نشان داده است.
اجزا و کارکردها
در اینجا این پرسش مطرح شود که اپناستک چه کاری انجام میدهد و چه اجزایی دارد؟ در پاسخ باید گفت که اپناستک بر روی سرورها نصب میشود و منابع این سرورها را با تکنیکهایی همچون کلاسترینگ، مدیریت میکند. در نهایت، به منبع عظیمی از پردازش و ذخیرهسازی دست خواهید یافت که میتوانید روی آنها ماشینهای مجازی ایجاد کرده و سیستمعامل نصب کنید. اگر اپناستک را روی سرورهای مرکز دادة خود نصب کنید، باعث افزایش بهرهوری سرورها میشوید و اگر ارائهدهنده سرویسهای پردازشی هستید، میتوانید بهراحتی توان پردازشی خود را به مشتریانتان بفروشید و از آنها فقط در ازای میزان خدماتی که مصرف میکنند هزینه دریافت کنید. قطعاً این کار با کاهش پیچیدگیهای سختافزاری و هزینهها برای مشتریان، به نفع آنها خواهد بود و از آن استقبال خواهند کرد.
از دید کاربر نهایی، تنها یک سیستمعامل و کنسول مدیریتی قابل مشاهده است که میتواند روی این سیستمعامل اقدام به نصب برنامه کرده و مانند کامپیوتر فیزیکی از آن استفاده کند؛ بدون اینکه از پیچیدگیهای پنهانشده در پشت آن باخبر باشد. اما در پشت این سرویس، مرکز دادهای با پیچیدگیهای زیاد در ارتباطات سرورها و اجزای اپناستک قرار دارد که پیادهسازی و نگهداری از آن، به تخصص بسیاری نیاز دارد.
خوشبختانه، اپناستک با طراحی بخشهای مختلف به کاستن این پیچیدگیها کمک کرده است. هر جزء اپناستک مسئولیت و مأموریت خاصی دارد که در نهایت با همکاری این اجزا، کاربر نهایی تنها یک سیستم بهصورت یکپارچه میبیند. اپناستک از 9 بخش اصلی تشکیل شده و بخشهای دیگری نیز توسط توسعهدهندگان مختلف موجود است که میتوان به آن اضافه کرد و نصب آنها اختیاری است. این بخشها عبارتند از:
محاسبه (Nova):
این بخش که نام پروژه اصلی آن Nova است، مغز اصلی اپناستک است. Nova به طور مستقیم قابلیت ساخت، مدیریت و بررسی چرخه حیات ماشینهای مجازی را به عهده دارد. نوا به زبان پایتون نوشته شده است و از کتابخانههای Eventlet ،Kombu و SQLAlchemy استفاده میکند.
داشبورد (Horizon):
اولین و تنها محیط گرافیکی که کاربران با آن مواجه میشوند Horizon است. از طریق داشبورد اپناستک به اطلاعاتی از قبیل میزان منابع موجود، میزان منابع استفادهشده، ابزارهایی برای مدیریت کاربران، ساخت و حذف ماشینهای مجازی دست پیدا میکنید. وظیفه داشبورد ارائه اطلاعات و ابزارها به صورت گرافیکی است و دستوراتی که از کاربران گرفته میشود، برای اجرا، به اجزای مختلف اپناستک ارسال میشود.
شبکه (Neutron):
وظیفه نوترون مدیریت شبکه و ارتباطات اجزای اپناستک است. نوترون آیپی آدرسها را مدیریت میکند و وجود گلوگاه را اطلاع میدهد. علاوه بر آن، Load Balancing IDS، VPN و فایروال، از دیگر سرویسهایی هستندکه پیادهسازی آنها بر دوش نوترون است.
ذخیرهساز اشیا (Swift):
Swift، دادههای بدون ساختار را از طریق APIهای مبتنی بر HTTP دریافت و ذخیره میکند. Swift از اجزای ذخیرهسازی است که نام قبلی آن کوانتوم بوده و شرکت Rackspace Host خالق این جزء است.
ذخیرهساز بلاک (Cinder):
سیستمهای Block Storage یا ذخیرهساز بلاک، در محیطهای ذخیرهسازی مانند SAN و توسط پروتکلهایی مانند iSCSI استفاده میشود. ذخیرهسازی بلاک از ایجاد Metadata اضافه جلوگیری میکند و در مجموع، کارایی بهتری ارائه میدهد. Cinder وظیفه مدیریت ذخیرهسازهای بلاک را دارد و آنها را برای استفاده Instanceها آماده میسازد. منظور از Instance ماشینهای مجازی است.
تشخیص هویت (Keystone):
قطعاً در هر سیستمی برای جلوگیری از خرابکاری و مدیریت کاربران باید سیستم احراز هویت و کنترل دسترسی موجود باشد تا هر فردی به اندازهای که برایش مشخص شده است، به اجزای سیستم دسترسی داشته باشد. این وظیفه بر دوش Keystone است. Keystone با LDAP سازگار است و از سه روش برای احراز هویت پشتیبانی میکند: استفاده از نام کاربری و رمز عبور، سیستمهای مبتنی بر Token و سیستم ورود همانند AWS (استفاده از Secret Key و...).
سرویس Image (Glance):
زمانی که ماشین مجازی از محیط ابری درخواست میکنید، هیچ سیستمعاملی بر روی آن نصب نیست. در واقع، باید سیستمعاملهای مختلف در محیط ابری موجود باشد تا بتوانید نصب این سیستمعامل را درخواست کنید. این سیستمعاملها به صورت Image ذخیره میشوند. در کل، اساس این Imageها همانند همان Imageهایی است که از یک سیدی میگیرید اما تفاوتهایی نیز دارند. برای مثال، از نظر حجم و نحوه نصب. در این محیط ابری به نصب در محیط نصب سیستمعامل اقدام نمیکنید و نیاز نیست سؤالاتی از قبیل نسخه سیستمعامل یا زمان سیستم خود و مانند اینها را پاسخ دهید، بلکه همه چیز به صورت خودکار و با سرعتی بسیار زیاد اتفاق خواهد افتاد. در عرض چند دقیقه، سیستمعاملی به صورت آماده در اختیار خواهید داشت. وظیفه مدیریت این Imageها بر عهده Glance است و Nova دستورات لازم را برای نصب و مدیریت Imageها به Glance ارسال میکند.
سیستم اندازهگیری (Ceilometer):
بهعنوان استفادهکننده از خدمات ابری، باید سیستمی وجود داشته باشد تا میزان مصرف از منابع و محاسبه هزینههای مربوطه را اندازهگیری کند. Ceilometer مخصوص همین کار است. علاوه بر این، میتوان از آن گزارشی درباره میزان استفاده کاربران از منابع نیز تهیه کرد.
Orchestrationم(Heat):
با استفاده از Heat، امکان ذخیره اطلاعاتی همچون حداقل نیازمندیهای لازم برای اجرای برنامهها در محیط ابری در یک فایل امکانپذیر میشود.
دیتابیس (Trove):
Trove در واقع بهعنوان ارائهکننده «دیتابیس به عنوان سرویس» است. Trove موتور استفاده از دیتابیسهای رابطهای و غیررابطهای است. نسخههای اولیه اپناستک با تعداد بسیار کمتری از این بخشها ساخته شد و به مرور زمان تکامل یافت؛ برای مثال، اولین نسخه اپناستک با نام Austin تنها دارای Nova و Swift بود و در نسخه Mitaka تعداد آنها به 16 عدد رسیده است. علاوه بر بخشهای یادشده، بخشهای بسیاری نیز وجود دارند که به طور کامل ساخته شدهاند یا در حال ساخت هستند. برخی از این اجزا را خود بنیاد اپناستک و برخی دیگر را توزیعکنندگان مختلف ایجاد میکنند.
شکل 2: نحوه دستهبندی و جایگاه اجزای مختلف که معرفی شدهاند، آورده شده است.
کدام اپناستک و بر روی چه سیستمعاملی؟
اپناستک به صورت متن باز است؛ این بدان معنی است که هرکس که از دانش لازم برخوردار باشد، میتواند کدهای آن را مشاهده کند و آنها را تغییر دهد. برای نصب اپناستک نیاز به توزیع مناسب لینوکس است. شرکتهای مختلف اقدام به ارائه نسخههای متفاوت اپناستک، متناسب با محصولات خود کردهاند.
برای مثال، میتوان از نسخه اوراکل اپناستک یاد کرد که پیشنهاد شده است بر روی توزیعهای لینوکس اوراکل، از این نسخه استفاده شود. در این بین شرکت HP نیز نسخه مخصوص به خود، معروف به HP Helion OpenStack را پیشنهاد کرده است. HP Helion در واقع مجموعهای از ابزارهای ابری است که نام Eucalyptus نیز در آن مشاهده میشود. گروه Canonical نیز که توزیع کننده نسخه اوبونتو لینوکس است، به پشتیبانی اپناستک از نسخه 11 خود اقدام کرده است و در حال حاضر این توزیع به طور کامل از اپناستک پشتیبانی میکند؛ حتی نسخه مخصوص Canonical اپناستک را میتوانید از طریق سایت آن دانلود کنید. اینها، تنها تعدادی از توزیعهای مختلف اپناستک است. این توزیعها در هسته اصلی با هم یکسان هستند و فرق آنها در سایر اجزای خود و پشتیبانیهای سختافزاری است. برتری هر کدام از بستهها به نیاز و سختافزارهای شما و توزیع لینوکستان دارد و به طور قطعی نمیتوان گفت کدام نسخه
برتر است.
جایگاه اپناستک در ایران
بنیاد OpenStack هر 6 ماه یکبار به برگزاری جلساتی با نام OpenStack Summit در یکی از شهرهای دنیا اقدام میکند. در این جلسات در جهت تعیین تصمیمات فنی و استراتژیک نسخههای بعدی آن و همچنین آشنایی بیشتر با قابلیتهای آن، سخنرانی برگزار میشود. در این بین، جلساتی نیز با حمایت «گروه کاربران و توسعهدهندگان اپناستک در ایران» که گروهی کاملاً ایرانی هستند، در تهران برگزار میشود. برای اطلاعات بیشتر میتوانید به سایت این گروه به نشانی openstack.ir مراجعه فرمایید. همانند OpenStack Summit، هدف، آشنایی بیشتر و توسعه اپناستک است. علاوه بر آن، جلساتی از گردهماییهای «انجمن آزاد رایانش ابری ایران» نیز به بحث و آشنایی با اپناستک اختصاص داده شده است.
علاوه بر گردهماییها و مجامع، مراکز تحقیقاتی مبتنی بر اپناستک در ایران در حال گسترش هستند که از قدیمیترین آنها میتوان به مرکز تحقیقات رایانش ابری دانشگاه امیرکبیر اشاره کرد. علاوه بر دانشگاه امیرکبیر، دانشگاه فردوسی مشهد نیز اقدام به پیادهسازی اپناستک کرده است. استفاده از اپناستک در جامعه دانشگاهی ایران رو به رشد است و مراکز تحقیقاتی دانشگاهها همچون دانشگاه تبریز، در حال پژوهش و همکاری با سایر مراکز تحقیقاتی قدیمیتر در این حوزه هستند.
گذشته از استفادههای تحقیقاتی، استفادههای تجاری نیز رو به رشد است. از این جمله میتوان به پروژه Xaas (xaas.ir) مرکز تحقیقات مخابرات ایران اشاره کرد که از بهمن سال 1393 شروع به ارائه خدمات به عموم کرد. علاوه بر آن، شرکتهای دیگری نیز به ارائه خدمات رایانش ابری توسط اپناستک در مقیاس کوچکتر
اقدام کردهاند.
با توجه به نکاتی که گفته شد و روند رو به رشد استفاده از OpenStack در کل دنیا، پیشبینی میشود استفاده از آن در ایران نیز با رشد چشمگیری روبهرو شود.
ثبت نظر