Shares表示了一台VM的重要性和该VM在资源分配时的权值,当同一台ESX或一个RESOURCE POOL中全部VM对CPU或内存资源需求超过100%时,发生资源争抢,此时,每台VM所能抢到的资源不超过((本VM SHARE)/(全部VM SHARE))*总资源,这个值如下简称“最大可SHARE资源”。
当一台VM提出资源申请时,有如下几种状况:
一、若是申请的资源=保留(Reservation)(VM启动时),检查系统总资源扣除其它VM的Reservation(未配置Reservation者视为0)后的剩余资源可否知足需求,若是能则启动VM,不然报错,没法启动VM;
二、若是申请的资源超过限制(Limit),直接拒绝申请;
三、若是申请的资源低于限制(Limit),但超过了“最大可SHARE资源”,对于超过的这部分资源申请,仅视系统空闲资源状况,所有或部分分配资源,对于不超过“最大可SHARE资源”部分,参照下一种状况分配资源;
四、若是申请小于或等于“最大可SHARE资源”,首先分配空闲资源,不足部分,系统就会去收回其它VM超过它们“最大可SHARE资源”的部分用于知足当前申请。正常状况下,系统总可以收集足够的资源用于知足当前申请,但若是其中有VM的保留(Reservation)>“最大可SHARE资源”,那么系统只能收回超过保留(Reservation)部分资源,这时系统就只能部分知足当前申请。
好比
vma 2000share
vmb 1000share
.....
当vma须要40%共享资源,vmb须要80%共享
已经超出共享值
结果vma 强制占有33.3%, vmb强制占有66.6%,谁都不容许跨线这里红字部分值得商榷,VMA的SHARES值是VMB的两倍,在发生资源争抢时,能抢到的最大SHARE资源VMA是66.7%,VMB是33.3%,在VMA须要40%资源,VMB须要80%资源时,最终应该是
VMA占有40%,VMB占用60%资源。