VMware vCenter 资源池
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.简介
资源池是灵活管理资源的逻辑抽象。资源池可以分组为层次结构,用于对可用的CPU 和内存资源按层次结构进行分区。
每台独立主机和每个DRS 群集都具有一个(不可见的)根资源池,此资源池对
该主机或群集的资源进行分组。根资源池之所以不显示,是因为主机(或群集)与根资源池的资源总是相同的。
用户可以创建根资源池的子资源池,也可以创建用户创建的任何子资源池的子资源池。每个子资源池都拥有部分父级资源,然而子资源池也可以具有各自的子资源池层次结构,每个层次结构代表更小部分的计算容量。
一个资源池可包含多个子资源池和/或虚拟机。您可以创建共享资源的层次结构。处于较高级别的资源池称为父资源池。处于同一级别的资源池和虚拟机称为同级。群集本身表示根资源池。如果不创建子资源池,则只存在根资源池。
资源池(Resource Pool, RP)有2种,CPU资源池和Memory资源池。其概念还是很容易理解的。
下图截取自官方的《vSphere Resource Management Guide》第36页
图1:资源池
其中1台主机有6GHz CPU资源和3GB可用内存资源。并且创建了2个资源池,RP-QA获得2/3的资源,也就是4GHz CPU资源和2GB内存资源。RP-Marketing 获得剩下的1/3的资源。
一个集群(Cluster)的资源池包含集群中所有主机(Host)的资源总和。比如一个2主机的集群,每个主机都有16GHz CPU和16GB内存,那么这个集群的资源总和就是32GHz的CPU和32GB的内存。在这个集群中创建的资源池就从这个总的可用资源中分配。
集群的可用资源总是小于集群的总资源,这是因为每台主机都会占用一部分CPU 和内存资源,保留给自己的Hypervisor和COS用(如果是ESX的话)。
虽然集群资源池是所有主机资源的总和,但是并不意味着某一VM可以使用超过某一主机的资源。比如,2台16GB内存的主机组成集群,集群中创建了一个30GB 内存的资源池,但是任何单台VM都不能使用超过16GB pRAM的,因为VM不能跨主机使用资源,VM可用到的资源还受到单台主机物理资源上限的影响。
同VM一样,资源池也有Shares, Reservation和Limit这3个配置项。(见下图)
图2:编辑资源池属性
RP的Limit和VM的Limit类似,不同的就是这个limit是RP中所有VM可用物理资源的上限值。
虽然Limit不会限制VM的创建,但是它限定了可用物理资源,影响了RP中运行中VM的性能。
资源池的资源通常通过份额来分配。有3种预设的份额分配方式,High,Normal 和Low,比重分别为4:2:1。反映在Shares数字上则如下表
份额(Shares)类型High Normal Low
比重 4 2 1
CPU 8000 4000 2000
Memory 327680 163840 81920
如果各一个RP的% 57.1% 28.6% 14.3%
比如说一个集群有5个资源池,1个High,2个Normal,2个Low,那么High 的RP可以获得4/(4+2*2+1*2)=40%的资源,Normal的RP各可以获得20%,Low 的RP各可以获得10%资源。
资源池下可以建子资源池。资源按份额的比例分配。
看图很容易理解。
图3:资源池与子资源池
例子中有2个RP,一个叫IT-RP,另一个叫QA-RP。有3台VM,其中Test01分配了2个vCPU和2GB内存;虚机thick-dp和thin-dp都只有1个vCPU和1GB 内存。
(1) CPU资源的份额(shares)和vCPU个数有关,Normal类型下,每个vCPU 1000份额。
例如:同一个RP下的VM,都设了normal,1个vCPU的thick-dp和thin-dp都只占share 1000,2个vCPU的Test01占share 2000
图4:例子1-CPU
Worst case allocation是最坏情况下该VM会占用的资源数量,这个最坏情况是指VM,而不是RP,换一句话说就是VM在运行一个耗CPU的程序,已经达到了100% CPU占有率。这个值是根据当前资源状况动态计算出来的。我的例子中因为没有争用,所以耗CPU的VM可以跑满2个vCPU,我的host用的是XEON E5405,是四核且每核2GHz,因此2个vCPU可以用足4000MHz,2个vCPU的thick-dp 可以用足2000MHz。thin-dp这台VM因为设置了CPU Limt为1000MHz,因此它的Worst Case Allocation是1000MHz。
内存资源的份额和VM的配置内存大小(configured memory size)有关。Normal 类型下,每1MB的内存占10份额。也就是说每1GB(1024MB)就是10240份额。
例如:同一个RP下的VM,都设了normal,1GB内存的VM的份额是10240,2GB 内存的Test01虚机就有20480份额。
图5:例子1-Memory
内存的Worst Case Allocation和CPU的类似,是指运行一个耗内存的程序时VM最多能占用的pRAM的数量。大家会发现这个最坏情况占用比配置内存/内存上限还要大一点,多的那部分就是用于memory overhead的。memeory overhead 的大小和VM被配置了多少个vCPU和多少vRAM有关。
(2) 在cluster根一级的VM和其下的第一层Resource Pool共同分享所有资源。
Normal RP默认份额是4000,单vCPU的VM的Normal份额是1000,2个vCPU 的是2000