VMware的分布式资源调度(Distributed Resource Scheduler,DRS)可以持续不断地监控VMware主机集群中资源池的利用率,并能够根据商业需要在虚拟机中智能地分配其所需的资源。通过动态分配和平衡计算资源,VMware DRS能够整合服务器,降低IT成本,增强灵活性;减少停机时间,保持业务的持续性和稳定性;减少需要运行服务器的数量以及动态地切断当前未需使用的服务器的电源,提高了能源的利用率。
一旦客户将服务器整合到资源较少的物理主机上,虚拟机的资源需求往往会成为意想不到的瓶颈,全部资源需求很有可能超过主机的可用资源。VMware DRS则提供了一个自动化机制,通过持续地平衡容量将虚拟机迁移到有更多可用资源的主机上,确保每个虚拟机在任何节点都能及时地调用相应的资源。即便大量运行SQL Server的虚拟机,只要采用了DRS,就不必再对CPU和内存的瓶颈进行一一监测。全自动化的资源分配和负载平衡功能,也可以显著地降低数据中心的成本与运营费用。
VMware DRS运作方式
VMware DRS允许用户自已定义规则和方案来决定虚拟机共享资源的方式以及它们之间优先权的判断根据。当一台虚拟机的工作负载增加时,VMware DRS会根据先前定义好的分配规则对虚拟机的优先权进行评估。如果该虚拟机通过了评估,那么DRS就为它分配额外的资源,当主机资源不足的时候,DRS就会将寻找集群中有多余可用资源的主机,并将这个虚机迁移到上面,以调用更多的资源进行其重负载业务。
VMware DRS在虚拟机中自动智能地平衡资源
DRS分配资源的方式有两种:将虚拟机迁移到另外一台具有更多合适资源的服务器上,或者将该服务器上其他的虚拟机迁移出去,从而为该虚拟机腾出更多的“空间”。虚拟机在不同物理服务器上的实时迁移是由VMotion来实现。VMware DRS具有自动模式和手动模式两种方式。在自动模式中,DRS自行进行判断,拟定虚拟机在物理服务器之间的最佳分配方案,并自动地将虚拟机迁移到最合适的物理服务器上。在手动模式中,VMware DRS提供一套虚拟机放置的最优方案,然后由系统管理员决定是否根据该方案对虚拟机进行调整。
DRS资源分配方式一
DRS资源分配方式二
资源池灵活的分层布局令可用的IT资源与商业组织的要求能够保持同步。业务部门不但能够得到专用的IT资源,而且依然享有资源池的所有效益,将所有性能资源最大化的利用起来,同时也降低无谓的支出和消耗。
部署VMware DRS
部署VMware DRS其实很简单,其中复杂的主要是制定DRS的各项阀值和规则,给各个主机可供共享使用的处理器性能和内存容量,所谓阀值就是一个系统水位警报线,这可以根据物理机的硬件配置自行定义的,当资源占用到达这个阀值时候,VMware的集群管理器就会根据规则进行自动的操作或者给管理员一个操作的建议,对比传统意义上的群集,基于VMware DRS上的VM Cluster更能体现智能和自动化配置的技术。
部署Cluster的时候就可以配置DRS和HA
部署集群时,DRS和HA可以一起配置也可以单独进行,并以此来决定这集群中各个虚拟服务器的工作模式,是否执行HA高可用以及DRS动态分配资源。
根据集群和应用的复杂度选择各种自动化水平
VMware DRS可以选择多个层次自动化策略,可以完全手动也可以选择极度“激进”的全自动DRS策略。如果是全自动策略,集群管理器会根据规则和阀值进行服务器的迁移,这个过程也许会不作提示,我们测试过程中很多时候就发现,虚拟服务器其实已经转换了主机位置,不过这已经是“事后”的发现了。
VMware DRS的电源管理DPM与自动化管理有一样的多个不同程度选择,开启电源管理功能后,多个主机的资源会被合并计算,管理器会自动的将多个服务器集中到一个主机上,然后多余的主机会进入休眠,以达到节能的目的,在资源需求量上升的时候,也会自动唤醒这个休眠的主机,来提供更多的可用资源。
VMware DRS的电源管理
VMware EVC
VMware EVC(Enhanced VMotion Compatibility)是通过CPU硬件底层支持的在线热迁移方案(Intel通过Flex Migration实现,AMD通过Extended Migration实现),允许虚拟层面上支持CPUID 掩码功能,屏蔽某些CPU功能,通过强制CPU指令集兼容来实现不同CPU系列之间的VMotion。
VMotion功能在实战中的意义是非常重要的,但是VMotion对于CPU的要求比较苛刻,对于不同系列CPU是无法自动实现VMotion的功能。在VI的实施过程中,会碰到一个群组里面的服务器CPU不同的情况。比如从前服务器是基于Intel 5300的CPU,而新购买的服务器是基于Intel 5500的CPU,由于新处理器增加了新的SSE指令集,导致新服务器加入群集后,无法实现虚拟机从旧服务器到新服务器的VMotion操作。
没有EVC之前,解决方案是通过手工计算CPU掩码,逐个修改每个虚拟机的配置文件或者全局修改VC服务器上的vpxd.cfg来实现不同系列CPU之间兼容性的问题。这样做的缺点是需要人工设计对于群集中所有服务器兼容的CPU Masking,并且,当群集中有新的服务器加入后,为了避免可能的不兼容情况,需要再次手工计算一个新的CPU Masking。
使用EVC功能后,以上所有的手工工作都由VC和ESX Server完成了,这是VMware通过和CPU厂商的合作,通过在硬件底层上直接支持CPUID 掩码功能。不过要注意的是,即便使用EVC,也不能将Intel服务器上的虚机迁移到AMD主机上。所以EVC只有三个选项:禁用、Intel或者AMD。
集群配置完成
在主机上添加新虚机自动加入刚才新建的群集
自此配置完成这个Cluster以后,上面的虚机就可以使用VMware DRS带来的功能特性。在集群或者虚拟机级别上,可以指定DRS的操作模式:自动,手动和半自动。VMware推荐对于群集来说,默认使用自动模式。对于那些对VMotion比较敏感的虚拟机,建议使用手动模式。使用这个模式,管理员可以决定是否以及何时迁移虚机。而对于一般的虚机,则应该尽可能地使用自动模式。因为虚拟机在自动模式下,能够根据平衡工作量的需要,自动地进行迁移,从而提高了工作效益
vSphere中的DRS出现了很多新的特点,其中最显著的是以下两点:
1.全力支持新增加的分布式电源管理(DPM)。这项功能在之前的VI3版本是实验性的,而在vSphere 就全面投入使用。
VMware DPM通过平衡数据中心的工作量来减少耗能。作为VMware DRS的一部分,分布式电源管理(DPM)会自动切断当前不需要的服务器的电源,并在计算资源需求上升的时候,重新启动这些服务器。
当群集的利用率低时,带有DPM功能的DRS就会将工作量重新整合到少数ESX服务器主机上,并建议将某些暂时不需要的主机断电。当群集的工作量增加,需要更多容量的资源时,带有DPM功能的DRS就会建议重新给某些ESX服务器主机供电,并再一次平衡群集中正在供电的主机的工作量。DPM还能保证所有供电主机的容量符合VMware HA的设置要求。
DPM与DRS一样,具有自动和手动两种操作模式。只要硬件设备能够支持DPM,同时进行了适当的配置,VMware DRS群集在任何ESX服务器主机上都能使用DPM功能。比如,使用Vmkernel网络的网卡(NIC)必须带有远端唤醒(Wake-on-LAN)功能。该功能主要是用于将ESX服务器主机从断电状态启动起来。
2.另一个关键特点是vApp组。vApp组是用来存储虚拟机,将它们当做一个独立的整体进行管理,其中当然也包括资源管理。
vApps通过将多层应用程序压缩到一个vApp实体中,来简化多层应用程序的部署和之后的管理工作。vApps不但压缩虚拟机,而且还包括他们之间的依存关系和资源分配,从而可以对整个应用程序进行单步供电操作,复制,部署以及监控。
当数据中心创建成功并且已经向vCenter Server系统添加了带有DRS功能的主机群集之后,就可以创建一个vApp了(主要带有DRS功能的群集在目录中被选中)。值得注意的是,当一个DRS群集使用手动模式启动一个vApp时,DRS不会生成虚拟机部署的建议方案。该启动操作的虚拟机分配方式就好像DRS正在半自动或者自动模式下运行一样。但这却不会影响VMotion的建议