بخشی از مقاله
خلاصه
یکی از راه کارهای افزایش بازدهی سرویس ها در سیستم عامل ها و به طبع در دنیای رایانش ابری، استفاده از تکنیک های مجازی سازی می باشد. هدف این پژوهش ایجاد تغییراتی در سرویس های رایانش ابری است که تا حد ممکن مصرف انرژی مربوط به مهاجرت ماشین های مجازی و به نوعی انرژی مربوط به تخصیص منابع را کاهش داده و از میزان آلودگی بکاهد. تاکنون روش های متعددی جهت افزایش کارایی سرویس های رایانش ابری در جهت صرفه جویی انرژی در محیط ابر پیشنهاد شده اند.
روشی که در این مقاله ارائه شده است، سعی بر آن دارد تا آنجا که ممکن است با افزایش کارایی سرویس های رایانش ابری از مصرف انرژی توسط مراکز داده و متعاقب آن تولید کربن و آلاینده های زیستی جلوگیری کند. نتایج نشان می دهد الگوریتم پیشنهادی، با استفاده از بهبود در تکنیک های مجازی سازی و به کمک الگوریتم ژنتیک، باعث بهبود کارایی سرویس های ابری در امر مهاجرت ماشین های مجازی و در نهایت صرفه جویی مصرف انرژی می شود.
.1 مقدمه
رایانش ابری راهی برای استفاده موثر از منابع، مدیریت سرمایه و هزینه های پشتیبانی فناوری است.[1] در همین راستا برای بهبود پارامترهای مطرح و مهم در این حوزه در سال های اخیر بحث های زیادی مطرح و اجرا شده است. هدف مهم استفاده سیستمهای محاسبات ابری به حداقل رساندن هزینه استفاده از منابع توسط ارائهدهندگان خدمات و نیز به حداکثر رساندن درآمد حاصل از سرویس دادن به برنامههای کاربردی درخواستکنندگان میباشد3]،.[2 برای رسیدن به این منظور، می توان دو هدف مختلف در ابر یعنی افزایش بهرهوری از منابع و افزایش توان محاسباتی را مد نظر قرار داد.
در راستای رسیدن به این دو هدف و افزایش کارایی سرویس های رایانش ابری تاکنون از روش های مختلفی مانند خوشه بندی منابع، استفاده از سیستم های فازی، استفاده از مدل های سلسله مراتبی و... استفاده شده است.[4] در محیط محاسبات ابری هر کاربر برای اجرای هر کار، ممکن است با صدها منبع مجازی روبرو شود که میتوان گفت محاسبات ابری بهشدت به مجازیسازی1 متکی است.
درواقع منابع بهصورت ماشین مجازی دیده میشوند که در این حال، تخصیص کارها به منابع مجازی توسط خود کاربر غیرممکن است. مجازیسازی یک چارچوب تقسیم منابع کامپیوتر به چندین محیط اجرایی با استفاده از یک یا چندین مفهوم مانند سختافزار، نرمافزار، اشتراک زمانی، نمونهسازی و عوامل دیگر است. مجازیسازی تکنیکی است که ضمن پنهان کردن ویژگیهای فیزیکی منابع، دسترسی کاربران به منابع را ممکن میسازد. این تکنیک امکان جداسازی یا به اشتراک گذاردن منابع کامپیوتری بین چند محیط مختلف، که ماشین مجازی نامیده میشوند، را بهطور همزمان به وجود میآورد6]،.[5
بخش قابل توجهی از انرژی الکتریکی مصرف شده توسط منابع محاسباتی به گرما تبدیل می شود .دمای بالا منجر به تعدادی از مشکلات ، مانند کاهش قابلیت اطمینان سیستم و در دسترس پذیری، و همچنین کاهش طول عمر دستگاه ها می شود. مراکز داده ها فقط پرهزینه نیستند ، بلکه آسیبی جدی به محیط زیست نیز وارد می کند. کربن تولیدی این مراکز در حال حاضر بیش از کربن تولیدی یک کشور با تمام تاسیسات صنعتی است [7]. میزان کربن زیاد بخاطر حجم زیاد برق مورد نیاز برای خنک کردن سرورهای متعدد میزبان در مراکز داده ها است .
ارائه دهندگان سرویس ابری برای اطمینان از این که سود شان به دلیل هزینه های بالای انرژی به طرز چشمگیری کاهش پیدا نکند ودرعین حال بتوانند خدمات را با کیفیت و سرعت بالاتری ارائه دهند همچنین باتوجه به افزایش فشار از سوی دولت های جهان به منظور کاهش میزان کربن ، که تاثیر قابل توجهی در تغییرات آب و هوایی دارد, نیاز به اتخاذ اقدامات لازم دارند9]،.[8
در این بین راه حلهای مجازی سازی , علاوه بر کاهش هزینه های انرژی در زیرساختهای مراکز داده ,به طرز چشمگیری بهره برداری و کارایی سرور را افزایش می دهد. مجازی سازی با استفاده از تکنیک مهاجرت ماشینهای مجازی ,با ادغام و موازنه بار بین سرورهای فیزیکی و اجرای ده برنامه کاربردی یا بیشتر ماشینهای مجازی برروی یک سرور , 86x می تواند منابع مجازی را با انعطاف زیاد بین سرور های فیزیکی منتقل کند11]،.[10
با توجه به مبانی نظری و تحقیقات پیشین در این حوزه مطالعاتی، یکی از بهترین روش های حل مساله بهینه سازی مصرف انرژی در امر مهاجرت ماشین های مجازی، استفاده از الگوریتم های هوش جمعی می باشد. با توجه به پیچیدگی مساله و تنوع راه حل های موجود، در این پژوهش سعی شد با استفاده از الگوریتم ژنتیک بهبود یافته، حل این مساله بهبود داده شود. بر این اساس هدف اصلی تحقیق این است که در بحث رایانش ابری، هزینه های گزاف مربوط به مصرف انرژی در بخش مهاجرت ماشین های مجازی را کاسته و به این ترتیب کارایی سرویس های رایانش ابری را افزایش دهیم.
.2 یافته ها
براساس الگوریتم ارائه شده از آقای بایا1 و همکاران[12]و ارائه آن در شبیه سازها, در این پژوهش نقطه بحرانی 90 درصد و 10 درصد را جهت مهاجرت انتخاب کردیم. براساس این الگوریتم در صورتیکه استفاده از پردازنده یک ماشین فیزیکی به بیش از 90 در صد ظرفیت آن برسد تعدادی از ماشین های مجازی مستقر روی آن بصورت زنده مهاجرت می کنند و این به دلیل افزایش صعودی مصرف انرژی ماشین فیزیکی بعد از 90 در صد استفاده از پردازنده است. با این کار مصرف انرژی کاهش پیدا خواهد کرد.
از طرفی دیگر زمانی که استفاده از پردازنده به کمتر از ده درصد ظرفیت آن برسد تصمیم می گیریم که تمام ماشین های مجازی مستقر روی آن به سمت ماشین های فیزیکی دیگر مهاجرت کنند و ماشین فیزیکی مبدا جهت کمینه کردن مصرف انرژی خاموش شود. دلیل این کار این است که ماشین فیزیکی که روشن می شود حتی اگر هیچ ماشین مجازی روی آن نباشد انرژی اولیه زیادی را مصرف می کند بنابراین ده درصد تنظیم می گردد تا ماشین فیزیکی, انرژی زیادی را به بهای کار اندک مصرف نکند. در این الگوریتم از الگوریتم بهینه سازی ژنتیک جهت حل مسئله بهره برده ایم.
در الگوریتم پیشنهادی، با تغییری در الگوریتم ژنتیک رایج، علاوه بر توابع موجود، تابع دیگری نیزافزوده شد که بار کاری را در سرورها چک کرده سپس در مواقع لازم عمل مهاجرت صورت می گیرد. سپس ارزیابی مجدد انجام گرفته و در نهایت رشته با مصرف انرژی حداقل انتخاب می شود. براین اساس جهت انتخاب جمعیت اولیه 200 رشته - کروموزوم - که هر رشته مکانهای ماشین مجازی - - vm را در میزبان ها - host - ها بصورت تصادفی تعیین می کند، تولید می کنیم. هر کروموزم را به طول 1052 انتخاب می کنیم .
1052 تعداد ماشین های مجازی است که بنا داریم به 800 میزبان تخصیص دهیم. هر ژن مقدار یکی از 800 سرور را می گیرد به نحوی که انرژی مصرفی مینیمم شود. پس هر کروموزوم را یک آرایه یک سطری در نظر می گیریم که 1052 ستون دارد. هر درایه مشخص می کند که ماشین مربوطه روی کدام میزبان مستقر شده است. پس هر درایه یا همان ژن در بیان ژنتیک , شماره ماشین فیزیکی است.
جهت بدست آوردن بهترین نتیجه، تعداد تکرار به دفعات تغییر داده شد که بهترین نتیجه به تکرار 1000 تعلق گرفت. بنابراین هر کدام از 200 کروموزوم 1000, بار بروز رسانی می شود، که این بروز رسانی طی مراحل الگوریتم ژنتیک - ارزیابی- ترکیب-جهش - انجام خواهد شد. در الگوریتم پیشنهادی تابع ارزیابی بدین صورت است که ابتدا انرژی میزبان ارزیابی شده و سپس مجموع انرژی میزبان های یک رشته را محاسبه می کنیم.
در انتها انرژی رشته ها را با هم مقایسه کرده و در نهایت رشته با انرژی حداقل انتخاب می شود. همانطور که در شکل 1 مشاهده می شود، پس از پیاده سازی و اجرای روش پیشنهادی در نرم افزار متلب 2016، در تکرار 100 و با عملگر ترکیب تک نقطه ای و جهش بیتی، با جمعیت 100در هر تکرار، مصرف انرژی به مقدار حدودی 90 کیلو وات ساعت رسیده است.