سوالهای رایج در مورد شبیه ساز cloudsim
در این صفحه سئوالات رایج در خصوص شبیه ساز کلادسیم مطرح شده و پاسخ متناسب با آن ارائه شده است. اگر سئوال جدیدی دارید میتوانید با برچسب کلادسیم در سایت پرسش و پاسخ مطرح نمایید تا بعد از پاسخ به آن در اینجا مستند شود. اگر هم پاسخ سئوالی را میتوانید میتوانید در تکمیل آن مشارکت داشته باشید تا توسط سایر دوستان مورد استفاده قرار بگیرد. همچنین میتوانید با کلیک بر روی بحث، روی سئوالات و جواب های مطرح شده در همینجا بحث کنید.
چگونه در cloudsim ماشین مجازی به میزبانها(host) نسبت داده می شود؟
اختصاص ماشین مجازی به میزبان بر اساس الگوریتمی است که در کد مشخص می نمایید در مورد کدهای آماده طبق الگوریتم زمانبندی که پیش فرض وجود دارد اجرا می شود. انتساب میزبان به ماشین مجازی در هر دفعه ممکن است متفاوت باشد و به پارامترهای مانند:بار میزبان و ماشین مجازی بستگی دارد همچنین به نوع الگوریتمی که به طور پیش فرض اجرا می شود. برای آشنای بیشتر با این عمل و دیدن نمونه کد و دستکاری آن می توانید به کلاس VmAllocationPolicySimple مراجعه نمایید بحث
چگونه منابع یک میزبان بین ماشین های مجازی تقسیم می شود؟
بعد از اختصاص یافتن ماشین مجازی به میزبان الگوریتم های مختلفی را برای انتساب هسته های پردازشی میزبانها به ماشینهای موجود اجرا نمود در کد پیش فرض شبیه ساز دو الگوریتم TimeShare و SpaceShare وجود دارد و کدهای آن نیز در این شبیه ساز می باشد. بحث
شبیه سازی در سطح رک در کلادسیم
مفهوم راک در کلادسیم وجود ندارد، ولی شما میتوانید آن را به راحتی به کلادسیم اضافه نمایید. برای این کار مثلا میتوانید در کلاس مربوط به میزبان (Host) یک متغییر به عنوان rack_id اضافه نمایید و این تقسیم بندی را در الگوریتم های خود مورد استفاده قرار دهید. بحث
ایجاد ماشین مجازی در حین شبیه سازی
میتوانید یک پارامتر starttime در پیاده سازی ماشین مجازی تعریف کنید و در تابع createVmsInDatacenter در کلاس DatacenterBroker دستور sendNow را به send تغییر دهید و بصورت زیر اصلاح کنید:
send(datacenterId, vm.getStartTime(), CloudSimTags.VM_CREATE_ACK, vm);
این تغییر میبایست برای کلادلت ها هم انجام شود. این کار در تابع submitCloudlets از کلاس DatacenterBroker قابل انجام است:
send(getVmsToDatacentersMap().get(vm.getId()), cloudlet.getExecStartTime() ,CloudSimTags.CLOUDLET_SUBMIT, cloudlet);