CN107992351B - 一种硬件资源分配方法及装置、电子设备 - Google Patents

一种硬件资源分配方法及装置、电子设备 Download PDF

Info

Publication number
CN107992351B
CN107992351B CN201610950728.XA CN201610950728A CN107992351B CN 107992351 B CN107992351 B CN 107992351B CN 201610950728 A CN201610950728 A CN 201610950728A CN 107992351 B CN107992351 B CN 107992351B
Authority
CN
China
Prior art keywords
software service
deployment group
machines
mixed deployment
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610950728.XA
Other languages
English (en)
Other versions
CN107992351A (zh
Inventor
张鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610950728.XA priority Critical patent/CN107992351B/zh
Publication of CN107992351A publication Critical patent/CN107992351A/zh
Application granted granted Critical
Publication of CN107992351B publication Critical patent/CN107992351B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种硬件资源分配方法及装置、电子设备;所述硬件资源分配方法,包括:获取云产品的结构信息以及云产品中软件服务的属性数据;所述结构信息包括所述云产品所包含的集群cluster、以及集群包含的软件服务;所述软件服务的属性数据至少包括软件服务的需求数据;根据所述软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源。本申请能够自动将产品中的软件服务映射到真实的硬件资源上。

Description

一种硬件资源分配方法及装置、电子设备
技术领域
本发明涉及领域,尤其涉及一种硬件资源分配方法及装置、电子设备。
背景技术
云平台建设需要各种各样的软件服务,不同的软件服务需要部署在不同的硬件资源上,对硬件机器的计算资源、存储资源、网络资源等有不同的要求;另外,随着虚拟化技术的日益发展和在实施、运维成本方面的考虑,将软件服务虚拟化后打包部署在硬件机器上的技术手段越发通用和必要。此外,随着当今对云平台对分布式软件高可用性的需求日益普遍,种种因素使得软件在硬件上的发布、部署变得越发复杂。软件和硬件之间的硬件关系需要在经济性、高可用性、可维护性之间找到一个平衡点。
目前云平台在部署过程中,首先需要为各个软件服务指定所部署在的硬件类型,包括但不限于计算,存储、网络资源的匹配。为了节省成本,在条件允许的条件下,需要将多个软件服务部署在同一硬件服务器上。另外,随着如今虚拟化技术的发展,软件服务到硬件资源的映射上可能还会间隔一层虚拟化层;并且在分布式软件的部署过程中,软件服务的高可用性也是必须深入考虑的因素之一。
在一种解决方案中,是人工完成软件服务到硬件资源的映射过程,人工计算出资源分配和高可用性部署的矩阵结构,为了节省成本,可能会手工将一些软件部署在相同服务器上。该解决方案工作量大,细节较多,很容易出现错误,需要不断的调整,甚至牺牲一些指标。
在另一种解决方案中,由软件开发者直接自动化完成自己所开发的软件服务到硬件资源的映射,部署,发布流程,也就是单独规划一个软件服务。这种解决方案不能全局整体上进行规划,不同的软件服务间的协同也未能考虑到,同时人员流动因素也会影响到云平台的建设。
还有一种解决方案中,会统一规划云平台中的软件服务,但这些方法大多在统一规划的前提下,仅仅实现了单一软件服务到硬件资源的映射,或者多个混合部署的软件服务映射到一台指定的硬件服务器,没有考虑到分层次跨软件类别地通过虚拟化的技术,实现多层次软、硬件资源的规划映射。
上述解决方案均未达到经济性、高可用性、可维护性件的平衡;而且自动化程度低,需要大量的人工介入操作。
发明内容
本申请提供一种硬件资源分配方法及装置、电子设备,能够自动将产品中的软件服务映射到真实的硬件资源上。
本申请采用如下技术方案。
一种硬件资源分配方法,包括:
获取云产品的结构信息以及云产品中软件服务的属性数据;所述结构信息包括所述云产品所包含的集群cluster、以及集群cluster包含的软件服务;所述软件服务的属性数据至少包括软件服务的需求数据;
根据所述软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源。
可选地,所述软件服务的需求数据包括:软件服务所需机器的型号、操作系统、模板、硬件资源的参数。
可选地,所述根据软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源包括:
将用于提供硬件资源的机器按照型号分成多个队列,按照所能提供的硬件资源的参数从小到大排序;
对于各软件服务,分别在该软件服务的需求数据中的型号所对应的队列中,按照机器的排列顺序为该软件服务分配操作系统、模板、硬件资源的参数满足该软件服务的需求数据的机器;将各软件服务分别映射到所分配的机器提供的硬件资源上。
可选地,所述软件服务的属性信息还包括混合部署组的信息;所述混合部署组是指能部署在相同硬件资源上的软件服务;
所述根据软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源包括:
根据所述结构信息和混合部署组的信息,确定出所述云产品中所包含的混合部署组;根据所述软件服务的需求数据,确定各混合部署组的需求数据;
按照预定规则,根据各混合部署组的需求数据分别为各混合部署组在资源池中分配硬件资源。
可选地,所述软件服务的属性数据还包括:软件服务所包含的节点数;
所述按照预定规则,根据各混合部署组的需求数据分别为各混合部署组在资源池中分配硬件资源包括:
按照预定规则分别为每个混合部署组分配资源池中的机器;其中,为一个混合部署组分配的机器的数量MT_count(group)=SR_count(max)+n,其中SR_count(max)等于该混合部署组内包含节点数最多的软件服务所包含的节点数,n是当SR_count(max)个机器所提供的硬件资源不满足该混合部署组的需求数据时,补充的机器的个数;
分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上。
可选地,分配给一个混合部署组的不同机器与不同的接入层交换机相连。
可选地,所述软件服务的属性数据还包括:
软件服务的角色信息;所述角色信息用于指示软件服务的种类是服务节点或管控节点。
可选地,分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上包括:
将各混合部署组中种类为服务节点的软件服务直接映射到所分配的机器对应的物理服务器上;
将各混合部署组中种类为管控节点的软件服务映射到所分配的机器转换成的虚拟机上,将所述虚拟机映射到作为宿主机的物理服务器上。
可选地,所述将虚拟机映射到作为宿主机的物理服务器上包括:
将作为宿主机的物理服务器分为多组,组的数量为所述云产品所包含的所有集群cluster下的各堆heap中包含虚拟机最多的堆heap中的虚拟机数;其中,一个堆heap包含一个混合部署组中种类为管控节点的软件服务所映射到的虚拟机;
将所述云产品的各堆heap中的虚拟机分别映射到各组作为宿主机的物理服务器上,其中,同一个堆heap中的不同虚拟机映射到不同组的物理服务器上。
可选地,不同组的物理服务器分别连接不同的接入层交换机。
一种硬件资源分配装置,包括:
获取模块,用于获取云产品的结构信息以及云产品中软件服务的属性数据;所述结构信息包括所述云产品所包含的集群cluster、以及集群cluster包含的软件服务;所述软件服务的属性数据至少包括软件服务的需求数据;
分配模块,用于根据所述软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源。
可选地,所述软件服务的需求数据包括:软件服务所需机器的型号、操作系统、模板、硬件资源的参数。
可选地,所述分配模块根据所述软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源包括:
所述分配模块将用于提供硬件资源的机器按照型号分成多个队列,按照所能提供的硬件资源的参数从小到大排序;对于各软件服务,分别在该软件服务的需求数据中的型号所对应的队列中,按照机器的排列顺序为该软件服务分配操作系统、模板、硬件资源的参数满足该软件服务的需求数据的机器;分别将各软件服务映射到所分配的机器提供的硬件资源上。
可选地,所述软件服务的属性信息还包括混合部署组的信息;所述混合部署组是指能部署在相同硬件资源上的软件服务;
所述分配模块根据软件服务的属性数据,按照预定规则为软件服务分配满足需求数据的硬件资源包括:
所述分配模块根据所述结构信息和混合部署组的信息,确定出所述云产品中所包含的混合部署组;根据所述软件服务的需求数据,确定各混合部署组的需求数据;按照预定规则,根据各混合部署组的需求数据分别为各混合部署组在资源池中分配硬件资源。
可选地,所述软件服务的属性数据还包括:软件服务所包含的节点数;
所述分配模块按照预定规则,根据各混合部署组的需求数据分别为各混合部署组在资源池中分配硬件资源包括:
按照预定规则分别为每个混合部署组分配资源池中的机器;其中,为一个混合部署组分配的机器的数量MT_count(group)=SR_count(max)+n,其中SR_count(max)等于该混合部署组内包含节点数最多的软件服务所包含的节点数,n是当SR_count(max)个机器所提供的硬件资源不满足该混合部署组的需求数据时,补充的机器的个数;分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上。
可选地,分配给一个混合部署组的不同机器与不同的接入层交换机相连。
可选地,所述软件服务的属性数据还包括:
软件服务的角色信息;所述角色信息用于指示软件服务的种类是服务节点或管控节点。
可选地,所述分配模块分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上包括:
所述分配模块将各混合部署组中种类为服务节点的软件服务直接映射到所分配的机器对应的物理服务器上;将各混合部署组中种类为管控节点的软件服务映射到所分配的机器转换成的虚拟机上,将所述虚拟机映射到作为宿主机的物理服务器上。
可选地,所述分配模块将虚拟机映射到作为宿主机的物理服务器上包括:
所述分配模块将作为宿主机的物理服务器分为多组,组的数量为所述云产品所包含的所有集群cluster下的各堆heap中包含虚拟机最多的堆heap中的虚拟机数;其中,一个堆heap包含一个混合部署组中种类为管控节点的软件服务所映射到的虚拟机;将所述云产品的各堆heap中的虚拟机分别映射到各组作为宿主机的物理服务器上,其中,同一个堆heap中的不同虚拟机映射到不同组的物理服务器上。
可选地,不同组的物理服务器分别连接不同的接入层交换机。
一种用于进行硬件资源分配的电子设备,包括:存储器和处理器;
所述存储器用于保存用于进行硬件资源分配的程序;所述用于进行硬件资源分配的程序在被所述处理器读取执行时,执行以下操作:
获取云产品的结构信息以及云产品中软件服务的属性数据;所述结构信息包括所述云产品所包含的集群cluster、以及集群cluster包含的软件服务;所述软件服务的属性数据至少包括软件服务的需求数据;
根据所述软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源。
本申请包括以下优点:
本申请至少一个实施例可以根据获取的云产品的信息(结构信息、软件服务的属性数据),自动进行硬件资源的分配,从而将产品中的软件服务映射到真实的硬件资源上;其中,所述软件服务可以是一个软件应用(App),也可以是多个相互有依赖关系的App,即必须作为一个整体进行部署的App;只需要按照预定的数据结构填写好云产品的上述信息使调度设备能够读取,并制定好预定规则保存在调度设备中,就可以不再需要人工参与,由调度设备自动完成剩余的硬件资源分配过程,自动化程度高,分配效率高,可维护性好,为云产品的自运行,自部署,自维护、以及后续的自运维,自动化扩容、升级提供了可能性;调度设备可以从全局角度进行规划,因此分配结果更加合理、准确。
本申请实施例的一种实现方式中,通过混合部署组将多个软件服务部署在同一机器上,可以提高硬件资源利用率,降低云平台建设成本。
本申请实施例的一种实现方式中,在部署时通过虚拟化技术实现对硬件使用率的压缩,从而能够进一步节省云平台的建设成本。
本申请实施例的一种实现方式中,分配给同一混合部署组的机器连接不同接入层交换机,这样互斥部署能够提高云平台的容错能力。
当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有优点。
附图说明
图1是实施例一的硬件资源分配方法的流程图;
图2是实施例一中需求数据的示意图;
图3是实施例一中产品基线所表示的产品结构的示意图;
图4是实施例二中硬件资源分配装置的示意图。
具体实施方式
下面将结合附图及实施例对本申请的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本申请实施例以及实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在一种配置中,进行硬件资源分配的计算设备可包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存(memory)。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。内存可能包括模块1,模块2,……,模块N(N为大于2的整数)。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
实施例一、一种硬件资源分配方法,如图1所示,包括步骤S110~S120:
S110、获取云产品的结构信息以及云产品中软件服务的属性数据;所述结构信息包括所述云产品所包含的集群(cluster)、以及集群包含的软件服务;所述软件服务的属性数据至少包括软件服务的需求数据;
S120、根据所述软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源。
本实施例的方法可以但不限于由云平台中的调度设备完成。调度设备可以是一个新的设备,也可以复用已有的设备。调度设备可以为单台设备,也可以是分布式设备。
本实施例中,可以将所有能提供硬件资源的机器放在一个资源池中,分配时从资源池中找到满足软件服务的需求数据的机器分配给软件服务,将软件服务映射到所分配的机器所提供的硬件资源上,从而完成硬件资源的分配。
本实施例中,可以根据获取的云产品的信息(结构信息、软件服务的属性数据),自动进行硬件资源的分配,从而将产品中的软件服务映射到真实的硬件资源上;只需要按照预定的数据结构填写云产品的结构信息和软件服务的属性数据,以使调度设备能够读取,并制定好预定规则保存在调度设备中,就可以不再需要人工参与,由调度设备自动完成剩余的硬件资源分配过程,自动化程度高,分配效率高,可维护性好;调度设备可以从全局角度进行规划,因此分配结果更加合理、准确。
本实施例中,可以对云产品进行抽象,通过数据描述语言对云产品的结构信息和软件服务的属性数据进行定义,可以但不限于采用Yaml数据描述语言,也可以采用其它机器可读的任一种描述语言,如json,xml,html等。
本实施例中,云产品(比如但不限于云平台)可以包括一个或多个功能(fearture),feature是用户可见的云产品功能,例如云服务器(ecs)固态硬盘(SolidState Drives,ssd)实例、ecs串行高级技术附件(Serial Advanced TechnologyAttachment,sata)实例。每个feature可以跨可用区(zone)部署,每个可用区中可以包含一个或多个cluster,每个cluster可以包含一个或多个服务(service),每个service可以包含一个或多个软件服务(本文也称为ServerRole,sr)。其中,所述sr可以是一个App,也可以是多个相互有依赖关系的App,即必须作为一个整体进行部署的App;通过定义sr,可以保证有依赖关系的App能够部署到相同的硬件资源上。所述结构信息可以用于对云产品的以上结构进行描述。
本实施例中,所述需求数据可以是计算机可读形式的结构数据;至少包括sr对计算资源、网络资源、存储资源的需求数据,比如sr所需的硬件资源的参数;还可以包括sr所需的机器型号、操作系统(Operating System,os)、模板(Template)。其中计算资源可以包括中央处理器(Central Processing Unit,CPU)等。存储资源可以包括内存(Memory,mem),磁盘(disk)等;其中对磁盘的需求数据还可以包括磁盘型号、磁盘阵列、磁盘尺寸等;网络资源可以包括网卡(network)等。
如图2所示,根据各sr的需求数据可以得到需求列表,其中包括多个需求,比如图2中的需求1~需求3等,其中每个需求可以包括软件需求和硬件需求;软件需求可以包括对操作系统和模板的需求,比如红帽操作系统(redhat)1和模板4、乌班图操作系统(unbuntu)2和模板3等。硬件需求可以包括机器型号(machine Type),和需求指标(require Quota),两者都可以包含对CPU、mem、disk、网卡等资源的需求。
一种实现方式中,所述软件服务的属性信息还可以包括混合部署组(Hybrid_group)的信息;所述混合部署组是指能部署在相同硬件资源上的软件服务;一个混合部署组中可以包含一个或多个软件服务。
所述根据所述软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源可以包括:
根据所述结构信息和混合部署组的信息,确定出所述云产品中所包含的混合部署组;根据所述软件服务的需求数据,确定各混合部署组的需求数据;
按照预定规则,根据各混合部署组的需求数据分别为各混合部署组在资源池中分配硬件资源。
本实现方式中,所述属性数据可以通过一个3元组进行描述,所述3元组包括:
(1)对计算资源,网络资源,存储资源的需求数据;
(2)对硬件机器型号,软件服务的角色信息(服务节点或管控节点),操作系统OS、模板的需求数据。
(3)所属的混合部署组的信息。
一种实现方式中,结构信息可以从产品基线product.yml中获取,sr的属性数据(包括需求数据和混合部署组)的信息可以从服务基线service.yml中获取;产品基线和服务基线可以作为云产品的结构描述。
本实现方式的一个具体例子的实现过程包括如下步骤201~203:
201、抽象云产品:product.yml,其中定义产品中的feature,cluster,service,跨service的混合部署组:
如图3所示,本例子中产品基线所表示的产品结构中,产品由feature组成(比如图3中的功能1~功能3),每个feature可以跨zone部署(比如图3中功能1部署在可用区1和可用区2上),每个zone中含有一个或多个cluster(比如图3中可用区1包括集群1和集群2),一个cluster由不同service的不同serverRole组成(比如图3中的集群1由服务1~服务3中的sr组成,其中服务1包含服务角色1~3,服务角色3包括应用1和应用2);其中一个或多个serverRole可以部署在同一服务器,也可以指定几个sr必须部署在同一服务器。
202、抽象product.yml中定义的service,给定service.yml;
service.yml含有service下的各个sr的定义;各个serverRole的定义包含了sr的属性数据,包括:需求数据(os,template,cpu,disk,mem,network),(分布式软件)所包含的节点的个数;service.yml中同时要给出service下的各个sr的混合部署组的信息;
203、通过product.yml和service.yml中定义的混合部署组,计算出云产品下的各个集群的混合部署组,指定各个混合部署组的硬件资源需求,在机器资源池中分配资源。
一种实现方式中,所述根据软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源可以包括:
将用于提供硬件资源的机器按照型号分成多个队列,按照能提供的硬件资源的参数从小到大排序;
对于各软件服务,分别在该软件服务的需求数据中的型号所对应的队列中,按照机器的排列顺序为该软件服务分配操作系统、模板、硬件参数满足该软件服务的需求数据的机器;分别将各软件服务映射到所分配的机器提供的硬件资源上。
本实现方式中,按照排列顺序分配,相当于在为一个sr分配机器时,将优先分配能满足该sr的需求数据的、性能最低的机器;其中,机器的性能是指该机器能提供给sr的硬件资源,包括计算资源、存储资源、网络资源,能提供的硬件资源的参数越小则性能越低。在排序时,可以按照计算资源、存储资源、网络资源中的某一项参数进行排序,也可以按照其中某几项参数的组合(比如但不限于加权求和的值)进行排序。
如果不同机器用于不同角色(管控节点或服务节点)、或不同机器用于不同的虚拟化方式,则分成队列时还可以根据角色、虚拟化方式划分;当给sr分配机器时,是根据sr的型号、角色、虚拟化方式确定相应的队列,然后在该队列中按照机器的排序进行分配。
其它实现方式中,也可以按照另外的规则对机器排序,或者可以不对机器排序,只要找到满足需求数据的机器就进行分配。
一种实现方式中,所述软件服务的属性数据还可以包括:软件服务所包含的节点数;即,该软件服务可以分布在几个机器上,也可以看成:要分配几个满足该软件服务的需求数据的机器给该软件服务,所分配的每个机器都满足软件服务对机器型号、操作系统、模板以及硬件参数的需求;
所述按照预定规则,根据各混合部署组的需求数据分别为各混合部署组分配硬件资源可以包括:
按照预定规则分别为每个混合部署组分配资源池中的机器;其中,为一个混合部署组分配的机器的数量MT_count(group)=SR_count(max)+n,其中SR_count(max)等于该混合部署组内包含节点数最多的软件服务所包含的节点数,n是超出的机器个数(即:当SR_count(max)个机器所提供的硬件资源不满足该混合部署组的需求数据时,补充的机器的个数);
分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上。
本实现方式中,可以将分配给一个混合部署组的机器作为一个堆(heap)。
本实现方式中,分配给一个混合部署组的不同机器与不同的接入层交换机相连。
这样的做法可以满足高可用性的需求,使得部分节点损坏时,软件依旧正常工作。比如一个混合部署组中包括sr1、sr2,sr1包含的节点数为3,sr2包含的节点数为2,则为该混合部署组分配的机器数量为3个;从资源池中分配机器m1、m2和m3给sr1,分配机器m1和m3给sr2,这样m1、m2和m3都和sr1映射,m1和m3都和sr2映射;假设m1、m2和m3分别是指真实的物理机器p1、p2和p3,则p1、p2和p3所连接的接入层交换机是不同的。
一种实现方式中,所述软件服务的属性数据还可以包括:软件服务的角色信息;所述角色信息用于指示软件服务的种类是服务节点(worker)或管控节点(controller)。除了服务节点和管控节点,软件服务的种类也可以是任何节点(everywhere),这一种类的软件服务可以是实现守护、监督功能的App,可以在资源池中的每个机器上都部署。
本实现方式中,一个混合部署组中的软件服务的种类可以不同,分配给一个混合部署组的机器可以分成两个heap,一个worker类型的heap,一个controller类型的heap。
本实现方式中,所述预定规则可以包括:将种类是管控节点的软件服务进行二层虚拟化后进行部署,将种类是服务节点的软件服务部署在物理服务器上。其它实现方式中,也可以实现三层甚至更多层的硬件策略;另外,种类是管控节点的sr也可以直接部署在物理服务器上。
本实现方式的一种方案中,所述分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上可以包括:
将各混合部署组中种类为服务节点的软件服务直接映射到所分配的机器对应的物理服务器上;
将各混合部署组中种类为管控节点的软件服务映射到所分配的机器转换成的虚拟机上,将虚拟机映射到作为宿主机的物理服务器上。
本方案是一种将软件服务分层次映射到硬件资源的技术方案,第一层实现软件到硬件资源的映射,第二层,在前者的基础上将部分硬件资源虚拟化,将虚拟的硬件资源映射到真实的硬件资源。
本实现方式的一种方案中,所述将虚拟机映射到作为宿主机的物理服务器上可以包括:
将作为宿主机的物理服务器分为多组(group),组的数量为所述云产品所包含的所有cluster下的各heap中包含虚拟机最多的heap中的虚拟机数;其中,一个heap包含一个混合部署组中种类为管控节点的软件服务所映射到的虚拟机;
将所述云产品的各heap中的虚拟机分别映射到各组作为宿主机的物理服务器上,其中,同一个heap中的不同虚拟机映射到不同组的物理服务器上。
本方案中,可以对controller类型的heap进行第二层部署,将云产品的各controller类型的heap中的虚拟机分别均匀映射到不同组的宿主机内;通过kvm、docker(容器)或其它虚拟化技术,将controller类型的heap中的机器变为虚拟机,映射到物理服务器上,可以进一步压缩硬件使用率。
本方案中,不同组的物理服务器可以分别连接不同的接入层交换机;也就是说,同一heap中的虚拟机不能同时映射到相同的group的宿主机;这样不同group的物理服务器互斥部署(连接不同的接入层交换机),从而能够满足软件高可用性的需求,使得服务器宕机后,保持软件服务正常。
实施例二、一种硬件资源分配装置,如图4所示,包括:
获取模块41,用于获取云产品的结构信息以及云产品中软件服务的属性数据;所述结构信息包括所述云产品所包含的集群cluster、以及集群包含的软件服务;所述软件服务的属性数据至少包括sr的需求数据;
分配模块42,用于根据所述软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源。
本实施例中,获取模块41是上述装置中负责获取结构信息以及属性数据的部分,可以是软件、硬件或两者的结合。
本实施例中,分配模块42是上述装置中负责分配硬件资源的部分,可以是软件、硬件或两者的结合。
一种实现方式中,所述软件服务的需求数据可以包括:软件服务所需机器的型号、操作系统、模板、硬件资源的参数。
一种实现方式中,所述分配模块根据所述软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源可以包括:
将用于提供硬件资源的机器按照型号分成多个队列,按照所能提供的硬件资源的参数从小到大排序;对于各软件服务,分别在该软件服务的需求数据中的型号所对应的队列中,按照机器的排列顺序为该软件服务分配操作系统、模板、硬件参数满足该软件服务的需求数据的机器;分别将各软件服务分别映射到所分配的机器提供的硬件资源上。
一种实现方式中,所述软件服务的属性信息还可以包括混合部署组的信息;所述混合部署组是指能部署在相同硬件资源上的软件服务;
所述分配模块根据软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源可以包括:
所述分配模块根据所述结构信息和混合部署组的信息,确定出所述云产品中所包含的混合部署组;根据所述软件服务的需求数据,确定各混合部署组的需求数据;按照预定规则,根据各混合部署组的需求数据分别为各混合部署组在资源池中分配硬件资源。
一种实现方式中,所述软件服务的属性数据还可以包括:软件服务所包含的节点数;
所述分配模块按照预定规则,根据各混合部署组的需求数据分别为各混合部署组分配硬件资源可以包括:
按照预定规则分别为每个混合部署组分配资源池中的机器;其中,为一个混合部署组分配的机器的数量MT_count(group)=SR_count(max)+n,其中SR_count(max)等于该混合部署组内包含节点数最多的软件服务所包含的节点数,n是当SR_count(max)个机器所提供的硬件资源不满足该混合部署组的需求数据时,补充的机器的个数;分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上。
一种实现方式中,分配给一个混合部署组的不同机器可以与不同的接入层交换机相连。
一种实现方式中,所述软件服务的属性数据还可以包括:
软件服务的角色信息;所述角色信息用于指示软件服务的种类是服务节点或管控节点。
一种实现方式中,所述分配模块分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上可以包括:
所述分配模块将各混合部署组中种类为服务节点的软件服务直接映射到所分配的机器对应的物理服务器上;将各混合部署组中种类为管控节点的软件服务映射到所分配的机器转换成的虚拟机上,将所述虚拟机映射到作为宿主机的物理服务器上。
一种实现方式中,所述分配模块将虚拟机映射到作为宿主机的物理服务器上可以包括:
所述分配模块将作为宿主机的物理服务器分为多组,组的数量为所述云产品所包含的所有cluster下的各堆heap中包含虚拟机最多的heap中的虚拟机数;其中,一个heap包含一个混合部署组中种类为管控节点的软件服务所映射到的虚拟机;将所述云产品的各heap中的虚拟机分别映射到各组作为宿主机的物理服务器上,其中,同一个heap中的不同虚拟机映射到不同组的物理服务器上。
一种实现方式中,不同组的物理服务器可以分别连接不同的接入层交换机。
本实施例的硬件资源分配装置各模块的操作分别对应于实施例一中的步骤S110~S120,各模块操作的其它实现细节可参见实施例一。
实施例三、一种用于进行硬件资源分配的电子设备,包括:存储器和处理器;
所述存储器用于保存用于进行硬件资源分配的程序;所述用于进行硬件资源分配的程序在被所述处理器读取执行时,执行以下操作:
获取云产品的结构信息以及云产品中软件服务的属性数据;所述结构信息包括所述云产品所包含的集群cluster、以及集群包含的软件服务;所述软件服务的属性数据至少包括软件服务的需求数据;
根据所述软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源。
本实施例中,用于进行硬件资源分配的程序在被处理器读取执行时,所执行的操作对应于实施例一中的步骤S110~S120;该程序所执行的操作的其它细节可参见实施例一。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
当然,本申请还可有其他多种实施例,在不背离本申请精神及其实质的情况下,熟悉本领域的技术人员当可根据本申请作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请的权利要求的保护范围。

Claims (15)

1.一种硬件资源分配方法,包括:
获取云产品的结构信息以及云产品中软件服务的属性数据;所述结构信息包括所述云产品所包含的集群cluster、以及集群cluster包含的软件服务;所述软件服务的属性数据包括软件服务的需求数据、混合部署组的信息以及软件服务的角色信息;所述混合部署组是指能部署在相同硬件资源上的软件服务;所述角色信息用于指示软件服务的种类是服务节点或管控节点;
根据所述软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源,包括:根据所述结构信息和混合部署组的信息,确定出所述云产品中所包含的混合部署组;根据所述软件服务的需求数据,确定各混合部署组的需求数据;按照预定规则,根据各混合部署组的需求数据分别为各混合部署组分配硬件资源;分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上;
所述分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上,包括:
将各混合部署组中种类为管控节点的软件服务映射到所分配的机器转换成的虚拟机上,将作为宿主机的物理服务器分为多组,组的数量为所述云产品所包含的所有集群cluster下的各堆heap中包含虚拟机最多的堆heap中的虚拟机数;其中,一个堆heap包含一个混合部署组中种类为管控节点的软件服务所映射到的虚拟机;
将所述云产品的各堆heap中的虚拟机分别映射到各组作为宿主机的物理服务器上,其中,同一个堆heap中的不同虚拟机映射到不同组的物理服务器上。
2.如权利要求1所述的硬件资源分配方法,其特征在于:所述软件服务的需求数据包括:软件服务所需机器的型号、操作系统、模板、硬件资源的参数。
3.如权利要求2所述的硬件资源分配方法,其特征在于,所述根据所述软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源包括:
将用于提供硬件资源的机器按照型号分成多个队列,按照所能提供的硬件资源的参数从小到大排序;
对于各软件服务,分别在该软件服务的需求数据中的型号所对应的队列中,按照机器的排列顺序为该软件服务分配操作系统、模板、硬件资源的参数满足该软件服务的需求数据的机器;将各软件服务分别映射到所分配的机器提供的硬件资源上。
4.如权利要求1所述的硬件资源分配方法,其特征在于,所述软件服务的属性数据还包括:软件服务所包含的节点数;
所述按照预定规则,根据各混合部署组的需求数据分别为各混合部署组分配硬件资源包括:
按照预定规则分别为每个混合部署组分配资源池中的机器;其中,为一个混合部署组分配的机器的数量MT_count(group) = SR_count(max) + n,其中SR_count(max)等于该混合部署组内包含节点数最多的软件服务所包含的节点数,n是当SR_count(max)个机器所提供的硬件资源不满足该混合部署组的需求数据时,补充的机器的个数;
分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上。
5.如权利要求4所述的硬件资源分配方法,其特征在于:分配给一个混合部署组的不同机器与不同的接入层交换机相连。
6.如权利要求1所述的硬件资源分配方法,其特征在于,分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上,还包括:
将各混合部署组中种类为服务节点的软件服务直接映射到所分配的机器对应的物理服务器上。
7.如权利要求1所述的硬件资源分配方法,其特征在于:
不同组的物理服务器分别连接不同的接入层交换机。
8.一种硬件资源分配装置,其特征在于,包括:
获取模块,用于获取云产品的结构信息以及云产品中软件服务的属性数据;所述结构信息包括所述云产品所包含的集群cluster、以及集群cluster包含的软件服务;所述软件服务的属性数据包括软件服务的需求数据、混合部署组的信息以及软件服务的角色信息;所述混合部署组是指能部署在相同硬件资源上的软件服务;所述角色信息用于指示软件服务的种类是服务节点或管控节点;
分配模块,用于根据所述软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源,包括:根据所述结构信息和混合部署组的信息,确定出所述云产品中所包含的混合部署组;根据所述软件服务的需求数据,确定各混合部署组的需求数据;按照预定规则,根据各混合部署组的需求数据分别为各混合部署组分配硬件资源;分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上;
所述分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上,包括:
将各混合部署组中种类为管控节点的软件服务映射到所分配的机器转换成的虚拟机上,将作为宿主机的物理服务器分为多组,组的数量为所述云产品所包含的所有集群cluster下的各堆heap中包含虚拟机最多的堆heap中的虚拟机数;其中,一个堆heap包含一个混合部署组中种类为管控节点的软件服务所映射到的虚拟机;将所述云产品的各堆heap中的虚拟机分别映射到各组作为宿主机的物理服务器上,其中,同一个堆heap中的不同虚拟机映射到不同组的物理服务器上。
9.如权利要求8所述的硬件资源分配装置,其特征在于:所述软件服务的需求数据包括:软件服务所需机器的型号、操作系统、模板、硬件资源的参数。
10.如权利要求9所述的硬件资源分配装置,其特征在于,所述分配模块根据所述软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源包括:
所述分配模块将用于提供硬件资源的机器按照型号分成多个队列,按照所能提供的硬件资源的参数从小到大排序;对于各软件服务,分别在该软件服务的需求数据中的型号所对应的队列中,按照机器的排列顺序为该软件服务分配操作系统、模板、硬件资源的参数满足该软件服务的需求数据的机器;分别将各软件服务映射到所分配的机器提供的硬件资源上。
11.如权利要求8所述的硬件资源分配装置,其特征在于,所述软件服务的属性数据还包括:软件服务所包含的节点数;
所述分配模块按照预定规则,根据各混合部署组的需求数据分别为各混合部署组分配硬件资源包括:
按照预定规则分别为每个混合部署组分配资源池中的机器;其中,为一个混合部署组分配的机器的数量MT_count(group) = SR_count(max) + n,其中SR_count(max)等于该混合部署组内包含节点数最多的软件服务所包含的节点数,n是当SR_count(max)个机器所提供的硬件资源不满足该混合部署组的需求数据时,补充的机器的个数;分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上。
12.如权利要求11所述的硬件资源分配装置,其特征在于:分配给一个混合部署组的不同机器与不同的接入层交换机相连。
13.如权利要求8所述的硬件资源分配装置,其特征在于,所述分配模块分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上,还包括:
所述分配模块将各混合部署组中种类为服务节点的软件服务直接映射到所分配的机器对应的物理服务器上。
14.如权利要求8所述的硬件资源分配装置,其特征在于:
不同组的物理服务器分别连接不同的接入层交换机。
15.一种用于进行硬件资源分配的电子设备,包括:存储器和处理器;
其特征在于:
所述存储器用于保存用于进行硬件资源分配的程序;所述用于进行硬件资源分配的程序在被所述处理器读取执行时,执行以下操作:
获取云产品的结构信息以及云产品中软件服务的属性数据;所述结构信息包括所述云产品所包含的集群cluster、以及集群cluster包含的软件服务;所述软件服务的属性数据包括软件服务的需求数据、混合部署组的信息以及软件服务的角色信息;所述混合部署组是指能部署在相同硬件资源上的软件服务;所述角色信息用于指示软件服务的种类是服务节点或管控节点;
根据所述软件服务的属性数据,按照预定规则为各软件服务分配满足需求数据的硬件资源,包括:根据所述结构信息和混合部署组的信息,确定出所述云产品中所包含的混合部署组;根据所述软件服务的需求数据,确定各混合部署组的需求数据;按照预定规则,根据各混合部署组的需求数据分别为各混合部署组分配硬件资源;分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上;
所述分别将各混合部署组中的软件服务映射到为该混合部署组分配的机器上,包括:
将各混合部署组中种类为管控节点的软件服务映射到所分配的机器转换成的虚拟机上,将作为宿主机的物理服务器分为多组,组的数量为所述云产品所包含的所有集群cluster下的各堆heap中包含虚拟机最多的堆heap中的虚拟机数;其中,一个堆heap包含一个混合部署组中种类为管控节点的软件服务所映射到的虚拟机;
将所述云产品的各堆heap中的虚拟机分别映射到各组作为宿主机的物理服务器上,其中,同一个堆heap中的不同虚拟机映射到不同组的物理服务器上。
CN201610950728.XA 2016-10-26 2016-10-26 一种硬件资源分配方法及装置、电子设备 Active CN107992351B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610950728.XA CN107992351B (zh) 2016-10-26 2016-10-26 一种硬件资源分配方法及装置、电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610950728.XA CN107992351B (zh) 2016-10-26 2016-10-26 一种硬件资源分配方法及装置、电子设备

Publications (2)

Publication Number Publication Date
CN107992351A CN107992351A (zh) 2018-05-04
CN107992351B true CN107992351B (zh) 2021-11-16

Family

ID=62029519

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610950728.XA Active CN107992351B (zh) 2016-10-26 2016-10-26 一种硬件资源分配方法及装置、电子设备

Country Status (1)

Country Link
CN (1) CN107992351B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750312A (zh) * 2019-10-17 2020-02-04 中科寒武纪科技股份有限公司 硬件资源配置方法、装置、云侧设备和存储介质
CN111158911A (zh) * 2019-12-27 2020-05-15 迈普通信技术股份有限公司 一种处理器配置方法、装置、处理器及网络设备
CN111488247B (zh) * 2020-04-08 2023-07-25 上海云轴信息科技有限公司 一种管控节点多次容错的高可用方法及设备
CN114691440B (zh) * 2022-06-01 2022-09-02 广州市高奈特网络科技有限公司 设备的数据提取方法、装置、计算机设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104125293A (zh) * 2014-08-06 2014-10-29 曙光信息产业(北京)有限公司 一种云服务器及其使用方法
CN105516267A (zh) * 2015-11-27 2016-04-20 成都微讯云通科技有限公司 云平台高效运行方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9507636B2 (en) * 2015-04-20 2016-11-29 International Business Machines Corporation Resource management and allocation using history information stored in application's commit signature log

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104125293A (zh) * 2014-08-06 2014-10-29 曙光信息产业(北京)有限公司 一种云服务器及其使用方法
CN105516267A (zh) * 2015-11-27 2016-04-20 成都微讯云通科技有限公司 云平台高效运行方法

Also Published As

Publication number Publication date
CN107992351A (zh) 2018-05-04

Similar Documents

Publication Publication Date Title
CN109684065B (zh) 一种资源调度方法、装置及系统
US10331491B2 (en) Virtual data center resource mapping method and device
CN108701059B (zh) 多租户资源分配方法和系统
CN109144710B (zh) 资源调度方法、装置及计算机可读存储介质
CN107992351B (zh) 一种硬件资源分配方法及装置、电子设备
US11740921B2 (en) Coordinated container scheduling for improved resource allocation in virtual computing environment
US9152200B2 (en) Resource and power management using nested heterogeneous hypervisors
CN110098946B (zh) 虚拟化网元设备的部署方法以及装置
US10333859B2 (en) Multi-tenant resource coordination method
CN104881325A (zh) 一种资源调度方法和资源调度系统
CN105988874B (zh) 资源处理方法及装置
CN108462656B (zh) 基于容器的业务融合部署的资源调度方法及装置
CN103797462A (zh) 一种创建虚拟机的方法和装置
CN107864211B (zh) 集群资源调度方法及系统
CN114356543A (zh) 一种基于Kubernetes的多租户机器学习任务资源调度方法
WO2023000673A1 (zh) 硬件加速器设备管理方法、装置及电子设备和存储介质
CN112379971B (zh) 应用容器管理方法、装置及设备
US20190332275A1 (en) Information processing system and volume allocation method
CN103049328A (zh) 计算机系统中内存资源分配方法
CN102708003A (zh) 一种云平台下的资源分配方法
CN112862098A (zh) 一种集群训练任务处理的方法及系统
CN112988383A (zh) 一种资源分配方法、装置、设备以及存储介质
CN107203256B (zh) 一种网络功能虚拟化场景下的节能分配方法与装置
CN113835897A (zh) 一种在分布式计算集群Kubernetes上对GPU资源进行分配使用的方法
CN114281516A (zh) 一种基于numa属性的资源分配方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant