VMware vSphere 5.1 群集深入解析(第二部分 vSphere分布式资源调度)_第1页
VMware vSphere 5.1 群集深入解析(第二部分 vSphere分布式资源调度)_第2页
VMware vSphere 5.1 群集深入解析(第二部分 vSphere分布式资源调度)_第3页
VMware vSphere 5.1 群集深入解析(第二部分 vSphere分布式资源调度)_第4页
VMware vSphere 5.1 群集深入解析(第二部分 vSphere分布式资源调度)_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二部分

vSphere分布式资源调度第一章

vSphere

DRS介绍第二章

vMotion和EVC第三章

DRS动态配额第四章

资源池与控制第五章

DRS计算推荐第六章

DRS推荐向导第七章

DPM介绍第八章

DPM计算推荐第九章

DPM推荐向导第一章

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的修复过程。当确定哪些主机进入维护模式的同时,DRS也将考虑HA,DPM,FT(Fault

Tolerance),vMotion等的兼容性等因素。规则修订:当主机进入维护模式或者待机模式,DRS会撤离用户请求重新分配虚拟机到ESXi,主机,迁移虚拟机时需要坚持用户定义的关联或者反关联规则。支持代理虚拟机:代理虚拟机是一台用来根据需求,在每个主机上被配置和激活的虚拟机,属于ESX代理管理工具的解决方案,DRS和DPM完全支持ESX代理和遵从ESX代理虚拟机的要求,DRS和DPM理解如下:即使虚拟机不通电,代理虚拟机预留规则仍要遵从主机进入维护模式或待机模式,代理虚拟机不会被撤出在虚拟机完成迁移或者主机上开启之前,代理虚拟机必须可用需求为了DRS正常工作,虚拟基础环境需要满足以下要求:ESXi在一个群集中VMware

vCenter

ServerVMware

vSphere

Enterprise或者Enterprise

Plus

License满足vMotion需求(不强制要求,但强烈建议)群集内ESXi主机都能访问共享存储私有迁移网络千兆网络CPU兼容性DRS允许自动负载均衡,vMotion是必需的,如果设置了初始位置,vMotion就不是必需的基本设计原则配置vMotion将充分从DRS中受益。DRS群集设置当群集里开启DRS功能,您需要选择自动化级别和设置迁移临界值,当群集在使用时可以手工配置DRS,且不会对提供服务有影响,接下来的步骤将向您展示怎样创建群集开启DRS:1.

选择登陆到vCenter视图2.

选择群集3.

在图46中我们选择建立新的群集4.

给新群集一个合适的名称,我们建议名称中包含群集的本地位置和序号信息,如ams-hadrs-0015.

选择位置6.

选择开启DRS,点击下一步7.

设置自动级别为全自动

1.

迁移临界值保持默认,点击OK2.

选择合适的EVC模式(图47)图46:新建群集图47:DRS选项扩展

请注意,在选择群集的位置之前无法选择EVC模式。自动级别自动级别决定了DRS的自动响应级别,包括位置生成和负载均衡,建议选择默认值。手工:DRS为每台虚拟机产生初始的所在位置建议,如果群集资源不均衡,DRS会产生迁移的建议,通过群集的DRS选项提示给管理员,管理员必须手工逐个接受建议。半自动:

当虚拟机开启,DRS自动安排虚拟机到合适的主机上,如果群集资源不均衡,通过群集的DRS选项提示管理员需要进行迁移,管理员也必须手工逐个接受建议。全自动:当虚拟机开启,DRS自动安排虚拟机到合适的主机上,如果群集资源不均衡,DRS自动迁移虚拟机到合适的主机上。表6:DRS自动级别初始位置当虚拟机开启或者重新启动,就会产生其初始的位置,因为缺少历史性能数据,DRS会假定虚拟机资源使用为100%,将选择可以承载该虚拟机的ESXi主机,在初始选择位置期间,DRS将收集当前虚拟机的需求,计算每个主机的容量。例如,如果一个4vCPU的虚拟机,在一个包含不同类型主机的群集中开启,假设群集内由一个4核的主机和一个8核的主机组成,在初始选择位置时,根据当前虚拟机的活动负载,

8核的ESXi主机貌似会是个不错的候选,但是,比较群集内其它ESXi主机的负载需求之和。DRS可能会选择4核的ESXi主机作为初始位置。如果群集配置的手工级别,DRS会建立一个优先级的清单,来为虚拟机推荐初始位置的主机,这个清单用来帮助用户选择合适的主机。自动级别的影响当选择手动级别或者半自动级别,用户必须手工接受来自DRS的建议,DRS每间隔5分钟检测群集的状态,如果群集中出现资源计算不均衡,将提示建议操作。因此,管理员应该在每个DRS提示解决群集资源使用不均衡时,检测核对建议。除了效率比较低以外,管理员频繁的接收建议可能会与DRS的规则相冲突。DRS的规则将在15章节的“规则”部分进行解释。改变群集的DRS自动级别不会使虚拟机变得混乱,并且很容易更改,所以为什么不试下全自动级别,也许会适合你。基本设计原则设置全自动的级别的DRS功能会更受益。vCenter

sizing在DRS调整资源利用率时,也必须要考虑vCenter

服务器的规格和群集的设计。为了确保vCenter的性能,一定要提供足够的CPU数/核数和内存,技术白皮书上写到:“VMware

vCenter服务器性能和最佳实践”清单上列出了在三种场景下推荐最低硬件配置,范围分别为50台主机、500虚拟机到1000台主机、10

000开启的虚拟机。群集数量群集上较少的虚拟机会减少负载值,为了DRS的性能,少量的虚拟机应放到群集主机较少的主机上,但是,潜在的问题是创造太多的小群集,200主机3个群集代替100主机6个群集会提高vCenter服务器的CPU利用率,就像每个群集5分钟一次的负载平衡检测也会提高CPU利用率,所以无论什么决定,请考虑vCenter的规格。DRS群集配置群集的规格,负载类型的组合,虚拟机的管理,虚拟机的数量,所有这些都可以影响到vCenter的行为和性能,因此也影响到DRS的线程,这些执行的不给力也同样影响了虚拟机的性能或者为了满足负载均衡而生成迁移提示,注意DRS本身并不执行迁移,这些都是由vCenter来处理,在迁移的过程中DRS也能运行。每群集DRS线程每个群集中vCenter会建立和运行一个DRS线程,DRS线程与群集内每台ESXi主机的管理代理(VPXA)进行通信。图48:DRS线程组件默认情况下,负载均衡的计算线程每五分钟一次,计算群集的不平衡资源,应用资源设置,如果需要,生成迁移建议,在实践中,该线程可能更频繁的被调用,例如,如果检测群集的资源池结构、操作和事件发生改变,DRS将被调用改变资源供应和资源设置。表7:事件调用DRS计算DRS事件和统计群集的每台ESXi主机运行着vCenter的代理(VPXA),ESXi主机和vCenter之间实现双向通信,VPXA保持ESXi主机和虚拟机的状态同步,并显示在vCenter界面上当虚拟机电源状态发生改变或者虚拟机触发vMotion正在迁移,VPXA就会发送信息给vCenter,每隔一段时间,VPXA还会发送额外的通知和统计信息给vCenter服务器,DRS会发送信息和ESXi主机,例如迁移的意图和信息请求。在虚拟桌面环境(VDI)中vCenter

服务器会体验更多数量的虚拟机和更频繁的虚拟机电源状态改变,导致更频繁的DRS线程调用。从服务器虚拟化(VSI)中分离桌面虚拟化(VDI)在大型的网络环境中,我们建议分开虚拟桌面的负载和虚拟服务器的负载,分配不同的群集不同的工作量以减少DRS的调用次数,从虚拟桌面的负载中隔离虚拟服务器负载,这样只有虚拟桌面的群集会增加DRS的调用,但减少了总体开销和复杂性以及DRS的计算。基本设计原则分开虚拟桌面和虚拟服务器的负载,安排它们到不同的群集以减少DRS调用群集规格一般的原则是,群集内尽可能多的主机,这样DRS就有更多的机会安排虚拟机的初始位置。在vSphere

5.0中群集最大支持32台主机,警告相对于vSphere

4.0没有增加更多的主机数量,vSphere

5.0的群集是有能力运行更多的虚拟机,因为每虚拟机支持更多的vCPU和内存,预计当设计群集时DRS不会成为限制因素,但是,下面的情况会影响DRS群集和虚拟机的规格。群集内主机规格与虚拟机的最大数量vSphere

5.0中,群集内最多运行4000个虚拟机,当前ESXi服务器的配置较多能运行512台虚拟机,当研究规模和扩展性时应考虑其最大值。虚拟机的数量与LUN的数量vSphere

5允许每个ESXi

5的主机连接256个LUN,如果主机连接了同一个VMFS的数据存储,DRS仅考虑虚拟机迁移时主机的兼容性,群集中所有的主机连接同样的VMFS数据存储是最佳的做法,如果有超过256个VMFS数据存储需要连接,考虑它们的规格使用多个群集。硬件配置-异构或者同构异构的主机配置会影响DRS的效率,如果物理主机无法运行虚拟机,DRS不会迁移虚拟机到它上面,通过EVC,在开启DRS的群集中能有更多的不同硬件的主机存在,并允许旧的硬件和新的硬件混用,虽然我们建议启用EVC,我们同时也建议混合硬件的配置不要差异太大。例如,vSphere

5.0及以上的版本最多允许分配虚拟机32vCPU和1TB的内存,我们希望看到虚拟架构中增加更多数量的高配置的虚拟机,而高配置的虚拟机12vCPU或16vCPU不能被托管在两个四核的系统上。DRS是一个简单的群集解决方案,它将让您达到更高的整合率,同时提供更佳的资源利用率。了解DRS的架构将能够更好的设计vCenter和DRS群集,同时提供更佳的性能和尽可能的高效,接下来的章节我们将讨论资源管理的基本概念,我们还将讨论关键的地方确保你以合理的方式配置DRS,以使它符合您的需求或者符合客户的环境。第二章

vMotion和EVCvMotion可能是行业功能变化最好的一个例子,当虚拟化首次推出,所有的是关于虚拟机的灵活性和便携性,然而,便携性和灵活性在虚拟机电源开启的状态是受限制的,当VMware介绍vMotion,介绍他们改变了世界的IT,vMotion从字面上来说是现有组件上进行的开发,基础上参照“暂停和恢复”的功能也早已存在,所以不要误读了最后那句话,不过vMotion确实是一个很杰出的技术。如你们所希望的,vMotion是一个功能,开启后,你可以在不需要关闭虚拟机的情况下,将虚拟机从一台主机迁移到另一台主机上,问题是仍然存在,它是怎样工作的呢?这是一个相当复杂的过程,这个点多年来一直都被优化,它允许你在一台支持10GB网络的主机上进行8个vMotion的并发,在写这篇文章的时候,还是限制为一台支持1GB网络的主机上进行4个vMotion的并发。一个vMotion的工作流程是怎样的?1.

验证目标主机兼容性2.

在目标主机上创建一个虚拟机的副本3.

通过vMotion的网络将每个内存页面从源地址复制到目的地址,这个过程称为预复制4.

在目标虚拟机上执行复制过来的虚拟机的内存,再把预复制过程中产生的内存页复制过来5.

继续复制上一次复制期间的内存页只到没有改变为止6.

将源虚拟机“眩晕”,在目标虚拟机上恢复状态。这听起来非常简单,真的是这样么,只有6个步骤?但是,也有一些问题,如内存量变化超过了vMotion的网络吞吐能力的,我们都不希望知道这样的场景下会发生什么,例如,数据库服务器有非常大的活动内存。在vSphere

4.1中,VMware介绍了vMotion的部分功能—快速恢复,快速恢复开启,源虚拟机会被“眩晕”,在所有页面被复制完成,即在目标主机上开启虚拟机。但是,虚拟机已经在目标主机上运行,当它没有完全被复制完成时,它可能尝试读或者写这个页面,在这样的情况下,快速部署将从源获得请求页面,并允许客户端完成请求的操作,同时,继续复制剩余的内存页,知道所有的页面都被迁移,那么,如果vMotion的网络发生故障会发生什么呢?目标虚拟机无法进入内存页,因为他们是“活的”远程,vSphere

4.1中,为了解决这种情况,使用了存储来实现故障的安全机制,也就是说会创建一个特殊的文件,这个文件基本上是用来作为备份缓冲区,在网络发生故障的情况下,这个文件允许来完成迁移和提供两个主机之间的双向通信,是否很酷?一个典型的问题将会出现,这是否会影响到性能。很好理解的是,没有快速恢复,vMotion的大活动内存的虚拟机将非常困难,切换时间可能很长,并可能导致失去与虚拟机的连接,虽然快速恢复会影响页面访问,但在未复制时,给虚拟机带来非常大的好处,而临时增加的内存访问时间影响是微乎其微的,vSphere

5.0中,快速恢复被淘汰,将介绍新的功能给大家,让我们看看发生了什么变化。vMotion的改变?在vSphere

5.0中,当涉及到可扩展性和性能时,vMotion的基本原理发生了一些改变。vMotion多网卡支持在页面发送时“眩晕”支持高链路延迟改进错误报告vMotion多网卡支持我们将要讨论vMotion一个非常本质和易见的功能,vMotion现在能够利用多张网卡同时工作来减少vMotion的操作时间,这意味着,即使单一的vMotion可以利用所有配置的vMotion网卡。vSphere

5.0之前,只有一个网卡用来启用vMotion,vMotion使用多个网卡将需要移除一些带宽和吞吐的约束,下面的列表显示了当前多网卡vMotion支持的最大数量:1GbE

–支持16个网卡10GbE-支持4个网卡重要的要实现万兆以太网接入,服务器要配置最新的PCI卡才能使用万兆的带宽,这个要求才能确保你的服务器能够充分利用这些能力。基本设计原则当设计您的虚拟化环境,其中设计网络架构需要考虑虚拟机的规格,如果有足够的带宽用于vMotion,那么迁移完成时间会更快,更早的使虚拟机离开主机。设计服务器平台时,需要考虑网络带宽峰值-不仅是考虑网卡的能力,同时也要考虑PCI总线的能力。页面发送期间“眩晕”这是用来代替快速恢复的全新功能,在“眩晕”期间页面发送是指虚拟机的vCPU被迁移,并通过vMotion跟踪客户页面改变的频率,或者工程师更喜欢称之为“弄脏”,弄脏的速率是对比传输的速率,如果弄脏的速率超过传输的速率,源vCPU将被置于睡眠状态来减低弄脏的速率,直到vMotion迁移过程完成。有利的是vCPUs最多只会被睡眠几毫秒,SDPS(眩晕期间页面发送)频繁,短暂的睡眠时间,破坏虚拟机的工作量刚好保证vMotion内存页变化率能跟上,并允许一个成功的、非破坏性的过程完成,你可以说,谢谢SDPS,不管什么激进方式,你都可以vMotion任何类型的负载。重要的是要了解到,SDPS只是在vMotion发生故障之前,减缓虚拟机的内存的变化率。这是每一个虚拟机的基础,通过高级虚拟机设置,可以调整此行为。要禁用特定主机上所有虚拟机的SDPS,使用vSphere

Client连接,选择所需要更改的主机,然后点击右侧“配置”选项卡。在左侧软件窗口下,点击高级设置点击左侧的Migrate,滚动到Migrate.Sdps

Enabled更改Migrate.SdpsEnabled的值为0点击OK请注意,我们强烈劝阻禁用SDPS。当页面弄脏的速率超过了主机间的传输速率,那么SDPS会将其踢出,换句话说,如果你的虚拟机内存非常不活跃,那么SDSP踢出其的机会会非常小,如果确实踢出,是为了阻止虚拟机失败后的vMotion迁移过程,现在注意,默认情况下,SDPS没有做任何事情,当接到一个需求通常你的虚拟机在vMotion的时候不会被扼杀注意SDPS被禁用时,高度活跃的虚拟机vMotion可能会失败,还有一种可能是vMotion的链路(vMotion通道等待时间超过10s过期)失败导致弄脏的速度快于复制的速度。支持更高的等待时间-vMotion

通道当我们讨论长距离的vMotion时,最大的制约就是等待时间。vSphere

5.0之前,vMotion支持的最大等待时间为5秒,你可以想象,这限制了很多客户启用跨站点群集。在vSphere

5.0中,企业加强版最大的等待时间进行了翻倍达到了10秒,当基础架构的组件(共享存储)都被启用,这应该使得更多的客户在站点间开启DRS。增强型vMotionVMware增强vMotion兼容性(EVC)通过使用Intel

Flex和AMD-V技术促进了不同CPU之间进行vMotion,当EVC启用时,EVC可以确保群集内所有的CPU与vMotion兼容。EVC和硬件虚拟化的交互支持VMware的hypervisor的独特之处在于它支持多种执行方式,这取决于底层硬件的能力。

VMkernel将自动选择虚拟机管理程序的执行模式,将提供最好的硬件功能和各种类型的操作系统,可使用虚拟化加速功能VT-X/AMD-V/RVI/EPT或者EVC基线和虚拟机交换机,这些模式能围绕群集,最好的执行虚拟机迁移。EVC的好处是什么?因为EVC允许您在不同系列的CPU间迁移虚拟机,新老代的服务器混合在一个群集中,仍然允许这些主机之间进行vMotion迁移。这使得现在架构中添加硬件更容易,有助于延长主机的价值。EVC是怎样工作的?EVC启用后,群集下所有主机将根据用户选择的处理器类型为群集下运行的所有虚拟机提供处理器特性,来确保vMotion时CPU的兼容性,即使主机与主机间的底层硬件可能不同。无论虚拟机在哪个主机上运行,它都有相同的CPU功能,因此虚拟机可以在群集中的任何主机间迁移。理解EVC只专注于特定系列的CPU至关重要,例如SIMD(SSE)或者AMD现在的CPU功能。EVC从软件这层隐藏虚拟机的CPU功能,但不是为这些功能做广告,这意味着功能仍是可用的和活动的,当启用EVC功能时,他们不会进行广播,CPU的基线必须被选择,这个基线表示所选择的CPU系列的功能集和公开特定CPU系列功能,当一个开启EVC的群集中一台虚拟机开启,群集的基线将附属于虚拟机,直到该虚拟机关闭。注意尽管虚拟机已经迁移到其它的EVC群集,但EVC的基线继续附属到该虚拟机直到虚拟机关闭。如果一个配置了新一代CPU的ESXi主机加入到群集中,基线会自动隐藏CPU的新的和独特的功能。例如:一个群集的一台ESXi主机配置了Intel?

Xeon?

Core?

i7

的CPU,俗称Intel

Nehalem,基线选择Intel

Nehalem系列

这样集群中就有了Intel

的Merom系列,Intel

Penryn

系列和Nehalem系列的虚拟机,这样所有的虚拟机就提供了Intel

Merom功能加上SSE

4.1,SSE

4.2,Popcount和RDTSCP这些可用功能。图:49

Intel

EVC

基线当一个配置了32nm的CPU的ESXi主机加入群集,额外的CPU指令,如AES/AESNI和PCLMULQDQ将被自动抑制。EVC会影响应用程序的性能么?这是可能的,但可能性很小,虚拟机中运行的应用程序将受益于设置了EVC隐藏指令集,但是,请记住,启用EVC可能会影响专门编写的应用程序的性能,以利于这些特殊指令。在一般情况下,应该能预料到使用EVC您的应用程序将不会产生明显的性能损失,虽然EVC从虚拟机的系统和应用中隐藏了CPU功能,这些功能并不影响虚拟架构中常见软件的性能。例如,EVC不影响大多数软件使用的每秒的指令,核心数量,硬件加速,缓存或者其它CPU功能。新系列的CPU发布后,软件厂商可能会更新或者发布新的软件版本,以充分毅力新系列的CPU推出的新指令。软件开发周期总是落后于硬件的发展,造成利用和实施新的指令集延迟。此外,新指令集通常有专门的使用情景,这意味着在虚拟化架构中大多数的新指令与业务应用无关。唯一例外的就是加密和解密的加速用到了AES-NI指令集,现在许多流行的应用程序都进行了加密,包括SSL库,在其最新版本中利用这个指令集,根据工作量,使用这些AES指令可以提供超过500%的性能提升。虚拟机之间利用AES指令集进行相互认证和传输层SSL方式的通信积木法一个非常流行的设计方法是使用积木法。积木是扩展框架的概念,并勾勒出一个预先定义的设置来允许可扩展性,同时保持标准化的项和模块。群集配置通常被视为一个构建块,虽然一些公司购买了一个群集,同一时间,其他人使用模块化的方法购买了固定数量的物理主机,来进行规划,逐步扩大自己的群集。EVC允许混合不同系列的CPU,让积木架构的群集进行扩展和调整。一个潜在的警告就是同一个群集不同系列的混合硬件性能上会有所波动。新一代的CPU比老一代的CPU能够提供更好的性能增长,从而虚拟机和应用程序有不同的进展。例如2010年Intel

Xeon

Nehalem

500MHz比2006年Intel

Xeon

Core

2

“Merom”

500MHz计算更快。这样的配置会增加性能故障的复杂性。这是一个极端的例子,大多数客户虽然组合不同,但都是几代相邻的处理器,而不是一个群集中完全不同的硬件相结合。EVC对容错虚拟机的自动DRS的影响vSphere

4.1中,EVC允许DRS为容错(FT)虚拟机生成初始位置,并在负载均衡的期间允许DRS执行虚拟机相关操作。没有启用EVC,主容错虚拟机将由注册主机上的DRS操作电源,但是绝不会在负载均衡期间迁移主容错虚拟机和备份容错虚拟机。基本设计原则开启EVC,DRS-FT集成将被支持。允许DRS控制,启用了FT的虚拟机的初始位置,可能会使虚拟机性能更好,DRS也能够选择更合适的主机,允许DRS计算,启用了FT的虚拟机的负载均衡,将有助于DRS较早进入稳定状态,修正计算负载均衡时对虚拟机的影响,还可以限制DRS的能力,以实现负载平衡的状态,允许DRS移动FT虚拟机,DRS就会有较少的限制,可以分配更好的资源来移动虚拟机,此外,FT-DRS集成允许主机置于维护模式,因为DRS将允许撤离FT虚拟机,因为DRS能够迁移不需要提供资源的主机上的虚拟机,这样DPM变得更有效。启用FT的虚拟机的初始放置位置当计算初始位置建议,DRS将为一个主虚拟机和一个辅助虚拟机选择一台主机,DRS定义了一个兼容的主机集,其中包括启用了FT虚拟机的ESXi主机,通过EVC基线,群集中的每个ESXi主机呈现相同的指令集,生成一般的主机兼容性集,例如,当启用EVC,如果虚拟机VM1在主机ESXi-02上开启,其主机的兼容性包含ESXi-01和ESXi-03,因为它可以在这些主机上vMotion这些虚拟机,还可以确认,VM1可以运行在ESXi-03上,且能在ESXi-01和ESXi-02之间vMotion,同样,它也可以在ESXi-02和ESXi-03之间vMotion。图50:主机兼容性设置没有EVC,DRS需要确认主机的兼容性,通过计算单独主机兼容性和每个主机之间的兼容性。例如,对于32台主机的群集,计算为N*(N-1),其中N=主机数量*(主机-主机本身)=32*(32-1)=992,除了增加系统开销,如果DRS需要执行这个兼容性检查,那么FT虚拟机的开启将是一个漫长的过程,在初始布局时,DRS还保证了备份虚拟机不会作为主虚拟机在同一台主机上运行。启用FT虚拟机的负载均衡如前所述,如果EVC开启,主/备虚拟机都能被DRS迁移。但是,当为FT虚拟机生成特定迁移建议时,DRS还是很严格的:由于是内部反关联性规则,DRS防止主/备FT虚拟机进行调换,FT虚拟机在任何时候都不能运行在同一主机上,所以DRS不会迁移主FT虚拟机到备份虚拟机所在的主机上,反之一样。此外,DRS不允许一台主机上放置超过4台的启用FT的虚拟机,在负载均衡计算时,将会考虑这一点。启用FT的虚拟机的DRS自动化设置DRS自动化设置可以为FT虚拟机进行配置,备份虚拟机继承主虚拟机的DRS自动化设置,从而两个虚拟机都具有相同的结构。不可能单独配置主虚拟机和备份虚拟机的自动化,如果自动化配置被禁用,vCenter将在不移动主/备虚拟机,而是在目前注册的主机上启动它们。启用和禁用EVC尽管虚拟机是活动的,EVC仍然可以启用,只要虚拟机本身是兼容所需的EVC模式,开启的虚拟机将无法阻止EVC配置。如果EVC被禁用,虚拟机将继续运行在相同的EVC模式下,不会被强制重启,如果要完全的去除EVC模式,虚拟机需要经过一个完整的电源周期;一个重启时不够的。如果EVC禁用的群集有一台FT虚拟机,它们的DRS自动级别被设置成禁用,在负载均衡和维护模式下DRS将无法迁移主/备虚拟机。如果EVC再次开启,这些虚拟机将再次接受默认的群集DRS自动级别。关闭虚拟机,而不是重启。一个重要的事情要记住,EVC基线只适用于电源开启期间的操作,如果群集的EVC模式被改变,活动的虚拟机需要完成一个完整的电源循环来接受新的基线。如果EVC是增强模式,虚拟机继续运行。例如,从Intel

Merom产生出来的Intel

Nehalem,直到重新上电,基线一直为Intel

Merom,当上电完成,Nehalem才被传播到虚拟机。EVC

需求开启群集的EVC,群集必须满足以下需求群集中所有的主机的CPU必须来自同一厂家,不管是Intel还是AMD群集中所有的主机必须有高级CPU功能设置,例如支持硬件虚拟化(AMD-V或者Intel

VT)和AMD

NX或者Intel

XD,在BIOS里必须开启群集中所有的主机应该配置vMotion,请看章节,主机vMotion配置需求群集中所有的主机必须连接同一个vCenter

Server另外,群集中所有的主机要支持EVC模式,检查EVC支持的CPU和服务器型号,请查看VMware兼容性向导。第三章

DRS动态配额在本节中,我们将解释DRS动态配额和资源管理的概念。了解动态配额和资源池,以及资源分配设置,可以让您更容易的解决DRS行为的相关故障,并为您的虚拟机获得最佳的性能。在深入DRS和本地主机资源管理之前,我们需要退后一步,掌握动态资源配额。动态配额定义了理想资源的可用量目标,DRS和本地调用这个目标,它取决于虚拟机或者可用资源或者不可用资源,配额包含静态要素和动态要素,静态要素基于用户提供的资源规范,动态因素基于估算需求和系统争用级别,虚拟机的每个资源类型(CPU和内存)将有单独的动态配额目标。作为管理员,通过设置资源分配策略(保留,份额和限制),可以影响到动态虚拟机的配额。资源分配设置不仅影响虚拟机的性能,而且还影响其它虚拟机的性能,因此,重要的是要了解如何计算动态配额,以及虚拟机在不引入拒绝服务或者其它环境时,如何配置虚拟机。无论是动态还是静态元素,本章节的后面会详细解释,现在,让我们开始为计算动态份额来设计架构。资源调度架构ESXi

主机的VMkernel运行着多个本地资源调度器,包括CPU调度和内存调度。DRS引入了全局调度,从而有效的创建了一个二层调度,用来负责分配本地资源和群集资源。图51:DRS和本地调度DRS调度全局调度负责分配群集资源,在接收到有效资源和虚拟机的需求时,DRS确定每个虚拟机的动态配额。如果群集是一个大型的主机,但是依赖主机级别调度来实现DRS资源池和虚拟机的资源设置,DRS调度会计算出理想的CPU和内存的配额,资源池在第13章进行扩充说明。有趣的情况是当资源池包含的虚拟机运行在不同的主机上,本地主机的资源调度程序分配资源给虚拟机,需要在群集资源池的设置和本地主机资源池的设置之间进行转换。DRS通过镜像解决了群集每个主机的资源池树,映射适当的资源给每个资源池节点,本地资源调度的位置在/host/user目录,导致DRS资源池树在每个包含资源池的主机上逐层重启/host/user

。图52:映射群集RP树为ESXi主机RP树DRS发送资源池设置到每一个主机本地的资源池树,与主机上所有活动的虚拟机的动态份额保持一致,DRS修剪资源池树,发送给只运行在该主机上的虚拟机,在图53中,ESXi-02上的资源池1内没有一台虚拟机是活动的,因此,ESXi-02上不存在资源池树。图53:通过主机本地资源池(RP)生成树划分资源池(RP)资源级别本地调度如果用户已经在主机上建立了树,本地调度对待本地主机资源池树与其相同,接下来资源分配给资源池树,合适的时候本地主机在虚拟机间调度计算关于树和流量资源的动态配额,如果必要,本地主机资源调度可以增加资源,如果资源可用,可以快速响应需求的变化。动态配额目标在非过分使用的群集中正常运作,虚拟机的动态配额可能会发生波动,这取决于其活性,在非过分使用的群集中,当虚拟机接收所有的资源需要人为的限制,分配额外资源需要本地主机的计算调度,这样本地主机的调度可以尽可能的避免不必要的开销,从而较少的限制资源分配策略。动态配额目标随着虚拟机需求的增长而增长,换句话说,虚拟机配置最大规格(CPU和内存大小)比配置资源利用率更高效。动态配额目标由需要和使用指标组成,通过整合计算需求指标,本地主机调度和DRS了解到虚拟机需要多少资源实际接收了多少资源。DRS使用动态配额计算指标是指CPU的活动和内存的活动,CPU活动指标由主机-本地调用出口,包括%允许+%准备,本地主机调度包括活动时间里的一部分准备时间,这取决于CPU的特性,如超线程和电源管理。内存活跃出口是通过本地主机内存来调用的,这是DRS用来确定内存份额的主要指标,活动内存代表这工作的虚拟机,标志着RAM中活动页面的数量,通过使用工作集评估,确定哪些活动的内存页被虚拟机使用,哪些活动页处于空闲状态,为了适应突然的工作量,25%的空闲内存是允许的,活动内存是动态配额的一部分,还包括了虚拟机的内存开销。图54:动态配额目标让我们用一个8GB的虚拟机作为例子,来看下DRS如何计算动态资源配额,这个虚拟机上运行的客户机操作系统自从它启动后,已经触及其内存的50%,但其只有20%的内存是活动的,这意味着,虚拟机已经消耗了4096MB内存中有活动内存1638.4MB,现在来计算空闲消耗内存,活动内存1638.4MB是从消耗内存中减去的,4096MB,导致总计2457.6MB的空闲内存,默认DRS空闲25%的内存,即614.4MB,虚拟机有90MB的预留内存开销,DRS使用负载均衡计算空闲内存如下:1638.4

MB

+

614.4

MB

+

90

MB

=

2342.8

MB.图55:动态内存配额争用争用会影响动态配额,争用,一些时候我们称之为过量,可以采取各种形式和形状,如果虚拟基础架构设计比较合理,长期争用是不会发生的。但是,短期的争用可能造成资源使用率迅速增加,导致临时需求超过可用资源。主机故障切换,启动风暴,应用调度,负载相互关系和负载同步都会引起争用,负载的相互关系是指不同的虚拟机之间运行的负载关系,如果一个事件启动多个负载,例如,前端WEB服务器的搜索查询,这可能导致堆栈和后端的负载增加,同步往往引起负载相互关联,但也存在由于用户的活动,如早上启动程序进行登录、检测邮件和数据库连接。当出现资源争用,预留和共享资源的设置都会影响到配额。DRS动态配额与本地主机配额尽管DRS和本地主机调度都来调度计算虚拟机的动态配额,但它们不会交换这些计算,DRS为目标资源池树每周期一次(默认5分钟)计算平均值和峰值的需求,而主机-本地调度为每个不同的主机-本地在每个调度期内计算份额。资源分配设置资源分配设置不仅可以设置虚拟机,还可以设置资源池,第13章介绍了资源池和资源的分配策略,本节介绍虚拟机分配设置的功能和影响,其它资源池级别的策略则更进一步的话题讨论。表8:资源分配设置属性详述预留(Reservation)保证为该虚拟机分配的最小使用量份额(Shares)同级虚拟机根据其预留量和限制量限定的相对份额值共享资源限制(Limit)分配该虚拟机的最大使用量图56:资源划分和动态配额预留(Reservation)预留是用来保证虚拟机的可用物理资源量,当出现争用时,本地主机调度来确认需要多少资源,通过预留,调度无法回收保护资源,换句话说,一个预留创建一个最小的动态配额目标,该配额至少和预留一样大。例如,在内存争用期间,本地主机内存调度对比虚拟机的内存利用率,如果利用率高于内存配额,内存balloon、压缩或交换,直到物理内存使用率低于配额,当达到目标设置的预留值,资源停止回收,因为它要保证最低的配额。继续之前内存的例子,如图54所示,虚拟机具有动态配额2342.8MB(1638.4

MB

+

614.4

MB

+

90

MB

=

2342.8

MB)。1024MB是预留设置,导致最低的配额目标为1024MB,如果发生争用,当重新计算新的目标时,主机-本地内存调度将会采取最低配额,并从虚拟机回收内存到其最低配额。图57:最低配额资源池预留级别预留可以存在虚拟机级别和资源池级别,预留资源池的资源和预留虚拟机的资源表现不同,资源池的预留资源被分配到活动虚拟机,不归属它的资源在资源池和虚拟机之间传输,由群集-级别资源池预留来分配主机-本地的资源池树。通过主机-本地资源池树预留给虚拟机的资源可用,并依靠动态配额在它们之间流动,换句话说,资源池级别的预留设置作为了动态目标,在资源池的内部更新每次使用率和需求的改变虚拟机级别预留行为虚拟机级别预留比资源池级别的预留少一些动态特性,在此之上,对其它虚拟机的可用资源来说CPU的预留比内存的预留效果不同。虚拟机级别的(静态)的预留设置定义了该虚拟机的最低配额,在争用过程中,本地主机调用多于虚拟机最低配额的资源,不像资源池级别的预留,是根据虚拟机的利用率和需求来提供资源,虚拟机级别的预留设置是静态的,意思是说虚拟机在任何时候都有权拥有这些资源,不管资源是否使用中。这会影响其它虚拟机的资源可用性。在预留资源和使用资源之间存在着差异,预留是动态配额计算的一部分,虚拟机能够使用或多或少的预留资源,虚拟机级别配额的静态特性影响着共享资源,不算使用和需求,预留资源是静态的,本地主机调度不允许在虚拟机的动态配额以外回收空闲资源。但是什么时候虚拟机命中全部的预留?流行的观点是当虚拟机变得活跃,虚拟机将立即命中全部的预留,在虚拟机级别上预留的内存,仅仅是预留用来保护的物理内存,物理内存只被分配给虚拟机的虚拟内存访问。然而,在实践中,它依赖于虚拟机内部运行的客户操作系统,在系统启动期间,Windows在引导期间将把每一页置零,在引导期间命中全部的预留,但是Linux,只访问它需要的内存页,例如,一个4GB的Linux的虚拟机配置了2GB的内存预留,当访问需要1GB,只剩下1GB的预留分配内存,其最低配额是1GB,一个Windows的虚拟机在完成启动引导后也需要最低2GB的内存配额。幸运的是,这并不全是坏事,预留资源的共享决定了工作量的灵活性:CPU指令是短暂的,并快速完成,处于这个原因,CPU调用允许其他虚拟CPU使用物理CPU,虽然它还没有激活,如果虚拟机请求的资源已激活,squatter可以快速在队列\中取消预订,物理内存保留数据,如果内存空间被租借到其它的虚拟机临时使用,如果合法拥有者需要使用这部分内存空间,这些数据需要被移动,清理这些数据需要大量的时间,可能不公正的延迟虚拟机的激活,为了避免这种情况,内存不会调度预留物理内存借给它们临时使用。接入控制和动态配额经常误认为动态配额和接入控制是独立的机制,它们都受到预留定义的影响。接入控制的原理是激活已经上电的,与预留资源沟通哪些资源有效(所有的系统资源-虚拟机的全部预留资源),上电成功后只有接入控制成功,而在虚拟机操作期间动态配额是活动的,将不会利用回收可用资源保护预留资源。换言之,接入控制存在于虚拟机第一个生命周期阶段(预上电时),而动态配额控制在虚拟机生命周期运价阶段中。份额(Share)份额确定了同级别下虚拟机和资源池的相对优先级,决定了如何划分资源(总资源-总预留)相对优先级份额与池相关,意味着同一父资源池下的子资源池之间相比较的数量,一直以来,它们意味着关联优先级,绝对值并不重要,比较2:1或者20

000:10

000是一样的结果,在第13章会在群集中使用份额。CPU份额当虚拟机遵从了最低配额后,CPU的份额将用来划分可用的物理CPU资源,如果虚拟机不使用预留的CPU时间,未使用的CPU时间会被其他的虚拟机使用,为正确分配CPU时间值,CPU调度计算每个份额的MHz值,这个指标通过CPU调度被用来识别哪些虚拟机的配额领先,哪些虚拟机的配额落后,哪些没有完全的利用配额。当一个虚拟机要运行,CPU调度识别虚拟机的进展,并将其放置其中一个队列,如果虚拟机落后了配额,它将被放置到主调度队列,如果超过了配额,它将被放置到额外队列,在调度之前,CPU调度将在主要队列中对比每份额的MHz值,并选出最低的份额值的虚拟机,如果没有虚拟机在主队列,调度将从额外队列中选择虚拟机。每份额计算公式如下:MHzPerShare

=

MHzUsed

/

Shares虚拟机目前在MHz中测量出的当前可利用的MHz,而份额表示当前虚拟机配置的份额数量。例如,如图58:VM1用了2500

MHz,有2000份,导致每份额值为1.25,VM2消耗了2500MHz,但是有1000份,导致没份额值为2.5,由于VM1的每份额值低,它将在队列的前面。图58:顺序优先级如果虚拟机与最低每份额值决定不利用周期,周期可以被分配给下一个较低每份额值的虚拟机。预留覆盖份额,保护物理资源,无论资源池中有多少份额,这意味着,虚拟机可以一直在预留中使用特定的CPU周期,即使虚拟机有一个较高的每份额值。例如:三个虚拟机在资源池中都占有8GHz表9:份额和预留预览VM1运行着内存密集型的应用程序,并且不需要很多CPU周期,VM2和VM3运行的是CPU密集型的应用程序,VM1运行了500MHz,2000份额,每份额0.25,1000份额支出给VM2,加上预留的2500MHz在VM2上,VM3有2000份额,但是虚拟机电源关闭了,因为VM2需要CPU周期,CPU调度分配CPU周期取决于它的预留,导致在每份额的值为2.5(2500/1000),此时资源池中仍由5000MHz可用。图59:因为预留VM2

回收MHz在下一个场景中,VM3刚通电,并落后于配额,虚拟机的CPU调度对比每份额的值,选择最低每份额的虚拟机,第一步,VM3每份额为0,能够回收到0.25,从VM1,第二步,VM1不需要添加CPU周期和配额回收,在考虑提供调度CPU周期给VM2之前,VM3能够现在回收CPU资源只到每份额值等于2.5。VM3拥有2000份额,意味着它能够分配4500MHz,达到每份额的值为2.5(4500/2000),考虑VM2的分配剩下500MHz,CPU调度分配4500MHz去补偿分配之前的场景论述了,CPU份额在分配CPU周期中扮演着非常重要的角色。内存份额为了保证和更新虚拟机的内存分配,内存调度每15秒调用一次来重新计算统计动态配额内存。该指标被推送到DRS,用来计算跨群集主机的资源并进行分配,但是,主机-本地内存调度负责分配资源,正如之前所提到的,如果资源不存在争用,每个虚拟机都被允许分配额外资源。动态配额将每15分钟计算一次,但是虚拟机被允许超过动态配额,并且在需要的时候可以分配到额外的资源。如果发生争用,内存嗲用基于虚拟机的动态配额回收内存,ESXi通过计算空闲的内存状态(MinFreePct)来决定争用级别,基于级别争用和空闲内存状态,内存调度决定哪些虚拟机可以使用重新回收机制。在vSphere

4.1中,MinFreePct被定义为6%,其它内存的状态被定义为MinFreePct的百分比。表10:MinFreePct软、硬、低状态的百分比当今的服务器配置,为了触发内存回收技术6%的比例可能有点多,服务器配置512GB内存的情况越来越普遍,而6%的阈值就是30GB,它将在大部分时间处于空闲状态,为了抵制浪费的内存,vSphere

5.0引入了浮动计算。(sliding

scale)表11:MinFreePct

浮动计算一台配置96GB内存的服务器,MinFreePct阈值将被设置为1597.36MB,如果96GB全部被使用,96GB的6%就是5898.24.表12:96GB服务器内存回收阈值为了减少内存回收的影响,闲置的内存将被作为对象回收,以提供“解放”虚拟机物理内存,需要的内存越多和要求的优先级越高。要确定哪些物理内存可以重新被分配,内存调度计算每页份额的指标,内存从拥有份额最少的虚拟机或者资源池中回收,每页份额决定了每页分配的数量,纠正活动页面的数量和闲置页面的分配百分比,空闲内存以渐进方式申请:虚拟机闲置内存增加更改活动内存的比例增加,调整活动页和空闲页的份额数量有助于避免纯粹的按比例的份额分配,空闲的虚拟机不成比例的份额可以囤积内存。资源争用,怎么办?如果空闲内存状态从高状态变成另一种状态,如果软、硬或低,内存调度程序调用一个新的目标被每个虚拟机重新计算,新的目标会根据内存闲置率进行调整,在虚拟机的统计抽样之前工作内存被分类为空闲或者活动,相当于75%的未保护内存通过最小配额被回收,内存调度将持有25%的缓冲区,以适应快速增长的工作集。使用前面的例子,图60,假定虚拟机运行的是Windows,由于Windows启动的时候使用的归零技术(zero-out

technique),虚拟机分配内存等于配置大小,20%的配置大小是活动的,如果1024MB内存预留被保护起来,在估算工作集的活动内存之前,保持25%的消耗空闲内存作为缓冲区能够快速应对工作量增加,虚拟机的动态配额确定为3366.8MB,计算如下:20%

of

8192

MB

=

1638.4MB活动消耗内存,由于所有的内存消耗,空闲消耗的内存计算为8192

MB

1638.4

MB

=

6553.6

MB,25%的空闲消耗内存=

6553.6

*

0.25

=

1638.4

MB,内存的开销为90MB,总计动态配额为1638.4

MB

+

16384.MB

+

90

MB

=

3366.8

MB图60:动态配额决定回收内存调度将遵从预留,无法重现分配已经被保护的内存,根据资源争用级别,从每个虚拟机的内存上回收资源,一个低级别的争用导致少量的内存页从虚拟机被回收,高级别的争用导致回收增加,内存调度试图回收的页面取决于虚拟机的动态配额,但是取决于预留的内存被回收还是有可能发生,也就是当内存需求过大的时候。图61:重新回收和级别争用最坏分配情况当最小配额的内存被回收,虚拟机经历最坏的分配情况,此值在vCenter中作为最坏的情况显示在资源分配选项卡,该值使作为一个理论值,以帮助了解虚拟机资源分配能够有多糟糕。限制限制是资源分配的一种方式,定义了物理资源的上限,CPU和内存的调度分配资源都可以被限制,即使有足够的可用资源,限制会定义最大的配额,将严格执行主机-本地的资源调度,在图62中,虚拟机配置了8192MB的内存,额外限制配置为6144MB,资源调度可能分配内存为6144MB,这意味着虚拟机的最大消耗内存是6144MB,这导致了一个较低的动态配额目标,因为总闲置消耗内存4505.6MB代替了6553.6MB图62:限制限制能够实现限制资源池中资源的分配数量,但我们强烈建议您不要每天在虚拟机的应用上进行限制。最初,限制被开发人员作为一种故障排除工具,在ESXi主机上虚拟机没用使用过量的情况下诱导使用过量,为虚拟机里操作系统的动态配额计算限制边界值,操作系统资源管理器只知道虚拟机的配置大小,即配置CPU和内存的大小。CPU限制在分配虚拟机CPU资源时,限定了CPU资源的上限,如果虚拟CPU超过了它的CPU分配,直到允许再次运行才取消调度,当虚拟机取消调度,可用CPU周期被浪费。内存限制客户操作系统将规定和协调它们的高速缓存和内存管理算法,并倾向于使用它们呢现有的内存,因此,设置的限制太小会损害操作系统或者应用系统的性能,虚拟机会试图使用为存储的物理内存。内存调度需要通过ballooning,compressing或者swapping,如果内存是swapping将在ESXI主机和存储级别上产生开销。设置限制相等内存大小我们都知道,一些管理员限制了虚拟机的相等的内存大小,这不是使用限制的恰到的方法,在许多方面是没有益处的。配置的大小明确限制了内存的调度,客户操作系统不能使用更多的内存因为它不会检测更多的内存,VMkernel将为每个虚拟机的虚拟化开销预留内存,称为内存开销预留,内存限制不会影响内存的配置,它是基于虚拟机的大小配置,一个限制是静态资源分配设置,而重新配置虚拟机的内存大小不会受到影响,这可能会导致意外的压缩、释放和交换虚拟机的内存,如果虚拟机需要比限额更多的内存。集合在一起寻找资源分配设置本质,预留、份额、限制只是用于动态计算配额的组件,出现资源争用时,虚拟机资源的目标至少要大于预留,这个最小的配额为主机-本地调度标识了重新回收资源的边界,它们不能超过这一点来回收资源,限制为主机-本地调度定义了最大的目标和限制物理资源分配,如果虚拟机的资源利用率高于或者低于其配额,资源重新回收发生,知道虚拟机的使用率等于或者等于配额。主机-本地资源调度,预留,所有权,份额在更深的级别不存在,仅仅只有动态目标必须兑现,简单的说,主机只根据配额目标尝试分配资源。第四章

资源池与控制群集聚合ESXi主机的容量到一个大型的池中,并在资源提供者(ESXi主机)和资源消费者(虚拟机)提供一个抽象层,资源池创建一个额外的抽象层,提供共享资源池和隔离资源池的资源。完全隔离和资源共享资源熟练的通过分配控制使用:预留,份额和限制,这些资源分配设置类似虚拟机的资源分配设置,已经在12章节解释过了,在资源池级别中如何设置工作?在虚拟机负载的情况下有什么影响?根资源池当启用DRS,根资源池是建立在集群级别,每当ESXi主机添加到DRS群集,主机的资源添加到根资源池,要求运行在ESXi虚拟化层的资源对群集不可用。主机资源总数-虚拟化开销=群集可用资源如果启用HA,满足HA故障切换所需的资源来自于根资源池,因为HA故障切换的虚拟机位于根资源池中,当查看资源池的容量时,运行所需要的虚拟化层的资源是不可见的,而预留的资源被标记为HA故障切换,以满足HA所需资源。举个例子,如果群集由3台主机组成,群集上根资源池包含总计36GB的内存资源,每台主机提供12GB可用内存图63:根资源池资源池作为一个群集从主机分配资源给虚拟机,主机扮演着资源的提供者,虚拟机扮演着资源的消费者,资源池扮演着这2个角色,因为他们消耗群集的资源,提供给虚拟机。图64:资源提供者和消费者有一个重要的事情要意识到,资源池既可以是资源的消费者也是提供者,从共享的角度来说因为这可能会影响你设计你的资源池。膨胀或收缩资源池资源池跨越整个群集,当添加主机到群集,它的资源立即被加入资源池使用,相反的,如果从群集中移除主机,该ESXi主机提供的资源将从群集中减去,该资源将不能被资源池和其子对象使用。请注意,移除主机会将群集处于资源过量状态,过量的状态发生在当群集资源不能满足所有资源池的预留,在过量期间,分配给虚拟机的资源将减少。本地主机资源池使用资源池,你可以从群集中多层次的分区CPU和内存资源,池中的资源可以与其它的子对象进行共享,同时在不同的资源池之间提供隔离,资源池可以有两种类型的子对象:虚拟机或者资源池,究竟如何,这些资源是共享还是隔离?虚拟机的负载由本地主机CPU和内存调度执行,资源池的需求设置将从群集的层面向ESXi主机的层面转换,在前面的章节中,DRS映射和镜像群集资源池树给每个主机,DRS通过本地主机资源池树分配资源,通过主机上活跃的虚拟机和它们的动态配额来分开可用资源,一旦资源池分配传播到本地主机资源池树,本地主机的CPU和内存调度程序将照顾实际资源分配。提示在vSphere

5.0中,vCenter专门管理资源池结构,在vSphere

4.0中,改变本地主机资源池结构会覆盖vCenter上的管理资源池结构,vCenter的主机视图中和主机上的实际资源架构不匹配,也会造成无法预料的影响。当已经交由DRS来管理资源时,为了防止用户直接连接主机修改资源设置,不会对资源修改的操作才能允许执行,在这种情况下,所有的资源设置为只读,vCenter显示以下信息。图65:主机管理划分资源相对于本地主机资源调度,

DRS计算所有虚拟机在每次调用期间(默认PollPeriodSec=300)的动态配额目标,与本地调度器的主机CPU毫秒级调度和内存的分钟级调度相比,DRS划分资源的粒度会更粗一些。概念上每个主机接收的资源目标是基于虚拟机的动态配额资源之上的。例如,在DRS调用期间,本地主机内存调度负责分配可用内存,本地主机内存调度使用自上而下的传递资源池树来计算每个资源池节点的需求,如果资源需求少于或者等于提供的资源,每个虚拟机的配额将等于需求,如果需要大于内存供应,动态分配将进行调整,在配额计算之后,内存调用自上而下为每个资源池和它们虚拟机的内存传递计算的新目标,本地主机内存此时允许资源池将内存分配给它们的目标。资源池不是一个文件夹了解了资源是怎样被划分到资源池树,怎样使资源池不被当做一个文件夹架构使用。通常,我们遇到的环境中资源池作为vCenter视图“群集与主机”下一个文件夹,因为它帮助管理识别虚拟机之间的关系,为此目的使用资源池会在vCenter和ESXi主机上产生不必要的负载从而影响到虚拟机的性能。基本设计原则不要使用资源池作为主机和群集视图中的文件夹架构,但可以使用相应的文件夹视图。资源池的树结构在群集中没有正式的限制资源池的数量,但是,每个主机资源池,它可以支持的数量有限制,该限制是一个复杂的公式,根据主机可以支持的虚拟机,可以依据虚拟机或者整理最高限额数配置,DRS不会在单个主机上实例化所有资源池,但我们建议每个群集不超过2048个资源池。对于主机,用户创建的池的最大资源池树深度为8,每个ESXi主机内部是4级,这些内部的资源池独立于DRS资源池中,为了避免复杂的比例份额计算和复杂的DRS动态配额计算,我们建议资源池的深度不要超过2,扁平状的资源池树非常容易管理,并能够降低在动态配额计算期间的开销。基本设计原则尝试保持资源池树的最小深度。资源池资源分配设置资源分配设置适用于资源池,尽管与虚拟机的情况类型,但它们的行为有些不同。表13:资源池资源分配设置份额(share)份额确定了资源池或者虚拟机与同类型相对比的优先级,同类型的资源池或者虚拟机可以存在同一级别的资源池或虚拟机中,即共享一个父域。通过对比父域总份额和分配份额来决定优先级,例如,在创建一个4000

CPU份额的资源池,如果它是唯一的对象(子集),其父域(群集)将只有4000

CPU份额,由于资源池拥有所有的份额,其有资格使用群集的所有CPU资源。在图66中,资源池2被添加到群集中,并配置了8000

份额,群集发行不止8000份额,将增加份额到12

000,资源池1的份额从100%稀释到33%,在最坏的情况下,资源池1有权使用33%的群集资源,最坏的情况所有的虚拟机要求100%的资源,达到其配置大小的临界值。份额是动态配额计算的一部分,在计算动态配额时,预留和限制优先权高过份额,但是并不意味着份额不重要。提示份额不是一个简单的资源加权系统,在下面的章节中,我们解释了在最坏的场景中份额的工作情况,每个虚拟机配置需要100%的资源,系统过载,争用发生。在现实的场景中,这种情况(希望)不会经常发生,正常的操作过程中,不是每个虚拟机都处于活动状态,也不是每一个活跃的虚拟机使用率是100%,活动和资源争用是决定活动虚拟机动态配额的两个因素,为了便于表述,我们试图尽可能避免变量因素,尽可能在每个实施案例中避免最坏的场景发生。图66:资源池1和资源池2份额比例资源池份额资源池份额与其它资源池或者同一父域下资源里的虚拟机相关,重要的是了解vCenter怎样规划内部资源池。CPU和内存的值能应用于资源池也同样应用于虚拟机,默认情况下,资源池的大小就像一个配置了4CPU和16GB

RAM的虚拟机,根据所选的共享水平,预定义的份额将被发布,类似于虚拟机,三个份额级别可以供选择:高,中或者低,指定的份额值比例为4:2:1,客户也可以自定义设置,用来指定不同的相对关系。表14:份额级别预览当资源池中的虚拟机处于同一级别(层),那么必须谨慎,虚拟机可以比预期早结束更高的优先级例如,在vSphere

5中,最大的虚拟机可以配置32个vCPU和1TB内存,如果虚拟机配置的份额处在较高的水平,它可以拥有多达64

000个CPU份额及2

080

000个内存份额,图67描述了一个资源池和一个虚拟机在正常的份额级别的分成比例。图67:资源池和32vCPU,1TB虚拟机的份额分成比例基本设计原则这也是不建议在同一级别(层)的资源池部署虚拟机的原因。同级竞争作为份额根据关系级别来确定资源池和虚拟机的优先级,重要的是决定哪些对象优先完成。图68:同级级别在图68所描绘的场景中,多个同级别存在,资源池1和资源池2是群集的子集,因此在相同的级别水平,资源池3和VM1是资源池1的子集,它们也活跃相同的级别水平,资源池2的VM在活跃在各自同级水平,VM2和VM3的同级,他们会竞争资源池3提供的资源,它们会比较彼此的份额,VM1和VM3的份额不能做比较,因为他们来自不同的父域,没有同级竞争。份额在特定的级别(层)中代表这优先级,但是其父域的级别关系决定了资源可用的总量在图69所示的例子中,群集资源被分成资源池1和资源池2,资源池1基于份额接收群集资源的33%,资源池1分为资源池3和VM1,两个子集根据对等份额各拥有资源池1的50%的资源,这来自于资源池1的50%的资源占群集总资源的16.5%,16.5%的资源是资源池的,算上虚拟机资源合计占群集总资源的33%,资源池3的资源分为VM2和VM3,资源池3的子集拥有不对等的资源份额,在最坏的情况下,VM2用完来自于资源池3的67%的资源,也就反过来等于群集资源的11%。图69:群集资源分配虚拟机和资源池同级(层)虚拟机和资源池同级会影响子集层资源池的分配,本节说明了为什么虚拟机放置到资源池同级的位置被认为一个错误的配置,如图70所示,VM1和资源池3资源争用,基于它们的份额值,都可以收到父域50%的资源,资源池3获得的资源分配到子资源池,相反,VM1为了自身利益会利用资源分配。在前面的例子中,两个活动的虚拟机在资源池3中,其资源分配给这2个虚拟机,当添加更多的虚拟机到资源池中,每个虚拟机的份额值被摊薄,而VM1的份额值保持不变。图70:份额摊薄混合在同一层次的虚拟机和资源池,可能会在分层级中产生比例不平衡的情况,从而影响后续层的资源分配。份额级别不是资源级别份额级别在父级别的设置并不会继承到子对象,当一个虚拟机被关联到一个资源池,它会保留其份额水平,如果自定义的份额级别的虚拟机被移动到资源池中,如果虚拟机配置的份额过低或者过高,会提示产生错误。虚拟机的CPU资源份额远低于资源池中虚拟机的CPU的资源份额。凭借目前的份额设置,资源池可以分配虚拟机0%的CPU,您确定这是您想要做的吗?当创建一个虚拟机或资源池时,vCenter默认分配正常(Normal)份额,与其父域的份额级别无关,在图71中,VM1有4000份额,导致高(High)份额,而资源池3配置了正常(Normal)份额,尽管他们的份额水平不同,资源池3和VM1都拥有4000份额,都在基于份额总量竞争,而不是基于份额级别,份额的数量和份额的级别有关联但不同,当份额级别简单方便的生成值时,份额的数量就很重要。图71:份额级别总结:所有的份额一样,没有谁比别人更重要:4000份额=4000份额资源池优先论当资源池用于群集资源的分层,群集动态配额向子层资源池资源,在每一个层面上,同级资源竞争,在每一个子级别稀释剩余可用资源。但是,每个同级由该级别中竞争者的数量来确定可用资源总量,这意味着一些资源池内的配置了低份额的虚拟机能够抢占资源池内配置高份额的虚拟机的资源,虚拟机在图72中都配置相同,他们的规格是按照群集的动态配额比例调整。图72:基于资源池份额值的虚拟机动态配额从资源池设置到主机-本地资源分配资源池的份额怎样影响虚拟机的负载,正如之前提到的,DRS反映了每个主机的资源池层次结构和基于活动虚拟机通过主机-本地资源池树来划分配额资源以及他们的份额数量和他们当前的利用率,一旦资源分配设置被传播到主机-本地的资源池树,本地主机的CPU和内存调度程序将照顾实际资源的配置。例如,一个包含两个主机的群集有一个资源池,配置了正常(Normal)CPU份额级别,在这里,资源池1拥有4000份CPU,四个虚拟机运行在该资源池里配置如下:图73:单个资源池配置假设所有的虚拟机工作负载都相等也稳定,DRS将平衡跨主机和虚拟机创建以下资源池的映射:表15:资源池1虚拟机的份额配置图74:主机-本地资源池映射VM1,VM2,VM3加起来的份额为4000,这等于资源池总量的一半。在这个例子中,主机-本地资源池树分配资源池1中4000份资源中的2000份,DRS放置VM1,VM2和VM3在ESXi-01上就是这个原因,而VM4运行在ESXi-02上,接收另一半资源池的份额。在这一点上,我们创建资源池2,资源池2配置了高(High)份额级别,接收8000CPU份额,虚拟机是资源池2的成员,配置同资源池1的虚拟机相同。表16:资源池2虚拟机份额配置图75:份额比例结果资源池2所在的ESXi

01的主机本地资源池树被更新,资源池2配置的份额为资源池1的2倍,增加到4000份额,,由于资源池2拥有6000份额里的4000,得到了66.6%的ESXi主机资源。由于资源池的比例为67%比33%,当发生资源争用,本地资源将调度分配更多的资源给资源池2,资源分配给资源池2被分布到基于层级的虚拟机中,这意味着,虚拟机VM5在资源争用的情况下可以分配到资源池2的50%资源,这意味着33%的ESXi主机资源。群集或者资源池的资源分配选项卡包含份额百分比一栏,此列显示的百分比是分配给对象的资源,此值关系到父域发布的整个份额数量,因此只适用于特定的层次。要强调的是,这个例子使用的虚拟机有同样的负载和稳定性,在正常条件下,一些虚拟机比其它虚拟机有更改的利用率,作为活动的资源利用率它是动态配额计算的一部分,当划分资源池的份额时活动的负载、资源跨主机和本地资源池树是需要被考虑的。此外,虚拟机的利用率经常改变,在DRS调用之后通常会影响到资源分配。池级别资源预留设置预留保证资源池中的永久可用物理资源,因为预留在份额之前被接受,在争用期间资源被预留保护不被回收,设置资源池级别的预留确保了子对象的资源可用性。预留资源与资源池的关联性适用于资源池中所有的虚拟机,资源池级别预留不会含蓄的定义子层的预留,但是可以“借”一部分保护资源,因为资源池的预留资源不会变成一个静态的子层的设置,通过预留资源保护可以实时的为子层浮动。资源池预留基于每个子对象的动态配额之间进行预留划分,在第12章中,动态配额基于配置规格,资源本地设置,需求和争用水平。因为它是基于动态的配额,活动性和争用级别在获得保护资源中起了很大的作用,通过使用虚拟机的动态配额,资源池预留有一个动态本质和更多有巩固的公平的概念,预留资源按照要求在虚拟机之间被划分,未使用的资源将会回到资源池,准备被其它的虚拟机使用。让我们来仔细看看这个行为,A的预留内存在资源池1中设置为12GB,资源池包含4个虚拟机,每一个配置了4GB内存,没有虚拟机配置预留,VM2和VM3被配置成低(LOW)级别的份额,VM1正常(Normal)份额,VM4高(High)配额,图76显示了在早上8:00,资源池分配保护内存给每个虚拟机的情况,VM1和VM3都比较忙,VM2和VM4都运行着比较轻的负载。图76:早上8:00的资源池资源分配尽管VM3配置了低份额,可用资源和缺乏争用,导致允许VM3接收4GB的保护内存,换句话说,所有的内存页都被存入物理内存中。图77显示了11点的环境,在这个特定时间,VM1,VM3和VM4高度利用,资源池的预留资源基于份额被分配和利用到每个虚拟机,这意味着VM4的份额最高资源池将分配最多的内存给VM4,VM1根据资源池需求得到3GB,其余的保留内存分配给VM2和VM3,当VM3高度利用,动态配额比VM2高,因此可以分配到3GB预留资源。图77:

11点的资源池资源分配在19:00(图

78),所有的系统处于空闲状态,除了VM2,它运行着备份系统,当资源池满足了其它虚拟机的资源配额,还有足够的资源可用,所有的内存被分配给VM2满足其需求。图78:

19:00资源池资源分配预留资源池的动态特性可能不适合某些虚拟机:虚拟机级别的预留更适合于物理资源有保障的情况下。资源池子对象级别预留如果资源池的子对象配置了预留,预留没有被DRS动过,DRS依赖于主机级别的调度和主机级别的资源池来完成DRS级别资源池,来强制执行资源池和虚拟机级别的资源设置,DRS通过虚拟机级别的预留直接访问主机,这样使用主机级别的CPU和内存调度加强预留。任何虚拟机级别的预留是从资源池级别的预留数中撤回,并减少预留资源给同级,通过虚拟机预留物理资源分配,仅适用于虚拟机和同级之间不共享资源或者虚拟机和资源池在一个父域池。图79:虚拟机预留基本设计原则设置每个虚拟机的预留仅仅虚拟机有资源保证的情况下。预留激活虚拟机预留只有在虚拟机电源开启的时候生效,资源池级别预留从这一刻起配置,无论子域虚拟机是否获得,因为这是瞬间激活,预留立即减少池中未被预定的资源,如果预留不能兑现,DRS和VMkernel都不能开启虚拟机,另外虚拟机级别的预留,VMkernel需要未预定的内存来提供给主机上的虚拟机的开销,配置资源池级别的预留能影响群集中虚拟机的整合率。基本设计原则我们建议正确的资源池级别规格尺寸来避免池中未预定的资源不必要的减少,而是根据当前虚拟机的需求调整资源池级别预留。内存预留开销对于每一个正在运行的虚拟机,ESXi为虚拟开销预留物理内存,ESXi需要这些额外的空间来为内部的VMkernel数据架构虚拟机框架缓存,并未内存转换表提供映射(映射物理内存到虚拟内存),2种虚拟机开销存在:静态开销静态开销是最小的开销,是指的虚拟机启动阶段的开销需求,DRS和主机-本地内存调度使用这个值来为接入控制和vMotion计算服务,目标ESXi主机必须能够容纳虚拟机的预订和静态开销,否则vMotion将会失败。动态开销一旦虚拟机被启动,虚拟机监控(VMM)要求额外的内存的空间,VMM将提出需求,但是VMkernel不提

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论