بخشی از مقاله

چکیده

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

-1مقدمه

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

-2اهمیت مسئله

انرژی با ویژگیهای سختافزاری نمیتواند در کوتاه مدت بهبود یابد، دو روش اصلی برای کاهش توان سرویس دهنده وجود دارد: - 1 مقیاس پذیری فرکانس/ ولتاژ پویا - DVFS - ؛ - 2 مهاجرت ماشینهای مجازی از برخی سرویس دهندههای با بار کاری حداقل و خاموش کردن ماشینهای اضافی.[2] مجازیسازی یک راه جدید برای بهبود صرفه جویی توان در مراکز داده فراهم میکند، که یکپارچه سازی نامیده میشود. یکپارچهسازی سرویس دهنده، توانایی تخصیص چندین ماشین مجازی بر روی یک سرویس دهنده فیزیکی را امکانپذیر میسازد.

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

-3الگوریتم گرگ خاکستری

الگوریتم گرگ خاکستری GWO یا Grey Wolf Optimizer ، یک الگوریتم فرا ابتکاری الهام گرفته از طبیعت است که اساس آن ساختار سلسله مراتبی و رفتار اجتماعی گرگها در زمان شکار میباشد. الگوریتم GWO مبتنی بر جمعیت است و فرایند سادهای را در تنظیمات دارد و به راحتی قابلیت تعمیم به مسائل با ابعاد بزرگ را داراست. در پیادهسازی این پروژه، چهار نوع از گرگهای خاکستری مانند آلفا، بتا، دلتا و امگا برای شبیه سازی سلسله مراتب رهبری اسفاده شده است که در آن سه گام اصلی از شکار: جستجو برای طعمه، محاصره طعمه، و حمله به طعمه، اجرا میشوند. نتایج شبیهسازی که با الگوریتم ازدحام ذرات - PSO - نیز مقایسه شده است، نشان میدهد که الگوریتم گرگ خاکستری GWO عملکرد بهتری را حاصل شده است. گرگهای خاکستری زندگی اجتماعی دارندو تعداد متوسط گرگهای هر گله بین 5 تا 12 است. در هر گله 4 رتبه اصلی وجود دارد.[5]

- 1گرگهای رهبر گروه الفا - alpha - نامیده میشوند که میتوانند مذکر یا مونث باشند. این گرگها بر گله مسلط هستند و مواردی مانند محل استراحت یا نحوه شکار را مدیریت میکنند. اما علاوه بر رفتار مسلط گرگهای alpha، نوعی ساختار دموکراتیک هم در گروه دیده میشود.

- 2 گرگهای بتا : - beta - کمک به گرگهای alpha در فرایند تصمیمگیری بوده و همچنین مستعد انتخاب شدن به جای آنها هستند.

- 3 گرگهای دلتا : - delta - پایین تر از گرگهای beta و شامل گرگهای پیر، شکارچیها و گرگهای مراقبت کننده از نوزادان.

- 4 گرگهای امگا : - omega - پایینترین مرتبه در هرم سلسله مراتب که کمترین حق را نسبت به بقیه اعضای گروه دارند. بعد از همه غذا میخورند و در فرایند تصمیم گیری مشارکتی ندارند.

3-1 ارائه یک مدل برای پیاده سازی واقعی

ما یک ابر با تعدادی سرویسدهنده فیزیکی و یک سرویسدهنده ذخیره سازی داده SAN و یک کنترلر را خواهیم داشت. شرح رفتار شبکه به این صورت است که بر روی همه سرورهای فیزیکی هایپروایزر XEN که نوع یک می باشد نصب شده است و هر سرور یک کنترلر دارد. سپس کنترلر مرکزی وظیفه دریافت دستورات کاربران برای ساخت و یا حذف ماشینهای مجازی را خواهد داشت. کاربران در یک سرویس رایانش ابری با خدمات زیرساخت بعنوان سرویس - IaaS - وارد پنل کاربری که توسط پلتفورم ابر همچون OpenStack شده و درخواست های خود را ثبت می کنند.

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

3-2 تعریف مسئله

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

در ابتدا سیستم را یک سیستم ارائه خدمات مبتنی بر رایانش ابری همگن در نظر میگیریم به طوری که سرویسدهندههای فیزیکی همه از یک سختافزار خاص و مشابه بهره جسته اند. در این حالت ما توان مصرفی پردازنده را مد نظر داریم. برای حالت بی کار به طوریکه بار کاری پردازنده عملا صفر است 3 وات توان مصرفی و برای حالتی که بار کاری ماکزیمم است 60 وات توان مصرفی برای یک پردازنده دو هسته ای که هر هسته 2 هسته مجازی میباشد در نظر گرفتهایم.

در این وضعیت اگر بارکاری پردازنده فیزیکی به ماکزیمم اندازه خود برسد درحالی که بار کاری واقعی تحمیل شده توسط ماشینهای مجازی بیشتر از توان پردازشی باشد در این حالت به اصطلاح overload اتفاق افتاده است. در حالت overload ،کیفیت سرویس کاهش مییابد. اما در این مسئله ما Overload را در نظر نمیگیریم. اما برای اینکه قوانین SLA را نقض نکرده باشیم در معلومات مسئله میزان بار کاری خواسته شده از پردازنده فیزیکی را میدهیم. این تصمیم برای این است که هدف اصلی ما بررسی عملکرد الگوریتم گرگ خاکستری در تخصیص منابع در رایانش ابری میباشد.

جدول 1 مشخصات درخواستی توسط ماشینهای مجازی را نشان میدهد. این مشخصات اعداد تصادفی بزرگتر از صفر و کوچکتر از 50 میباشند. زیرا ما نمیخواهیم که یک ماشین مجازی به میزان 100 درصد توان پردازشی پردازنده فیزیکی را از آن خود کند. لذا نهایتا هر ماشین فیزیکی 50 درصد پردازنده فیزیکی را اشغال خواهد کرد. بیان سادهتر مسئله این است که ما 20 پردازش و 10 پردازنده داریم. طوری انتخاب خواهیم کرد که پردازندهها توان مصرفی کمینه داشته باشند.

3-3مدلسازی تخصیص منابع برای الگوریتم گرگ خاکستری

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

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

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

3-4 پیاده سازی

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

3-5 نتایج آزمایش

در این بخش به بررسی نتایج آزمایش میپردازیم. در ابتدا برای یک سیستم همگن با 10 سرویس دهنده فیزیکی که میزان توان ایستا برای پردازنده - توان مصرفی هنگام بدون بار - به مقدار 3 وات است و توان ماکسیمم آن - توان مصرفی پردازنده هنگامی که بار پردازنده ماکسیمم است - به مقدار 60 وات است آزمایش را شروع میکنیم. جدول2 نتایج آزمایش را نشان میدهد. بارکاری در خواستی از طرف ماشینهای مجازی در این آزمایش باری است که در جدول 1 آمده است.

همانطور که در جدول 2 مشاهده میشود تمامی ماشینهای مجازی در ماشینهای فیزیکی مستقر شده اند و میزان بار کاری نهایی پردازندههای فیزیکی در جدول نمایش داده شده است. در این آزمون تمامی سرویس دهنده ها روشن هستند و مشغول پردازش هستند. میزان توان مصرفی کل در این آزمون برابر با 326,4 وات میباشد. لازم به ذکر است که آزمایش انجام شده با 30 گرگ و برای 1000 تکرار انجام گرفته است که بر روی یک رایانه دارای پردازنده core i3 با فرکانس 2,4 گیگاهرتز و میزان 6 گیگابایت حافظه اصلی اجرا شد.

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