`
neo
  • 浏览: 265515 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

<转>理解VMware资源池

 
阅读更多


因为本人用的系统是英文版,截图也都是英文的,所以文中表述常常会中英混杂,只是为自己方便,还请见谅。

为方便描述,本文中的资源池(Resource Pool)都简写为RP。VM=虚机,Shares=份额,vCPU=虚机的CPU,Limit=限额或上限,Reservation=保留。

资源池(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可用到的资源还受到单台主机物理资源上限的影响。


 
思考题1:请问这样的描述正确吗?因为VM不能跨主机使用资源,所以在上面例子中30GB内存的资源池中将不能创建1台20GB内存的VM,因为20GB大于单台主机的物理内存。(答案点这里)
 

同VM一样,资源池也有Shares, Reservation和Limit这3个配置项。(见下图)


图2:编辑资源池属性

【Limit】

RP的Limit和VM的Limit类似,不同的就是这个limit是RP中所有VM可用物理资源的上限值。

虽然Limit不会限制VM的创建,但是它限定了可用物理资源,影响了RP中运行中VM的性能。

【Shares】

资源池的资源通常通过份额来分配。有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有关,关于memory overhead的具体信息,详见拙文:《VMware内存配置再探》。
 
(2) 在cluster根一级的VM和其下的第一层Resource Pool共同分享所有资源

Normal RP默认份额是4000,单vCPU的VM的Normal份额是1000,2个vCPU的是2000


图6:例子2

所以,如果某服务器特别重要,需要特别多的份额,那就直接放在cluster底下,可以不用放进任何RP 

Normal类型的资源池,其内存份额是163840,CPU份额是4000,相当于一台配置了4vCPU和16GB内存的VM。(为便于记忆这么类比)
 
(3) 将VM从某一个RP移走,份额总数会减少,意味着每一单位份额的资源增加了;VM移入某个RP,总份额会增加,意味着每一单位份额的资源减少了。

图7:例子3-移除VM对资源分配的影响

这个例子中,总份额数从8000下降到了6000,原先有16GHz CPU资源,每一份是2MHz,现在增加到了2.67MHz。因此每个RP的总资源也增加了。

VM移动到另一个RP的时候,其Limit和Reservation值保留
。其份额如果是以Normal, High, Low表示的话,将在目的RP中占有相应的比例。并且影响到目的RP的总份额数。下图例子中,Test01的加入导致该RP中总份额由2000增加到了4000,因此单位份额的CPU资源下降了一半,原先每台VM的可用资源比例也从50%下降到了25%.

图8:例子3-加入VM对资源分配的影响

重要!强调一点,份额(Shares)必须是在有资源争用(Contention)的情况下才起作用

千万不要被图1所迷惑了,错以为6GHz的CPU就应该按照Normal比Low的2:1的比例分配给2个RP,其中1个4GHz,另外一个2GHz。错!大错特错!真实的情况是,在没有发生争用的时候,不管其中哪1台VM(例如VM-Marketing1)都可以用5GHz甚至更多的CPU资源。

【Reservation】

RP的reservation不是决定其中的VM能用多少CPU/内存资源,而是用来分配给VM的Reservation用的。如果RP的可用保留(Available Reservation)不够VM Reservation需要的量,VM将不能被启动,或者正在运行中的VM不能被移动到该RP中。这种检查叫做准入控制(Admission Control)。

比如资源池中可用内存保留是1500MB。位于该RP中的VM1和VM2的内存保留都是1024MB,当我们启动VM1的时候,可以正常启动。但是再启动VM时,剩下的可用内存保留只有476MB,不够1024MB,于是VM2无法启动,用户将收到Insufficient Memory Resource的报错。

资源池有2种类型,Fixed和Expandable。在上面的截图中可以看见,CPU和Memory资源都可以勾选Expandable Reservation,默认是勾选的。如果手工去掉这个勾,就可以更改为Fixed。

Fixed类型就是其中的VM的Reservation只能使用自己的Reservation,而Expandable的RP Reservation就是不仅可以使用自己的Reservation,而且当RP中的可用保留(Available Reservation)不够VM用的时候,可以使用父RP中的可用保留。

下图就是将Memory Reservation类型从Fixed改成Expandable后,Available Reservation的变化。

图9:资源保留的类型Fixed和Expandable

VM开机才会有Reservation,关机的时候就把这部分Reservation还回资源池了

RP Reservation中的内存/CPU资源并非被这个RP独占,而其他RP无法使用。如果某一个RP Reservation中的内存没有被用掉,而其他RP的VM还是可以使用这部分内存的。

举例,Host有3GB内存,完全竞争下RP1获得1GB,RP2获得2GB。RP1设了1GB的Reservation,但是其中没有VM。RP2中有且仅有一台VM配置了2.5GB内存,运行一个耗内存的程序,那么这个VM可以获得2.5GB的pRAM,其中0.5GB来自RP1,而无视其Reservation。

但是,增加某个RP的Reservation就减少了其他RP可以获得的Reservation

还是上例中,Host有3GB内存,RP1 Normal,reservation 1GB,RP2 Low,reservation 0.5GB。那么Host还剩下1.5GB的 Available Reservation。如果RP1和RP2都是expandable的,那么RP1的Available Reservation有2.5GB,RP2的Available Reservation会显示有2GB。此时,增加RP1的Reservation到2GB,你会发现RP1的Available Reservation还是2.5GB,但是RP1的却只有1GB了。

开启一台VM所需要的物理内存,不仅和Memory Reservation有关,也和Memory Overhead有关
。当Available Reservation小于开启一台VM所需的需求(等于Memory Reservation和Overhead的和)时,VM就无法启动。

举例,如上图9中,Fixed的时候,可用保留只剩下132MB了,此时启动1台2vCPU,2GB内存,0内存保留的VM,是否能启动呢?答案是不能,因为虽然此VM内存保留设为了0,但是Memory Overhead还需要198MB可用内存保留。因此无法启动。
 
现在揭晓思考题1的答案:不对。这台VM可以被创建,也可以被运行。虽然这台VM不能跨主机使用资源,也就是它最多可以用到16GB的pRAM,但是别忘记它还有swap,因此,20GB的swap保证了Guest OS的运行。

本文出自 “delxu的Live记事本” 博客,请务必保留此出处http://delxu.blog.51cto.com/975660/283522

分享到:
评论

相关推荐

    vrops的虚拟化巡检报告模板xml格式

    4. **过滤与分组**:`&lt;Filter&gt;`元素允许你根据特定条件(如主机名、集群或资源池)筛选数据。同时,`&lt;Group&gt;`元素用于对数据进行分组,以便按特定属性(如数据中心、业务单元)进行分类。 5. **自定义样式**:XML...

    VMWare虚拟机资源池Vcenter和Oracle部署方案.docx

    ### VMWare虚拟机资源池Vcenter和Oracle部署方案 #### 实施概述 - **实施背景**:当前南网自动化机房II区、III区、DMZ区的VMWare虚拟机资源池使用的是SQL Server 2008 Express版本的数据库,该版本只能支持5台物理...

    虚拟化技术-创建资源池.pptx

    ### 虚拟化技术与资源池创建 #### 一、虚拟化技术概述 虚拟化技术是一种通过在物理硬件上创建多个独立的操作环境(虚拟机)来提高资源利用率的技术。这些虚拟机可以在同一台物理服务器上运行不同的操作系统和服务...

    SkyForm云平台资源池模板制作指南.pdf

    第2章:VMware资源池模板制作 对于使用VMware环境的资源池,本章提供了两种模板制作方法: 2.1 使用VC自身模板: 用户可以通过VMware vSphere Client直接创建和定制模板,包括克隆现有虚拟机、安装必要的软件、配置...

    使用Java API连接虚拟机HBase并进行数据库操作,Java源代码

    &lt;groupId&gt;org.apache.hbase&lt;/groupId&gt; &lt;artifactId&gt;hbase-client&lt;/artifactId&gt; &lt;version&gt;2.4.9&lt;/version&gt; &lt;/dependency&gt; ``` 在Java代码中,首先需要导入必要的库,如`org.apache.hadoop.hbase....

    vmware云计算框架概述

    - **vSphere**:作为云计算基础设施平台,vSphere提供了资源池、标准化服务、以及虚拟数据中心的全面虚拟化。 - **vCloud Director**:面向基础架构云的通用服务模型,支持私有云和公共云的构建与管理。 - **vShield...

    VMware虚拟化评估报告

    1. **资源池管理**:通过DRS动态调整资源池,确保资源分配的公平性和效率。 2. **虚拟机瘦身**:移除未使用的硬件资源,如虚拟磁盘和网络适配器,减少不必要的开销。 3. **模板和克隆**:使用VMware模板可以快速...

    vijava 二次开发VMware

    首先,让我们理解VMware vSphere。VMware vSphere是VMware公司推出的一套全面的虚拟化解决方案,包括了虚拟化服务器(vSphere ESXi)、虚拟化管理平台(vCenter Server)等组件,用于构建、运行和管理企业级的云环境...

    VMware Infrastructure SDK for Java

    - **ResourcePool**: 管理资源池,用于分配计算资源给虚拟机。 - **Network**: 处理网络设置,包括虚拟交换机和端口组的管理。 - **Datastore**: 管理存储资源,包括挂载、卸载、查询数据存储。 - **Task**: 跟踪...

    Vmware渠道资料

    - 资源池:通过资源池将计算资源(CPU和内存)和存储资源集中管理,方便分配和调整。 - 资源调度:DRS(Distributed Resource Scheduler)自动平衡虚拟机负载,根据需求动态调整资源分配。 - 权限和策略:设置...

    VMware vSphere Design, 2nd Edition.pdf

    其中vSAN是VMware推出的一款虚拟SAN解决方案,可以将多个主机的硬盘和闪存设备转化为共享存储池,实现高可用性、高可扩展性和经济高效的存储虚拟化。 本书的内容涵盖了VMware vSphere产品的各个方面,其中特别着重...

    VMware VTSP-HCI 2018

    【VMware VTSP-HCI 2018】是VMware公司推出的超融合基础架构(Hyper-Converged Infrastructure,简称HCI)的专业认证考试,旨在验证考生对于VMware HCI解决方案的深度理解和实施能力。VMware VTSP(VMware Technical...

    Vmware ESXI API

    此外,还有`ResourcePool` 类用于管理资源池,`Datastore` 类处理数据存储,以及`Network` 类用于网络配置等。 **dom4j-1.6.1.jar** 是一个流行的Java XML 处理库,它在VMware ESXi API 的使用中起到辅助作用。通过...

    VMware 云计算的本土化落地.pdf

    VMware的虚拟化技术,可以将企业的硬件资源(服务器、存储、网络)虚拟化为资源池,以更灵活和高效的方式提供给需要的企业。 在市场策略上,VMware认为软件定义技术的进一步发展应该是通过虚拟化带来的池化资源,...

    Cloud Computing with VMware vCloud Director

    2. **资源池管理**:它允许管理员定义资源池,这些资源池可以包括CPU、内存和存储,以便更有效地分配和管理计算资源。 3. **多租户支持**:vCloud Director支持多租户架构,这意味着多个部门或客户可以在同一物理...

    VMware vSphere:资源管理与优化全面指南

    内容概要:本文详细介绍了VMware vSphere的资源管理与优化技术,包括vSphere的架构与组件、资源池的概念及其应用、资源分配策略(DRS和HA)、vCPU与内存管理、存储资源管理、网络资源管理与优化、性能监控与分析、...

    vmware esx 白皮书

    《Resource Management Guide》涵盖了VMware ESX的资源分配和优化策略,如CPU和内存的动态调整、资源池的创建和管理,以及性能监控。这有助于最大化服务器的性能,同时确保各虚拟机间的公平性。 **升级与扩展** ...

    VMware vSphere:ESXi主机深入理解与实战

    重点讨论了ESXi与vCenter的集成方法、高级虚拟化技术(如资源池与DRS、HA与容错、vMotion与存储vMotion)、存储与网络管理(如VMFS与NFS对比、标准交换机与分布式交换机)、安全与合规措施(如安全策略配置、虚拟机...

Global site tag (gtag.js) - Google Analytics