虚拟化的强大功能之一是能够在单个主机服务器上运行多个不同工作负载,从而***限度地提高该主机服务器的利用率。这有助于组织重塑现代数据中心。十年前,数据中心通常以服务器为中心,而现代数据中心围绕业务应用程序的需求展开工作,同时确保这些应用程序的高度可用性且不受主机服务器故障影响。
事实上,虚拟化在其他许多方面也彻底改变了数据中心的发展动态。以前的工作负载局限于最初所安装的硬件,但现代数据中心的工作负载是不断变化的;它们基于管理员定义的规则集以及主机环境变化在主机之间流动。现代数据中心不断变化的特性为资源分配带来了新的挑战,多年来,市场中不断涌现出各种免费和付费工具旨在协助管理员进行资源规划。
虚拟化的兴起以更多方式支持硬件使用,而这在十年前从未设想过。彼时,管理员购买的服务器需要进行大小调整以支持单一应用程序的峰值需求,大小调整时需要预估整个服务器硬件生命周期内应用程序可能需要的资源量。很多服务器只部署单个应用程序,因此资源规划相对简单。在高度虚拟化的现代数据中心环境中,单个硬件上存在大量I/O模式,资源规划面临着新的复杂性。管理员必须深入了解每个应用程序与环境中其他应用程序的交互方式。
在高度虚拟化的环境中,混合模式I/O还能够大大提高数据中心的效率。过去,管理员通常根据单个应用程序需求调整各个服务器的大小;现在,虚拟环境中的混合I/O模式允许不同峰值需求共享资源。因此,管理员可以在不同应用程序之间非常高效地共享主机资源。
此外,请注意,即使使用虚拟化,管理员有时仍会超额置备资源并调整各个虚拟机的大小以满足峰值需求。这样一来,虚拟机中通常会出现未使用的资源。vSphere提供了大量功能强大的方法,可通过这些方法与其他正在运行的工作负载共享闲置资源。事实上,除了能够共享闲置资源外,为了尽可能在一台主机上运行更多工作负载,管理员可以超额预定主机上的物理资源。换句话说,管理员为虚拟机分配的资源总量可以超过主机上的实际可用资源。例如,假设某台主机具有96GB的物理RAM。在适当情况下,管理员可以向该主机上运行的所有虚拟机分配128 GB的RAM。
但超额预定存在哪些限制呢?实际上,限制取决于若干因素。本白皮书概括讨论了超额置备、详细介绍了超额预定的优缺点,并提出了超额预定的一些限制。
资源管理和超额预定:
vSphere 中的超额预定指的是,通过各种方法向物理主机支持的虚拟服务器分配比该主机上可用资源更多的资源。通常情况下,管理员能够在虚拟机中超额预定CPU、内存和存储资源。不同管理员对于超额预定物理资源具有不同见解。许多管理员倾向于仅分配物理上可用于支持所有正在运行的工作负载的资源。这是最安全的方案,通常可确保所有正在运行的虚拟机始终具有所需的资源。但是,在回收物理服务器期间会发现,物理服务器并未充分利用其所有资源。从CPU角度来看,平均利用率仅为5%至15%,这意味着存在大量的增长空间。虚拟机通常能够比过去的物理机更合理地调整大小,但仍存在增长空间,尤其是特定工作负载处于闲置状态时。许多管理员会利用这些闲置资源,以便在一台主机上运行更多虚拟机。借助超额预定,管理员可以向虚拟机分配比主机上实际可用资源更多的资源。换句话说,如果所有虚拟机突然请求访问其分配的所有资源,该主机将没有足够资源来满足需求。资源超额预定确实能够增加虚拟机密度,但也伴随着一些风险。一旦某特定资源最终用尽,如果该资源恰好被超额预定,则可能会出现稳定性问题,并可能会导致影响主机服务器上运行的所有工作负载的重大性能问题。
详细介绍超额预定之前,需要先了解vSphere中内置的资源管理功能。
CPU资源管理:
在vSphere 中,管理员习惯于向虚拟机分配CPU 以支持单个虚拟机的工作负载需求。这些虚拟CPU资源来自主机的可用物理CPU。主机中的物理CPU 数量取决于几个因素。为了基本理解物理和虚拟CPU管理,您必须了解,在vSphere中,物理CPU(通常缩写为pCPU)指的是:
· 超线程不存在或未启用时:单个物理CPU 内核。
· 超线程存在且已启用时:单个逻辑CPU内核。
下面是一些示例:
- 如果主机有两个八核CPU但不支持或未启用超线程,则该主机具有16个物理CPU(8个内核x2个CPU)。
- 如果主机有两个八核CPU并启用超线程,则该主机具有32个物理CPU(8个内核x2个CPUx每个内核2个线程)。
- 了解物理资源在vSphere主机上的表现形式后,下面介绍如何将这些CPU资源提供给虚拟机。
在虚拟机中,CPU称为虚拟CPU (vCPU)。管理员在虚拟机中添加vCPU时,会将每个vCPU分配给一个pCPU,但实际pCPU可能不会始终相同。必须具有足够的pCPU支持分配给单个虚拟机的vCPU数量,否则该虚拟机将无法引导。
但是,这并不意味着管理员仅局限于主机中的pCPU 数量。分配给虚拟机的vCPU数量与主机中的物理CPU数量之间并不存在1:1的比率。事实上,自vSphere5.0起,每个物理内核最多支持25个vCPU,管理员最多可以向一台主机上的虚拟机分配2048 个vCPU。
内存资源管理:
vSphere利用多种技术***限度地提高虚拟环境中RAM的使用率。下面列出了各项技术并简要介绍了每一项的用途:
- 透明页面共享(TPS)–在大多数虚拟环境中,管理员运行同一操作系统的多个副本。在这些情况下,主机内存中存在大量重复的内存页面。透明页面共享基本是一种内存去重形式,vSphere将多个相同的内存页面组合到一个页面,释放其余页面以用于其他用途。从性能影响角度讲,TPS对主机的影响微乎其微。
- ·内存气球(Ballooning)–在客户机虚拟机内安装VMwareTools 时,内存气球驱动程序会随其他Tools组件一起安装。该驱动程序充当Windows 进程,从而允许操作系统使用其常规内存管理技术为其分配闲置/未用内存页面。然后,气球驱动程序会“固定”这些页面,并报告给虚拟化管理程序(hypervisor)。如果主机物理内存不足,则会将客户机内存页面分配给此气球驱动程序。执行该分配后,主机可以回收这些内存页面以满足可能需要RAM的其他虚拟机的需求。通过这种方法,某个特定虚拟机有空闲RAM 时,可以透明地与同一主机上的其他虚拟机共享该RAM,从而提高主机的虚拟机密度。TPS是一项内存去重技术,气球进程可以为RAM提供精简置备功能。虽然气球进程需要一些CPU开销,但对客户机和主机的性能影响微乎其微。不过,在极端情况下,气球可能会在操作系统内引起交换。
- ·内存压缩–在vSphere 4.1中,VMware 引入了内存压缩的概念,在某些情况下,该技术可以替代成本高昂的交换进程。使用此技术,可以将内存页面压缩并置于磁盘上的压缩缓存中,而不是逐个虚拟机将内存页面交换到磁盘。需要交换已交换的页面使其返回到RAM时,则从此缓存中检索并进行解压。虽然此进程比交换到磁盘的成本低,但是对性能存在一定的影响。
- ·交换到磁盘–交换到磁盘是管理程序检索足够物理RAM 以满足主机上运行的工作负载需求的***一招。由于vSphere的其他内存管理技术非常优秀,因此通常仅在过量分配严重的主机上执行交换,不过,资源池限制或虚拟机上配置的内存限制也会引起交换。同样,如果虚拟机未安装VMwareTools 或VMwareTools未运行,系统将完全跳过气球进程,转而直接执行交换。交换是管理程序将最少使用的内存页面移至磁盘的过程。这些内存页面仍然可以访问,但需要时,必须从磁盘检索。从性能影响来看,交换具有极高的成本,并且会显著降低主机的整体性能。
需要注意的是,仅当主机上存在内存争用问题,或存在上述讨论的交换情况时,才会执行交换和压缩。在大多数环境中,应避免导致交换或压缩的内存争用问题,因为这种情况意味着主机基本上用尽了RAM。
存储资源管理:
存储是vSphere环境中第三大重要资源,也能够通过常见资源分配技术进行超额预定。
超额置备存储最常见的方法是通过一个精简置备过程进行。在许多情况下,管理员向虚拟机分配存储时,所分配的存储多于绝对需要的存储。毕竟,随着时间的推移,虚拟机将持续需要更多的磁盘空间。精简置备运作如下:管理员置备虚拟机的总磁盘空间时,允许虚拟机访问整个分配空间。但是,实际上,vSphere 仅为虚拟机分配其实际使用的空间。因此,如果管理员向新虚拟机分配200GB存储空间,但该虚拟机仅使用40GB,则剩余的160GB仍可用于分配给其他虚拟机。虚拟机需要更多空间时,vSphere会为该虚拟机提供更多块,不超过最初分配的磁盘大小。
通过使用精简置备,管理员可以使用长期需要的虚拟磁盘大小创建虚拟机,而不必立即分配所需的总磁盘空间。在许多测试中,测试结果都表明精简置备带来的性能影响微乎其微,几乎可以忽略不计。因此,精简置备作为管理存储容量的***方法,是最常见、最易接受的建议方法。
另请注意,某些存储设备的其他功能可能允许其他超额预定级别。此类功能包括数据压缩和去重。本白皮书侧重于介绍管理程序,因此仅讨论精简置备。
资源过量分配:
了解如何在vSphere环境中管理资源后,后面将介绍如何超额预定这些资源。本白皮书假设超额预定是可接受的做法。为了确定资源是否过量分配,需要使用监控工具。在本白皮书中,使用的是Dell的免费vOPS Server Explorer 工具。
此工具内置多个实用程序,左侧显示的EnvironmentExplorer是vOPSServerExplorer中的实用程序之一,管理员可以在其中概览环境中的资源使用情况。如图所示,显示实际物理资源的资源利用率百分比,因此,EnvironmentExplorer非常适用于了解资源过量分配问题。
超额预定CPU资源:
如前文所述,在vSphere5中,每个物理CPU内核最多可支持25 个vCPU。但是,对于vCPU与pCPU之比超过1:1的每个其他工作负载,vSphere管理程序需要调用CPU调度才能将CPU 时间分配给有需求的虚拟机。因此,如果管理员创建的vCPU 与pCPU之比为5:1,则每个CPU将支持5个vCPU。
查看本白皮书的一般指导时,有关***vCPU与pCPU之比的经验说法不一。大家一致认可的两条经验法则如下:
·首先为每个虚拟机配置1个vCPU。大多数专家认为,创建新虚拟机时,管理员应仅配置一个vCPU,然后根据需求增加虚拟vCPU。随着vCPU的增加,虚拟机需要从主机获取CPU时间。虚拟机需要执行操作时,必须等待与已分配vCPU数量相当的物理CPU就绪。因此,随着管理员向虚拟机添加更多vCPU,整体性能会不断下降。
· vCPU与pCPU 之比视工作负载而定。虽然提倡vCPU:pCPU= 1:1的分配,设置不同比率的情况也很常见。也就是说,尽管vSphere5支持的***比率为25:1,但能否实现高比率很大程度上取决于支持的工作负载类型。如果主机支持大量虚拟机,且每个虚拟机只有少量的CPU需求,则vCPU与pCPU 的比率可以很高。但是,如果主机运行大量CPU密集型工作负载,则该比率可能会小得多。
要监控的衡量指标:
需要监控若干CPU相关衡量指标,以帮助管理员维持vCPU与pCPU比率平衡,从而更有效地使用资源同时确保工作负载正常运行。
- 虚拟机内部
CPU利用率–此衡量指标可帮助管理员确定何时需要向虚拟机增加vCPU。平均CPU使用情况持续很高时,就该向虚拟机增加vCPU了。
- 主机上
CPU就绪–从主机整体CPU运行状况角度来看,目前为止,该衡量指标最为重要。“CPU就绪”衡量指标用于确定虚拟机等待足够物理 CPU以满足虚拟机需求所需的时长。如果某个虚拟机分配有4个vCPU,该衡量指标将指示虚拟机等待4个对应pCPU同时可用所需的时长。
CPU利用率–主机服务器整体CPU 使用情况也很重要,它可以帮助管理员了解主机服务器的工作量。
实际环境:
- 虚拟资源
- ·4个vCPU–实际内核数的200%
- ·3GB内存–物理内存的37%
- ·26.6GB存储–已置备存储的13%
各个论坛中都有用户提出实际环境中可接受的vCPU与pCPU 比率问题。尽管一些用户继续提倡1:1比率,但从纯粹的密度角度来看,1:1是最坏情况。请注意,在左侧图表中,此特定实验场景当前采用的比率为2:1。
部分用户表示他们获得的指导建议是vCPU与pCPU的比率不超过1.5:1,但业内专家的指导建议是vSphere的“实际环境”比率值应在10:1到15:1范围内。还有一些用户表示VMware建议的实际环境比率范围为6:1– 8:1。
在此Dell白皮书中,vCPU:pCPU 指导原则如下:
- 1:1至3:1没有任何问题
- 3:1至5:1可能会引发性能下降
- 6:1或更高通常会引发问题
其他指导建议认为***做法是将“CPU就绪”衡量指标保持在5%或以下。在特定环境中实际可实现的比率取决于若干因素:
- vSphere版本– vSphere CPU调度程序持续改进中。vSphere版本越高,整合性越强。
- CPU使用期限–更新的CPU比旧CPU 强健得多,使用更新的CPU,组织能够实现更高的CPU比率。
- 工作负载类型–主机上不同类型的工作负载会导致不同的比率。
vScope Explorer 是vOPS Server Explorer 中的另一个实用程序,可帮助您了解主机和虚拟机级别的性能问题(包括CPU就绪),从而帮助确定vCPU与pCPU的比率是否太高。
此外,Environment Explore 可识别主机CPU资源过量分配之处,并指导管理员执行额外分析以确定过量分配是否导致了任何当前性能问题。当“实际内核数%”衡量指标开始超过500%时,管理员应更严密地监控CPU就绪情况和常规工作负载性能,确保满足业务需求。
超额预定内存资源:
超额预定RAM 可能是众多资源超额预定方案中***争议的一个。CPU和存储资源通常会过量分配,但RAM过量分配仍然很保守。
要监控的衡量指标
在主机服务器上,管理员需要监控虚拟机实际使用的RAM量。当RAM实际使用量接近100% 时,需要增加服务器的RAM,或者需要将工作负载迁移到可用RAM更多的主机上。
实际环境
- 虚拟资源
- 4个vCPU–实际内核数的200%
- 3GB内存–物理内存的37%
- 26.6GB存储–已置备存储的13%
在Environment Explorer 中,使用vSphere的各种内存管理技术时,RAM 使用情况(“物理内存 %”衡量指标)显示每个虚拟机实际置备的RAM量,而不是虚拟机实际使用的RAM量。务必监控实际内存利用率,以便***限度地提高虚拟机密度,同时确保环境正常运行。
过量分配级别可能取决于一个主要因素:主机上运行多个类似工作负载时可实现的内存去重量。正在运行的工作负载之间的差异级别越大,可能发生的内存整合越少,可实现的密度越低。
查看其他人在内存过量分配方面的做法和建议时,我们发现:
- 许多管理员完全拒绝超额预定RAM。
- 一些管理员倾向于不超过物理内存的125%,他们认为超过该衡量指标会导致不可接受的风险。
- 如果服务器上的每个工作负载都相同,则可能出现非常高的过量分配级别。
- ·其他许多管理员只是抽查主机内存使用情况,而不是定期浏览过量分配级别。
超额预定存储资源:
使用精简置备超额预定存储资源的方法很常见。毫无疑问,超额预定有很多优点和缺点。主要优点是管理员能够充分利用组织的存储容量。此外,精简置备可帮助管理员为虚拟机提供需要的所有存储,而不必不断监控是否需要更多的空间。精简置备还能够减少IT团队中的冲突。应用程序所有者可以请求所需的所有存储,而存储管理员也了解此请求过高,但是他们只需批准该请求即可,而不必担心浪费这些过度请求的存储。
精简置备也带来了一些挑战,虽然日常工作更加轻松,但复杂性却增加了。首先也是最重要的是,如果管理员不小心,可能会导致重大的可用性问题。如果存储超额预定导致存储卷耗尽空间,虚拟机仍认为它们具有可用磁盘空间,但实际上没有任何可用空间。如果监控不仔细,可能会导致严重故障、数据丢失并需要执行成本高昂的恢复操作。
要监控的衡量指标
要缓解此问题,使用精简置备的管理员需要密切关注数据存储中的可用空间量。数据存储空间不足时,管理员需要主动增加数据存储空间或使用Storage vMotion 将其中一个虚拟机移动到具有足够可用容量可满足工作负载需求的其他数据存储。
实际环境:
- 虚拟资源
- 4个vCPU–实际内核数的200%
- 3GB内存–物理内存的37%
- 26.6GB存储–已置备存储的13%
在EnvironmentExplorer中,虽然只显示合计结果,但精简置备得到了充分体现。在本白皮书示例中,可供虚拟机使用的存储为195 GB,目前仅使用了26.8GB。实际上,为三个已打开电源的虚拟机置备的存储远远高于此值。管理员查看EnvironmentExplorer时,如果“已置备存储%”衡量指标接近100%,则应小心确保其他物理资源可用。
结论:
虚拟化实现了极大的灵活性,并支持通过超额置备和超额预定***限度地提高主机服务器上的资源利用率。本白皮书中介绍的各种方法和现实环境中的各种可行方案为管理员提供了***做法,有助于利用超额预定CPU、内存和存储来***程度地提高利用率同时确保虚拟环境性能。
本白皮书还探讨了Dell的免费vOPS ServerExplorer 工具,可提供有关超额预订的信息以及虚拟环境的性能监控信息。