سامانه ذخیره ساز هیولا

شبکه ذخیره سازی توزیع شده و غیرمتمرکز هیولا امکان ذخیره­ سازی و پردازش همزمان حجم بالایی از اطلاعات را بدون ایجاد یک گلوگاه واحد فراهم می­کند. هیولا فضای ذخیره­سازی نرم­افزار­محور برای داده­های غیرساخت­یافته و به عنوان جایگزینی برای فضاهای ذخیره­سازی مبتنی  بر سخت­افزار، پیچیده و گران­قیمت می­باشد. استفاده از الگوی طراحی پراکسی بصورت توزیع شده و غیرمتمرکز امکان مقیاس­پذیری خطی را در ذخیره و بازیابی اطلاعات بر اساس نیازمندی­های مختلف از نظر سطوح دسترسی، نوع دسترسی، نوع پردازش و غیره فراهم می­کند. تمام نودهای پراکسی به یک تابع مشترک ثابت برای آدرسی­دهی فایل­ها دسترسی دارند که قدرت تحمل خطای شبکه را از نظر تعداد نقاط دسترسی به میزان دلخواه قابل مدیریت می کند.

نمایی از معماری مرجع سیستم فایل هیولا در زیر ارائه شده است که مشتمل بر لایه های مختلف ارائه سرویس ذخیره سازی (اصلی، جانبی و میان افزارها)، اجزای سامانه نظارتی هیولای ۳۶۰(مشتمل بر نظارت بر عملکرد های سامانه و کارایی سامانه) و اجزای فوق ناظر هیولا (مشتمل بر سرویس های پشتیبانی  از عملیات توسعه، کنترل کیفیت، نصب و استقرار) و اجزای مختلف لایه دسترسی می باشد.

معرفی هیولا

در سامانه هیولا، سرویس­های توزیع ­شده و غیرمتمرکز برای مدیریت نرخ تکرار که بر روی هر یک از نودهای شبکه بصورت مستقل نصب می­شوند، امکان دسترس­پذیری بالا و پایداری داده­ها را در سطح شبکه بین نواحی دسترسی مختلف افزایش می­دهند. این سامانه محدودیت سیستم­فایل­های توزیع شده دیگر نظیر هدوپ که تنها برای اشیاء با سایز بزرگ مناسب هستند را ندارد و طراحی آن بگونه­ای است که امکان پردازش فایل­ها را در هر اندازه­ای دارد. سلسله مراتب ذخیره­سازی در هیولا از نظر منطقی شامل پارتیشن، دیسک، سرور، بخش و ناحیه می­باشد. تقسیم بندی هر دیسک بصورت منطقی به پارتیشن­های مختلف امکان کنترل و مدیریت ریزدانه اشیاء را بر روی هر دیسک فراهم می­کند. هر سرور ذخیره­سازی می­تواند شامل چندین دیسک باشد و مجموعه چند سرور که با هم در یک رک قرار دارند یا به یک سوییچ واحد متصل هستند می­توانند یک خوشه یا بخش را تشکل دهند. همچنین خوشه­ها می­توانند در سایت­ها و نواحی جغرافیایی مختلف توزیع شده باشند.

 

 

مدل داده­ای

داده‌هایی که توسط سامانه هیولا نگهداری می‌شوند، مطابق شکل ۲ به سه دسته ذیل تقسیم می‌شوند که با هم رابطه سلسله مراتبی دارند.

  • شیء[۱] : واحد اصلی ذخیره اطلاعات است. یک شیء می‌تواند یک فایل یا یک شبه پوشه[۲] باشد. شبه پوشه می‌تواند خود شامل فایل یا شبه پوشه‌های دیگر باشد. هر شیء می‌تواند دارای تعداد دلخواهی فراداده تعریف شده توسط کاربر به شکلkey=value  باشد. فراداده‌ها برای توضیح محتوای اشیا، دسته‌بندی و جستجو در میان آن‌ها بسیار مفید هستند.
  • کیسه[۳]: واحد دسته‌بندی اشیا است. در واقع پایگاه داده‌ای شامل اطلاعات اشیاء داخل آن و برخی اطلاعات دیگر است. سیاست‌های ذخیره‌سازی کیسه‌های مختلف می‌تواند متفاوت باشد. به عنوان مثال ممکن است اشیاء درون یک کیسه دارای ۳ تکرار در خوشه و اشیاء کیسه دیگر دارای ۲ تکرار باشند. در حالت اول حجم بیش‌تری مصرف می‌شود، اما احتمال از بین رفتن داده یا از دسترس خارج شدن آن بسیار کمتر از حالت دوم است.
  • حساب[۴]: واحد دسته­بندی کیسه‌ها است که پایگاه داده‌ای شامل اطلاعات کیسه‌ها و برخی اطلاعات دیگر می‌باشد. هر حساب می‌تواند شامل تعدادی کاربر باشد. سطح دسترسی کاربران سامانه به حساب­های مختلف نیز قابل کنترل است.

    مدل داده‌ای در هیولا مشتمل بر حساب، کیسه و شیء

    قابلیت اطمینان و تحمل پذیری در برابر خطا

    به منظور افزایش تحمل­پذیری در برابر خطا، اشیای موجود در هر پارتیشن به تعداد دلخواه قابل تکثیر در شبکه هستند که متناسب با سیاست­های تعریف شده به ازای هر بهره­بردار قابل تنظیم است. با توجه به بنچ­مارک­های انجام شده، معمولا در سیاست ذخیره­سازی با سطح سرویس طلایی تعداد تکرار ۳ و در سیاست ذخیره­سازی با سطح سرویس نقره ای تعداد تکرار ۲ پیشنهاد می­شود. با استفاده از تابع هش، محتوای بین پارتیشن ها مقایسه می­شود و در صورت وجود هرگونه مغایرت، عملیات همسان­سازی انجام می شود. به منظور افزایش حداکثر میزان دسترس پذیری داده ها، تکرارها بصورتی انجام می شود که حداقل یک تکرار در یک نود دیگر در همان ناحیه دسترسی و تکرار بعدی در یک نود دیگر در یک ناحیه دسترسی دیگر و در صورت نیاز یک تکرار در یک منطقه دیگر قرار بگیرد.

 

             مدل مفهومی مدیریت تکرار اشیا در شبکه

مدل بازیابی اطلاعات

بازیابی اطلاعات از طریق نودهای مینیون (یا پراکسی) انجام می­شود. پراکسی یک پیاده­سازی پایه برای مینیون است که در آن پس از انجام عملیات احراز هویت و اعتبارسنجی، با بررسی مجوزهای مربوط به هر درخواست با سطح ریزدانگی تعریف شده در هر پراکسی امکان دسترسی به منبع برای خواندن (و یا نوشتن) فراهم می­شود. مینیون­ها برای پیدا کردن آدرس اشیا تنها به اجرای تابع هش نیاز دارند که به راحتی و با مرتبه پیچیدگی O(1) به ازای هر تعداد از اشیاء انبارش و پردازش آنها انجام می­شود و بصورت خطی و افقی مقیاس پذیر است.

 

مدل مفهومی بازیابی اطلاعات در هیولا

افزایش ظرفیت شبکه

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

مدل مفهومی افزایش ظرفیت شبکه

 

بهینه سازی منابع سیستم عامل

در هیولا بهینه سازی منابع سیستم عامل در سطوح مختلف سیستم فایل، شبکه، پردازنده و حافظه جهت استفاده از حداکثر ظرفیت منابع در بارکاری بالا انجام شده است و از معماری میکروسرویس جهت مدیریت استقرار و مقیاس پذیری سامانه بدون وقفه استفاده شده است. برای مثال چند مشکل بنیادی در ارتباط با سیستم فایل محلی هر نود وجود دارد که یکی از آنها قطعه­قطعه شدن فضای دیسک در نتیجه نوشتن و حذف مکرر فایل­ها و دیگری کاهش کارآیی در تعداد فایل بالا می­باشد. طبق بررسی­های انجام شده موارد قابل پیکربندی متعددی جهت بهینه­سازی عملکرد سیستم­فایل وجود دارد تا کارآیی و سلامت کل سیستم در طی زمان حفظ شود. این پیکربندی­ها در سیستم­فایل هیولا جهت حفظ کارآیی هر دیسک تا چند ده میلیون شیء و در کل سامانه بصورت نامحدود انجام شده است.

معماری میکروسرویس

روند مدرن­سازی توسعه و استقرار سرویس­های نرم­افزاری به سمتی است که شرکت­های نرم­افزاری بتوانند سرویس­های با مقیاس­پذیری سریع[۱]، قابل نظارت[۲]  و با دسترس­پذیری بالا[۳] بر اساس الگوهای طراحی[۴] استاندارد و قابل حمل[۵] تولید کنند. ضرورت مدرن­سازی معماری نرم­افزار به همراه سازگاری با سکوها و زیرساخت­های مورد نیاز آن به این دلیل است که شرکت­های پیشرو در حوزه توسعه نرم­افزار و ارایه خدمات رایانشی در مرکزداده در چند سال اخیر به این سمت حرکت کرده­اند و تجربیات موفق حاصل از آن بصورت گسترده به اشتراک گذاشته شده است. پیش­بینی می­شود تا سال ۲۰۲۲ حدود ۹۰ درصد برنامه­های کاربردی با معماری میکروسرویس توسعه داده شده باشند که سبب افزایش چابکی در طراحی، خطایابی، به روزرسانی، استقرار و نگهداری آنها می­شود. در ادامه به مجموعه­ای از تحولاتی که در این مسیر در حال وقوع است اشاره شده است.

در گذشته، برنامه‌ها بگونه‌ای ساخته می شدند که بتوانند با مقیاس‌پذیری عمودی (افزایش منابع یک سیستم)، از عهده بارکاری[۶] بیشتری بر بیایند. این مقیاس‌پذیری با افزودن پردازنده‌ها و حافظه بیشتر در سرورها برای مدیریت حجم بیشتر ترافیک، گسترش پایگاه‌داده برای افزایش بازدهی، اجرای کارهای سنگین در ابررایانه‌ها و… انجام می شد. امروزه با پیشرفت فناوری بجای اینکه از برنامه‌ها انتظار داشته باشیم که روی سرورهای با مقیاس‌پذیری عمودی بالا اجرا شوند، برنامه نویسان می‌توانند ساختار برنامه‌ها را تغییر دهند بطوریکه بتوانند بصورت افقی در مجموعه‌ای از سرورها اجرا شوند. این تغییر ساختار برنامه همیشه آسان نیست، تغییر ساختار چه در برنامه انجام شود و چه در داده انجام شود، باید بگونه‌ای باشد که داده یا پردازش بتوانند به بخش‌های کوچکتر شکسته شوند. این روند معماری، کلید اصلی پیش برنده در پذیرش رايانش ابری بوده است. در رایانش ابری انتظار داریم معماری سرویس و برنامه های کاربردی به گونه ای باشد که بتوانند بصورت مقیاس پذی و پایدار، با حداکثر دسترس­پذیری اجرا شود و قابلیت نظارت­وکنترل بر روی شاخص­های وضعیتی و عملکردی وجود داشته باشد.

 

 

 

 

 

 

 

 

دیدگاه‌ خود را بنویسید

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

اسکرول به بالا