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

۳۷: endif
۳۸: endfor
۳۹: MigrationMapList.AddAll(tmpMap);
۴۰:return MigrationMapList

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

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

الگوریتم ۳-۶ جایگذاری سلسله مراتبی VMها
Input: VmsToMigrateList
Input: excludedHostsForFindingNewVmPlacement
Output: MigrationMapList
۱: VMsToMigrateList.SortByCpuUtilizationDecreasing();
۲: MDCList.SortByCpuUtilizationDecreasing();
۳: RackList.SortByCpuUtilizationDecreasing();
۴: foreachVM vm: VMsToMigrateList)
۵: foreachMDC mdc: MDCList)
۶: foreach(RACK rack: mdc.GetRackList)
۷: findHostForVm(vm, excludedHostsForFindingNewVmPlacement,rack.GetHostList);
۸: if(findHostForVm!= null)
۹: break;
۱۰: endif
۱۱: end foreach
۱۲: if(findHostForVm!= null)
۱۳: break;
۱۴: endif
۱۵: findHostForVm(vm, excludedHostsForFindingNewVmPlacement,mdc.GetHostList);
۱۶: if(findHostForVm!= null)
۱۷: break;
۱۸: endif
۱۹: end foreach
۲۰: if(findHostForVm== null)
۲۱: return null;
۲۲: endif