ادغام پویای ماشین های مجازی در مراکز داده- قسمت ۱۱

۱۰: for (int i = ۰ ; i < MinActiveMDC; i++)
۱۱: excludedHostsForFindingNewVmPlacement.RemoveAll( MDCList[i].GetHostList);
۱۲: end for
۱۳: endif
۱۴: if (MinActiveRack >= 2 )
۱۵: for (int i = ۰ ; i < MinActiveRack ; i++)
۱۶: excludedHostsForFindingNewVmPlacement.RemoveAll( RackList[i].GetHostList);
۱۷: end for
۱۸: end if
۱۹: List ActiveHostInLeastRack = null;
۲۰: for (int i = ۰; i < MinActiveHost; i++)
۲۱: ActiveHostInLeastRack.Add(RackList[MinActiveRack].GetHostList[i] );
۲۲: end for
۲۳: excludedHostsForFindingNewVmPlacement.RemoveAll(ActiveRacks.Last.GetHostList  ActiveHostInLeastRack);
۲۴: excludedHostsForFindingNewVmPlacement.RemoveAll(OverUtilizedHostsList);
۲۵: vmsToMigrateFromUnderUtilizedHost = getVmsToMigrateFromUnderUtilizedHosts(GetHostList()  excludedHostsForFindingNewVmPlacement);
۲۶: MigrationMapList = VmPlacementHierarchical(vmsToMigrateFromUnderUtilizedHost, excludedHostsForFindingNewVmPlacement);
۲۷: MinHosts++;
۲۸: if ( MinHost == Rack.Hosts.Size())
۲۹: MinHosts = ۱;
۳۰: MinRacks++;
۳۱: if ( MinRacks == MDC.Racks.Size())
۳۲: MinRacks = ۱;
۳۳: MinMDC++;
۳۴: end if
۳۵: end if
۳۶: end while
۳۷:return MigrationMapList

در صورت موفق بودن الگوریتم جایگذاری سلسله مراتبی و یافتن مقصدی برای میزبانان با توجه به منابع فعال موجود الگوریتم خاتمه پیدا میکند وگرنه با افزایش پلکانی منابع موجود، تلاش در استفاده حداقلی مولفهها و منابع را خواهد داشت. افزایش پلکانی در گام اول با افزایش تعداد میزبانان آخرین قفسه فعال انجام خواهد شد و این روند تا زمانی که منابع موجود ارضاء شود و یا کلیه منابع قفسه موجود انتخاب شود ادامه مییابد که در حالت اول الگوریتم خاتمه یافته و در حالت دوم الگوریتم افزایش پلکانی وارد گام دوم میشود. در گام دوم اقدام به افزایش تعداد قفسههای فعال در آخرین(کوچکترین) مرکز داده کوچک خواهیم پرداخت به شکلی که قفسه اضافه شده در ابتدا شامل تنها یک میزبان فعال خواهد بود و در ادامه نیز به گام اول پرش میکنیم. گام دوم نیز تا زمانی که تمامی قفسههای موجود درون مرکز داده کوچک فعال شدهاند ادامه مییابد وگرنه منابع موجود ارضاء شده و الگوریتم خاتمه یافته است.
 
شکل ۳-۶ شناسایی میزبانان، قفسهها و مراکز داده کوچک فروبار
در صورت عدم خاتمه الگوریتم در گام دوم، در انتها الگوریتم در گام سوم اقدام به افزایش تعداد مراکز داده کوچک میکند بدین شکل که مرکز داده جدید فعال شده تنها شامل یک قفسه فعال و آن قفسه تنها شامل یک میزبان فعال خواهد بود و الگوریتم دوباره به گام اول پرس خواهد کرد. در صورت ادامه روند و عدم ارضای نیاز بار کاری جاری توسط مراکز داده کوچک میتوان نتیجه گرفت که مرکز داده توان اجرای بار فعلی را نداشته است و در غیر اینصورت جایگذاری ماشینهای مجازی مولفههای غیر فعال شده به عنوان خروجی الگوریتم بازگردانده خواهد شد. تابعهای computeMin(Hosts,Racks,MDCs) به منظور محاسبه حداقل منابع مورد نیاز بر اساس بهرهوری فعلی مرکز داده استفاده میشوند. بدین شکل الگوریتم ارائه شده در هر بازه زمانی( ۵ دقیقهای) تلاش در خاموش سازی حداکثری مولفههای مرکز داده به صورت گروهی خواهد پرداخت.
یافتن میزبانان، قفسهها و مراکز داده کوچکِ فرابار
شناسایی میزبانان فرابار به صورت منحصر به فرد تنها سیاست استفاده شده به منظور عدم جلوگیری از تخطی از توافقات سطح سرویس است که در کارهای ذکر شده ارائه و استفاده شده است. اما همانطور که الگوریتم ۳-۵ نشان میدهد.

برای دانلود متن کامل پایان نامه به سایت zusa.ir مراجعه نمایید.