VMware vSphere资源分配管理观念入门
vsphere 初学者指南

VMware vSphere新手入门VMware vSphere新手入门VMware在2009年发布了最新版本的企业级hypervisor vSphere 4,这距离上一次这家公司发布旗舰产品VMware ESX已经三年了。
vSphere的亮点包括增加的安全选项:vShield Zones和VMsafe应用程序接口(API);Storage VMotion集成;vStorage精简配置以削减存储成本;Fault Tolerence (容错),提供更多可用性;以及增加的vSwitch选项与功能。
如果你是VMware新手管理员、学生或者对虚拟化感兴趣的人,本手册是您最佳学习工具。
VMware vSphere入门指南将提供一些资源,帮助你了解vSphere的构成,包括新技术的解释等等。
VMware产品VMware的产品线有时候让人迷惑,因为它拥有各种包和功能的排列,这导致虚拟化管理员难以操作。
本VMware产品和功能手册通过分解VMware的功能集阐明虚拟化平台,并介绍VMware是如何将这些功能绑定在不同的虚拟化产品里的。
虚拟化技术之VMware产品与功能手册最佳VMware产品手册:Hypervisor、桌面产品和云服务vSphere介绍VMware公司提供了多种vSphere基础设施服务器版本。
本部分会涉及到以下内容:vSphere版本及其功能特性,与其他虚拟化产品的区别,回顾vSphere的安装要点,讨论vSphere定价问题,最后讨论vSphere在云计算的过程中所扮演的角色。
了解VMware vSphere产品及其功能特性VMware vSphere 4的特性分析分析升级到VMware vSphere的硬件需求管理技巧前面我们谈论VMware产品时,说明这是一套众所周知的优秀产品。
本部分将介绍VMware管理产品以及解决vSphere 4.0企业版和企业增强版中的许可证问题。
VMware管理产品的最佳使用指南解决vSphere 4.0企业增强版中插件的许可证问题更多资源本部分提供关于学习VMware vSphere的更多信息。
VMware vSphere 《VMware vSphere 基础》

用户可以通过 vSphere Client、vSphere Web Client 的 Web 浏览器、命令行界面或终端服务(如 Windows 终端 服务)访问 VMware vSphere 数据中心
应用程序服务:用于确保应用程序可用性、安全性和可扩 展性的服务集。
Βιβλιοθήκη 虚拟化层由 ESXi 管理程序组成,它将处理器、内存、视 频、存储器和资源虚拟化为虚拟机。虚拟化层还合并用于 确保可用性、安全性和可扩展性的应用程序服务。
•主机,群集,资源池
vSphere vMotion:将正在运行的虚拟机从一台物理服务器移动到另 一台物理服务器,而无需中断服务。从而更高效地分配资源。使用 vMotion,可将资源重新动态分配至物理服务器上的虚拟机。
Distributed Power Management (DPM) 处于启用状态时, 系统会将群集层及主机层容量与群集内运行的虚拟机所需 容量迚行比较。如果运行的虚拟机所需的资源可通过群集 中的主机子集得到满足,DPM 会将虚拟机迁移到此子集, 并关闭不需要的主机的电源。资源需求增加时,DPM 会重 新打开这些主机的电源,并将虚拟机迁移到这些主机。 DPM 执行的这种动态群集调整功能减少了群集的功耗,而 不影响虚拟机性能和可用性。
VMware vCenter
vCenter Server 用于集中管理数据中心。
Server 会聚合多台 ESXi 主机的物理资 源,集中呈现灵活多变的资源,供系统管理员置 备虚拟环境中的虚拟机。 Server 组件包括用户访问控件、核心服 务、分布式服务、插件以及各种界面。
vCenter
虚拟化是一种过程,它打破了物理硬件与操
作系统及在其上运行的应用程序之间的硬性 连接
vSphere5.9.1.管理内存和CPU分配

3、swap 虚拟内存技术,当物理内存不够使用的时候,用硬盘来充当内存,这个会大大降低性能
4 memory compression 内存压缩技术 就是当使用swap的时候,把内存压缩后再放到硬盘上,这样可以减小占用空间,提高内存使用效率 压缩比率大于50%
内存控制技术 :首先vm内存使用的最大值就是硬件设置的时候分配给vm的值,预留是必定使用的是物理内存 limit 是物理内存的使用不超过 指定的值 最大物理内存的使用
具体分配 看图
CPU 没有 虚拟 esxi开了个孔 直接使用主板上的CPU 多CPU 如2个 要等到2个idle 才会分配过来 任务不高 就用一个 cpu
CPU affinity 亲和 固定用哪个核心 不支持vmotion 手动的DRS 这个技术用处不大
分配4G 进入VM就能看到4G,可以超额的分配 不可能同时用到8=vm1 4G + vm2 4G + vm3 4G
esxi 有四大高级内存控制技术
1、透明页面 就是虚拟机的内存,用页作使用单位,不同虚拟机如果有相同的页,则用一个,这样可以节约内存 hash相同就用一个
2、ballooning 安装vmtools才可以使用,当内存使用紧张的时候,他可以让每个vm去释放闲置的内存
Hale Waihona Puke
vSphere 资源管理-管理 CPU 资源

因为 CPU 接入控制不考虑关联性,所以具有手动关联性设置的虚拟机可能不会始终得到其完整的预留量。 没有手动关联性设置的虚拟机不会受到具有手动关联性设置的虚拟机的负面影响。
五、使用 CPU 关联性
10
➢ CPU 关联性的潜在问题
将虚拟机从一个主机移动到另一个主机时,因为新的主机可能具有不同的处理器数,所以关联性可能不再 适用。
NUMA 调度程序可能无法管理已经借助于关联性分配到某些处理器的虚拟机。
关联性可能会影响主机在多核或超线程处理器上调度虚拟机以充分利用在这些处理器上共享资源的能力。
三、多核处理器
5
其四ESXi CPU 调度 Nhomakorabea序可以检测处理器拓扑,以及处理器内核与它上面的逻辑 处理器之间的关系。它使用此信息来调度虚拟机和优化性能。
ESXi CPU 调度程序可以解释处理器拓扑(包括插槽、内核和逻辑处理器之 间的关系)。
其五
其六 在未过载的系统中,ESXi CPU 调度程序在默认情况下将负载分配到所有插槽。
vSphere 资源管理-管理 CPU 资源
一、查看处理器信息
2
➢ 通过 vSphere Client 或使用 vSphere SDK 访问有关当前 CPU 配置的信息。 ➢ 步骤:
在 vSphere Client 中, 选择主机,然后单
击配置选项卡。
选择处理器。
通过单击属性禁用 或启用超线程
二、指定 CPU 配置
三、多核处理器
4
其一
多核处理器为执行虚拟机多任务的主机提供了很多优势。
Intel 和 AMD 均已开发了将两个或两个以上处理器内核组合到单个集成电路 的处理器。VMware 使用“插槽”一词来描述单个封装件,该封装件可以具 有一个或多个处理器内核且每个内核具有一个或多个逻辑处理器。
VMware vSphere67资源管理规划

vSphere 资源管理规划VMware vSphere 6.7VMware ESXi 6.7vCenter Server 6.7目录关于vSphere 资源管理71 资源管理入门9资源类型9资源提供方9资源用户10资源管理的目标102 配置资源分配设置11资源分配份额11资源分配预留12资源分配限制12资源分配设置建议13编辑设置13更改资源分配设置—示例14接入控制153 CPU 虚拟化基本知识16基于软件的CPU 虚拟化16硬件辅助的CPU 虚拟化16虚拟化和特定于处理器的行为17CPU 虚拟化的性能影响174 管理CPU 资源18查看处理器信息18指定CPU 配置18多核处理器19超线程19使用CPU 关联性21主机电源管理策略225 内存虚拟化基本知识25虚拟机内存25内存过载26内存共享26内存虚拟化27支持大内存页286 管理内存资源29了解内存开销29ESXi 主机如何分配内存30内存回收31使用交换文件32在虚拟机之间共享内存36内存压缩36衡量和区分各种内存使用情况37内存可靠性39关于系统交换397 永久内存418 配置虚拟图形43查看GPU 统计信息43将NVIDIA GRID vGPU 添加到虚拟机44配置主机图形44配置图形设备459 管理存储I/O 资源46关于虚拟机存储策略47关于I/O 筛选器47Storage I/O Control 要求47Storage I/O Control 资源份额和限制48设置Storage I/O Control 资源份额和限制49启用Storage I/O Control 49设置Storage I/O Control 阈值50Storage DRS 与存储配置文件集成5110 管理资源池52为什么使用资源池?53创建资源池54编辑资源池55将虚拟机添加到资源池55从资源池移除虚拟机56移除资源池57资源池接入控制5711 创建DRS 群集60准入控制和初始放置60虚拟机迁移62DRS 群集要求63配置带有虚拟闪存的DRS 65创建群集65编辑群集设置66设置虚拟机的自定义自动化级别67禁用DRS 68还原资源池树6912 使用DRS 群集管理资源70将主机添加到群集70将虚拟机添加到群集72从群集内移除虚拟机72从群集中移除主机73DRS 群集有效性75管理电源资源79使用DRS 关联性规则8313 创建数据存储群集89初始放置位置和后续平衡90存储迁移建议90创建数据存储群集90启用和禁用Storage DRS 91为数据存储群集设置自动化级别91设置Storage DRS 的激进级别92Datastore Cluster 要求93在数据存储群集中添加和移除数据存储9414 使用数据存储群集管理存储资源95使用存储DRS 维护模式95应用存储DRS 建议96更改虚拟机的存储DRS 自动化级别97设置Storage DRS 的非工作时间调度98Storage DRS 反关联性规则99清除Storage DRS 统计信息102Storage vMotion 与数据存储群集的兼容性10215 配合使用NUMA 系统和ESXi 104什么是NUMA?104ESXi NUMA 调度的工作方式105VMware NUMA 优化算法和设置106NUMA 架构中的资源管理107使用虚拟NUMA 107指定NUMA 控制10816 高级属性112设置高级主机属性112设置高级虚拟机属性114延迟时间敏感度116关于可靠内存117使用1GB 页面备份客户机vRAM 11717 故障定义118虚拟机已固定119虚拟机与任何主机均不兼容119移动到另一台主机时违反了虚拟机/虚拟机DRS 规则119主机与虚拟机不兼容119主机有违反虚拟机/虚拟机DRS 规则的虚拟机119主机用于虚拟机的容量不足119主机处于错误的状态120主机用于虚拟机的物理CPU 的数量不足120主机用于每个虚拟机CPU 的容量不足120虚拟机正在执行vMotion 操作120群集中没有活动主机120资源不足120资源不足以满足配置的HA 故障切换级别120无兼容的硬关联性主机120无兼容的软关联性主机120不允许违反软规则更改121影响软规则更改12118 DRS 故障排除信息122群集问题122主机问题125虚拟机问题128关于vSphere 资源管理《vSphere 资源管理》介绍了VMware® ESXi 和vCenter® Server 环境中的资源管理。
VMware vSphere经典学习教程

0x0# 创建业务隔离网络当产品侧规划的业务(部分)部署在虚拟化环境时,运维侧要考虑到业务交互安全及日常管理、维护的便捷,管理员需要在核心网侧及虚拟平台侧配置三层互通,具体步骤为:1.办公网及VPN环境登陆虚拟化交换机S4810;2.创建业务VLAN(通篇以OBM Manage业务为例,后续不在累赘);interface Vlan 12 //创建业务VLANip address 172.99.12.1/24 //创建网关tagged TenGigabitEthernet 0/12-23tagged TenGigabitEthernet 1/12-23no shutdownwrite //保存配置3.办公网及VPN环境登陆核心交换机S12708;4.添加到目标的静态路由ip route-static 172.99.12.0 255.255.255.0 172.99.254.1ip route-static 172.99.12.0 255.255.255.0 172.99.254.5ip route-static 172.99.12.0 255.255.255.0 172.99.254.9ip route-static 172.99.12.0 255.255.255.0 172.99.254.13save //保存配置5.vSphere中添加网络;5.1. 办公网及VPN环境登陆VMware vSphere Client,进入网络配置界面;5.2.添加业务网段;在5.1步骤中点击“添加网络…”后,弹出添加网络向导,选择连接类型为“虚拟机”,点击“下一步”,按下图操作。
按上图点击“下一步”后,到达连接设置,在网络标签一栏键入“VM Network vlan 12”(包含空格,可选大小写),在VLAN ID一栏键入“12”,按下图操作。
按上图点击“下一步”后,到达摘要信息页面,检查虚拟机端口组列表是否包含新增VLAN清单,检查无误后点击“完成”。
01.VSphere入门与基本管理

虚拟化概述及VMware VSphere介绍:虚拟化打破了物理硬件与操作系统及在其上运行的应用程序之间的硬性连接。
操作系统和应用程序在虚拟机中实现虚拟化之后,便不再因位于单台物理计算机中而受到种种束缚。
物理元素(如交换机和存储器)的虚拟等效于在可跨越整个企业的虚拟基础架构内运行。
与物理机一样,虚拟机是运行操作系统和应用程序的软件计算机。
管理程序用作虚拟机的运行平台,并且可以整合计算资源。
每个虚拟机包含自己的虚拟(基于软件的)硬件,包括虚拟 CPU、内存、硬盘和网络接口卡。
虚拟化计算机:x86计算机硬件被设计为只能运行单个操作系统和单个应用程序,这导致了大多数计算机未得到充分利用。
即使安装了众多应用程序,大多数计算机仍无法得到充分利用。
在最基本的层次上,通过虚拟化可以在单台物理计算机上运行多个虚拟机,且所有虚拟机可在多种环境下共享该物理计算机的资源。
在同一物理计算机上,不同的虚拟机可以独立、并行运行不同的操作系统和多个应用程序。
下图所示的就是一台物理主机在虚拟化前和虚拟后的差别:虚拟化基础架构:除了虚拟化单台物理计算机之外,还可以使用 VMware vSphere 构建整个虚拟基础架构,其规模包括数千台互联的物理计算机和存储设备。
通过虚拟化,可以动态移动资源和处理能力,分配硬件资源。
无需向每个应用程序永久分配服务器、存储器或网络带宽。
云计算:虚拟基础架构是云计算的基础。
云计算依赖于可扩展的弹性模型来提供 IT 服务,而该模型本身依赖于虚拟化才可正常工作。
VMware vSphere 即可提供该虚拟化。
(在云计算中,提供商通过 Internet 按需提供托管服务。
云计算类似于公共设施,如电力和电话。
用户可以随时使用所需的服务级别,而无需负责服务的生产和管理。
)服务器整合:通过虚拟化进行服务器整合使您可以更充分地利用现有的服务器。
此外,还使您可以限制需要管理、支持、存储和购买的物理资源。
通过整合现有的工作负载并利用剩余的服务器以部署新的应用程序和解决方案,可以实现较高的整合率。
第二部分 第1章 vSphere分布式资源调度 vSphere DRS介绍

第一章 vSphere DRS介绍VMware vSphere 分布式资源调度(DRS)是运行在VMware vCenter服务器(vCenter)上的基础设施服务,DRS聚合群集中ESXi主机资源,通过监控利用率,自动分配这些资源给虚拟机,并能够跨ESXi主机不断进行虚拟机资源优化。
DRS基于静态资源配置、动态资源利用率和动态资源争用级别来为虚拟机计算资源。
DRS利用vMotion,以满足虚拟机在群集中的可用资源配额,vMotion将虚拟机迁移到有更多可用资源的ESXi主机上来平衡利用率,DRS也可以使用vMotion进行分散资源整理,使得虚拟机有更多的资源利用。
基本设计原则我们建议启动DRS来提高整合率群集资源管理级别群集组ESXi主机的各种资源,把他们当做一个资源池。
DRS聚合这些资源,对于虚拟机来说相当于一个大的主机,资源池允许DRS群集中所有的主机创建资源池和应用资源分配策略。
还有一点也许不必要指出,尽管资源被DRS池化但是虚拟机资源使用量不能超过其主机资源,DRS依赖本地主机的资源调度来分配资源,除了资源池和资源分配策略,DRS提供了以下资源管理功能。
初始放置位置:当群集内虚拟机开启电源,DRS放置虚拟机到合适的主机上,或根据自动化级别提示建议。
负载均衡:DRS分配群集内ESXi主机上虚拟机的工作负载,DRS持续健康活动的工作负载和可用资源,DRS对比监控结果来完成理想的资源执行和分配,或者建议虚拟机进行迁移,以确保工作负载获得该得到资源,也就是为了性能最大化的目标。
电源管理:当启用分布式电源管理(DPM),DRS会对比群集级别和主机级别的容量和虚拟机的需求,包括最近的历史需求,历史位置或者如果检测到产能过剩,推荐ESXi主机在待机模式下,或者需要更多的资源,推荐开启ESXi主机。
群集维护模式:DRS评估一组主机,可以将它们置于维护模式,同时也能加快VMware Update Manager的修复过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
善用虛擬化特性VMware vSphere資源分配管理觀念入門在虛擬化的世界裡,資源的分配與管理是很重要的課題,但也最容易被忽略或誤解。
在此要介紹的是一些有關VMware vSphere 虛擬化資源的重要觀念,主要內容為Virtual CPU、Memory的運作概念,以及VM的資源設定配置基礎,還有了解何謂資源池(Resource Pool)。
本篇文章重點不在VMware vSphere資源分配管理的操作與設定,而是著重於虛擬化資源分配的初步理解。
首先,就從Virtual CPU 的運作概念開始說起。
Virtual CPU的運作概念要了解Virtual CPU的運作概念,可從實體運算資源如何分配與對應、Logical CPU、Hyper Threading、Multicore Virtual CPUs 來加以說明。
實體運算資源如何分配與對應在以往傳統的運作模式,一部實體伺服器可能配備有一顆或多顆實體的處理器(Physical CPU),但是卻只有一個作業系統在使用這些CPU。
作業系統並非時常要使用這些CPU的運算能力,可能只有某段時間才需要運算能力,過了一陣子又不需要。
這種情形往往造成CPU大部分的時間都處於閒置的狀態,整體時間拉長來看,處理器的使用效率非常的低落。
有沒有想過,一個資料中心有著數百數千部伺服器散落於各個角落,平時這些伺服器所要利用到的CPU資源,可能都只是一整天當中的某一小段時間,其他時候,這些已開機卻閒置的CPU資源,形成了多大的浪費呢?正因運算資源閒置的時間太長、太零散,所以如果有一種方法可以統籌這些運算資源,透過疏導與分配的方式,讓很多的OS排隊來利用這些閒置的資源,當有需要時,就來請求使用,不需要時,就不要霸佔著位置不放。
虛擬化就是一帖良方,可以有效拉高運算資源的使用率。
首先,要探討的是Virtual CPU(vCPU)的概念。
以一個VM來說,當你給了它兩顆vCPU的時候,並不是代表這個VM真的擁有兩個實體CPU的運算能力。
因為它的CPU是虛擬出來的,每個VM上的Guest OS所看到的CPU,其實都不是真的,沒有實際的運算能力。
那麼,要如何讓這個VM真正擁有運算能力呢?當虛擬的CPU能夠「對應」到一個實體運算單位(Logical CPU,或稱為Hardware Execution Context、HEC)的時候,它就真正取得了實體的運算能力。
我們知道一個實體CPU在同一時間,是不可能幫多個OS作運算的,在一個CPU Cycle單位時間內,一次只能處理一個執行緒,沒辦法被切成兩半,分割資源給VM_A,同時又切割給VM_B來使用。
所以,假設要讓一個4GHz的實體CPU分給兩個VM同時來使用,希望VM_A拿到3GHz運算資源,另一個VM拿到1GHz運算資源,那Hypervisor該怎麼做呢?答案就是剛剛所說的,利用虛擬「對應」實體的方式來達成目的。
Hypervisor採用CPU Mapping的方式分配運算資源,實體CPU先四分之三的時間對應給VM_A,然後再將四分之一的時間對應給VM_B,實體CPU(或核心)一次只服務一個VM,並且這段時間是全速來幫它做運算。
靠著時間分配快速切換於不同的VM之間,這樣子等於VM_A掌握了75%的運算資源,而VM_B則拿到25%,看起來VM_A就像是有3GHz的效能,而VM_B則是1GHz。
Logical CPULogical CPU表示一個真實的運算單位(處理器或核心),例如一顆4核心的CPU,表面上看起來是一個處理器,但是因為內含有4個核心(Cores),而這些核心都是具有實體運算效能,所以真正的Logical CPU有4個。
圖1表示了vCPU與LCPU之間的對應關係因為是單顆處理器但是有4個核心,所以一個VM最多可虛擬出4個Virtual CPU(當然也要看OS限制)。
▲圖1 vCPU與LCPU之間的對應關係(1)若先不考慮多個VM在一個實體機器上互相競爭的問題,假設是單一VM:在圖1的例一中,VM有一個vCPU,對應到一個LCPU即可運算;例二,VM為雙CPU,頇一次對應2個核心才能做平行運算處理(Virtual SMP);例三,VM為四CPU,頇一次對應4個核心,才能做平行運算處理(Virtual SMP)。
假設在這個單顆4核心的實體伺服器上,搭載10個VM,每個VM都給予一個vCPU,那麼就會有10個vCPU隨時要對應這4個Logical CPU來取得運算資源。
當這10個VM要使用運算資源時,透過VMkernel CPU Scheduler的分配來mapping目前閒置的Logical CPU,取得實體運算單位的資源,若是此時4個Logical CPU都是忙碌狀態,VM就得排隊,運算資源依照比重來切換給每個VM運作。
vCPU必頇要對應到LCPU,才能真正擁有實體運算能力,而對應事件是無時無刻在發生的,當VM的vCPU對應LCPU1,下一秒它不使用了,資源就釋放出來給別的VM來mapping,隔一分鐘又需要用到,此時VMkernel就會安排另一個空閒的LCPU來服務這個VM。
再看圖2,如果實體機器是2顆雙核心的CPU呢?那就是2個實體CPU乘以雙核心,伺服器一樣有4個Logical CPU可以提供給VM來mapping。
▲圖2 vCPU與LCPU之間的對應關係(2)Hyper ThreadingHyper Threading(超執行緒)是Intel CPU的一項技術,在一個實體核心整合兩個邏輯處理單元,在某些有支援超執行緒的OS 與程式下運作,可以同時處理兩個執行緒,提升運作效能(但在某些不支援的狀態下,反而會造成效能下降)。
如果在實體伺服器BIOS開啟HT的功能,就會發現LCPU多了一倍出來,例如雙核心的CPU會變成了有4個Logical CPU。
VMkernel 會儘量避免讓一個VM的多個vCPU因為開啟HT的關係而對應在同一個核心上,因為這並非是一個真正SMP的狀態。
圖3中的例二與例三,VM多處理器架構的vCPU都是對應於處理器不同的核心,用以取得真正的平行運處理能力。
▲圖3 vCPU與LCPU之間的對應關係(3)在不得已的情況之下,vCPU才會被對應到同一個實體核心的另一個LCPU,但這個時候的VM因為vCPU都在同一核心運作,所以無法發揮出SMP應有的效能。
另外,如果是ESX host,因為有Service Console的緣故,當它要使用CPU運算資源時,也會mapping到實體的CPU,因為COS 也是一個VM,也需要運算能力。
比較特別的是,當COS需要運算資源的時候,永遠會佔用第一顆實體CPU的第一個Logical CPU,而不會被VMkernel安排到別的地方,這時候若是這個LCPU有被佔用的話,由於COS擁有最高的順位,其他VM就要讓出這個LCPU給它使用,暫時被安排到其他LCPU,或是排隊等候Logical CPU閒置出來。
Multicore Virtual CPUs各位可能有發現到一些端倪,如果VM的vCPU對應的是Logical CPU,那麼就有可能發生下列的情形:VM想要使用一個實體的四核心CPU運作,但在Guest OS會被辨識成4個Virtual CPU(Virtual SMP),可能就會造成軟體授權額外收費的問題。
假使VM只使用1個vCPU,又會產生實際上只運用到多核心的其中一核的問題。
在vSphere 4.1之後,新增一個Multicore Virtual CPUs功能,可以透過設定讓VM「知道」它實際正使用一個實體的CPU,但上面有四核心,就可以有效運用Virtual SMP,讓Virtual SMP來做平行運算,以增加效能(不過,還是得看應用軟體授權是否合法)。
Memory Virtualization的運作概念Memory Virtualization的運作概念,可以從Memory over-commit、Transparent Page Sharing(TPS)、Memory Ballooning 三方面來加以說明。
Memory over-commit有經驗的人可能會發現,在虛擬化的環境下,CPU的運算資源並非是首要最吃緊的,除非一開始規劃配置失當,例如錯估VM型態或實體CPU運算能力,造成瓶頸。
否則絕大多數的情況下,CPU運算資源分配應該都游刃有餘。
但記憶體就不是這麼一回事了。
由於虛擬化環境要達成伺服器統合的需求,越高比例的VM集中在實體機器上,往往需要的實體記憶體就越大。
但因實體記憶體資源有限,不可能永無止盡地供應給VM,因此可以利用某些方式來活化記憶體資源,有效率、動態地利用它來達成「以更少、做更多」的目標。
接下來為各位介紹的,是在VMware vSphere虛擬化環境裡,記憶體虛擬化的技術。
VMware在虛擬化記憶體配置的部分下了很大的功夫,讓大家在伺服器裡有限的實體記憶體,可以發揮出最大的使用價值。
這就是所謂的「Memory overcommitment」,讓VM 使用超額的記憶體。
舉個例子,如果你準備將公司機房的老舊伺服器改成虛擬化的方式運作,在評估導入的階段,決定先採購一台全新的實體伺服器,並且將幾個不是擔任重要任務的老舊伺服器,以P2V的方式移轉成VM,如果成效好的話,再逐步地將重要關鍵的伺服器線上P2V轉移過去。
假設這些老舊伺服器當初購買的配置都是2GB的RAM,我們現在打算先移轉5台老舊伺服器變成VM,集中在新採購的伺服器上運作,那麼新伺服器在購買的時候應該配置多少記憶體呢?既然要將5部老舊主機P2V,而這些老舊主機每部都是配置2GB記憶體,所以採購新伺服器的時候,假設一口氣安裝了10GB的實體記憶體(在此排除TPS、COS、VMkernel memory、VM memory overhead等因素)。
等到你真正地完成5部老舊伺服器的P2V動作,然後從Virtual Hardware、Guest OS的工作管理員資訊中,確定每個VM都分配到2GB的記憶體。
5個VM經過幾天測試也都運作得很順暢,甚至效能比以前更好。
整體運作效能提升可以理解,畢竟多年前的老舊伺服器,可能當時需要4顆CPU才跑得順的應用,現在只要一顆CPU就能應付得了。
但是你同時也發現了另外一件事,透過vSphere Client顯示ESX/ESXi host的資訊,配備10GB實體記憶體的新伺服器,居然只被用了一半(5GB)左右。
這到底是怎麼一回事呢?明明每個VM的Virtual Hardware配置的都是2GB,在Windows OS看到的可用記憶體也都是2GB,但為什麼5個VM運作時只吃了總共5GB的實體記憶體?這就是虛擬化的好處。
每個VM雖然配置了2GB記憶體,但是它不見得實際需要用到這麼多。