بخشی از مقاله

روشهای بهینهسازی تخصیص منابع در محیط رایانش ابری، بررسی و مقایسه

Optimization of resource allocation in the cloud computing environment, Survey and Comparison


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


واژههای کلیدی: رایانش ابری، مدیریت منبع، تخصیص بهینه منبع، مجازی سازی، تخصیص پویای منابع.

-1 مقدمه

رایانش ابری به عنوان یک نمونه جدید محاسـباتی با هدف ارائه قابل اعتماد، سـفارشـی و کیفیت سـرویس تضمین شده در محیط داینامیک برای کاربران نهایی ایجاد شـده اسـت.[1] پردازش توزیع شده، پردازش موازی و شبکه محاسبات همگی به عنوان رایانش ابری پدید آمده اند. اصل اساسی در رایانش ابری این است که اطلاعات کاربر به صورت محلی ذخیره نمی شوند، بلکه در مرکز داده های اینترنتی ذخیره می گردند. شـرکت هایی که ارائه دهنده خدمات رایانش ابری می باشند، می توانند به مدیریت و بهره برداری از این مراکز داده مشـغول باشـند. کاربران می توانند به داده های ذخیره شـده خود در هر زمانی با استفاده از رابط کاربردی برنامه نویسـی (API) که توسط ارائه دهندگان ابری ارائه شده است، دسترسی داشته باشند. نه تنها خدمات ذخیره سازی ارائه شده است بلکه سـخت افزار و نرم افزار خدمات موجود برای عموم مردم و بازار کسـب و کار می باشد. خدمات ارائه شده توسط ارائه دهندگان خدمات می تواند همه چیز، از جمله زیرسـاخت ها، بستر های نرم افزاری و یا نرم افزار منابع باشد. هر یک از این خدمات به ترتیب به عنوان سرویس زیرساخت (IaaS) بستری برای خدمات (PaaS) و یا نرم افزار برای خدمات (SaaS) می باشند.[2]

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

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

-2 رایانش ابری:

رایانشابری، یکی از تکنولوژیهای در حال توسعه در صنعت کامپیوتر امروزی میباشد. این تکنولوژی به کاربران اجازه داده تا محاسبات و دادههای خود را به یک موقعیت راه دور و با کمترین تأثیر برروی کارائی سیستم منتقل کنند.[3] موسسه ملی فناوری و استانداردها (NIST) ؛ رایانش ابری را اینگونه تعریف میکند:

"رایانش ابری مدلی است برای فراهم کردن دسترسی آسان بر اساس تقاضای کاربر از طریق شبکه به مجموعهای از منابع رایانشی قابل تغییر و پیکربندی (مثل: شبکهها، سرورها، فضای ذخیرهسازی، برنامههای کاربردی و سرویسها) که این دسترسی بتواند با کمترین نیاز به مدیریت منابع و یا نیاز به دخالت مستقیم فراهمکننده سرویس به سرعت فراهم شده یا آزاد (رها) گردد."[4] رایانش ابری مزایایی را به همراه دارد که به اختصار آنها را بیان میکنیم:

- مقیاس پذیری: سـرویسهای ابری برای تحویل بیشترین سطح انرژی به کاربر طراحی شدهاند. از آنجایی که درعمل، این زیرساختار نامحدود نمیباشد، منابع ابری باعث وابستگی توسعهدهنده به هر سختافزار خاص میشود.

- کیفیت سـرویس: برخلاف مراکز دادهای اسـتاندارد و منابع محاسباتی پیشرفته، یک سرویس ابری طراحی شده به صورت خوب، کیفیت سرویس بالایی را ارائه میدهد. این مزیت به خاط عدم وابستگی به سخت افزار بوده و از این رو هر خطایی بر روی ماشین فیزیکی را میتوان بدون دانش کاربر بازیابی کرد.

- محیط خاص: در داخل یک فضــای ابری، کاربر میتواند از ابزارها و ســرویسهای دلخواهی برای برآوردهســازی نیازهایش استفاده کند.

- بهرهوری از نظر انرژی: کـاربران فقط ســـخت افزارهای مورد نیاز برای پروژهی خود را انتخاب میکنند. این باعث کاهش ریسـک، برای مؤسـسـاتی که به دنبال ساخت سیستم های مقیاس پذیر هستند، میشود. بنابراین قابلیت انعطاف بالاتری ایجاد میشود، چرا که کاربر فقط هزینه ی زیرساختار مورد نیازش را میپردازد.

- واسـط کاربری ساده: صرفنظر از اینکه از یک اپلیکیشن ساده استفاده میکنید یا خیر، یک مجموعه از ابزارها و سرویس های وب به وسـیلهی سـرویس ابری و به صـورت آسان و کاربر محور فراهم میشود. چنین واسطی در داخل سیستمهای گرید و به وسیلهی استفاده از پروژهی Cyberide بررسی شده است[5]، .[6]


-3 تخصیص منابع واهمیت آن:

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

مسئله تخصیص منابع میتواند به دو دسته تقسیم گردد:

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

BIN PACKING با اندازههای مختلف BIN در نظر گرفته شود.[8] الگوریتم های متداول برای مسئله BIN PACKING عبارتند از: Best Fit و Worst Fit وFirst Fit و Next Fit، که به ترتیب اولین الگوریتم، در بین میزبانها آنکه کوچکترین فضا برای جای دادن به ماشینهای مجازی مورد نظر دارد را میگیرد، الگوریتم دوم بزرگترین مکان خالی در بین میزبانها را در نظر میگیرد و سومین الگوریتم، اولین فضای مناسبی که به آن رسید را انتخاب میکند و آخرین الگوریتم، میزبان را از آخرین محل مکانیابی به بعد جستجو میکند و اولین فضا با اندازه کافی را انتخاب میکند.[9]

از جنبه دیگر هم، تخصیص منبع را میتوان به دو دسته ثابت وپویا تقسیم بندی کرد.

-1-3 تخصیص منبع به صورت ثابت1
در روشهای تخصیص منبع ثابت، منابع به صورت ثابت به درخواستها تخصیص داده میشود و در ادامه نیز بهینگی منابع و یا مصرف انرژی و... بررســی نمی گردد. مزیت این روشــها کم بودن ســربار ســیســتم و پایین بودن هزینهی مدیریت منابع میباشــد. امروزه سرویسدهندگان تمایل بیشتری به بکارگیری روشهای تخصیص منبع پویا دارند.

-2-3 تخصیص منبع به صورت پویا2
به دلیل طبیعت پویای ابرها و همچنین نیاز به تخصیص منابع متفاوت در زمانهای متفاوت، موضوع تخصیص منبع به یکی از چالشهای رایانش ابری تبدیل شده است. در روش تخصیص پویای منابع، هدف اصلی این است که از اتلاف منابع به دلیل کم بودن بهینگی آنها و همچنین بالا رفتن زمان پاسخ درخواستهای مشتری به دلیل استفادهی بیش از حد از منابع، جلوگیری گردد.

روش تخصـیص منبع پویا همچنین به بحث مصـرف انرژی نیز توجه ویژهای دارد. مراکز دادهای که میزبان برنامههای ابری هستند، مقدار بســیار زیادی انرژی الکتریکی مصــرف می کنند. در نتیجه هزینههای زیادی را به همراه دارند .برای مثال، هزینه ی مصــرف انرژی الکتریکی در زیرسـاختهای فناوری اطلاعات ایالات متحده آمریکا در سـال 2006 بالغ بر 4/5 میلیارد دلار تخمین زده شده است .این در حالی است که این رقم در سال2011 تقریبا دو برابر گردیده است.[10]


-4 بررسی کارهای پیشین در زمینه بهینه سازی تخصیص منابع در محیط رایانش ابری

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

مارتین بیچلر و گروهش در [11] با استفاده از روش برنامه ریزی خطی، طرحی برای تخصیص ماشینهای مجازی در راستای کاهش مصرف انرژی پیاده کردهاند. آنها اگرچه از متغیرهای تصمیم گیری دودویی استفاده کردند اما روش آنها فقط برای تخصیص منبع ایستا جوابگو بود و ماهیت پویای محیط ابری را پوشش نمی داد.

بابروف و همکارانش در[12] با طبقهبندی جریانهای کاری یک الگوریتم برای یکپارچگی ماشینهای فیزیکی که بصورت دوره ای برای به حداقل رسانی ماشین های روشن و نقض SLA که همان سطح عملکرد قرارداد شده با کاربر است، مورد استفاده قرار میگرفت ارائه کردند.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید