动态负载均衡的方法、系统及监控调度设备的制造方法
【技术领域】
[0001]本申请涉及共享环境下的网络资源分配技术,尤其涉及云计算环境中的动态负载 均衡的方法、系统及监控调度设备。
【背景技术】
[0002] 云计算(CloudComputing)是一种通过InternetW服务方式提供动态可伸缩的 虚拟资源的计算模式,通过该种方式,共享的软硬件资源和信息可W按需求提供给计算机 和其他设备。云计算的基础环境是虚拟化,虚拟化环境中存在资源共享。云计算环境中经 常使用虚拟机(VM,VirtualMachine),该些虚拟机主要关联的系统资源有CPU、内存、磁盘 I/O、网络带宽等等。
[0003]可W理解的是,云计算环境中的该些资源只要是处于共享状态的,就都会被多个 虚拟机争抢。比如,云计算环境中的虚拟机磁盘共享远端存储集群,所有磁盘I/O都要通过 网络访问远端的存储集群。通常,一台物理服务器上有十几个虚拟机,该样就存在两种资源 争抢的情况:其一为,远端存储集群的服务能力有上限,因而多个虚拟机对于远端存储集群 的磁盘I/O资源将进行资源争抢;其二为,物理服务器的网卡和上联链路带宽容量有上限, 因而同一台物理服务器上所有虚拟机磁盘I/O所耗用的网络流量和该服务器上所有非磁 盘I/O所耗用的网络流量之间将进行资源争抢。由于虚拟机的资源争抢,使得云计算环境 下的资源分配成为一个动态的过程。
[0004]正因为存在上述资源争抢的状况,使得在虚拟机用户角度观察到的系统资源容量 上限不是传统物理机环境中的水平直线,而是一条上下波动的曲线,从而使容量规划从一 个静态的问题变成一个动态的问题。当系统资源容量不再是确定的,而是动态变化的前提 下,再继续沿用与系统资源容量实际变化无关的传统负载均衡算法,将无法保证应用的实 际可用性。否则,因为系统资源容量上限是刚性的,一旦应用实际耗用资源水平达到该上 限,就会产生系统层面的崩溃。所W,应根据系统中各维度系统资源的动态变化来实时调整 负载均衡权重,使得应用的实际耗用资源水平始终处于不断变化的系统资源容量上限范围 内,才能保证应用的可用性。
[0005]发明人认知的现有业务分配系统和负载均衡模块的基本原理为:负载均衡模块接 收各系统/各节点上报的自身资源使用状况;根据各系统/各节点上报的所述资源使用状 况,确定出所述各系统/各节点的业务分配比率;按照所述业务分配比率,将待分配业务 分配给所述各系统/各节点。该方法能实现根据各系统/各节点的当前资源使用状况进行 业务的动态分配,使得各系统/各节点之间的实际负荷量基本达到均衡。但是该技术方案 也存在明显的不足,主要体现为:
[0006]-方面,该方案未详述根据资源使用率来计算资源空闲率,可W推断该方案认为 的资源空闲率=100%-资源使用率。然而在云计算环境中,类似于磁盘I/O、网络带宽该样存 在多虚拟机争抢的共享资源,是无法通过该方案所述简单方式计算资源使用率和资源空闲 率的。由于该负载均衡算法并不关也后端实际容量变化,因而无法适应云计算环境。
[0007] 另一方面,该方案中的所述监控数据采集依赖于各节点上报,若节点本身异常或 上报数据错误,会导致该系统作出错误的决策,由此无法保证应用可用性。由于各节点处于 主动地位,主动采集并根据设定的上报条件有选择地上报,处理逻辑都在各节点,而负载均 衡模块端处于被动地位,其只负责接收上报的信息,并没有介绍如何应对节点失效、少报/ 错报/漏报的问题。因此,该方案由于依赖于各节点的主动性和功能完整性,没有考虑节点 失效的问题,存在较大的故障风险。
[0008] 由于存在W上缺陷,导致上述技术方案并不能有效地保证云计算环境下的负载均 衡,最终使得云计算客户应用可用性较差。有鉴于此,有必要设计一种基于云计算环境下的 新的动态负载均衡方案。
【发明内容】
[0009] 针对现有技术存在的缺陷,本申请的目的在于针对云计算环境中虚拟机共享的特 点,设计一种动态负载均衡的方法,W便克服传统负载均衡算法无视后端资源动态变化,导 致无法保证云计算客户应用可用性问题。
[0010] 在此基础上,本申请的另一目的在于提供与上述动态负载均衡方法相配套的动态 负载均衡监控调度系统及动态负载均衡监控调度设备,由此较好地保证云计算客户应用的 可用性。
[0011] 为解决W上技术问题,本申请相应提供了一种动态负载均衡的方法,其技术方案 包括W下步骤:
[0012] 获取云计算环境下虚拟化系统资源耗用状况,虚拟化系统的资源耗用状况包括各 虚拟机节点对应的宿主机整体容量和资源耗用状况,相关远程服务整体容量和资源耗用状 况,W及应用集群虚拟机分布状况;
[0013] 根据虚拟化系统的资源耗用状况,按预设策略综合计算并推送虚拟机负载均衡权 重列表;
[0014] 依照虚拟机负载均衡权重列表,调整相应虚拟机节点的虚拟机负载均衡权重。
[0015] 该些虚拟化系统资源耗用状况包括虚拟化系统当前负载状况数据,该虚拟化系统 当前负载状况数据包括各虚拟机的系统资源耗用状况数据、网络资源耗用状况数据W及远 程服务I/O性能资源耗用状况数据,其中:
[0016] 各虚拟机的系统资源耗用状况数据可W表征虚拟机预设维度系统资源的耗用情 况,虚拟机预设维度系统资源包括CPU、内存、磁盘I/O及网络带宽,它们可W通过在各个虚 拟机中安装探针程序,来获取相应虚拟机的系统资源耗用状况数据。具体方式之一是,探针 程序根据系统资源采集指令,抓取并反馈相应维度的本地虚拟机的系统资源耗用数据。更 具体地,探针程序根据W-定频率下发的系统资源采集指令,抓取并反馈相应维度的本地 虚拟机的系统资源耗用数据。其中,当某节点虚拟机上探针程序未正常抓取并反馈相应维 度的本地虚拟机的系统资源耗用数据时,重置对应虚拟机节点负载均衡权重,一般是将对 应虚拟机节点负载均衡权重置为0 ;与此同时,还可W相应地触发报警。
[0017] 网络资源耗用状况数据包括带宽、处理器利用率,它们可W通过云计算系统中的 网络设备,来获取相应的网络资源耗用状况数据。
[0018] 远程服务I/O性能资源耗用状况数据,包括用于提供虚拟磁盘的远端存储集群1/ 0性能资源耗用状况数据,它们可W通过云计算系统中的远程服务模块,来获取虚拟机所依 赖的远程服务I/O性能资源耗用状况数据。
[0019] 本申请的一个改进方案中,当某一虚拟机节点上某个维度的虚拟机的系统资源耗 用总和达到对应维度宿主机系统资源容量上限的安全阔值时,逐步降低该宿主机上相关虚 拟机的负载均衡权重。此时可W结合应用集群虚拟机部署情况,调整相应虚拟机节点的虚 拟机负载均衡权重。
[0020] 特别地,本申请对于耗用系统资源总和即将整体超过安全阔值的应用集群,通过 触发相应的自动扩容程序对应用集群扩容。其中,对于耗用系统资源总和即将整体超过安 全阔值的应用集群,自动扩容程序通过自动安装新的虚拟机,并自动部署应用到该新的虚 拟机,并将该新的虚拟机加入应用集群W对外提供服务,来实现对应用集群扩容。并且,对 于耗用系统资源总和即将整体超过安全阔值的应用集群,触发报警。
[0021] 类似地,对于耗用系统资源总和长期低于某个临界阔值的应用集群,通过触发相 应的自动缩容程序W回收并释放闲置的虚拟机。具体方案可W是,对于耗用系统资源总和 长期低于某个临界阔值的应用集群,自动缩容程序通过在原应用集群中剔除一个或多个虚 拟机,来实现对应用集群缩容。
[0022] 本申请同时提供一种动态负载均衡的系统,其包括:
[0023] 监控调度模块,被配置为获取云计算环境下虚拟化系统的资源耗用状况,虚拟化 系统的资源耗用状况包括各虚拟机节点对应的宿主机整体容量和资源耗用状况,相关远程 服务整体容量和资源耗用状况,W及应用集群虚拟机分布状况;W及根据虚拟化系统的资 源耗用状况,按预设策略综合计算并推送虚拟机负载均衡权重列表;
[0024] 负载均衡模块,被配置为依照虚拟机负载均衡权重列表,调整相应虚拟机节点的 虚拟机负载均衡权重。
[00巧]相应地,本申请还相应提供一种动态负载均衡监控调度设备,其包括:
[0026] 系统资源耗用感知器,被配置为获取云计算环境下虚拟化系统的资源耗用状况, 虚拟化系统的资源耗用状况包括各虚拟机节点对应的宿主机整体容量和资源耗用状况,相 关远程服务整体容量和资源耗用状况,W及应用集群虚拟机分布状况;
[0027] 负载均衡权重运算器,被配置为根据虚拟化系统的资源耗用状况,按预设策略综 合计算虚拟机负载均衡权重列表;W及
[0028] 负载均衡权重推送器,被配置为推送虚拟机负载均衡权重列表至负载均衡设备进 行处理。
[0029] 与现有技术相比,本申请针对云计算环境中各种共享资源动态变化的状况,设计 了一种感知所述变化的动态负载均衡方法、系统及调度监控设备,其通过主动感知云计算 环境下的虚拟化系统资源状况变化,并主动调整相应虚拟机的负载均衡权重,可W适应云 计算环境下共享资源的变化,由此可W保证应用的可用性。特别地,本申请通过监控调度模 块从探针程序获取虚拟机内部系统资源状况的设计,而不是依赖于探针程序上报,可W有 效规避探针程序本身失效而导致的负载均衡失效。更