负载均衡方法及云平台计算方法、云平台的制作方法
【技术领域】
[0001] 本发明涉及云计算技术领域,尤其涉及一种负载均衡方法及云平台计算方法、云 平台。
【背景技术】
[0002] 云计算是继1980年代大型计算机到客户端-服务器的大转变之后的又一种巨变, 是分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算 (Utility Computing)、网络存储(Network Storage Technologies)、虚拟化 (Virtualization)、负载均衡(Load Balance)、热备份冗余(High Available)等传统计算 机和网络技术发展融合的产物。云计算是通过使计算分布在大量的分布式计算机上,而非 本地计算机或远程服务器中,这使得企业能够将资源切换到需要的应用上,根据需求访问 计算机和存储系统。云计算平台向用户提供可用的、便捷的、按需的网络访问。用户进入可 配置的计算资源共享池(资源包括网络、服务器、存储、应用软件、服务),可以在投入很少的 管理工作以及与服务供应端很少交互的情况下,快速获取上述资源。
[0003] 云计算平台需要面对大量的用户,需要根据这些用户的需求提供不同的服务。云 计算平台在任务调度和资源分配的过程中,如果选中不能胜任的节点或者负载过重的节 点,则会大大降低云计算平台的执行性能。因此如何为不同的用户分配资源以及实现资源 的均衡分配是该云计算平台所需要解决的问题。目前解决云计算平台负载均衡方法主要包 括静态均衡策略和动态均衡策略两种方式。静态均衡策略利用数学函数调度算法选择节点 实现分配、执行任务。但是不能动态地调整云计算平台中节点信息,从而使得部分节点的利 用率较低。动态负载均衡策略根据平台当前状态或最近状态决定为每个节点分配任务。如 果存在节点任务超载,则将超载任务转移给其它节点处理,从而达到动态均衡的目的。但 是,超载任务的转移会给平台带来额外的负担。
【发明内容】
[0004] 本发明的其中一个目的在于提供一种负载均衡方法及云平台计算方法、云平台, 以解决现有技术中部分节点利用率较低或者部分节点超载进行超载任务转移给平台带来 额外负担的技术问题。
[0005] 为实现上述发明目的,第一方面,本发明实施例提供了一种负载均衡方法,包括:
[0006] 获取每个细粒度任务完成所需资源以及最晚完成时间,并按照最晚完成时间对全 部所述细粒度任务进行排序,以获取序列S;
[0007] 获取每个节点的实时负载度,并按照每个节点的实时负载度大小进行排序,以获 取序列Si;
[0008] 从所述序列Sl内选取节点分配给所述序列S内的每个细粒度任务,所分配的节点 需要实时负载度最小,且满足每个细粒度任务完成所需资源的需求。
[0009] 可选地,所述从所述序列Sl内选取节点分配给所述序列S内的每个细粒度任务,所 分配的节点需要实时负载度最小,且满足每个细粒度任务完成所需资源的需求的步骤之 后,包括:
[0010]更新每个节点的实时负载度。
[0011]可选地,所述获取每个节点的实时负载度的步骤中采用如下公式获取实时负载 度:
i
[0013] 公式中,&为实时负载度;S1为权重系数,且〇 < S1 J1为第i个计算因素;η为计 算因素总数。
[0014] 第二方面,本发明实施例还提供了一种基于负载均衡的云平台计算方法,包括:
[0015] 当接收到客户端的服务请求时,云平台根据该服务请求获取相对应的服务;
[0016] 将该服务分解成相互独立的多个子任务,并利用该多个子任务形成并行处理集 群;
[0017] 对所述并行处理集群进行逻辑解析,以获取多个逻辑任务;
[0018] 将每个逻辑任务分解成多个细粒度任务;
[0019] 利用负载均衡方法为每个细粒度任务分配资源;
[0020] 云平台根据每个细粒度任务的完成情况将分析结果返回至客户端。
[0021 ]可选地,所述负载均衡方法包括:
[0022]获取每个细粒度任务完成所需资源以及最晚完成时间,并按照最晚完成时间对全 部所述细粒度任务进行排序,以获取序列S;
[0023] 获取每个节点的实时负载度,并按照每个节点的实时负载度大小进行排序,以获 取序列SI;
[0024] 从所述序列Sl内选取节点分配给所述序列S内的每个细粒度任务,所分配的节点 需要实时负载度最小,且满足每个细粒度任务完成所需资源的需求。
[0025] 可选地,所述从所述序列Sl内选取节点分配给所述序列S内的每个细粒度任务,所 分配的节点需要实时负载度最小,且满足每个细粒度任务完成所需资源的需求的步骤之 后,包括:
[0026] 更新每个节点的实时负载度。
[0027] 可选地,当接收到上报信息时,该云平台对所述上报信息进行元数据描述,以获取 统一格式的数据;
[0028]将该统一格式的数据进行存储。
[0029] 可选地,采用可扩展标记语言XML对所述上报信息进行元数据描述。
[0030] 第三方面,本发明实施例又提供了一种云平台,基于上文所述的云平台计算方法 实现,包括:
[0031] 数据存储模块,与逻辑处理模块连接,用于上报信息的存储与管理;
[0032] 数据请求分析模块,分别与客户端、逻辑处理模块和负载均衡模块相连,用于执行 以下步骤:当接收到客户端的服务请求时,根据该服务请求获取相对应的服务;
[0033]将该服务分解成相互独立的多个子任务,并利用该多个子任务形成并行处理集 群;
[0034]对所述并行处理集群进行逻辑解析,以获取多个逻辑任务;以及,
[0035]将数据分析结果返回客户端;
[0036] 逻辑处理模块,与数据请求分析模块、数据存储模块以及负载均衡模块连接,用于 根据多个逻辑任务访问数据存储模块以获取存储数据,并将存储数据返回数据分析数据请 求分析模块;
[0037] 负载均衡模块,用于执行以下步骤:
[0038]获取每个细粒度任务完成所需资源以及最晚完成时间,并按照最晚完成时间对全 部所述细粒度任务进行排序,以获取序列S;
[0039] 获取每个节点的实时负载度,并按照每个节点的实时负载度大小进行排序,以获 取序列SI;
[0040] 从所述序列Sl内选取节点分配给所述序列S内的每个细粒度任务,所分配的节点 需要实时负载度最小,且满足每个细粒度任务完成所需资源的需求。
[0041] 可选地,本发明实施例提供的云平台还包括:数据上报分析模块,与客户端和数据 存储平台连接,用于当接收到上报信息时,对所述上报信息进行元数据描述,以获取统一格 式的数据;并将该统一格式的数据进行存储。
[0042] 本发明通过细粒度任务分解和时间排序,通过对细粒度任务的逐次资源分配,实 现了对云平台各个节点负载情况的平衡。而细粒度任务的时间排序,保证了任务能在规定 的时间内完成。本发明可以保证了网络中节点的负载基本均衡,提高了资源的利用率,节约 了任务的执行时间跨度,从而实现在云计算环境下安全高效地执行任务,又能够实现系统 中负载基本均衡的目标。
【附图说明】
[0043]通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理 解为对本发明进行任何限制,在附图中:
[0044] 图1是本发明实施例提供的一种负载均衡方法框图;
[0045] 图2是本发明实施例提供的一种基于负载均衡的云平台计算方法流程示意图;
[0046] 图3是本发明实施例提供的一种云平台框图。
【具体实施方式】
[0047] 下面结合附图和实施例,对本发明的【具体实施方式】作进一步详细描述。以下实施 例用于说明本发明,但不用来限制本发明的范围。
[0048] 第一方面,本发明实施例提供了一种负载均衡方法,如图1所示,包括:
[0049]获取每个细粒度任务完成所需资源以及最晚完成时间,并按照最晚完成时间对全 部细粒度任务进行排序,以获取序列S;
[0050] 获取每个节点的实时负载度,并按照每个节点的实时负载度大小进行排序,以获 取序列SI;
[0051] 从序列Sl内选取节点分配给序列S内的每个细粒度任务,所分配的节点需要实时 负载度最小,且满足每个细粒度任务完成所需资源的需求。
[0052] 本发明实施例中,假设有m个细粒度任务:S1,s2,…sm,计算每个细粒度任务完成所 需资源和最晚完成时间,表示为:Sl(ri,tl),S2(r2,t2) ,以及计算所有细粒度任 务需要的资源总和R。
[0053] 实际应用中,节点NJj为正整数)每隔一定时间检查自身的实际负载度实际 负载度采用以下公式(1)计算:
[0055]公式(1)中,'y为实时负载度J1为权重系数,且〇< S1 <1也为第i个计算因素 ;η 为计算因素总数。
[0056]例如,本发明一实施例中,实时负载度的计算因素包括:CPU利用率E1、内存性能E2、 磁盘性能E3、网络性能E4和平均响应时间E5。因此实时负载度计算公式为:
[0058]为节省节点查询实时负载度所用时间,本发明实施例中,在从序列Sl内选取节点 分配给序列S内的每个细粒度任务,所分配的节点需要实时负载度最小,且满足每个细粒度 任务完成所需资源的需求的步骤之后,包括:
[0059]更新每个节点的实时负载度。
[0060]为保证在规定时间内完成每个细粒度任务,本发明实施例中根据每个细粒度任务 的最晚完成时间对所有细粒度任务进行时间次序排序,按照时间次序依次完成每个细粒度 任务,从而节约了任务的执