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%資源。