(完整版)10-资源管理和分配-内存CPU

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VSphere的资源管理和分配
第一部分:管理内存和CPU分配
第二部分:创建管理pool资源池
第三部分:创建vApp
第四部分:网络I/O控制
第五部分:存储I/O控制
第六部分:配置执行vMotion
第七部分:创建管理Cluster
第八部分:配置管理DRS 开启HA功能。

■什么是资源
服务器资源种类一般包括CPU、内存、电源、存储器和网络资源。

■谁可以提供资源
主机和群集(包括数据存储群集)是物理资源的提供方。

对于ESXi主机,可用的资源是主机的硬件规格减去虚拟化软件所用的资源。

群集是一组ESXi主机。

可以使用vSphere Client 创建群集,并将多个主机添加到群集。

vCenter Server 一起管理这些主机的资源:群集拥有所有ESXi主机的全部CPU 和内存。

■谁需要使用资源
@ 虚拟机是资源用户。

创建期间分配的默认资源设置适用于大多数计算机。

可以在以后编辑虚拟机设置,以便基于份额分配占资源提供方的总CPU、内存以及存储I/O 的百分比,或者分配所保证的CPU 和内存预留量。

打开虚拟机电源时,服务器检查是否有足够的未预留资源可用,并仅在有足够的资源时才允许打开虚拟机电源。

此过程称为接入控制。

@资源池是灵活管理资源的逻辑抽象。

资源池可以分组为层次结构,用于对可用的CPU 和内存资源按层次结构进行分区。

相应地,资源池既可以被视为资源提供方,也可以被视为资源用户。

它们向子资源池和虚拟机提供资源,但是,由于它们也消耗其父资源池和虚拟机的资源,因此它们同时也是资源用户。

ESXi 主机/ 集群(集中全部主机资源)
|
父资源池Pool
向上:申请主机/集群中的资源份额(资源用户角色)
向下:给下辖的子资源池或虚拟机分配资源(资源提供角色)
|
子资源池Pool / 虚拟机VM
ESXi 主机根据以下因素为每台虚拟机分配部分基础硬件资源:
■ESXi 主机(或群集)的可用资源总量。

■已打开电源的虚拟机数目和这些虚拟机的资源使用情况。

■管理虚拟化所需的开销。

■由用户定义的资源限制。

管理内存和CPU分配
■虚拟机内存设置
建立虚拟机时===== 编辑虚拟机设置===== 内存配置设置为4G
VM 会以该内存值为基准,VM的OS 认为自己的内存确实是4G (Linux可以通过free -m 查看)
虚拟机认为自己拥有4G 的内存,并且最多不会使用超过4G 的内存。

■超额的关联内存
可以超额的关联内存给VM,例如:ESXi主机的物理内存只有8G,但是可以给三个VM分配4G的内存。

P 8G
|
---------------------------
VM1 VM2 VM3
4G 4G 4G (仍然可以分配出4G超额内存,每台主机实际使用可能没有4G)
■ESXi 四大高级内存控制技术
■ 1.page sharing (透明的页面共享)
P 8G
|
---------------------------
VM1 VM2 VM3
| | |
■■■■■■■■■■■■■■■■■■■■ (内存页)
** ** **
合并标记*的部分
ESXi 通过比对各个主机的内存页面数据Hash 值,找出具有相同属性的内存页面,清空重复区域,并将相同属性页面共享给其它主机使用,这样就省去了“重复”的内存空间开销
■ 2. Ballooning (气球机制)(需要VM安装VMTools)
P 8G
|
---------------------------
VM1 VM2 VM3
5G 5G 4G
实际消耗: 4G 《---- 此时VM3 没有多余的物理内存使用
在发生这样的资源紧缺时,Ballooning 技术通过由VMTools安装在各个VM上的驱动程序,
强制VM快速释放运行过程中的闲置内存,(类似于压榨)。

假设VM1可以压榨出1G,VM2可以压榨出1G,这样,VM3就可以使用2G的物理内存。

■ 3. Swapping (交换分区)(开辟硬盘空间,取代内存作数据交换,“速度远远低于真实内存”)
A. guest OS swapping :VM虚拟机自身的swap (使用虚拟硬盘的空间)
B. hypervisor swapping :ESXi 主机的swap (使用真实硬盘或者存储的空间)
P 8G ESXi
|
---------------------------
VM1 VM2 VM3 开机。

实际使用2G 5G 3G == 开始时使用1G,后续增长到2G,此时,有1G的内存使用无法满足,
ESXi 会将1G内存写入硬盘或者网络存储,产生ESXi主机的Swap。

(磁盘读取速度远远没有内存高,该状况长期持续发生,会造成虚拟机的性能整体下降,最终应该去升级物理内存。


■ 4. Memory Compression (内存压缩技术)
当ESXi 主机不得不做swap的时候,在将内存数据写入硬盘的同时,
ESXi 主机会自动压缩内存数据,50%,可以更加节省硬盘的开辟空间。

恢复的时候速度也比较快
■虚拟机的内存使用控制:
每个虚拟机均会根据其“配置大小”消耗内存,还会消耗“额外开销内存”以用于“虚拟化操作”。

■■配置大小:它是提供给客户机操作系统的内存量,但“独立于”分配给虚拟机的“ESXi物理RAM 量”,实际的物理内存使用量,将取决于下文所述的资源设置(份额、预留和限制)。

例如,请考虑配置大小为1GB 的虚拟机。

当客户机操作系统引导时,系统会检测到它正运行在具有1 GB 物理内存的专用计算机上。

分配给虚拟机的“ESXi物理主机内存”实际数量取决于其内存资源设置和ESXi 主机内其他虚拟机的内存争用情况。

有些情况下,可能向虚拟机分配全部内容(即1GB)。

在其他情况下,可能会得到较小的分配量。

无论实际分配如何,虚拟机操作系统都会继续运行,就好像正运行在具有1 GB 物理内存的专用计算机上一样。

■■预留值:ESXi主机为虚拟机预留的“ESXi物理内存量下限”,即使内存过载也是如此。

将预留设置为确保虚拟机高效运行的足够内存水平,这样就不会有过多的内存分页。

在虚拟机使用了其全部预留后,会允许其保留该内存量,并且不会将其回收,即使该虚拟机闲置也是如此。

仅在ESXi主机有足够的未使用资源“满足”虚拟机的预留时,vCenter Server 或 ESXi 才允许您打开虚拟机电源。

即使物理服务器负载较重,服务器也会确保该资源量。

预留用具体单位(兆赫兹(GHz) 或兆字节(MB))表示。

例如,某些客户机操作系统(例如Linux)在引导之后可能不会立即使用所配置的全部内存。

在“虚拟机使用其全部预留之前”,VMkernel 可以将其预留的任何未使用部分分配给其他虚拟机。

但是,在客户机的工作负载增加并消耗其全部预留之后,允许其保留此内存。

预留默认为0。

也可以指定预留以保证虚拟机始终可使用最少的必要CPU 或内存量。

■■限制值:不论何种情况,主机分配给虚拟机的“物理内存的使用量”的上限。

服务器分配给虚拟机的资源可大于预留,但决不可大于限制,即使系统上有未使用的资源也是如此。

例子:一台XP 虚拟机,配置中设置了1G内存。

那么他的“配置大小”就是1G。

其内存最大不能超过1G
此时在VCenter中设置它的“预留值”为512MB,则,
物理内存中,一定会有512MB给XP使用,不能撼动。

此时,在512MB --- 设置值1G之间的内存到底是物理内存
还是SWAP 呢?现在还是未知数。

@@@@@@@@@@ 限制,预留和内存开销预留
限制必须等于或者超过配置的预留,如果虚拟机配置了预留,预留直接从资源池中未预定的内存池中减去,为了开启虚拟机,vCenter必须预定虚拟机的内存预留值和内存开销。

开销内存包括为虚拟机框架缓冲区和各种虚拟化数据结构(如卷影页表)预留的空间。

开销内存取决于虚拟机的虚拟CPU数量和虚拟机配置的内存
基本设计原则:当计算资源池的限制时,预留值和内存开销预留都需要考虑在内。

■■份额值:当VM对物理资源发生竞争时,份额值决定了资源的“分配比例”不要看绝对值
份额通常指定为高、正常或低,这些值将分别按4:2:1 的比例指定份额值。

还可以选择自定义为各虚拟机分配特定的份额值(表示比例权重)。

指定份额仅对同级虚拟机或资源池有意义。

同级将根据其相对份额值共享资源,该份额值受预留值和限制值的约束。

为虚拟机分配份额时,始终会相对于其他已打开电源的虚拟机来为该虚拟机指定优先级。

下表显示了虚拟机的默认CPU 和内存份额值。

预设高中低三种级别,默认分别按1:2:4 这个比率指定份额值
例如,一台具有2个虚拟CPU 和1GB 内存且CPU 和内存份额设置为正常的SMP虚拟机具有2x1000=2000 个CPU 份额和10x1024=10240 个内存份额。

#### SMP :具有一个以上虚拟CPU 的虚拟机称为SMP(对称多处理)虚拟机。

在每个虚拟机上,ESXi 最多支持64 个虚拟CPU。

■配置内存关联:
主机------>资源分配------->CPU 内存存储器
注意下面的概念
VM设置内存值内存预留(reservation)内存限制(limit sets)份额值(shares)
■VM设置内存值
VM能够请求的最大内存数量(实际上可能是ESXi物理内存、也可能是虚拟内存)。

■ 配置内存预留(reservation)
预留reservation:决定了这个VM“至少”能够使用多少物理内存,可以小于虚拟机配置值,虚拟机使用超出预留的部分,可能使用swap,也可能使用物理内存,使用物理内存和swap的比例,有下面的份额值确定
VM配置中,设置2G 内存。

预留值512 M ,独占512M的“物理内存”无法撼动。

============= VM 配置值2G
| |
| |
| |----剩余的指派,有可能使用物理内存
| 也有可能使用虚拟内存
| | 由“份额值”+ “限制值”决定
| |
| |
============= 当虚拟机内存使用量超过512M时
| | “预留值512M ,独占512M 物理内存
| |
=============
■ 配置内存限制(limit sets)
============= VM 配置值2G
| |
| |
| | ========(剩余的,一定是虚拟内存)
| |
| |
----------------------| 限制值,768M,(该虚拟机即使分配到物理内存,那么总物理内存也无法超越)
| |
| | <--------- 这个部分可能是SWAP (无法申请到足够的物理空间)
| | 也可能是物理内存(物理空间充足)
=============当虚拟机内存使用量超过512M时
| |预留值512M ,独占512M 物理内存
| |
=============
虚拟机使用内存超出预留值后。

ESXi主机将会开始根据VM的需求分配闲置的物理内存。

情况1、如果此时ESXi 有足够多的物理内存,那么该虚拟机可以得到其余768 - 512=256 M 的物理内存分配,当使用达到限制值时,ballon driver 驱动程序会禁止该VM继续使用物理内存,虚拟机继续超额使用内存的话,剩余的768==== 2G 将全部是ESXi的swap 虚拟内存
情况2、如果多台虚拟机的内存使用都超出它们“预留值”,并且此时的ESXi主机内存不足应付所有的“超额”,此时对于ESXi 主机分配下来的闲置物理内存,多个虚拟机将会发生“资源抢夺”的情况,此时“份额值”就会产生作用
ESXi 8G
|
---------------------------------
| | |
VM1 VM2 VM3
设置2G 2G 2G
预留1G 1G 1G ===== 此时的闲置物理内存为8-3=5G(不产生竞争忽略开销值limit 1.5G 1.5G 1.3G
实际使用512M 1.5G 1.5G
剩余512独占0.5超0.5超
| |
超出0.5使用物理内存0.3可以使用物理内存,0.2一定使用虚拟内存
@此时虚拟的需要超额的量为0.5+0.5=1G,而当时物理内存闲置为8-3=5G,没有发生资源抢夺,份额值不起作用@此时的闲置物理内存为8-3=5G-0.5-0.3=4.2G(理论,不计算虚拟架构本身的消耗)
情况3、
ESXi 8G
|
---------------------------------
| | |
VM1 VM2 VM3
设置2G 4G 4G
预留1G 2G 2G ===== 此时的闲置物理内存为8-5= 3G
limit 1.5G 4G 4G 此时,限制值不生效。

实际使用512M 3.8G 3.8G
剩余512独占 1.8超 1.8超
| |
此时二者总超额3.6G,而系统当前闲置只有3G,发生资源竞争的情况
@二者的物理内存使用均没有达到limit的限制,都有使用“物理内存”的权利,3G的物理内存谁能抢到更多?
-----------------------------------------------------------------
份额值:0 4 6
(以10分为准)40% 60%
依据份额值:3G的内存,分配给VM2 3X0.4=1.2G 分配给VM3 3X0.6=1.8G
(此时VM2 剩余的1.8-1.2G=0.6G 内存将会使用虚拟内存)
■ 预设配置份额值(shares)
注意,份额值的配置单位不是M、G,只是一个单纯的比例数。

最终比例要参考。

■■ %份额■■三种级别1:2:4
实例一:
物理主机内存2G
VM1 预留500M 自定义份额值1000 50%
VM2 预留500M自定义份额值1000 50%==========此时闲置2-1=1G
VM1 争得512M,最终“得到”的物理内存为1G
VM2 争得512M,最终“得到”的物理内存为1G
实例二:
物理主机内存2G
VM1 预留500M 自定义份额值2000 3/2
VM2 预留500M 自定义份额值1000 3/1 ==========此时闲置2-1=1G
VM1争取到1X3/2 GB 最终“得到”的物理内存为1166M
VM CPU介绍
可以为虚拟机配置一个或多个“虚拟处理器vCPU”,每个处理器均具有自己的寄存器和控制结构集合。

当调度虚拟机时,会调度其“虚拟处理器”在“物理处理器上运行”。

VMkernel 资源管理器在物理CPU 上调度虚拟CPU,从而管理虚拟机对物理CPU 资源的访问。

ESXi 支持虚拟机最多具有64 个虚拟CPU。

CPU 是一个没有被虚拟化的部件,在所有的VM 操作系统里面都可以发现CPU是ESXi主机的真实CPU。

虚拟机直接使用物理CPU 的时钟频率。

ESXi为所有虚拟机都开了一个hole,让他们可以直接使用物理CPU。

多CPU调度。

支持设置多路CPU,多核心的虚拟机,(说明:技术不太成熟,推荐使用默认的单核CPU)
在复杂环境,高负载CPU应用时,可以开启多CPU。

注:
在超线程系统中,每个硬件线程都是一个逻辑处理器。

例如,启用了“超线程”的双核处理器具有“2个内核”和“4个逻辑处理器”。

物理CPU如果开启超线程技术,开启超线程技术是让1核有2个逻辑线程以模拟2个逻辑内核
2CPU插槽每插槽4核,总共8核,开启超线程技术后,每核可以支持2 vCPU,8核就是16vCPU
■CPU Affinity CPU 亲核技术(不推荐使用)
K1 K2 K3 K4 4核心
| | | |
-------------------------------------
|
VM1 (默认哪一个核心有空闲,就使用哪一个核心的资源),亲核技术使得VM可以绑定一个CPU。

配置:虚拟机====配置虚拟机====资源=====高级CPU选项。

可以支持让VM1固定使用某个核心的资源,如果该核心无空闲时间,该VM只能排队等待处理数据
缺陷特性:
1、不支持VMotion
2、VM基于多核心的负载均衡无法实现
3、无法参与DRS 动态资源的调度。

■配置CPU 资源控制================================================================
三个概念,预留--限制---份额以时钟频率为单位
CPU 资源过载时,ESXi 主机将在所有虚拟机之间对物理处理器进行时间划分,以便每个虚拟机在运行时就如同具有指定数目的虚拟处理器一样。

运行多个虚拟机的 ESXi 主机会为各虚拟机分配一定份额的物理资源。

如果使用默认资源分配设置,与同一主机关联的所有虚拟机都将在每个虚拟CPU 上收到相同份额的CPU。

这意味着单处理器虚拟机分配到的资源只有双处理器虚拟机的一半。

环境:2个单核心的3.0 GHz CPU 的ESXi 主机,存在一个或者多个VM
情况1:只存在1台运行的VM,此时无资源竞争
情况2:有2个资源利用率不高的VM 在运行,此时也不会产生竞争(比较空闲)
情况3:2个VM都处于繁忙状态,share 值相同的情况下,此时也不会产生资源竞争,2个VM分别由2个核心处理情况4:通过设置亲核,2个VM都使用同一个核心,并且2个VM都处于繁忙状态,此时会产生资源竞争如果二者的share值相等,那么二者的资源分配也是均衡的。

@@@@逻辑上看:3.0GHz,给VM1 1.5 VM2 1.5 实际上,是物理CPU时间片分配的比例均衡。

情况5:情况同4,但是VM1的比例为2 VM2比例为1,此时在物理时间分配上,VM1会得到更多的CPU时间
情况6:三台VM1 VM2 VM3, 比例2:1:1,但此时VM1比较空闲,不占用CPU,或者只占用几百M的CPU,则VM1不会竞争资源,剩余资源由VM2 VM3 平均分配。

■资源分配设置建议--------------
选择适合 ESXi 环境的资源分配设置(份额、预留和限制)。

遵循以下准则有助于使虚拟机获得更好性能。

■如需频繁更改总可用资源,可使用份额在虚拟机之间合理分配资源。

例如,如果使用份额,并且升级主机,那么,即使每个份额代表较大的内存量、CPU 量或存储I/O 资源量,每个虚拟机也保持相同的优先级(保持相同数量的份额)。

■使用预留来指定可接受的最低CPU 量或内存量,而不是想要使用的量。

主机可以根据份额的数量、估计需求和虚拟机的限制将额外的资源指定为可用资源。

预留表示的具体资源量不会随环境改变(例如添加或移除虚拟机)而变化。

■请不要将所有资源全部指定为虚拟机的预留(请计划将至少10% 的资源保留为未预留)。

系统容量越接近于被全部预留,想要在不违反接入控制的情况下更改预留和资源池层次结构就越困难。

在支持DRS 的群集内,如果预留完全占用群集或群集内各台主机的容量,则会阻止DRS 在主机之间迁移虚拟机。

■更改资源分配设置—示例======================================
以下示例说明了如何更改资源分配设置以提高虚拟机性能。

假定在某个 ESXi主机上,您创建了两个新的虚拟机—一台用于QA (VM-QA) 部门,另一台用于市场(VM-Marketing) 部门。

具有两个虚拟机的单台主机
在接下来的示例中,假定VM-QA 占用大量内存,因此,您需要将这两个虚拟机的资源分配设置相应地更改为以下内容:
■指定当系统内存过载时,VM-QA 可使用的内存和CPU 量是市场部虚拟机的两倍。

将VM-QA 的内存份额和CPU 份额设置为高,并将VM-Marketing 设置为正常。

■如果保证QA部门的虚拟机具有一定量的CPU/内存资源。

您可以使用预留设置来达到此目的。

步骤
如果选择群集的资源分配选项卡,然后单击 CPU,此时应看到 VM-QA 的份额是另一虚拟机的两倍。

另外,由于虚拟机尚未打开电源,因此使用的预留字段尚未改变。

1 启动vSphere Client 并连接到vCenter Server 系统。

2 在要更改其份额的虚拟机上,右键单击VM-QA,然后选择编辑设置。

3 选择资源选项卡,并在CPU 面板的份额下拉菜单中选择高。

4 在“内存”面板的份额下拉菜单中选择高。

5 单击确定。

6 右键单击市场部虚拟机(VM-Marketing),然后选择编辑设置。

7 在CPU 面板中,将预留值更改为所需值。

8 单击确定。

相关文档
最新文档