动态资源平衡:主流虚拟化 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机制01.png

DRS 自动化级别

同时,SMTX OS 的 DRS 功能支持手动迁移和自动迁移两种虚拟机迁移方式。

  • 手动迁移:DRS 只会给出迁移建议,但不会自动执行迁移。该模式采取保守的调度策略,可以让用户充分评估 DRS 考察范围之外的因素(如:某个业务十分重要,不希望在非预期的时间执行迁移),再决定是否执行迁移。与此同时,用户需要定期关注迁移建议,并决定执行建议或放弃建议。
  • 自动迁移:DRS 会根据生成的迁移建议自动执行虚拟机迁移操作,直到符合预设 DRS 阈值。该模式采取自动化调度策略,用户不需要人工接入迁移,后台会自动完成平衡,对于大规模虚拟机集群,可以大幅降低运维的压力。

DRS机制02.png


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 新增功能与产品组件,请阅读:

  • GPU 直通 & vGPU:超融合为 GPU 应用场景提供高性能支持
  • SmartX HCI 5.1 发布:是超融合,更是虚拟化与容器生产级统一架构
  • 照亮虚拟网络流量“盲区”:超融合网络流量可视化功能解读
  • SmartX 发布 SKS 1.0 ,一站式构建生产级 K8s 集群
  • 从物理机/云平台迁移至超融合?SMTX CloudMove 帮你实现

您还可扫描下方二维码,或点击链接获取《SmartX 超融合技术原理与特性解析合集(含 VMware 对比详情)》,了解 SMTX OS 更多技术特性和测试数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/103834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

day62:ARMday9,I2c总线通信

作业&#xff1a;按键中断实现LED1、蜂鸣器、风扇 key_in.c: #include "key_in.h"void gpio_init() {//RCC使能//GPIOERCC->MP_AHB4ENSETR | (0x1<<4);//GPIOBRCC->MP_AHB4ENSETR | (0x1<<1);//PE10、PB6、PE9输出模式GPIOE->MODER & ~(0…

AutoGPT:让 AI 帮你完成任务事情 | 开源日报 No.54

Significant-Gravitas/AutoGPT Stars: 150.4k License: MIT AutoGPT 是开源 AI 代理生态系统的核心工具包。它采用模块化和可扩展的框架&#xff0c;使您能够专注于以下方面&#xff1a; 构建 - 为惊人之作打下基础。测试 - 将您的代理调整到完美状态。查看 - 观察进展成果呈…

基于SpringBoot的网上订餐系统

基于SpringBoot的网上订餐系统的设计与实现 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色&#xff1a;用户、管理员管理员&#xff1a;登录、个人中心、会员管理、…

TensorFlow入门(十二、分布式训练)

1、按照并行方式来分 ①模型并行 假设我们有n张GPU,不同的GPU被输入相同的数据,运行同一个模型的不同部分。 在实际训练过程中,如果遇到模型非常庞大,一张GPU不够存储的情况,可以使用模型并行的分布式训练,把模型的不同部分交给不同的GPU负责。这种方式存在一定的弊端:①这种方…

sklearn处理离散变量的问题——以决策树为例

最近做项目遇到的数据集中&#xff0c;有许多高维类别特征。catboost是可以直接指定categorical_columns的【直接进行ordered TS编码】&#xff0c;但是XGboost和随机森林甚至决策树都没有这个接口。但是在学习决策树的时候&#xff08;无论是ID3、C4.5还是CART&#xff09;&am…

嵌入式养成计划-40----C++菱形继承--虚继承--多态--模板--异常

九十四、菱形继承 94.1 概念 菱形继承又称为钻石继承&#xff0c;是由公共基类派生出多个中间子类&#xff0c;又由中间子类共同派生出汇聚子类&#xff0c;汇聚子类会得到多份中间子类从公共基类继承下来的数据成员&#xff0c;会造成空间浪费&#xff0c;没有必要。 所以存…

工程师必须记住的电路元件符号及英语翻译

很多电子小白第一次接触印刷电路板&#xff08;PCB&#xff09;时&#xff0c;总会头痛那些密密麻麻的元件字母符号&#xff0c;这些电路元件符号基本上都是采用英语缩写&#xff0c;下面我们来看看这些电路元件的英语符号有哪些&#xff1f; 电阻器&#xff08;Resistor&#…

C++入门指南:类和对象总结友元类笔记(下)

C入门指南:类和对象总结友元类笔记&#xff08;下&#xff09; 一、深度剖析构造函数1.1 构造函数体赋值1.2 初始化列表1.3 explicit关键字 二、static成员2.1 概念2.2 特性 三、友元3.1 友元函数3.2 友元类 四、 内部类4.1 概念4.2 特征 五、拷贝对象时的一些编译器优化六、深…

Linux进阶-加深进程印象

目录 进程 进程状态转换 进程状态 启动新进程 system()函数 system.c文件 Makefile文件 执行过程 fork()函数 函数原型 fork.c文件 Makefile文件 执行过程 exec系列函数 函数原型 execl.c文件 Makrfile文件 执行过程 终止进程 exit()函数和_exit()函数 头…

机器人制作开源方案 | 杠杆式6轮爬楼机器人

1. 功能描述 本文示例将实现R281b样机杠杆式6轮爬楼机器人爬楼梯的功能&#xff08;注意&#xff1a;演示视频中为了增加轮胎的抓地力&#xff0c;在轮胎上贴了双面胶&#xff0c;请大家留意&#xff09;。 2. 结构说明 杠杆式6轮爬楼机器人是一种专门用于爬升楼梯或不平坦地面…

【elasticsearch】elasticsearch8.0.1使用rpm包安装并启用TLS

背景 公司的业务需要在加密的情况下使用&#xff0c;为此&#xff0c;研究测试了一下es8是如何启用TLS的。以下是测试使用过程。 x-pack了解 在 Elasticsearch 7.11.0 版本及更高版本中&#xff0c;X-Pack 功能在默认情况下已经整合到 Elastic Stack 的各个组件中&#xff0…

M2芯片的Mac上安装Linux虚拟机——提前帮你踩坑

M2芯片的Mac上安装Linux虚拟机——提前帮你踩坑 1. 前言1.1 系统说明1.2 Linux系统选择——提前避坑1.3 下载vmware_fusion1.3.1 官网下载1.3.2 注册 CAPTCHA验证码问题1.3.3 产品说明 1.4 下载操作系统镜像1.4.1 下载centos&#xff08;如果版本合适的&#xff09;1.4.2 下载…

Excel 自动提取某一列不重复值

IFERROR(INDEX($A$1:$A$14,MATCH(0,COUNTIF($C$1:C1,$A$1:$A$14),0)),"")注意&#xff1a;C1要空置&#xff0c;从C2输入公式 参考&#xff1a; https://blog.csdn.net/STR_Liang/article/details/105182654 https://zhuanlan.zhihu.com/p/55219017?utm_id0

c++视觉处理---直方图均衡化

直方图均衡化 直方图均衡化是一种用于增强图像对比度的图像处理技术。它通过重新分布图像的像素值&#xff0c;以使图像的直方图变得更均匀&#xff0c;从而提高图像的视觉质量。在OpenCV中&#xff0c;您可以使用 cv::equalizeHist 函数来执行直方图均衡化。以下是 cv::equal…

06-Zookeeper选举Leader源码剖析

上一篇&#xff1a;05-Zookeeper典型使用场景实战 一、为什么要看源码 提升技术功底&#xff1a;学习源码里的优秀设计思想&#xff0c;比如一些疑难问题的解决思路&#xff0c;还有一些优秀的设计模式&#xff0c;整体提升自己的技术功底深度掌握技术框架&#xff1a;源码看多…

Jenkins更换主目录

Jenkins储存所有的数据文件在这个目录下. 你可以通过以下几种方式更改&#xff1a; 使用你Web容器的管理工具设置JENKINS_HOME环境参数.在启动Web容器之前设置JENKINS_HOME环境变量.(不推荐)更改Jenkins.war(或者在展开的Web容器)内的web.xml配置文件. 这个值在Jenkins运行时…

ExcelBDD Python指南

在Python里面支持BDD Excel BDD Tool Specification By ExcelBDD Method This tool is to get BDD test data from an excel file, its requirement specification is below The Essential of this approach is obtaining multiple sets of test data, so when combined with…

【【萌新的SOC学习之自定义IP核 AXI4接口】】

萌新的SOC学习之自定义IP核 AXI4接口 自定义IP核-AXI4接口 AXI接口时序 对于一个读数据信号 AXI突发读 不要忘记 最后还有拉高RLAST 表示信号的中止 实验任务 &#xff1a; 通过自定义一个AXI4接口的IP核 &#xff0c;通过AXI_HP接口对PS端 DDR3 进行读写测试 。 S_AXI…

软件设计之抽象工厂模式

抽象工厂模式指把一个产品变成一个接口&#xff0c;它的子产品作为接口的实现&#xff0c;所以还需要一个总抽象工厂和它的分抽象工厂。 下面我们用一个案例去说明抽象工厂模式。 在class中可以选择super类和medium类&#xff0c;即选择一个产品的子类。在type中可以选择产品的…

c++处理图像---绘制物体的凸包:cv::convexHull

绘制物体的凸包&#xff1a;cv::convexHull cv::convexHull 是OpenCV中用于计算点集的凸包&#xff08;convex hull&#xff09;的函数。凸包是包围点集的最小凸多边形&#xff0c;该多边形的所有内部角都小于或等于 180 度。 cv::convexHull 函数的基本用法如下&#xff1a;…