何謂Resource Pool(資源池)
VMware 的 Resource Pool 主要是用來針對資源池內的 VM,可以靈活的增加或減少 CPU 和Memory 硬體資源的使用情況。每個資源池可專屬使用該資源池內的資源而不被資源池以外的 VM 所影響。如此一來更能有效的提高效率和使用率。
設定
1. Resource Pool 說明
Resource Pool 簡單來說就是一個小的 ESXi host。一樣可以設定Limit、Reservation 和 Shares來擁有各自的硬體資源。在 ESXi host下可建立多個或多層資源池(Resource Pool)
用以下範例來簡單說明ESXi host、Resource Pool與 VM 的關係:
假設ESXi host 有 4GB=4096MB 的記憶體容量要分配
新增兩個資源池 「Resource Pool 1」和「Resource Pool 2」
並且在這兩個資源池下各有三個 VM 大致情況如下圖 。
這兩個新資源池都設定 Reservation 為2GB=2048MB,因此當 ESXi host 開機後,在「Resource Pool 1」和「Resource Pool 2」都可分配到2GB的記憶體容量。而當「Resource Pool 1」底下的 VM(1、2、3)也需要分配記憶體時,則是由Resource Pool 1 中的 2GB 來做分配。而這 2GB 的記憶體大小並不會被VM(1、2、3)以外的 VM 使用。
也就是說在「Resource Pool 1」內的 VM 就只會跟在「Resource Pool 1」內的 VM 相互競爭資源,而不會搶到以外的資源,反觀「Resource Pool 2」也是相同的情況。
2. 借用資源
假設今天「Resource Pool 1」內的 VM(1、2、3)都開啟來後。造成記憶體在資源分配上不足時。此時可以透過設定「Expandable Reservation」來向上層索要資源。「Expandable Reservation」是資源池層級才能設定,VM本身不能自行設定。不過要注意的是並不是有勾選就一定會借的到資源也要看上層是否還有足夠的資源能往下借。
也就是說如果今天「Resource Pool 1」內的記憶體資源不夠用時,「Resource Pool 1」就會跟上層 ESXi host 詢問是否還有足夠的記憶體可以借來使用。不過這借來的記憶體當 VM 關機後,會歸還到原來的地方去。
就如同一開始所說的,在資源池的部份可建立多個或多層的資源池。因此只要在上層的資源池也有設定「Expandable Reservation」的話,就可以一層一層的往上借用資源。
3. 建立Resource Pool(資源池)
3.1 [ESXi host] → [New Rescource Pool..]
3.2 設定 Rescource Pool
在 Rescource Pool 的設定上可分為兩個區塊,主要是用來設定資源池的 CPU 和 Memory的使用範圍
(1) CPU Rescource
(2) Memory Rescource
要設定 Limit 的話請記得把「Unlimited」的勾取消
勾選「Expandable Reservation」表示可以跟上層借硬體資源,未勾選,就不能跟上層借硬體資源。不過要注意的是並不是有勾選就一定會借的到資源也要看上層是否還有足夠的資源能往下借。
有關這兩個區塊中的 Limit、Reservation 和 Shares說明可參考以下說明
Limit
Limit 主要是用來限制 Memory和 CPU 運算資源的使用上限。簡單來說,假設資源池的Memory Limit 設定為 2048 MB ,不論上層或是ESXi host的 Memory還有多少能使用。最高上限就是只能使用到2048 MB = 2 GB,無法再上去。除非修改Limit的上限值。修改 Memory Limit 可以直接修改設定,反觀 CPU 設定也是相同。
Reservation
Reservation主要是用來「保留」資源,一旦設定Reservation的數值後,就一定會得到這獨占的實體資源。也就是說假設資源池的 Memory Reservation 設定為1024 MB時,當開機時,實體資源就一定保證會分1024 MB 的實體記憶體能給資源池使用。而此1024 MB是不會跟別的資源池共享或是搶走使用。
Shares
Shares 主要用來分配額外資源的部份。採取比例或比重的方式來分配資源,在比重分配方面有分以下四種。
以 CPU Resources 為例
Low 2000
Normal 4000
High 8000
Custom 自定
在 Low:Normal:High 比重上為 1:2:4。
假設當兩個資源池發生相互競爭資源時,就會依照 Shares 的設定來分配上層或ESXi host的資源
最後要注意的就是,由於每個資源池的設定方式不同,加上資源池內的 VM 數也不同的情況下,在最後所拿到的資源也就會不盡相同。因此在每個資源的計算上,還是需要比對、計算才不會浪費過多的資源。
写得很详细,学习了,
网站非常好,希望以后有更多好文章
謝謝~