一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

最大可用副本数量确定方法、装置、程序、设备及介质与流程

2022-07-10 05:18:02 来源:中国专利 TAG:


1.本发明涉及云网络的最大可用副本数量确定处理技术,尤其涉及最大可用副本数量确定方法、装置、软件程序、电子设备及存储介质。


背景技术:

2.随着计算机技术的不断发展,云服务器(cvm cloud virtual machine)可以提供安全可靠的弹性计算服务,还可以提供不同的实例类型来满足用户特定的使用场景。这些实例类型由cpu、内存、存储和网络组成不同的组合,当云服务器的运行过程进行最大可用副本数量确定时,最大可用副本数量确定的速度直接影响云数据中心的资源利用率和用户体验。调度优先保障的是用户可以分配到资源,然后是如何最优的分配资源,即提高资源利用率。但是,相关技术中,多集群资源在进行任务处理时,需要利用最大可用副本数量来辅助决策,防止工作负载的副本组过多导致无法运行,提高多集群资源调度的准确性,保证云服务器计算的速度和可靠性。


技术实现要素:

3.有鉴于此,本发明实施例提供一种最大可用副本数量确定方法、装置、软件程序、电子设备及存储介质,能够通过优先队列集合对工作负载进行分配,得到工作负载的分配结果;根据工作负载的分配结果,确定多集群资源环境中的最大可用副本数量,提升最大可用副本数量确定的准确性和可靠性,提升集群资源的使用效率,同时可以防止工作负载的副本组过多导致无法运行,提高多集群资源调度的准确性,保证云服务器计算的速度和可靠性,提高用户的使用体验。
4.本发明实施例的技术方案是这样实现的:
5.本发明实施例提供了一种最大可用副本数量确定方法,所述方法包括:
6.获取多集群资源环境中的最大可用副本数量计算请求,
7.对所述最大可用副本数量计算请求进行解析,得到目标集群的副本组信息;
8.根据所述副本组中每一个工作负载的信息,计算所述工作负载对应的优先队列;
9.将每一个工作负载对应的优先队列进行组合,得到所述副本组中所有工作负载对应的优先队列集合;
10.通过所述优先队列集合对所述工作负载进行分配,得到所述工作负载的分配结果;
11.根据所述工作负载的分配结果,确定所述多集群资源环境中的最大可用副本数量。
12.本发明实施例还提供了一种最大可用副本数量确定装置,包括:
13.信息传输装置,用于获取多集群资源环境中的最大可用副本数量计算请求;
14.信息处理装置,用于对所述最大可用副本数量计算请求进行解析,得到目标集群的副本组信息;
15.所述信息处理装置,用于根据所述副本组中每一个工作负载的信息,计算所述工作负载对应的优先队列;
16.所述信息处理装置,用于将每一个工作负载对应的优先队列进行组合,得到所述副本组中所有工作负载对应的优先队列集合;
17.所述信息处理装置,用于通过所述优先队列集合对所述工作负载进行分配,得到所述工作负载的分配结果;
18.所述信息处理装置,用于根据所述工作负载的分配结果,确定所述多集群资源环境中的最大可用副本数量。
19.上述方案中,所述信息处理装置,用于对所述最大可用副本数量计算请求的标识进行解析,得到所述目标集群的名称以及副本数量信息;
20.所述信息处理装置,用于对所述最大可用副本数量计算请求的内容进行解析,得到所述副本组中的每一个副本的节点需求信息,其中,所述节点需求信息包括至少以下之一:
21.对所述目标集群节点的选择器组件的需求信息、对所述目标集群节点的亲和性需求信息和对所述目标集群节点的污点与容忍度需求信息;
22.所述信息处理装置,用于对所述最大可用副本数量计算请求的内容进行解析,得到所述副本组中的每一个副本的资源需求信息,其中,所述资源需求信息包括至少以下之一:
23.cpu核心数量需求信息、内存需求信息以及可扩展资源需求信息。
24.上述方案中,所述信息处理装置,用于当所述目标集群的名称与所述多集群资源环境中的集群资源不一致时,停止确定最大可用副本数量;或者
25.发出通知信息,以实现获取新的最大可用副本数量计算请求。
26.上述方案中,所述信息处理装置,用于确定与目标工作负载相匹配的目标节点;
27.所述信息处理装置,用于确定每一个目标节点可以产生的最大副本数量;
28.所述信息处理装置,用于根据所述最大副本数量,对一个目标节点进行排序,形成所述目标工作负载对应的优先队列;
29.所述信息处理装置,用于通过链表将不同目标工作负载对应的优先队列中的相同目标节点进行关联,得到伙伴节点。
30.上述方案中,所述信息处理装置,用于根据所述副本组中的每一个副本的节点需求信息,和所述副本组中的每一个副本的资源需求信息,对所述与目标工作负载对应的每一个目标节点进行遍历,确定与目标工作负载相匹配的目标节点。
31.上述方案中,所述信息处理装置,用于确定每一个目标节点中的处于运行状态的容器组;
32.所述信息处理装置,用于基于所述每一个目标节点的资源总量与所述容器组占用资源总量的差值,得到所述每一个目标节点的可用资源量;
33.所述信息处理装置,用于根据所述每一个目标节点的可用资源量,计算所述每一个目标节点可以产生的最大副本数量。
34.上述方案中,所述信息处理装置,用于确定目标工作负载的副本期望值;
35.所述信息处理装置,用于提取所述优先队列集合中提取任一优先队列中的一个处
理节点;
36.所述信息处理装置,用于计算目标工作负载在所述处理节点中的最大可用副本数量;
37.所述信息处理装置,用于当所述最大可用副本数量大于等于所述副本期望值时,将所述目标工作负载分配到所述处理节点中,并对所述优先队列集合中的伙伴节点位置进行调整;
38.所述信息处理装置,用于当所述最大可用副本数量小于所述副本期望值时,将所述目标工作负载分配到所述处理节点中,将所述目标工作负载分配到所述处理节点中,并对所述优先队列集合进行遍历,直至所述目标工作负载全部分配至所述优先队列集合中。
39.本发明实施例还提供了一种电子设备,所述电子设备包括:
40.存储器,用于存储可执行指令;
41.处理器,用于运行所述存储器存储的可执行指令时,实现前序的最大可用副本数量确定方法。
42.本发明实施例还提供了一种计算机可读存储介质,存储有可执行指令,所述可执行指令被处理器执行时实现前序的最大可用副本数量确定方法。
43.本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例所提供的最大可用副本数量确定方法。
44.本发明实施例具有以下有益效果:
45.本发明实施例通过获取多集群资源环境中的最大可用副本数量计算请求,对所述最大可用副本数量计算请求进行解析,得到目标集群的副本组信息;根据所述副本组中每一个工作负载的信息,计算所述工作负载对应的优先队列;将每一个工作负载对应的优先队列进行组合,得到所述副本组中所有工作负载对应的优先队列集合;通过所述优先队列集合对所述工作负载进行分配,得到所述工作负载的分配结果;根据所述工作负载的分配结果,确定所述多集群资源环境中的最大可用副本数量,由此,可以提升最大可用副本数量确定的准确性和可靠性,提升集群资源的使用效率,同时可以防止工作负载的副本组过多导致无法运行,提高多集群资源调度的准确性,保证云服务器计算的速度和可靠性,提高用户的使用体验。
附图说明
46.图1为本发明实施例提供的最大可用副本数量确定方法的使用场景示意图;
47.图2为本发明实施例提供的电子设备的组成结构示意图;
48.图3为本发明实施例提供的最大可用副本数量确定方法一个可选的流程示意图;
49.图4为本发明实施例中最大可用副本数量确定装置的架构示意图;
50.图5为本发明实施例提供的最大可用副本数量确定方法一个可选的流程示意图;
51.图6为本发明实施例中伙伴节点的组成示意图;
52.图7为本发明实施例提供的最大可用副本数量确定方法一个可选的流程示意图;
53.图8为本发明实施例提供的最大可用副本数量确定方法一个可选的流程示意图。
具体实施方式
54.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
55.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
56.对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
57.1)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
58.2)终端,包括但不限于:普通终端、专用终端,其中所述普通终端与发送通道保持长连接和/或短连接,所述专用终端与所述发送通道保持长连接。
59.3)客户端,终端中实现特定功能的载体,例如移动客户端(app)是移动终端中特定功能的载体,例如执行报表制作的功能或者进行报表展示的功能。
60.4)组件(component),是小程序的视图的功能模块,也称为前端组件,页面中的按钮、标题、表格、侧边栏、内容和页脚等,组件包括模块化的代码以便于在小程序的不同的页面中重复使用。
61.5)服务器集群(server cluste),指将很多服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。服务器集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个机器坏了整个系统还是能正常运行。在本技术中所提供的服务器集群硬盘故障处理方法中,可以应用于云服务器使用场景和分布式服务器使用场景,实现对不同使用场景中的服务器硬盘的状态检测与故障修复,具体来说,云服务器(cvm cloud virtual machine)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比传统的单一物理服务器更简单高效。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器供用户的业务进程使用,并存储云服务器用户的数据。而分布式服务器使用环境中用户的数据和程序可以不位于一个服务器上,而是分散到多个服务器中,同样的,分布式服务器的使用环境也需要配置大量的硬盘,也需要通过本技术所提供的服务器集群硬盘故障处理方法实现服务器硬盘的状态检测与故障修复。
62.6)容器集群管理系统kubernetes,可称k8s,是一款开源的容器操作平台,其可以实现将若干个容器组合成一个服务及动态地分配容器运行的主机等功能,为用户使用容器提供了极大的便利。通过kubernetes可以快速部署应用、快速扩展应用、无缝对接新的应用功能、优化硬件资源的使用。
63.节点是容器集群组成的基本元素。节点取决于业务,既可以是虚拟机,也可以是物理机。每个节点都包含运行容器组pod所需要的基本组件,包括 kubelet(容器管理组件)、kubeproxy(网络代理组件)等。
64.master节点(主节点)指的是集群控制节点,管理和控制整个集群,k8s的所有控制
命令都发给它,它负责具体的执行过程。master节点上运行的 kube-apiserver(资源访问组件)、kube-controller-mansger(运行管理控制器组件)和kube-scheduler(调度组件)通过不断与工作节点(node)上的kubelet 和kube-proxy进行通信来维护整个集群的健康工作状态。如果master节点的服务无法访问某个node,则会将该node标记为不可用,不再向其调度新建的pod (容器组)。但对master自身则需要进行额外监控,使master不成为集群的单故障点,所以对master服务也需要进行高可用部署。
65.除了master以外的节点被称为node或者worker节点(工作节点),可以在 master中使用节点查看命令(kubectl get nodes)查看集群中的node节点。每个 node节点都会被master节点分配一些工作负载(docker容器),当某个node 宕机时,该节点上的工作负载就会被master节点自动转移到其它节点上。
66.pod(容器组):kubernetes创建或部署的最小/最简单的基本单位
‑‑‑
容器组,一个pod代表集群上正在运行的一个微服务进程,且一个微服务进程封装一个提供微服务应用的边缘容器(也可以有多个边缘容器)、存储资源、一个独立的网络ip以及管理控制容器运行方式的策略选项。
67.7)工作负载:工作负载是一类应用程序,可以含有多个副本实例。
68.8)副本:工作负载的实例单元,每个副本实例都是一个独立的容器。
69.9)副本组:工作负载实例单元所构成的组合,一个副本组代表着多集群亲和调度的最小单位。
70.10)、node:集群节点,一般对应于一台物理机或虚拟机,是运行容器(副本)的基本单元。
71.在介绍本技术所提供的最大可用副本数量确定方法之前,首先对相关技术中的缺陷进行简要说明,在相关技术中,在进行云网络的多集群资源调度时通常使用以下方式:
72.1)、通过在多集群场景下,通过在工作负载被调度之前感知联邦集群上传的资源使用信息来对副本进行一次调度该方式的缺陷在于:仅以现有资源使用信息来进行调度,当工作负载的副本组过多时,云服务器集群无法运行,无法保证云服务器计算的速度和可靠性。
73.为了克服上述缺陷,本技术提供了一种最大可用副本数量确定方法、装置、软件程序、电子设备及存储介质,图1为本发明实施例提供的最大可用副本数量确定方法的使用场景示意图,参见图1,随着计算机技术的不断发展,云服务器(cloud virtual machine,cvm)可以提供安全可靠的弹性计算服务,还可以提供不同的实例类型来满足用户特定的使用场景。终端(包括终端10-1和终端 10-2)上设置有能够执行不同功能相应客户端其中,所属客户端为终端(包括终端10-1和终端10-2)通过网络300从相应的云服务器集群200中获取不同的信息,并可以在云服务器中部署不同的业务。终端通过网络300连接云服务器集群200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。云服务器所提供的这些实例类型由cpu、内存、存储和网络组成不同的组合,并将用户的业务数据存储在云服务器的硬盘中,但是在云服务器的运行中由于任务处理过程中会产生大量的资源碎片,造成资源的冗余,降低了云服务器网络的处理速度,影响任务处理速度,影响云服务器网络的使用效果。在本发明所提供的实施例中云服务器集群200中所运行的云服务器应用可以是在不同编程语言的软件代码环境中所编写的,代码对象可以是不同类型的
代码实体。例如,在c语言的软件代码中,一个代码对象可以是一个函数。在java语言的软件代码中,一个代码对象可以是一个类,ios端oc语言中可以是一段目标代码。在c 语言的软件代码中,一个代码对象可以是一个类或一个函数以执行来自于不同终端的处理指令。其中本技术中不再对名云服务器的编译环境的来源进行区分。
74.下面对本发明实施例的最大可用副本数量确定装置的结构做详细说明,最大可用副本数量确定装置可以各种形式来实施,如带有最大可用副本数量确定装置处理功能的专用终端,也可以为设置有最大可用副本数量确定装置处理功能的服务器,例如前序图1中的云服务器集群200。图2为本发明实施例提供的最大可用副本数量确定装置的组成结构示意图,可以理解,图2仅仅示出了最大可用副本数量确定装置的示例性结构而非全部结构,根据需要可以实施图2 示出的部分结构或全部结构。
75.本发明实施例提供的最大可用副本数量确定装置包括:至少一个处理器 201、存储器202、用户接口203和至少一个网络接口204。最大可用副本数量确定装置中的各个组件通过总线系统205耦合在一起。可以理解,总线系统205 用于实现这些组件之间的连接通信。总线系统205除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统205。
76.其中,用户接口203可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
77.可以理解,存储器202可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。本发明实施例中的存储器202能够存储数据以支持终端(如10-1)的操作。这些数据的示例包括:用于在终端(如10-1)上操作的任何计算机程序,如操作系统和应用程序。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务,应用程序可以包含各种应用程序,其中,本发明实施例中国的终端包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等。本发明实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶等,通过不同终端执行本发明所提供的最大可用副本数量确定方法时,具体的使用场景本发明不做限制。
78.在一些实施例中,本发明实施例提供的最大可用副本数量确定装置可以采用软硬件结合的方式实现,作为示例,本发明实施例提供的最大可用副本数量确定装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的最大可用副本数量确定方法。例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,application specific integratedcircuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field-programmable gate array)或其他电子元件。
79.作为本发明实施例提供的最大可用副本数量确定装置采用软硬件结合实施的示例,本发明实施例所提供的最大可用副本数量确定装置可以直接体现为由处理器201执行的软件模块组合,软件模块可以位于存储介质中,存储介质位于存储器202,处理器201读取存储器202中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器201以及连接到总线205的其他组件)完成本发明实施例提供的最大可用副本数量确定方法。
80.作为示例,处理器201可以是一种集成电路芯片,具有信号的处理能力,例如通用
处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
81.作为本发明实施例提供的最大可用副本数量确定装置采用硬件实施的示例,本发明实施例所提供的装置可以直接采用硬件译码处理器形式的处理器201 来执行完成,例如,被一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field-programmable gate array)或其他电子元件执行实现本发明实施例提供的最大可用副本数量确定方法。
82.本发明实施例中的存储器202用于存储各种类型的数据以支持最大可用副本数量确定装置的操作。这些数据的示例包括:用于在最大可用副本数量确定装置上操作的任何可执行指令,如可执行指令,实现本发明实施例的从最大可用副本数量确定方法的程序可以包含在可执行指令中。
83.在另一些实施例中,本发明实施例提供的最大可用副本数量确定装置可以采用软件方式实现,图2示出了存储在存储器202中的最大可用副本数量确定装置,其可以是程序和插件等形式的软件,并包括一系列的模块,作为存储器 202中存储的程序的示例,可以包括最大可用副本数量确定装置,最大可用副本数量确定装置中包括以下的软件模块信息传输模块2081和信息处理模块2082。当最大可用副本数量确定装置中的软件模块被处理器201读取到ram中并执行时,将实现本发明实施例提供的最大可用副本数量确定方法,其中,最大可用副本数量确定装置中各个软件模块的功能,包括:
84.信息传输装置2081,用于获取多集群资源环境中的最大可用副本数量计算请求。
85.信息处理装置2082,用于对所述最大可用副本数量计算请求进行解析,得到目标集群的副本组信息。
86.所述信息处理装置2082,用于根据所述副本组中每一个工作负载的信息,计算所述工作负载对应的优先队列。
87.所述信息处理装置2082,用于将每一个工作负载对应的优先队列进行组合,得到所述副本组中所有工作负载对应的优先队列集合。
88.所述信息处理装置2082,用于通过所述优先队列集合对所述工作负载进行分配,得到所述工作负载的分配结果。
89.所述信息处理装置2082,用于根据所述工作负载的分配结果,确定所述多集群资源环境中的最大可用副本数量。
90.根据图2所示的电子设备,在本技术的一个方面中,本技术还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术所提供的最大可用副本数量确定方法的各种可选实现方式中所提供的方法。
91.参考图3,图3为本发明实施例提供的最大可用副本数量确定方法一个可选的流程示意图,可以理解地,图3所示的步骤可以由运行最大可用副本数量确定装置的各种电子设
备执行,例如可以是如带有最大可用副本数量确定功能的专用终端、服务器或者服务器集群控制器、云网络服务器的控制终端。其中,带有最大可用副本数量确定装置的专用终端可以封装于图1所示的云服务器集群200中,以执行前序图2所示的最大可用副本数量确定装置中的相应软件模块。下面针对图3示出的步骤进行说明。
92.步骤301:最大可用副本数量确定装置获取多集群资源环境中的最大可用副本数量计算请求。
93.在本发明的一些实施例中,对于云服务器集群的环境,最大可用副本数量确定装置可以包括不同类型的组件,例如包括:控制器组件、调度器组件以及估计器组件,具体来说,参考图4,图4为本发明实施例中最大可用副本数量确定装置的架构示意图,其中,控制器组件用于检测所有工作负载,调度器组件用于持续检测所有工作负载,估计器组件用于器检测一个子集群的集群副本和节点以统计集群资源使用情况,控制器组件、调度器组件、估计器组件以及用户创建的工作负载共同构成了控制平面。
94.在多集群资源环境中,在亲和调度场景下当多集群调度器调度之前,通过本技术所提供的最大可用副本数量确定方法可以计算集群最大可用副本组数,以此结果作为调度辅助决策。调度器可以精确感知到每一个集群最大能够生产的副本组数,从而杜绝了创建过多副本导致的副本资源不足从而无法生产的情况。同时,调度器可以各个集群计算出来的最大可用副本组数为权重比例,动态分配副本到不同的集群,从而实现多集群副本负载均衡的功能。
95.其中,本发明实施例可结合云技术实现,云技术(cloud technology)是指在广域网或局域网内将硬件、软件及网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术,也可理解为基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术及应用技术等的总称。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站,因此云技术需要以云计算作为支撑。
96.需要说明的是,云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池平台,简称云平台,一般称为基础设施即服务(iaas,infrastructure as a service),在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(可为虚拟化机器,包含操作系统)、存储设备和网络设备。对于用户使用云服务器存储数据或者部署不同应用进程时,检测服务器集群硬盘的运行参数,可以及时的发现可能出现的服务器集群硬盘故障,避免由于出现失效警告的服务器集群硬盘故障造成的用户数据丢失。
97.云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部
分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(id,id entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列 (raid,redundant array of independent disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
98.以通过云服务器网络实现本技术所提供的最大可用副本数量确定方法为例,通过优先队列集合对工作负载进行分配,得到工作负载的分配结果;根据工作负载的分配结果,确定多集群资源环境中的最大可用副本数量,由此,保障工作负载的可用性,同时提升最大可用副本数量确定的准确性,提升集群资源的使用效率。
99.其中,应用于云产品时,云产品的前端可以为web ui组件,用于接收用户填写的spark相关参数,并根据该spark相关参数生成作业数据。其中,集群管理器(cluster manager)即可以是yarn、mesos或kubernetes等开源最大可用副本数量确定平台。spark本身已经支持了这些开源平台,即spark组件和 clustermanager组件间的协议是兼容的。driver是作业驱动器,work node是工作节点,executor是任务执行组件,task是最小的执行单位。进一步地,结构化数据的程序包(spark sql)是spark用来操作结构化数据的程序包,通过该 spark sql,可以使用sql语言来查询数据,该spark sql支持多种数据源,比如数据仓库工具(hive)表等。该流式计算的组件是spark提供的对实时数据进行流式计算的组件,提供了用来操作数据流的应用程序编程接口(api applicationprogramming interface)。
100.步骤302:最大可用副本数量确定装置对所述最大可用副本数量计算请求进行解析,得到目标集群的副本组信息。
101.在本发明的一些实施例中,对所述最大可用副本数量计算请求进行解析,得到目标集群的副本组信息,可以通过以下方式实现:
102.对所述最大可用副本数量计算请求的标识进行解析,得到所述目标集群的名称以及副本数量信息;对所述最大可用副本数量计算请求的内容进行解析,得到所述副本组中的每一个副本的节点需求信息,其中,所述节点需求信息包括至少以下之一:对所述目标集群节点的选择器组件的需求信息、对所述目标集群节点的亲和性需求信息和对所述目标集群节点的污点与容忍度需求信息;对所述最大可用副本数量计算请求的内容进行解析,得到所述副本组中的每一个副本的资源需求信息,其中,所述资源需求信息包括至少以下之一:cpu核心数量需求信息、内存需求信息以及可扩展资源需求信息。其中亲和性需求信息是指应用实例与其它应用实例之间的亲和度规则;对于具有亲和性的应用实例,可部署于同一计算节点;对于不具有亲和性的应用实例,不能部署于同一计算节点。标签用于表明应用实例与其它应用实例之间的亲和度。
103.容忍度则为在应用实例(如pod)上的键值型的属性数据,用于配置其可容忍的计算节点的污点,而且调度器仅可将应用实例调度至该应用实例能够容忍节点污点的计算节点上。
104.在本发明的一些实施例中,目标集群的副本组信息还可以包括:标签(label) 信息、污点(taint)信息、工作负载(workload)信息、持久卷声明(pvc)以及持久卷(pv)信息等。
105.其中,标签(label)信息用于标识服务器集群200对应用实例(pod)是否有亲和度。添加有标签的计算服务器集群200对应用实例具有亲和度,即可在添加有标签的服务器集群200上部署应用实例。污点为定义在计算节点之上的键值性属性数据,用于让计算节点拒绝将应用实例调度运行于其上,除非该应用实例具有接纳计算节点污点的容忍度。工作负载(workload)信息可包括: statefulset、deployment、replicaset、daemonset等资源。这些资源信息包含了应用实例数量以及应用实例的亲和性规则等。只有与workload的亲和性规则适配的应用实例才可部署在该计算节点上。持久卷(pv)信息,包括节点亲和度 (nodeaffinity信息,直接影响调度结果,即如果待部署应用实例需要使用持久卷资源,其节点亲和度需要与pv信息中包含的节点亲和度适配,该应用实例才可部署在本计算节点上。上述持久卷声明(pvc)是指对pv的声明信息,可包括:被选择节点(selected-node)信息,直接影响调度结果。
106.举例来说,副本组含有的工作负载数量为1,副本节点需求数量为c1,副本资源需求数量为r1,副本个数数量为n1;含有工作负载数量为2,副本节点需求数量为c2,副本资源需求数量为r2,副本个数数量为n2。则两个工作负载一起构成了一个副本组,也就是一个多集群亲和调度的最小单位。
107.在本发明的一些实施例中,当所述目标集群的名称与所述多集群资源环境中的集群资源不一致时,停止确定最大可用副本数量;或者发出通知信息,以实现获取新的最大可用副本数量计算请求。由此,可以保证多集群资源优先对符合要求的工作负载进行处理,减少云服务器数据的处理等待时间。
108.步骤303:最大可用副本数量确定装置根据所述副本组中每一个工作负载的信息,计算所述工作负载对应的优先队列。
109.其中,工作负载(workload)的信息可包括:statefulset、deployment、 replicaset、daemonset等资源。这些资源信息包含了应用实例数量以及应用实例的亲和性规则等。只有与workload的亲和性规则适配的应用实例才可部署在该计算节点上。kubernetes集群中的资源对象可以是kubernetes集群中的应用 (app),例如,部署(deployment)、状态副本集(statefulset),以及路由(ingress)、容器组(pod)、容器(container)、服务(service)、复制控制器(rc, replicationcontroller)等资源中的一种或多种。
110.下面通过图5进一步说明计算所述工作负载对应的优先队列的工作过程。
111.在本发明的一些实施例中,参考图5,图5为本发明实施例提供的最大可用副本数量确定方法一个可选的流程示意图,可以理解地,图5所示的步骤可以由运行最大可用副本数量确定装置的各种电子设备执行,例如可以是如带有最大可用副本数量确定功能的专用终端、服务器或者服务器集群控制器、云网络服务器的控制终端。其中,带有最大可用副本数量确定装置的专用终端可以封装于图1所示的云服务器集群200中,以执行前序图2所示的最大可用副本数量确定装置中的相应软件模块。下面针对图5示出的步骤进行说明。
112.步骤501:最大可用副本数量确定装置确定与目标工作负载相匹配的目标节点。
113.在本发明的一些实施例中,定与目标工作负载相匹配的目标节点,可以通过以下方式实现:
114.根据所述副本组中的每一个副本的节点需求信息,和所述副本组中的每一个副本的资源需求信息,对所述与目标工作负载对应的每一个目标节点进行遍历,确定与目标工作负载相匹配的目标节点。其中,具体步骤为1):可以根据副本对于节点的选择器要求,从集群所有节点中找出标签满足选择器的节点, 2):根据副本对于节点的亲和性要求,从1)的候选节点中找出标签满足亲和性集合表达式的节点。3):根据副本污点和容忍度要求,从2)的候选节点中找出污点满足副本容忍度的节点。4):从3)的候选节点中找出运行正常且可以进行调度的节点作为目标节点。
115.步骤502:最大可用副本数量确定装置确定每一个目标节点可以产生的最大副本数量。
116.在本发明的一些实施例中,确定每一个目标节点可以产生的最大副本数量,可以通过以下方式实现:
117.确定每一个目标节点中的处于运行状态的容器组;基于所述每一个目标节点的资源总量与所述容器组占用资源总量的差值,得到所述每一个目标节点的可用资源量;根据所述每一个目标节点的可用资源量,计算所述每一个目标节点可以产生的最大副本数量。
118.步骤503:最大可用副本数量确定装置根据所述最大副本数量,对一个目标节点进行排序,形成所述目标工作负载对应的优先队列。
119.步骤504:最大可用副本数量确定装置通过链表将不同目标工作负载对应的优先队列中的相同目标节点进行关联,得到伙伴节点。
120.在本发明的一些实施例中,参考图6,图6为本发明实施例中伙伴节点的组成示意图,其中,首先可以根据每个节点最大可生产副本的数量多少作为排序条件,依次降序排列,将所有节点入队形成目标优先队列。之后在目标优先队列中,对于其中所有的节点,寻找到其余优先队列相同名称的节点,并使用链表关联起来,形成多个伙伴(buddy),如图6所示,一个副本组含有工作负载 a、b、c,则需要生成对应的优先队列a、b、c,每个优先队列中节点排序的规则是根据节点能够运行的最大可用副本数从小到大排序,如优先队列a中节点排序规则为工作负载a在节点上能够运行的最大副本数从小到大排序。图6 中标号相同(标号分别为1、2、3)的代表同一个节点,用链表将其关联起来,形成多个伙伴链表。
121.步骤304:最大可用副本数量确定装置将每一个工作负载对应的优先队列进行组合,得到所述副本组中所有工作负载对应的优先队列集合。
122.步骤305:最大可用副本数量确定装置通过所述优先队列集合对所述工作负载进行分配,得到所述工作负载的分配结果。
123.步骤306:最大可用副本数量确定装置根据所述工作负载的分配结果,确定所述多集群资源环境中的最大可用副本数量。
124.其中,以k8s为例,kubernetes集群一般包括主节点(master),以及分别与主节点通信连接的多个计算节点(node),其中,主节点用于管理和控制多个计算节点,计算节点作为工作负载节点,其包含直接部署在节点中的原应用程序和多个容器组(pod),每个容器组中封装有一个或多个用于承载应用程序的容器 (container),pod是kubernetes的基本操作单元,是最小的可创建、调试和管理的部署单元。工作副本的类型为资源类型
(deployment类型),可以部署类型任务,deployment集成了上线部署、滚动升级、创建副本、暂停上线任务,恢复上线任务,回滚到以前某一版本(成功/稳定)的deployment等功能,在某种程度上,deployment可以实现无人值守的上线,大大降低上线过程的复杂沟通、操作风险,对于deployment类型的工作副本,可以首先确定deployment类型关联的replicaset对象列表,然后通过副本控制器replicaset从缓存中找到所关联的pod列表,其中,replicaset是kubernetes中的一种副本控制器,主要作用是控制由replicaset管理的pod,使pod副本的数量始终维持在预设的个数。
125.在本发明的一些实施例中,在通过优先队列集合对工作负载进行分配时,参考图7,图7为本发明实施例提供的最大可用副本数量确定方法一个可选的流程示意图,可以理解地,图7所示的步骤可以由运行最大可用副本数量确定装置的各种电子设备执行,例如可以是如带有最大可用副本数量确定功能的专用终端、服务器或者服务器集群控制器、云网络服务器的控制终端。其中,带有最大可用副本数量确定装置的专用终端可以封装于图1所示的云服务器集群200 中,以执行前序图2所示的最大可用副本数量确定装置中的相应软件模块。下面针对图7示出的步骤进行说明。
126.步骤701:最大可用副本数量确定装置确定目标工作负载的副本期望值。
127.步骤702:最大可用副本数量提取所述优先队列集合中提取任一优先队列中的一个处理节点。
128.步骤703:最大可用副本数量计算目标工作负载在所述处理节点中的最大可用副本数量。
129.步骤704:最大可用副本数量当所述最大可用副本数量大于等于所述副本期望值时,将所述目标工作负载分配到所述处理节点中,并对所述优先队列集合中的伙伴节点位置进行调整。
130.步骤705:最大可用副本数量当所述最大可用副本数量小于所述副本期望值时,将所述目标工作负载分配到所述处理节点中,将所述目标工作负载分配到所述处理节点中,并对所述优先队列集合进行遍历,直至所述目标工作负载全部分配至所述优先队列集合中。
131.在本发明的一些实施例中,目标工作负载在所提取的节点上的最大可用副本数,记为rm,目标工作负载的期望副本数为r。
132.当rm大于等于r时,则将r个工作负载分配到该节点上,并重新加入目标优先队列,同时根据伙伴链表调整链表上所有其他伙伴节点在其对应优先队列中的位置。当rm小于r,则rm将个工作负载分配到该节点上,同时根据伙伴链表调整链表上所有其他伙伴节点在其对应优先队列中的位置,并令r=r-rm然后优先队列集合进行遍历,直至所述目标工作负载全部分配至所述优先队列集合中。
133.由此,能够每次从队列中优先将最大可用副本数较少的节点优先填满,然后将工作负载分配到对应的节点上,当通过优先队列集合无法对工作负载进行分配时,即可以确定达到最大可用副本数量,此时的可用副本数量即为多集群资源环境中的最大可用副本数量。
134.在本发明的一些实施例中,由于集群资源中包括多个不同的服务器集群,因此可以将最大可用副本组数权重比例分发副本组到不同的集群中,实现多集群的负载均衡,保
证用户获得稳定的云服务器集群计算服务。
135.为了更好地说明本技术提供的最大可用副本数量确定方法的工作过程,下面以集群资源管理器为即时通讯软件服务器的资源管理器为例,对本发明所涉及的最大可用副本数量确定方法进行说明,其中,结合图1所示的本发明实施例的最大可用副本数量确定方法的使用环境示意图;终端(包括终端11-1和终端11-2)上设置有能够执行不同功能相应客户端,其中,所属客户端为终端(包括终端11-1和终端11-2)通过网络300从相应的云服务器集群200中通过即时通讯软件应用程序获取不同的信息进行浏览,终端通过网络300连接云服务器集群200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输,其中,云服务器集群200运行与即时通讯软件应用程序相匹配的集群资源管理器,实现资源的调度,终端(例如图1中的终端10-1和终端10-2)上还可以设置有能够显示相应进行金融借贷的软件的客户端,例如虚拟资源或者实体资源进行金融活动或者通过虚拟资源借贷的客户端或插件,用户通过相应的客户端可以获向金融机构或平台进行借贷(例如即时通讯客户端财付通支付或者即时通讯客户端中的进行资金借贷购买物品的进程);终端通过网络300连接云服务器集群200,网络300可以是广域网或者局域网,又或者是二者的组合,使用无线链路实现数据传输。服务器(例如图1中的服务器300) 银行、证券、互金等提供支付、借贷、理财等金融业务的企业的服务器。当用户需要办理相关金融业务的用户使用客户端设备访问企业的客户服务器提供的服务时,客户服务器通过触发用户终端即时通讯客户端中的小程序可以发出支付任务,于任务数量多,因此,服务器集群200可以为多集群环境,参考图8,图8为本发明实施例提供的最大可用副本数量确定方法一个可选的流程示意图,最大可用副本数量确定的架构如图4所示,下面针对图8示出的步骤进行说明。
136.步骤801:获取最大可用副本组数计算请求。
137.步骤802:判断请求中的集群名称是否与集群名称一致,若一致则进入步骤 803,不一致则返回错误提示。
138.步骤803:根据副本组中的每一个工作负载,都生成对应的优先队列,所有优先队列组合形成优先队列集合。
139.步骤804:设最大可用副本组数group=0。
140.步骤805:设索引k=1。
141.步骤806:从第k个优先队列中分配第k个工作负载,若成功则转到步骤8 07,否则转到步骤809。
142.步骤807:k=k 1。
143.步骤808:判断k是否大于优先队列的长度,若是则令group=group 1,并转到步骤805,否则转到步骤806。
144.步骤809:最终得到集群最大可用副本组数group。
145.由于即时通讯软件的服务器集群资源中包括多个不同的服务器集群,因此可以将最大可用副本组数group按照每一个服务器集群的权重比例分发到不同的集群中,实现多集群的负载均衡,保证用户获得稳定的云服务器集群计算服务,避免大量用户通过即时通讯软件进行支付操作时,出现操作等待时间过长以及崩溃的问题,提升多集群资源调度的准确性。
146.本发明具有以下有益技术效果:
147.本发明通过获取多集群资源环境中的最大可用副本数量计算请求,对所述最大可用副本数量计算请求进行解析,得到目标集群的副本组信息;根据所述副本组中每一个工作负载的信息,计算所述工作负载对应的优先队列;将每一个工作负载对应的优先队列进行组合,得到所述副本组中所有工作负载对应的优先队列集合;通过所述优先队列集合对所述工作负载进行分配,得到所述工作负载的分配结果;根据所述工作负载的分配结果,确定所述多集群资源环境中的最大可用副本数量,由此,可以提升最大可用副本数量确定的准确性和可靠性,提升集群资源的使用效率,同时可以防止工作负载的副本组过多导致无法运行,提高多集群资源调度的准确性,保证云服务器计算的速度和可靠性,提高用户的使用体验。
148.以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献