动态资源平衡:主流虚拟化 DRS 机制分析与 SmartX 超融合的实现优化
资源的动态调度是虚拟化软件(或超融合软件)中的一项重要功能,主要指在虚拟化集群中,通过动态改变虚拟机的分布,达到优化集群可用性的目标。这一功能以 VMware vSphere 发布的 Distributed Resource Scheduler(DRS)最为人们所熟知,它凭借简单易用的特点,在用户中迅速流行,甚至成为此类功能的代名词。
作为国内领先的专业超融合厂商,SmartX 在最新发布的超融合软件版本 SMTX OS 5.1(以下简称 SMTX OS)中,也新增了对 DRS 功能的支持。不同于 VMware 6.x 及其他市场常见的虚拟化平台 DRS 实现机制,SMTX OS 优化了 DRS 评价体系,可充分适应基于容器的“敏态”应用环境,有效提升业务运行与日常管理效率。
本文,我们将深入解读目前主流虚拟化平台 DRS 实现机制与 SmartX 虚拟化平台上 DRS 功能的优化与创新,通过对比分析,帮助读者进一步了解 DRS 及其不同实现机制对集群运行带来的影响。
主流虚拟化软件 DRS 机制:更适合“稳态”业务场景
目前用户较为熟悉的 DRS 机制是 VMware 6.x 引入的实现方式(7.0 后有新机制)。该功能的初衷即通过动态改变虚拟机的放置,实现主机资源负载平衡。同时,它还可与其他虚拟化特性进行结合,衍生出丰富的应用场景:
通过资源平衡提升虚拟机 SLA。
业务低谷时,通过集中放置,减少主机使用,降低能源消耗。
创建业务负载时,自动进行资源评估并完成初始化放置。
自动完成负载均衡,最大化发挥主机性能。
当主机进行维护时,自动化完成迁移,降低运维复杂度。
修正亲和性约束。
市场中其他主流的虚拟化平台的 DRS 机制大都与 VMware 6.x 类似,以主机资源负载平衡为调度目标。该功能的运作机制大致可分为两个部分:
评价体系:周期性收集当前集群中的主机/虚拟机的资源使用情况,根据 DRS 的评价体系判断集群是否处于资源争抢或者分布不平衡的状态。
虚拟机迁移:DRS 算法基于集群当前状态进一步生成迁移建议,并根据设定的策略自动或手动触发一系列虚拟机迁移操作,最终实现集群均衡的目标。
由于 DRS 的评价体系负责定义集群是否属于均衡状态并执行迁移操作,它的实现是整个功能的重中之重。在 VMware 6.x 中,DRS 的评价体系主要关注集群状态,检查主机是否需要重新平衡。因为集群中经常会出现某台主机的资源消耗过多,而另一台主机消耗的资源较少的情况,DRS 每隔一段时间会对集群执行一次检查,如果 DRS 评价体系认为集群当前的状态可以改善,那么它将执行虚拟机热迁移(将负载高的主机上的部分虚拟机迁移到负载低的主机上)来实现集群重新平衡。
这种 DRS 评价体系的核心是平衡主机之间的 CPU、内存利用率,目前常见的虚拟化软件大都是采用类似的评价体系 。该评价体系对于传统“稳态”业务是有效的。在“稳态”业务场景下,通常单个虚拟机里面只会部署单个应用,它对 CPU、内存的占用是相对稳定的,甚至对应的虚拟机数量也是相对固定的;由于每个虚拟机的资源消耗相对固定,通过调整虚拟机的位置去重新平衡主机的负载是比较有效的。
但随着基于容器的”敏态“业务越来越流行,工作负载的形态已经发生了变化:虚拟机上可能运行着多个业务容器,容器的数量也是随时变化的,对资源的占用自然也有较大的波动,而且这是该类型应用的一个常态。如果还是基于上述这种传统的 DRS 评价体系,那么就有可能出现这样的情况:某个时刻虚拟机启动更多数量的容器后,触发 DRS 平衡被迁移到其他主机,然而过了一段时间又由于资源占用下降再次触发迁移——虚拟机可能会不断地执行一些无用的迁移,并对应用运行带来较大的干扰。面对应用负载的变化,传统的 DRS 评价体系未必适用,用户或许需要一种更适应容器环境的新型评价体系。
SMTX OS 5.1 DRS 功能:新型评价体系更灵活高效
SmartX 最近发布了新版本超融合软件 SMTX OS 5.1,新增了对 DRS 功能的支持。SmartX 研发团队在 DRS 功能设计之初就意识到,基于主机资源利用率的 DRS 评价体系无法完全满足新型应用负载的需求。为此,研发团队设计了一种新型评价体系,综合评估虚拟机的响应能力与主机资源利用率这两个因素。
DRS 评价体系
SMTX OS 5.1 DRS 的运作逻辑是:
周期性为虚拟机和主机分别进行评分。
根据虚拟机状态进行评分,虚拟机因为资源争抢导致响应能力受损的程度越高,虚拟机的评分就越低,反之评分越高。
根据主机的资源利用率进行评分,主机空闲度越高,评分越高;主机越繁忙则评分越低。
评分最低的虚拟机会优先迁移到评分最高的主机(同时考虑迁移收益),依次类推直到主机之间达到平衡状态。
虚拟机评分
虚拟机的评分会针对虚拟机的 CPU、内存和存储 3 种资源的使用情况进行评分,其中 CPU 和内存的评分占比 80%,而存储评分占 20%。当前 DRS 版本暂不支持虚拟机网络相关评分。
虚拟机 CPU 评分:系统通过监控虚拟机 CPU 的 Steal Time,以相应的公式计算出虚拟机 CPU 分数。虚拟机 CPU 资源争抢越严重,虚拟机 CPU 分数就越低。
虚拟机内存评分:当内存没有超分的时候,虚拟机内存评分应为 100%,因为内存资源没有争抢的现象发生。在内存超分的场景下,系统会监控虚拟机使用共享内存的程度,使用比例越高,证明资源争抢越严重,得分越低。
虚拟机存储评分:SMTX OS 拥有 I/O 本地化功能,虚拟机读取数据时会优先访问本地宿主机的副本以缩短 I/O 延时,提升性能。系统会根据虚拟机所在节点拥有虚拟机的副本数据块比例进行评分,如虚拟机运行的宿主机拥有它的一个完整副本的所有数据块,那么它的存储评分就是 100%;如果只拥有部分副本,意味着虚拟机访问数据的时候需要跨网络读取,那么虚拟机的存储评分就会降低。
主机评分
主机评分与虚拟机评分类似,同样会考察 CPU、内存和存储三者的情况,进行综合评价。
主机 CPU 评分:系统会收集主机的 CPU 空闲时间,空闲时间越多,得分也就越高。反之,主机 CPU 越繁忙得分越低。
主机内存评分:系统收集主机可用内存占比,并根据主机是否存在内存超分进行评分,在没有超分的情况下,可用内存越多,评分越高。
主机存储评分:由于 SMTX OS 内置的存储引擎可支持存储容量的自动均衡,因此主机存储评分并不是以主机本地存储容量使用率进行评价的。主机存储评分主要关注主机拥有虚拟机副本的数据块比例,拥有比例越高,得分越高。
收益评价
对于虚拟机的动态调整,单纯参考虚拟机和主机的评分仍然是不够的,因为不是所有情况都需要虚拟机迁移到分数更高的主机上,还需要考虑到迁移的成本——只有当迁移带来的收益大于成本,DRS 才建议或执行迁移动作。例如,某个虚拟机的内存比较大,迁移时需要传输比较多的数据,虽然迁移后会使得负载更为平衡(但差距不大),这个时候收益可能小于成本,那么 DRS 便不会建议虚拟机进行迁移。
DRS 建议与迁移
DRS 建议敏感度
SMTX OS 的 DRS 功能为用户提供了 3 种敏感度设置,便于用户根据业务情况选择合适的虚拟机迁移建议生成条件。
DRS 自动化级别
同时,SMTX OS 的 DRS 功能支持手动迁移和自动迁移两种虚拟机迁移方式。
手动迁移:DRS 只会给出迁移建议,但不会自动执行迁移。该模式采取保守的调度策略,可以让用户充分评估 DRS 考察范围之外的因素(如:某个业务十分重要,不希望在非预期的时间执行迁移),再决定是否执行迁移。与此同时,用户需要定期关注迁移建议,并决定执行建议或放弃建议。
自动迁移:DRS 会根据生成的迁移建议自动执行虚拟机迁移操作,直到符合预设 DRS 阈值。该模式采取自动化调度策略,用户不需要人工接入迁移,后台会自动完成平衡,对于大规模虚拟机集群,可以大幅降低运维的压力。
SMTX OS DRS 优势与价值
得益于新型的评价体系和运维友好的操作设置,SMTX OS DRS 功能可以充分满足云环境下的资源调度需求,帮助用户在优化集群性能的同时提升运维管理效率。相比主流传统 DRS 功能,SMTX OS DRS 能为用户带来以下具体收益:
更丰富的应用场景:采用以虚拟机响应能力为核心的 DRS 评价体系,使得 DRS 适用范围更广。
更智能的调度机制:评价体系更加全面,充分结合超融合架构特点,将存储性能因素纳入评价体系,同时引入收益评价,减少不必要的迁移动作,进一步优化决策、降低开销。
更简单的运维管理:敏感度与自动化设置在降低运维难度的同时,给予了运维人员更大的使用灵活性。
除了对 DRS 机制的优化,SMTX OS 5.1 版本中还新增了 GPU 直通与 vGPU、USB 跨节点访问、大页内存分配等创新性虚拟化与存储能力。搭配新发布的容器管理与服务软件 SMTX Kubernetes 服务 1.0 和跨虚拟化与容器平台的软件定义负载均衡、可观测平台等产品组件,SmartX HCI 5.1 全面提升虚拟化、分布式存储、分布式防火墙、系统运维、灾备、迁移等基础设施能力,助力客户以一套架构平稳实现基础架构云化、国产化替代和容器化转型目标。欲深入了解 SmartX HCI 5.1 新增功能与产品组件,请阅读:
您还可扫描下方二维码,获取《SmartX 超融合技术原理与特性解析合集(含 VMware 对比详情)》,了解 SMTX OS 更多技术特性和测试数据。
推荐阅读: