CN115525416A - 管理方法、相关设备和存储介质 - Google Patents

管理方法、相关设备和存储介质 Download PDF

Info

Publication number
CN115525416A
CN115525416A CN202110704319.2A CN202110704319A CN115525416A CN 115525416 A CN115525416 A CN 115525416A CN 202110704319 A CN202110704319 A CN 202110704319A CN 115525416 A CN115525416 A CN 115525416A
Authority
CN
China
Prior art keywords
sub
node
control service
target
management task
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.)
Pending
Application number
CN202110704319.2A
Other languages
English (en)
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.)
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co 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 China Mobile Communications Group Co Ltd, China Mobile Suzhou Software Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202110704319.2A priority Critical patent/CN115525416A/zh
Publication of CN115525416A publication Critical patent/CN115525416A/zh
Pending legal-status Critical Current

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/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种管理方法、相关设备及存储介质。方法包括:主控制服务节点获取针对目标服务实例的管理任务;从第一数据库中查找与管理任务对应的目标子控制服务节点的关联信息;关联信息用于主控制服务节点与目标子控制服务节点实现通信;目标子控制服务节点与至少一个目标计算节点连接;目标计算节点用于对服务实例进行处理;子控制服务节点与第二数据库连接;第二数据库包含服务实例的数据;利用获取的管理任务和关联信息,向目标子控制服务节点分配针对目标服务实例的管理任务,以使得目标子控制服务节点向至少一个目标计算节点分配针对目标服务实例的管理任务。采用本申请的方案,提高了OpenStack的管理能力。

Description

管理方法、相关设备和存储介质
技术领域
本申请涉及云计算领域,尤其涉及一种管理方法、相关设备和存储介质。
背景技术
OpenStack是一种开源的云计算平台,包括Keystone、Nova、Neutron、Cinder等管理组件,可以根据用户的需求灵活地提供计算,存储、网络等资源,从而满足用户的要求。其中,Keystone组件用于提供用户信息管理和完成其他管理组件的认证服务;Nova组件用于管理OpenStack的计算资源,同时管理虚拟机的生命周期;Neutron组件用于管理OpenStack中的虚拟网络基础设施,物理网络基础设施的接入层;Cinder组件用于提供块存储服务。
然而,相关技术中,基于OpenStack的管理方式采用控制-计算两级架构,这种管理方式存在OpenStack的管理能力有限、可靠性低的问题。
申请内容
为解决相关技术问题,本申请实施例提供一种管理方法、相关设备和存储介质。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种管理方法,应用与主控制服务节点,包括:
获取针对目标服务实例的管理任务;
从第一数据库中查找与所述管理任务对应的目标子控制服务节点的关联信息;所述关联信息用于所述主控制服务节点与所述目标子控制服务节点实现通信;所述目标子控制服务节点与至少一个目标计算节点连接;所述目标计算节点用于对服务实例进行处理;子控制服务节点与第二数据库连接;所述第二数据库包含服务实例的数据;
利用获取的管理任务和所述关联信息,向所述目标子控制服务节点分配针对所述目标服务实例的管理任务,以使得所述目标子控制服务节点向所述至少一个目标计算节点分配针对所述目标服务实例的管理任务。
上述方案中,所述利用获取的管理任务和所述关联信息,向所述目标子控制服务节点分配针对所述目标服务实例的管理任务,包括:
利用所述关联信息,确定所述目标子控制服务节点对应的子消息队列的地址信息;
利用所述地址信息,通过RPC Client,将所述获取的管理任务发送至所述对应的目标子控制服务节点对应的子消息队列中。
上述方案中,所述方法还包括:
利用所述获取的管理任务,对所述第一数据库进行更新。
本申请实施例还提供一种通信方法,应用于第一子控制服务节点,包括:
获取主控制服务节点分配的针对目标服务实例的管理任务;所述管理任务用于所述第一子控制服务节点向至少一个目标计算节点分配针对所述目标服务实例的管理任务;
利用获取的管理任务,向所述至少一个目标计算节点分配针对所述目标服务实例的管理任务,以使得所述目标计算节点对服务实例进行操作。
上述方案中,所述方法还包括:
利用获取的管理任务,对所述第一子控制服务节点的第二数据库进行更新。
上述方案中,所述获取主控制服务节点分配的针对目标服务实例的管理任务,包括:
从第一子消息队列中获取所述主控制服务节点分配的针对所述目标服务实例的管理任务;
所述利用获取的管理任务,向所述至少一个目标计算节点分配针对所述目标服务实例的管理任务,包括:
通过RPC Client,将所述获取的管理任务发送至所述至少一个目标计算节点对应的子消息队列中。
上述方案中,针对所述目标服务实例的管理任务包括对所述目标服务实例进行迁移;所述方法还包括:
获取第一目标计算节点发送的第一消息;所述第一消息表征所述第一目标计算节点已对所述目标服务实例进行实例迁移操作;
通过RPC Client,将所述获取的管理任务发送至第二子服务控制节点对应的第二子消息队列中,使得所述第二子服务控制节点利用所述获取的管理任务,向对应的第二目标计算节点分配针对所述目标服务实例的管理任务,以使得所述第二目标计算节点对所述目标服务实例进行操作;其中,所述第二目标计算节点为目标服务实例迁移后的计算节点。
本申请实施例还提供一种主控制服务节点,包括:第一处理器和用于存储能够在处理器上运行的计算机程序的第一存储器,
其中,所述第一处理器用于运行所述计算机程序时,执行上述主控制服务节点侧任一方法的步骤。
本申请实施例还提供一种子控制服务节点,包括:第二处理器和用于存储能够在处理器上运行的计算机程序的第二存储器,
其中,所述第二处理器用于运行所述计算机程序时,执行上述子控制服务节点侧任一方法的步骤。
本申请实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述主控制服务节点侧任一项所述方法的步骤,或者实现第一子控制服务节点侧任一项所述方法的步骤。
本申请实施例提供的管理方法、相关设备和存储介质,主控制服务节点获取针对目标服务实例的管理任务;从第一数据库中查找与所述管理任务对应的目标子控制服务节点的关联信息;所述关联信息用于所述主控制服务节点与所述目标子控制服务节点实现通信;所述目标子控制服务节点与至少一个目标计算节点连接;所述目标计算节点用于对服务实例进行处理;子控制服务节点与第二数据库连接;所述第二数据库包含服务实例的数据;利用获取的管理任务和所述关联信息,向所述目标子控制服务节点分配针对所述目标服务实例的管理任务;以使得所述目标子控制服务节点向所述至少一个目标计算节点分配针对所述目标服务实例的管理任务;而第一子控制服务节点获取主控制服务节点分配的针对目标服务实例的管理任务;所述管理任务用于所述第一子控制服务节点向至少一个目标计算节点分配针对目标服务实例的管理任务;利用获取的管理任务,向所述至少一个目标计算节点分配针对所述目标服务实例的管理任务,以使得所述目标计算节点对服务实例进行操作。本申请实施例提供的技术方案,主控制服务节点获取到针对服务实例的管理任务后,根据第一数据库中的管理任务与子控制服务节点的关联信息向对应的子控制服务节点发送管理任务,再通过子控制服务节点向对应的计算节点发送管理任务,以实现计算节点对服务实例的操作。通过建立主控制服务节点、子控制服务节点、计算节点的三级管理架构,并为主控制服务节点和每个子控制服务节点配置不同的数据库,从而形成了多个数据库集群来存储数据资源。通过多个数据库集群来存储数据资源,可以在一个子控制服务节点的数据库出现故障而导致该子控制服务节点无法执行管理任务的情况下,除该子控制服务节点之外的其他子控制服务节点能够继续执行管理任务。如此,避免了由于一个子控制服务节点的数据库出现故障而使得OpenStack云平台无法执行管理任务的问题,即增加了OpenStack的可靠性。同时,由于本申请实施例将控制服务节点拆分为主控制服务节点和子控制服务节点,而子控制服务节点管理所有的计算节点,形成了基于OpenStack云平台的分布式管理架构,这样,扩大了主控制节点可管理的资源的范围,显著地增强了OpenStack的管理能力。
附图说明
图1为本申请实施例第一种管理的方法流程示意图;
图2为本申请实施例第二种管理的方法流程示意图;
图3为本申请实施例第三种管理的方法流程示意图;
图4为本申请应用实施例关闭实例的流程示意图;
图5为本申请应用实施例实例迁移过程各节点的交互示意图;
图6为本申请应用实施例实例迁移的流程示意图;
图7为本申请应用实施例的管理架构图;
图8为本申请应用实施例数据库拆分的结构示意图;
图9为本申请实施例第一种管理装置结构示意图;
图10为本申请实施例第二种管理装置结构示意图;
图11为本申请实施例主控制服务节点结构示意图;
图12为本申请实施例子控制服务节点结构示意图;
图13为本申请实施例管理系统结构示意图。
具体实施方式
下面结合附图及实施例对本申请再作进一步详细的描述。
OpenStack是一种开源的云计算平台,包括Keystone、Nova、Neutron、Cinder等管理组件。在OpenStack平台中,使用关系型数据实现来对数据信息的存储;使用消息队列来实现对服务内部消息的传递。这里,消息队列是一种存放消息的容器,由生产者发出消息存放入队列中,消费者从队列中获取消息,从而得到相应的数据,通过生产者和消费者这种异步处理方式能够提高系统性能和削峰、降低系统耦合性。而存储数据信息的数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
相关技术中,提出了基于OpenStack云平台的控制-计算的两层管理架构,通过控制服务节点直接管理计算节点的方式,来实现对计算资源的管理和调度;同时,在两层管理架构中,仅存在一个与控制服务节点对应的数据库,存储了OpenStack的所有管理数据和实例数据。这种方式存在OpenStack的管理能力有限、可靠性低的问题。
基于此,在基于上述OpenStack两层管理架构的情况下,提出了以下三种拓展OpenStack管理能力的方法:
第一种方法,通过在一个区域内划分一个或者多个网络区域,并在各个网络区域配置存储网络和数据网络来连通各个网络区域,使得OpenStack的控制节点可以管理所有网络区域,进而管理网络区域的数据信息,提高了OpenStack的管理能力。这样,可以更好的匹配客户对网络的需求,进而提供更好的服务解决方案。然而,上述方案中,所划分的各个网络区域都使用同一套数据库,也就是说,各个网络区域的数据信息都存储在一个数据库中,这样会导致数据库出现故障时,OpenStack的控制节点便无法调用数据库资源,从而不能向用户提供服务的情况,即可靠性低。另外,由于各个网络区域的资源都存储在一个数据库中,在一个数据库的存储能力有限的情况下,对应的OpenStack的管理资源的能力也会受限。
第二种方法,通过配置统一资源接入门户,并且使得所述统一资源接入门户分别连接多个区域的应用程序接口(API,Application Programming Interface)。如此,统一资源接入门户可以将多个区域的资源信息进行整合存储至资源池,实现对各个区域的资源的统一管理和调度。这个过程中,由于各个区域的资源信息都存储在资源池中,即存储在一个数据库中,存在资源池出现故障而导致统一资源接入门户无法对资源进行调度的问题,即可靠性低。
第三种方法,在OpenStack云平台中,通过增加对虚拟操作系统模拟器(QEMU,Quick EMUlator)中虚拟磁盘的管理功能,将用户的资源存储至不同的磁盘目录中,保证资源的相互隔离,以保障用户资源的安全性。但是,上述方法中,控制节点将用户的资源存储一个虚拟磁盘的不同目录中,依然存在虚拟磁盘故障而导致所有资源无法调用的情况。同时,所采用的虚拟磁盘对应的硬盘存储容量有限,可扩展性较低,使得OpenStack可存储的资源有限,相应地,OpenStack的管理能力也较低。
基于此,在本申请的各种实施例中,在OpenStack云平台上部署主控制服务节点、子控制服务节点、计算节点的分布式管理系统,即“主控制-子控制-计算”三层的管理方式,并通过为主控制服务节点和每个子控制服务节点配置不同的数据库,来提高OpenStack控制节点的纳管能力和可靠性。
其中,所述主控制服务节点可以根据针对接收的服务实例的管理任务向所述子控制服务节点分配管理任务,以实现对管理任务的调度处理;所述子控制服务节点用于控制计算节点实现对服务实例的操作;所述计算节点用于对服务实例进行操作。
本申请实施例提供一种管理方法,应用于主控制服务节点,如图1所示,所述方法包括:
步骤101:获取针对目标服务实例的管理任务;
步骤102:从第一数据库中查找与所述管理任务对应的目标子控制服务节点的关联信息;所述关联信息用于所述主控制服务节点与所述目标子控制服务节点实现通信;所述目标子控制服务节点与至少一个目标计算节点连接;所述目标计算节点用于对服务实例进行处理;子控制服务节点与第二数据库连接;所述第二数据库包含服务实例的数据;
步骤103:利用获取的管理任务和所述关联信息,向所述目标子控制服务节点分配针对所述目标服务实例的管理任务,以使得所述目标子控制服务节点向所述至少一个目标计算节点分配针对所述目标服务实例的管理任务。
其中,所述主控制服务节点与至少一个子控制服务节点相连,每个子控制服务节点至少与一个计算节点连接。
其中,实际应用时,在步骤101之前,主控制服务节点需要读取对应的配置文件,通过配置文件中的数据库(DB,Database)字段和消息队列(MQ,Message Queue)字段信息,确定与所述主控制服务节点相关联的第一数据库和主消息队列。其中,所述第一数据库用于存储所述主控制服务节点所纳管区域的实例的全局数据,以便于向对应的子控制服务节点发送管理任务;所述第一数据库包含了管理数据表,具体包括:主机集合(Aggregates),规格(Flavors),主机组(Instance_groups),密钥对(Key_pairs),配额(quotas)等全局数据,即主控制服务节点所纳管的所有区域的实例全局数据;其中,所述主机集合用于存储不同类型的物理主机,以便主控制服务节点通过服务器在特定类型的物理主机集合上实现实例的操作;所述规格表征主机的类型;所述主机组包含根据管理任务生成的服务实例的集合,便于主控制服务节点对服务实例的集合进行管理;所述密钥对用于供用户免密码登录,从而对实例进行操作;所述配额用于限定OpenStack中可调度的资源的数量。
相应地,子控制服务节点也需要读取对应的配置文件,通过配置文件中的DB字段和MQ字段信息,确定与所述子控制服务节点相关联的第二数据库和子消息队列。其中,所述第二数据库用于存储所述子控制服务节点对应的实例数据信息,以进行实例数据的记录和管理;所述第二数据库包含了实例数据表,具体包括:实例(Instances),迁移记录(Migrations),虚拟网卡信息(Virtual_port),磁盘映射信息(Block_device_mapping),安全组(Security_groups)等局部数据;通过子消息队列与主控制服务节点实现通信。具体地,主控制服务节点作为生产者,生成实例请求消息,并放置在子消息队列中,而子控制服务节点作为消费者,从子消息队列中获取实例请求消息,从而实现了与主控制服务节点的通信。在第二数据库的实例数据表中,所述实例用于记录实例的状态信息;所述迁移记录用于记录与实例迁移关联的节点信息和实例信息;所述虚拟网卡信息包括与实例相关联的网卡的媒体接入控制(MAC,Media Access Control)地址、网际互联协议(IP,InternetProtocol)地址等信息;所述磁盘映射信息包括与实例对应的磁盘地址、挂载点、大小等信息;所述安全组用于限定可访问实例的对象。
相应地,计算节点也需要读取对应的配置文件,通过配置文件中的MQ字段信息,确定与所述计算节点相关联的子消息队列;计算节点通过子消息队列与子控制服务节点实现通信。具体地,子控制服务节点作为生产者,生成实例请求消息,并放置在子消息队列中,而计算节点作为消费者,从子消息队列中获取实例请求消息,从而实现了与子控制服务节点间的通信。
这里,根据通用数据类型和业务数据类型将数据库进行拆分后,通过配置文件中DB字段和MQ字段信息的设置,实现了主控制服务节点与第一数据库相关联,每个子控制服务节点与第二数据库相关联的结构;也就是说,与相关技术中仅采用一个数据库来存储数据的方式相比较,本申请实施例的管理系统中存在多个数据库集群。
其中,实际应用时,第一数据库还可以被称为通用数据库;第二数据库还可以被称为业务数据库。
实际应用时,主控制服务节点可以通过API来获取针对服务实例的管理任务。示例性地,当用户通过客户端发送针对服务实例的管理任务时,主控制服务节点通过API来接收用户发送的管理任务。
实际应用时,为了将获取的针对实例的管理任务发送至对应的子控制服务节点,主控制服务节点需要能与每个子控制服务节点进行通信。因此,需要在第一数据库中预先存储管理任务与子控制服务节点间的关联信息。基于此,所述第一数据库中还包括管理任务与对应的子控制服务节点的关联信息,以便主控制服务节点确定与所述获取的管理任务对应的子控制服务节点,从而实现主控制服务节点和子控制服务节点间的交互。
实际应用时,主控制服务节点向目标子控制服务节点分配针对服务实例的管理任务,可以理解为:主控制服务节点向目标子控制服务节点发送针对服务实例的管理任务。
这里,主控制服务节点在确定管理任务对应的子控制服务节点后,向所述子控制服务节点发送针对服务实例的管理任务,使得子控制服务节点接收到针对服务实例的管理任务后,可以通过与计算节点的连接,来实现计算节点对服务实例的操作,这样,便形成了基于OpenStack云平台的分布式管理系统,通过建立主控制服务节点、子控制服务节点和计算节点的三层管理系统,来实现对服务实例的操作。
实际应用时,为了实现主控制服务节点和子控制服务节点间的通信,在接收到针对服务实例的管理任务后,主控制服务节点可以通过RPC Client来向对应的子控制服务节点发送所述管理任务。同时,由于主控制服务节点和子控制服务节点间的通信是基于消息队列来实现的,因此,主控制服务节点需要确定子控制服务节点对应的子消息队列的地址信息,再通过RPC Client将所述管理任务发送至所述子消息队列中,使得子控制服务节点可以从所述子消息队列中获取管理任务。
基于此,在一实施例中,所述利用获取的管理任务和所述关联信息,向所述目标子控制服务节点分配针对所述目标服务实例的管理任务,包括:
利用所述关联信息,确定所述目标子控制服务节点对应的子消息队列的地址信息;
利用所述地址信息,通过RPC Client,将所述获取的管理任务发送至所述对应的目标子控制服务节点对应的子消息队列中。
实际应用时,为了将获取的管理任务发送给对应的子控制服务节点,主控制服务节点依据第一数据库中的关联信息,确定与获取的管理任务相关联的子控制服务节点和对应的子消息队列的配置信息;其中,所述配置信息包括消息队列的用户(USER)、密码(PASSWORD)、地址信息(IP)、端口信息(MQ_PORT);所述USER表征可调用所述子消息队列的用户;所述PASSWORD表征可调用所述子消息队列的用户对应的密码;所述IP用于供节点调用所述子消息队列;所述端口信息用于供节点与所述子消息队列相连接,以实现生产者将消息放入子消息队列和消费者从子消息队列消费消息的操作。示例性地,配置信息的格式为:rabbit://USER:PASSWORD@MQ_IP:MQ_PORT。
在确定与获取的管理任务相关联的子消息队列的配置信息后,主控制服务节点利用所述配置信息进行RPC Client封装,然后,利用子消息队列的配置信息中的地址信息,通过RPC Client向第一子控制服务节点的第一子消息队列发送管理任务,使得第一子控制服务节点可以执行管理任务。
实际应用时,主控制服务节点根据第一数据库中的关联信息确定对应的第一子消息队列的配置信息后,还需要通过RPC Client将所述配置信息发送至第一子消息队列中,以便第一子控制服务节点可以利用所述配置信息再次封装RPC Client,以调用第一计算节点执行对服务实例的操作。这是因为:针对服务实例的管理任务,只有主控制服务节点才可以根据第一数据库中的关联信息确定与管理任务相关联的子控制服务节点和对应的子消息队列的配置信息。而对于子控制服务节点来说,也需要获取与管理任务相关联的第一子消息队列的配置信息,从而通过RPC Client实现与计算节点的通信。因此,当主控制服务节点确定第一子消息队列的配置信息后,需要将所述配置信息发送至第一子消息队列中,使得第一子控制服务节点可以从第一子消息队列中消费信息,得到第一子消息队列的配置信息。
本申请实施例通过RPC Client的方式,将针对服务实例的管理任务发送至对应的第一子控制服务节点对应的第一子消息队列中,使得第一子控制服务节点利用第一子消息队列实现与主控制服务节点的通信。通过子消息队列传递管理任务的方式,能够提高OpenStack系统性能和削峰、降低系统耦合性。
实际应用时,主控制服务节点获取针对服务实例的管理任务后,需要根据第一数据库中管理任务与子控制服务节点的关联信息向对应的子控制服务节点发送针对服务实例的管理任务。为了保障主控制服务节点能够查找到与管理任务对应的子控制服务节点,主控制服务节点还需要对第一数据库进行更新。
基于此,在一实施例中,所述方法还可以包括:
利用所述获取的管理任务,对所述第一数据库进行更新。
这里,实际应用时,根据不同的管理任务,对所述第一数据库的更新操作不同。示例性地,当主控制服务节点获取到服务实例的创建请求(即管理任务)时,主控制服务节点可以根据所述创建请求确定服务实例对应的子控制服务节点,或者,主控制服务节点可以为所述创建请求分配一个子控制服务节点。然后,通过子控制服务节点向对应的计算节点发送创建请求,使得所述计算节点完成创建服务实例的操作。这个过程中,主控制服务节点需要将服务实例与对应的子控制服务节点的关联信息更新至第一数据库中,以便主控制服务节点可以根据所述关联信息再次向所述子控制服务节点发送针对所述服务实例的操作请求。比如当主控制服务节点获取到服务实例的关闭请求时,可以根据所述关联信息确定与服务实例的关闭请求对应的子控制服务节点,从而将服务实例的关闭请求发送至子控制服务节点,以完成主控制服务节点与子控制服务节点间的交互。
相应地,本申请实施例还提供了一种管理方法,应用于第一子控制服务节点,如图2所示,所述方法包括:
步骤201:获取主控制服务节点分配的针对目标服务实例的管理任务;所述管理任务用于所述第一子控制服务节点向至少一个目标计算节点分配针对所述目标服务实例的管理任务;
步骤202:利用获取的管理任务,向所述至少一个目标计算节点分配针对所述目标服务实例的管理任务,以使得所述目标计算节点对服务实例进行操作。
这里,第一子控制服务节点获取主控制服务节点发送的针对服务实例的管理任务后,利用获取的管理任务,向第一目标计算节点发送针对服务实例的管理任务。
相应地,第一目标计算节点接收到第一子控制服务节点发送的针对服务实例的管理任务后,第一目标计算节点对服务实例进行相应的操作。示例性地,当第一目标计算节点接收到第一子控制服务节点发送的关闭服务实例的管理任务时,第一目标计算节点会对服务实例执行关闭操作。
在子控制服务节点获取到针对实例的管理任务后,需要根据获取的管理任务对第二数据库中存储的实例数据进行更新,从而实现子控制服务节点对计算节点和服务实例的有效管理。
基于此,在一实施例中,所述方法还可以包括:
利用获取的管理任务,对所述第一子控制服务节点的第二数据库进行更新。
实际应用时,第一子控制服务节点获取主控制服务节点发送的针对服务实例的管理任务后,根据不同类型的管理任务,对第二数据库中服务实例的数据进行相应的更新。
示例性地,若子控制服务节点获取到针对服务实例的迁移请求,子控制服务节点需要将实例数据表的与服务实例对应的状态信息更新为迁移,同时,在迁移记录数据表中记录与服务实例对应的第一目标计算节点信息和第二目标计算节点信息。这样,当子控制服务节点再次获取到针对上述服务实例的管理任务后,便可以通过第二数据库来确定与所述服务实例相关的节点信息,状态信息等,进而向对应的计算节点发送所述管理任务,以完成针对服务实例的操作。
实际应用时,由于子控制服务节点与计算节点是两个独立的节点,需要通过RPCClient来实现子控制服务节点与计算节点间的通信。另外,因为子控制服务节点和计算节点间的通信是基于消息队列来实现的,所以子控制服务节点还要确定对应的子消息队列的地址信息,再通过RPC Client将管理任务发送至子消息队列中,使得计算节点可以从子消息队列中获取管理任务,完成对服务实例的操作。
基于此,在一实施例中,所述获取主控制服务节点分配的针对所述目标服务实例的管理任务,包括:
从第一子消息队列中获取所述主控制服务节点分配的针对所述目标服务实例的管理任务;
所述利用获取的管理任务,向所述至少一个目标计算节点分配针对所述目标服务实例的管理任务,包括:
通过RPC Client,将所述获取的管理任务发送至所述至少一个目标计算节点对应的子消息队列中。
其中,实际应用时,第一子控制服务节点从对应的第一子消息队列中获取管理任务时,还可以获取到第一子消息队列的配置信息;第一子控制服务节点根据第一子消息队列的配置信息再次封装RPC Client,以便于通过RPC Client将管理任务发送至第一子消息队列中。
相应地,第一目标计算节点从第一子消息队列中获取第一控制服务节点发送的管理任务,并基于管理任务对服务实例进行操作。示例性地,当第一目标计算节点从第一子消息队列中获取到关闭服务实例的管理任务时,第一目标计算节点会对服务实例执行关闭操作。
实际应用时,存在一个区域内的计算节点需要与另外一个区域内的计算节点进行通信的实例请求,如实例迁移请求,然而,不同区域的计算节点间缺乏通信机制,需要通过不同的子控制服务节点来进行通信。因此,可以引入一种新的通信机制,来实现不同子控制服务节点间的通信,进而实现跨区域的计算节点间的通信。
基于此,在一实施例中,针对所述目标服务实例的管理任务包括对所述目标服务实例进行迁移时,所述方法还可以包括:
获取所述第一目标计算节点发送的第一消息;所述第一消息表征所述第一目标计算节点已对所述目标服务实例进行实例迁移操作;
通过RPC Client,将所述获取的管理任务发送至第二子服务控制节点对应的第二子消息队列中,使得所述第二子服务控制节点利用所述获取的管理任务,向对应的第二目标计算节点分配针对所述服务实例的管理任务,以使得所述第二目标计算节点对所述目标服务实例进行操作;其中,所述第二目标计算节点为目标服务实例迁移后的计算节点。
这里,第一目标计算节点还可以称为源节点,第二目标计算节点还可以称为目标节点,所述第一目标计算节点与所述第二目标计算节点对应不同的区域。
实际应用时,第一子控制服务获取第一目标计算节点发送的第一消息,以确定第一目标计算节点已对服务实例进行实例迁移操作;所述实例迁移操作可以包括:第一目标计算节点将服务实例的数据信息发送至第二目标计算节点。
实际应用时,当所述针对服务实例的管理任务为对实例进行迁移时,主控制服务节点会根据关联信息确定与管理任务对应的第一子控制服务节点和第二子控制服务节点,以及第一子消息队列的配置信息和第二子消息队列的配置信息。而在第一计算节点完成实例迁移操作后,第一子控制服务节点需要通过RPC Client,将管理任务发送至第二子控制服务节点对应的第二子消息队列中,因此,主控制服务节点还需要将第二子消息队列的配置信息通过第一子消息队列发送至第一子控制服务节点,使得第一子控制服务节点可以根据第二子消息队列的配置信息对RPC Client进行封装,从而通过RPC Client将管理任务发送至第二子消息队列。
相应地,确定第一目标计算节点已完成实例迁移操作后,第一子控制服务节点从第一子消息队列中得到第二子消息队列的配置信息,并根据第二子消息队列的配置信息来封装RPC Client,再通过RPC Client将管理任务发送至第二子控制服务节点对应的第二子消息队列中。这里,第一子控制服务节点还需要将第二子消息队列的配置信息通过第二子消息队列发送至第二子控制服务节点,以便第二子控制服务节点通过第二子消息队列与第二计算节点实现通信。
第二子控制服务节点根据第二子消息队列的配置信息封装RPC Client,并通过RPC Client将获取的管理任务发送至第二子消息队列中,使得第二目标计算节点可以从第二子消息队列中消费管理任务,从而对迁移的服务实例进行操作。示例性地,第二目标计算节点确定服务实例迁移完成后,将第一目标计算节点发送的服务实例的数据信息通过第二子消息队列发送至第二子控制服务节点,以进行对第二数据库的更新。
本申请实施例提供的管理方法,通过不同子控制服务节点分别封装RPC Client来传递针对服务实例的管理请求,实现了不同子控制服务节点的交互,进一步地,基于子控制服务节点与计算节点的关联信息,也实现了对应的不同区域间计算节点间的通信。
本申请实施例还提供了一种通信方法,如图3所示,该方法包括:
步骤301:主控制服务节点获取针对目标服务实例的管理任务;
步骤302:从第一数据库中查找与管理任务对应的目标子控制服务节点的关联信息;
其中,所述关联信息用于所述主控制服务节点与所述目标子控制服务节点实现通信;所述目标子控制服务节点与至少一个目标计算节点连接;所述目标计算节点用于对服务实例进行处理;子控制服务节点与第二数据库连接;所述第二数据库包含服务实例的数据。
步骤303:利用管理任务和所述关联信息,向所述目标子控制服务节点分配针对所述目标服务实例的管理任务,以使得所述目标子控制服务节点向所述至少一个目标计算节点分配针对所述目标服务实例的管理任务。
步骤304:第一子控制服务节点利用管理任务,向所述至少一个目标计算节点发送所述针对目标服务实例的管理任务,以使得所述目标计算节点对服务实例进行操作。
步骤305:目标计算节点对服务实例进行处理。
其中,所述第一目标计算节点对服务实例进行处理时,所述服务实例类型可以包括:创建、删除、开机、关机等操作。
这里,需要说明的是:主控制服务节点和第一子控制服务节点的具体处理过程已在上文详述,这里不再赘述。
本申请实施例提供的管理方法,通过主控制服务节点获取用户发送的针对目标服务实例的管理任务,并结合从第一数据库中查找到的与管理任务对应的目标子控制服务节点的关联信息,向对应的目标子控制服务节点发送针对目标服务实例的管理任务,通过子控制任务服务节点与至少一个计算节点的连接关系,来实现计算节点对服务实例的处理。这个过程中,形成了主控制服务节点、子控制服务节点和计算节点的分布式管理系统;其中,主控制服务节点至少与一个子控制服务节点相连接,每个子控制服务节点与至少一个计算节点相连接,并且,主控制服务节点和子控制服务节点都配置了对应的数据库。
这里,根据通用数据类型和业务数据类型将数据库进行拆分后,通过配置文件中DB字段和MQ字段信息的设置,实现了主控制服务节点与通用数据库相关联,每个子控制服务节点与业务数据库相关联的结构;也就是说,OpenStack的管理系统中存在多个数据库集群。如此,在数据库的硬件容量有限的情况下,与相关技术中仅采用一个数据库来存储数据的方式相比较,通过将一个数据库拆分为多个数据库集群,并存储不同类型的数据,增加了主控制服务节点的存储能力;同时,结合主控制服务节点管理子控制服务节点、子控制服务节点管理计算节点的分布式管理方式,扩大了主控制服务节点可纳管的计算节点的范围,即提高了主控制服务节点的管理能力。
此外,由于OpenStack的管理系统为分布式管理架构,存在至少一个子控制服务节点,且每个子控制服务节点都配置了对应的业务数据库和子消息队列,当其中一个子控制服务节点对应的业务数据库或者子消息队列出现故障,导致所述该子控制服务节点无法执行针对实例的管理任务的情况下,不会影响除该子控制服务节点之外的其他子控制服务节点的操作。也就是说,其他子控制服务节点可以根据对应的业务数据库和子消息队列继续执行针对实例的管理任务,避免了由于一个子控制服务节点出现故障而导致整个OpenStack系统无法执行管理任务的情况,进而增加了OpenStack的可靠性。
下面结合应用实施例对本申请再做进一步详细的描述。
实施本应用实施例的方案之前,需要分别将对应的代码打包、上传、部署至主控制服务节点、子控制服务节点和计算节点,并分别为主控制服务节点、子控制服务节点和计算节点设置配置文件,然后,启动各个节点上的服务。
这里,在部署主控制服务节点时,为了提高主控制服务节点的工作效率,使得主控制服务节点可以快速响应管理任务,同时,处理多个任务,本应用实施例可以根据功能来划分第一节点、第二节点、第三节点,通过第一节点、第二节点、第三节点的协同操作,实现了主控制服务节点上的操作。其中,所述第一节点用于响应API管理任务;所述第二节点用于查找与管理任务对应的子控制服务节点和对应的子消息队列的配置信息;所述第三节点用于为管理任务分配计算节点;所述第一节点、第二节点、第三节点间的通信是基于主消息队列来实现的。
实际应用时,通过API接收到管理任务后,第一节点首先对管理任务进行校验;示例性地,第一节点对管理任务进行解析,得到与管理任务相关联的参数信息,比如网络信息,计算节点信息等等。由于在通用数据库中通过配额数据信息限定了OpenStack系统中可调度的资源的数量,因此,第一节点需要结合配额数据信息和参数信息验证管理任务的合法性。其次,第一节点还可以根据管理任务对通用数据库进行更新。示例性地,第一节点依据管理任务来创建密钥对、规格、主机集合等数据,并存储至通用数据库中。接着,第一节点通过RPC Client将管理任务发送至主消息队列中,使得第二节点可以从主消息队列中获取到管理任务。
第二节点从主消息队列获取管理任务后,若管理任务携带了区域信息,则第二节点可以根据通用数据库中的关联信息确定与管理任务相关联的子控制服务节点,并通过RPC Client向子控制服务节点的子消息队列发送管理任务;所述区域信息与子控制服务节点相关联。若管理任务没有携带区域信息,则第二节点通过主消息队列向第三节点发送第一请求;所述第一请求用于请求第三节点为管理任务分配计算节点。其中,在接收到服务实例的创建请求(即创建实例的管理任务)时,第一节点将创建实例的管理任务、管理任务对应的区域信息以及通用唯一识别码(UUID,Universally Unique Identifier)的关联关系存储至通用数据库。
在第三节点响应第一请求,为管理任务分配计算节点后,第三节点通过主消息队列将分配的计算节点信息反馈至第二节点;其中,所述计算节点信息可以至少包括计算节点的区域信息。然后,第二节点可以根据分配的计算节点的区域信息确定所在区域的子控制服务节点,进而通过RPC Client向对应的子控制服务节点的子消息队列发送管理任务。
这样,通过第一节点、第二节点和第三节点的上述操作,实现了主控制服务节点上的操作。
对于OpenStack云平台来说,当第一节点通过API接收到关闭服务实例的管理任务时,如图4所示,OpenStack系统响应关闭服务实例的管理请求的过程包括以下步骤:
步骤1:第一节点接收关闭服务实例的管理任务并检验管理任务的合法性后,通过主消息队列将管理任务发送至第二节点,使得第二节点根据通用数据库中存储的MQ_Mappings中的信息,来获取所有子控制服务节点对应的子消息队列的配置信息;
这里,由于主控制服务节点和子控制服务节点配置了不同的数据库和消息队列集群,导致主控制服务节点与子控制服务节点无法进行通信。这是因为:若不同的控制服务节点配置不同的消息队列,控制服务节点仅能根据配置信息来识别对应的消息队列中的信息,即无法获取其他消息队列中的信息。因此,在通用数据库中引入了管理任务与子控制服务节点的关联信息,使得主控制服务节点可以通过子消息队列实现与子控制服务节点间的通信。
实际应用时,管理任务与子控制服务节点的关联信息可以体现为第一数据表和第二数据表(也可以称为MQ_Mappings);其中,所述第一数据表包含服务实例的与UUID的关联关系;所述第二数据表包含UUID与子消息队列的配置信息的关联关系。第一节点接收到针对服务实例的管理任务后,通过主消息队列将管理任务发送至第二节点。第二节点确定管理任务的区域信息后,根据第一数据表确定对应的UUID,然后,基于第二数据表查找与UUID对应的子消息队列的配置信息,也即确定了与管理任务对应的子控制服务节点。
上述过程中,子消息队列所包含的配置信息需要进行加密处理,若直接将管理任务与子消息队列的配置信息相关联,存储至一张数据表中,在服务实例数量较大的情况下,需要加密的信息会相应的增加,从而增加系统的资源占用。因此,通过将管理任务和子控制服务节点的关联信息划分为第一数据表和第二数据表,并引入UUID将两个数据表进行关联,从而减少了系统资源的占用。
这里,通用数据库中第二数据表记录的信息包含:记录创建时间(created_at),UUID,区域名称(region_name),子消息队列配置信息(mq_url),删除记录(deleted);其中,UUID用于标识子消息队列的配置信息;所述记录创建时间表征数据信息的创建时间;所述区域名称表征子控制服务节点和计算节点所在的区域信息;所述子消息队列配置信息表征子消息队列配置信息的集合;所述删除记录表征数据信息删除的记录。因此,第二节点可以从第二数据表中获取到所有子消息队列配置信息。示例性地,所述配置信息的格式可以如:rabbit://USER:PASSWORD@MQ_IP:MQ_PORT。
实际应用时,在接收到创建服务实例的管理任务时,第一节点根据管理任务携带的区域信息,生成与对应的UUID;所述区域信息表征对服务实例进行处理的子控制服务节点和计算节点所在的区域。然后,第一节点将管理任务、区域信息以及UUID的关联关系更新至第一数据表中,这个过程中,若创建服务实例的管理任务没有携带指定的区域信息,第三节点会为服务实例分配可使用的子控制服务节点和对应的计算节点,即生成了管理任务的区域信息,然后,第三节点通过主消息队列将管理任务的区域信息发送至第二节点,使得第二节点可以确定与管理任务对应的子控制服务节点。此外,第二节点通过主消息队列将管理任务的区域信息再发送至第一节点,以使第一节点更新第一数据表。
步骤2:第二节点根据管理任务,确定与管理任务对应的第一子消息队列的配置信息,再通过第一子消息队列的配置信息封装RPC Client,并通过RPC Client将关闭服务实例的管理任务发送至第一子消息队列中。
实际应用时,第二节点根据管理任务先确定对应的区域信息,再依据第一数据表的关联关系得到UUID。然后,第二节点通过UUID便可以在第二数据表中查找到对应的第一子消息队列的配置信息。
这里,第二节点根据第一子消息队列的配置信息对RPC Client进行封装,并通过RPC Client将管理任务发送至第一子消息队列中。此外,第二节点还将第一子消息队列的配置信息进行封装,通过RPC Client发送至第一子消息队列中。
步骤3:第一子控制服务节点从第一子消息队列中获取关闭服务实例的管理任务,完成数据处理后再封装RPC Client来调用对应的计算节点。
实际应用时,一方面,第一子控制服务节点从第一子消息队列中获取管理任务,根据管理任务对第一子控制服务节点的第二数据库进行更新操作;另一方面,第一子控制服务节点从第一子消息队列中得到第一子消息队列的配置信息,根据所述配置信息对RPCClient进行封装,并通过RPC Client将管理任务发送至第一子消息队列中,以调用第一计算节点来执行服务实例的操作。
步骤4:第一计算节点从第一子消息队列中获取关闭服务实例的管理任务,对服务实例进行操作。
实际应用时,大部分实例操作均可使用上述方式来完成主控制服务节点与子控制服务节点间的通信,例如,启动、关闭、挂起、恢复、重建等实例操作。
从上面的描述可以看出,本应用实施例中,在引入数据库记录方式后,目前的通信机制为:1、主Nova控制服务(即主控制服务节点)间通过读取本地配置,通过主消息队列通信。2、主Nova控制服务通过读取数据库MQ_Mappings表,与子控制服务节点通过子消息队列通信。3、子Nova控制服务(即子控制服务节点)通过读取本地配置,与计算服务之间通过子消息队列通信。
但是,上述通信机制中,缺乏子控制服务节点间的通信方式,即跨区域的计算服务间无法进行通信,如实例迁移操作。因此,通过引入一种双RPC Client封装的方式来解决上述问题,如图5所示,建立跨消息队列的服务通信机制,实现不同子控制服务节点间的交互,从而也实现了不同计算节点间的通信。
本应用实施例实例迁移操作的管理过程,如图6所示,包括以下步骤:
步骤1:第一节点接收到针对服务实例的迁移请求(即管理任务)并检验迁移请求的合法性后,通过主消息队列将迁移请求发送至第二节点,使得第二节点根据通用数据库中存储的数据表信息,来获取所有子控制服务节点对应的子消息队列的配置信息;
第二节点通过主消息队列将管理任务的区域信息再发送至第一节点,以使第一节点更新第一数据表。
步骤2:第二节点根据迁移请求,确定与迁移请求对应的第一子消息队列的配置信息和第二子消息队列的配置信息,再通过第一子消息队列的配置信息封装RPC Client,并通过RPC Client将迁移请求发送至第一子消息队列中。
实际应用时,第二节点根据迁移请求先确定第一计算节点和第二计算节点,再分别确定第一计算节点和第二计算节点的区域信息。针对第一计算节点,第二节点依据区域信息和第一数据表的关联关系得到对应的UUID,再根据UUID在第二数据表中查找得到第一子控制服务节点对应的第一子消息队列的配置信息。针对第二计算节点,第二节点依据区域信息和第一数据表的关联关系得到对应的UUID,再根据UUID在第二数据表中查找得到第二子控制服务节点对应的第二子消息队列的配置信息。
这里,第二节点根据第一子消息队列的配置信息对RPC Client进行封装,并通过RPC Client将迁移请求发送至第一子消息队列中。此外,第二节点还分别将第一子消息队列的配置信息和第二子消息队列的配置信息进行封装,通过RPC Client发送至第一子消息队列,使得第一子控制服务节点获取到第一子消息队列的配置信息和第二子消息队列的配置信息。一方面,第一子控制服务节点可以根据第一子消息队列的配置信息对RPC Client进行封装,从而调用第一计算节点。另一方面,第一子控制服务可以通过第二子消息队列的配置信息对RPC Client进行封装,以调用第二计算节点来完成实例迁移的操作。
步骤3:第一子控制服务节点从第一子消息队列中获取迁移请求,完成数据处理后再封装RPC Client来调用第一计算节点;
实际应用时,第一子控制服务节点从第一子消息队列中获取迁移请求,根据迁移请求对第一子控制服务节点的第二数据库进行更新操作。此外,第一子控制服务节点还从第一子消息队列中得到第一子消息队列的配置信息,根据所述配置信息对RPC Client进行封装,并通过RPC Client将迁移请求发送至第一子消息队列中,以调用第一计算节点来执行服务实例迁移的操作。
步骤4:第一计算节点对服务实例进行迁移,将服务实例的数据信息发送至第二计算节点;
这里,第一计算节点从第一子消息队列中获取针对服务实例的迁移请求后,将服务实例的数据信息发送至第二计算节点。具体地,第一子控制服务节点获取到针对服务实例的迁移请求时,会通过第一子消息队列将第二数据库中与服务实例的数据信息发送至第一计算节点,以使第一计算节点将服务实例的数据信息封装为数据包,发送至第二计算节点。
在第一计算节点将服务实例的数据信息迁移至第二计算节点后,第一计算节点通过第一子消息队列向第一子控制服务节点发送第一消息;所述第一消息表征第一计算节点已进行实例迁移操作。
步骤5:确定实例迁移完成后,第一子控制服务节点通过RPC Client,将针对服务实例的迁移请求发送至第二子控制服务节点对应的第二子消息队列中;
实际应用时,第一子控制服务节点从第一子消息队列中获取第二子消息队列的配置信息,再根据第二子消息队列的配置信息对RPC Client进行封装,并将迁移请求发送至第二子消息队列中;同时,第一子控制服务节点将第二子消息队列的配置信息也进行封装,并发送至第二子消息队列中。
步骤6:第二子控制服务节点从第二子消息队列中获取迁移请求,完成数据处理后再封装RPC Client来调用目标节点;
实际应用时,第二子控制服务节点从第二子消息队列获取迁移请求时,需要根据迁移请求对第二数据库进行更新。然后,第二子控制服务节点从第二子消息队列中获取迁移请求第二子消息队列的配置信息,根据第二子消息队列的配置信息对RPC Client进行封装,并通过RPC Client将迁移请求发送至第二子消息队列,以调用第二计算节点执行实例迁移操作。
步骤7:第二计算节点从第二子消息队列中获取针对服务实例的迁移请求,确定实例迁移已完成。
实际应用时,第二计算节点确定实例迁移完成后,对第一计算节点发送的数据包进行解析,生成服务实例的数据信息。然后,目标节点通过第二子消息队列将服务实例的数据信息发送至第二子控制服务节点,以使第二子控制服务节点将发送的服务实例的数据信息更新至对应的业务数据库中,进而完成实例迁移操作。
通过上述描述可以看出,本应用实施例中,当主控制服务节点接收到针对服务实例的迁移请求时,通过引入一种双RPC Client封装的方式,来实现跨消息队列的服务通信机制。其中,双RPC Client封装即主控制服务节点从通用数据库中读取源节点、目标节点所在的区域的MQ配置信息,封装为RPC Client(源节点)、RPC Client(目的节点),通过RPCClient(源节点)、RPC Client(目的节点)的方式,实现了服务实例的迁移操作。
在本申请的各种实施例中,针对OpenStack云平台,提出了主控制服务节点、子控制服务节点、计算节点的三级管理架构,如图7中实线所示。具体地,一方面,将控制服务节点拆分为主控制服务节点和子控制服务节点,形成主控制服务节点管理子控制服务节点,子控制服务节点管理计算节点的分布式管理架构。另一方面,如图8所示,通过将现有的两级架构中的数据库拆分为通用数据库和业务数据库,使得主控制服务节点与通用数据库交互,每个子控制服务节点与业务数据库交互的结构,也就是说,基于OpenStack的三级管理架构中存在多个数据库集群。其中,通用数据库以管理数据表为主,业务数据库以实例数据表为主。
分层后,主控制服务节点(包括API响应、调度、数据库记录服务)对接通用数据库及主消息队列集群,用于API处理,调度处理等操作。子控制服务节点(数据库记录服务)对接各区域中服务数据库及子消息队列集群,用于交互Nova计算服务实现实例操作。
图7中虚线表示OpenStack传统管理方式的两级管理架构,由于两级管理架构中仅采用一个数据库来存储全部数据,在数据库存储能力一定的情况下,两级管理架构对应的管理能力也会受限。而本申请实施例通过将一个数据库拆分为多个数据库集群,并存储不同类型的数据,增加了主控制服务节点的存储能力;进一步地,结合主控制服务节点管理子控制服务节点、子控制服务节点管理计算节点的分布式管理方式,扩大了主控制服务节点可纳管的计算节点的范围,即提高了主控制服务节点的管理能力。
此外,由于OpenStack的管理系统为分布式管理架构,存在至少一个子控制服务节点,且每个子控制服务节点都配置了对应的业务数据库和子消息队列,当其中一个子控制服务节点对应的业务数据库或者子消息队列出现故障,导致所述子控制服务节点无法执行针对实例的管理任务的情况下,不会影响除所述子控制服务节点之外的其他子控制服务节点的操作。也就是说,其他子控制服务节点可以根据对应的业务数据库和子消息队列继续执行针对实例的管理任务,避免了由于一个子控制服务节点出现故障而导致整个OpenStack系统无法执行管理任务的情况,进而增加了OpenStack的可靠性。
为了实现本申请实施例的方案,本申请实施例还提供一种管理装置,设置在主控制服务节点上,如图9所示,该装置包括:
第一获取单元901,用于获取针对目标服务实例的管理任务;
第一处理单元902,用于从第一数据库中查找与所述管理任务对应的目标子控制服务节点的关联信息;所述关联信息用于所述主控制服务节点与所述目标子控制服务节点实现通信;所述目标子控制服务节点与至少一个目标计算节点连接;所述目标计算节点用于对服务实例进行处理;子控制服务节点与第二数据库连接;所述第二数据库包含服务实例的数据;
第一发送单元903,用于利用获取的管理任务和所述关联信息,向所述目标子控制服务节点分配针对所述目标服务实例的管理任务,以使得所述目标子控制服务节点向所述至少一个目标计算节点分配针对所述目标服务实例的管理任务。
其中,在一实施例中,所述第一处理单元902,用于:
利用所述关联信息,确定所述目标子控制服务节点对应的子消息队列的地址信息;
所述第一发送单元903,用于:
利用所述地址信息,通过RPC Client,将所述获取的管理任务发送至所述对应的目标子控制服务节点对应的子消息队列中。
在一实施例中,所述第一处理单元902,还用于:
利用所述获取的管理任务,对所述第一数据库进行更新。
实际应用时,所述第一获取单元901、第一发送单元902、可由管理装置中的通信接口实现;第一处理单元902可由管理装置中的处理器实现。
为了实现本申请实施例第一子控制服务节点侧的方法,本申请实施例还提供了一种管理装置,设置在第一子控制服务节点上,如图10所示,该装置包括:
第二获取单元1001,用于获取主控制服务节点分配的针对目标服务实例的管理任务;所述管理任务用于所述第一子控制服务节点向至少一个目标计算节点分配针对所述目标服务实例的管理任务;
第二发送单元1002,用于利用获取的管理任务,向所述至少一个目标计算节点分配针对所述目标服务实例的管理任务,以使得所述目标计算节点对服务实例进行操作。
其中,在一实施例中,该装置还可以包括:
第二处理单元,用于利用获取的管理任务,对所述第一子控制服务节点的第二数据库进行更新。
在一实施例中,所述第二获取单元1001,用于:
从第一子消息队列中获取所述主控制服务节点分配的针对所述目标服务实例的管理任务;
所述第二发送单元1002,用于:
通过RPC Client,将所述获取的管理任务发送至所述至少一个目标计算节点对应的子消息队列中。
在一实施例中,所述第二获取单元1001,还用于:
获取第一目标计算节点发送的第一消息;所述第一消息表征所述第一目标计算节点已对所述目标服务实例进行实例迁移操作;
所述第二发送单元1002,还用于:
通过RPC Client,将所述获取的管理任务发送至第二子服务控制节点对应的第二子消息队列中,使得所述第二子服务控制节点利用所述获取的管理任务,向对应的第二目标计算节点分配所述针对所述目标服务实例的管理任务,以使得所述第二目标计算节点对所述目标服务实例进行操作;其中,所述第二目标计算节点为目标服务实例迁移后的计算节点。
实际应用时,所述第二发送单元1001、第二接收单元1002可由管理装置中的通信接口实现;所述第二处理单元可由管理装置中的处理器实现。
需要说明的是:上述实施例提供的管理装置在进行通信时,仅以上述各程序单元的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序单元完成,即将装置的内部结构划分成不同的程序单元,以完成以上描述的全部或者部分处理。另外,上述实施例提供的管理装置与管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述程序模块的硬件实现,且为了实现本申请实施例主控制服务节点侧的方法,本申请实施例还提供了一种主控制服务节点,如图11所示,该主控制服务1100包括:
第一通信接口1101,能够与子控制服务节点进行信息交互;
第一处理器1102,与所述第一通信接口1101连接,以实现与第一子控制服务节点进行信息交互,用于运行计算机程序时,执行上述主控制服务节点侧一个或多个技术方案提供的方法;所述计算机程序存储在第一存储器1103上。
具体地,所述第一通信接口1101,用于获取针对目标服务实例的管理任务;还用于利用获取的管理任务和所述关联信息,向所述目标子控制服务节点分配针对所述目标服务实例的管理任务,以使得所述目标子控制服务节点向所述至少一个目标计算节点分配针对所述目标服务实例的管理任务。
所述第一处理器1102,用于从第一数据库中查找与所述管理任务对应的目标子控制服务节点的关联信息;所述关联信息用于所述主控制服务节点与所述目标子控制服务节点实现通信;所述目标子控制服务节点与至少一个目标计算节点连接;所述目标计算节点用于对服务实例进行处理;子控制服务节点与第二数据库连接;所述第二数据库包含服务实例的数据。
其中,在一实施例中,所述第一处理器1102,用于利用所述地址信息,并利用所述第一通信接口1101通过RPC Client,将所述获取的管理任务发送至所述对应的目标子控制服务节点对应的子消息队列中。
所述第一处理器1102,还用于利用所述关联信息,确定所述目标子控制服务节点对应的子消息队列的地址信息。
在一实施例中,所述第一处理器1102,还用于利用所述获取的管理任务,对所述第一数据库进行更新。
需要说明的是:第一处理器1102及第一通信接口1101的具体处理过程可参照上述方法理解。
当然,实际应用时,主控制服务节点中的各个组件通过总线系统1104耦合在一起。可理解,总线系统1104用于实现这些组件之间的连接通信。总线系统1104除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图11中将各种总线都标为总线系统1104。
本申请实施例中的第一存储器1103用于存储各种类型的数据以支持主控制服务1100的操作。这些数据的示例包括:用于在主控制服务节点1100上操作的任何计算机程序。
上述本申请实施例揭示的方法可以应用于所述第一处理器1102,或者由所述第一处理器1102实现。所述第一处理器1102可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述第一处理器1102中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述第一处理器1102可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述第一处理器1102可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第一存储器1103,所述第一处理器1102读取第一存储器1103中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,主控制服务节点1100可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或者其他电子元件实现,用于执行前述方法。
基于上述程序模块的硬件实现,且为了实现本申请实施例第一子控制服务节点侧的方法,本申请实施例还提供了一种子控制服务节点,如图12所示,该子控制服务节点1200包括:
第二通信接口1201,能够与主控制服务节点、计算节点进行信息交互;
第二处理器1202,与所述第二通信接口1201连接,以实现与主控制服务、计算节点进行信息交互,用于运行计算机程序时,执行上述第一子控制服务侧一个或多个技术方案提供的方法;所述计算机程序存储在第二存储器1203上。
具体地,所述第二通信接口1201,用于获取主控制服务节点分配的针对目标服务实例的管理任务;所述管理任务用于所述第一子控制服务节点向至少一个目标计算节点分配针对所述目标服务实例的管理任务;还用于利用获取的管理任务,向所述至少一个目标计算节点分配针对所述目标服务实例的管理任务,以使得所述目标计算节点对服务实例进行操作。
在一实施例中,所述第二处理器1202,还用于利用获取的管理任务,对所述第一子控制服务节点的第二数据库进行更新。
其中,在一实施例中,所述第二通信接口1201,用于从第一子消息队列中获取所述主控制服务节点分配的针对所述目标服务实例的管理任务;
所述第二处理器1202,用于利用所述第二通信接口1201通过RPC Client,并将所述获取的管理任务发送至所述至少一个目标计算节点对应的子消息队列中。
在一实施例中,所述第二通信接口1201,还用于获取所述第一目标计算节点发送的第一消息;所述第一消息表征所述第一目标计算节点已对所述目标服务实例进行实例迁移操作;
所述第二处理器1202,用于利用所述第二通信接口1201通过RPC Client,将所述获取的管理任务发送至第二子服务控制节点对应的第二子消息队列中,使得所述第二子服务控制节点利用所述获取的管理任务,向对应的第二目标计算节点分配针对所述目标服务实例的管理任务,以使得所述第二目标计算节点对所述目标服务实例进行操作;其中,所述第二目标计算节点为目标服务实例迁移后的计算节点。
需要说明的是:所述第二处理器1202及第二通信接口1201的具体处理过程可参照上述方法理解。
当然,实际应用时,第一子控制服务中的各个组件通过总线系统1204耦合在一起。可理解,总线系统1204用于实现这些组件之间的连接通信。总线系统1204除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图12中将各种总线都标为总线系统1204。
本申请实施例中的第二存储器1203用于存储各种类型的数据以支持第一子控制服务1200的操作。这些数据的示例包括:用于在子控制服务节点1200上操作的任何计算机程序。
上述本申请实施例揭示的方法可以应用于所述第二处理器1202中,或者由所述第二处理器1202实现。所述第二处理器1202可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过所述第二处理器1202中的硬件的集成逻辑电路或者软件形式的指令完成。上述的所述第二处理器1202可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。所述第二处理器1202可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于第二存储器1203,所述第二处理器1202读取第二存储器1203中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,子控制服务节点1200可以被一个或多个ASIC、DSP、PLD、CPLD、FPGA、通用处理器、控制器、MCU、Microprocessor、或其他电子元件实现,用于执行前述方法。
为了实现本申请实施例提供的方法,本申请实施例还提供了一种管理系统,如图13所示,该系统包括:主控制服务节点1301和子控制服务节点1302。
这里,需要说明的是:所述主控制服务节点1301和子控制服务节点1302的具体处理过程已在上文详述,这里不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的第一存储器1103,上述计算机程序可由主控制服务节点1100的第一处理器1102执行,以完成前述主控制服务节点侧方法所述步骤,再比如包括存储计算机程序的第二存储器1203,上述计算机程序可由子控制服务节点1200的第二处理器1202执行,以完成前述第一子控制服务节点侧方法所述步骤。计算机可读存储介质可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,ErasableProgrammable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,ElectricallyErasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagneticrandom access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。
需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
另外,本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围,凡在本申请的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种管理方法,其特征在于,应用于主控制服务节点,包括:
获取针对目标服务实例的管理任务;
从第一数据库中查找与所述管理任务对应的目标子控制服务节点的关联信息;所述关联信息用于所述主控制服务节点与所述目标子控制服务节点实现通信;所述目标子控制服务节点与至少一个目标计算节点连接;所述目标计算节点用于对服务实例进行处理;子控制服务节点与第二数据库连接;所述第二数据库包含服务实例的数据;
利用获取的管理任务和所述关联信息,向所述目标子控制服务节点分配针对所述目标服务实例的管理任务,以使得所述目标子控制服务节点向所述至少一个目标计算节点分配针对所述目标服务实例的管理任务。
2.根据权利要求1所述的方法,其特征在于,所述利用获取的管理任务,和所述关联信息,向所述目标子控制服务节点分配针对所述目标服务实例的管理任务,包括:
利用所述关联信息,确定所述目标子控制服务节点对应的子消息队列的地址信息;
利用所述地址信息,通过远程过程调用客户端RPC Client,将所述获取的管理任务发送至所述对应的目标子控制服务节点对应的子消息队列中。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
利用所述获取的管理任务,对所述第一数据库进行更新。
4.一种管理方法,其特征在于,应用于第一子控制服务节点,包括:
获取主控制服务节点分配的针对目标服务实例的管理任务;所述管理任务用于所述第一子控制服务节点向至少一个目标计算节点分配针对所述目标服务实例的管理任务;
利用获取的管理任务,向所述至少一个目标计算节点分配针对所述目标服务实例的管理任务,以使得所述目标计算节点对服务实例进行操作。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
利用获取的管理任务,对所述第一子控制服务节点的第二数据库进行更新。
6.根据权利要求4所述的方法,其特征在于,所述获取主控制服务节点分配的针对目标服务实例的管理任务,包括:
从第一子消息队列中获取所述主控制服务节点分配的针对所述目标服务实例的管理任务;
所述利用获取的管理任务,向所述至少一个目标计算节点分配针对所述目标服务实例的管理任务,包括:
通过RPC Client,将所述获取的管理任务发送至所述至少一个目标计算节点对应的子消息队列中。
7.根据权利要求6所述的方法,其特征在于,针对所述目标服务实例的管理任务包括对所述目标服务实例进行迁移;所述方法还包括:
获取第一目标计算节点发送的第一消息;所述第一消息表征所述第一目标计算节点已对所述目标服务实例进行实例迁移操作;
通过RPC Client,将所述获取的管理任务发送至第二子服务控制节点对应的第二子消息队列中,使得所述第二子服务控制节点利用所述获取的管理任务,向对应的第二目标计算节点分配针对所述目标服务实例的管理任务,以使得所述第二目标计算节点对所述目标服务实例进行操作;其中,所述第二目标计算节点为目标服务实例迁移后的计算节点。
8.一种主控制服务节点,其特征在于,包括:第一处理器和用于存储能够在处理器上运行的计算机程序的第一存储器,
其中,所述第一处理器用于运行所述计算机程序时,执行权利要求1至3任一项所述方法的步骤。
9.一种子控制服务节点,其特征在于,包括:第二处理器和用于存储能够在处理器上运行的计算机程序的第二存储器,
其中,所述第二处理器用于运行所述计算机程序时,执行权利要求4至7任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至3任一项所述方法的步骤,或者实现权利要求4至7任一项所述方法的步骤。
CN202110704319.2A 2021-06-24 2021-06-24 管理方法、相关设备和存储介质 Pending CN115525416A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110704319.2A CN115525416A (zh) 2021-06-24 2021-06-24 管理方法、相关设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110704319.2A CN115525416A (zh) 2021-06-24 2021-06-24 管理方法、相关设备和存储介质

Publications (1)

Publication Number Publication Date
CN115525416A true CN115525416A (zh) 2022-12-27

Family

ID=84693545

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110704319.2A Pending CN115525416A (zh) 2021-06-24 2021-06-24 管理方法、相关设备和存储介质

Country Status (1)

Country Link
CN (1) CN115525416A (zh)

Similar Documents

Publication Publication Date Title
JP7085565B2 (ja) 分離されたネットワークスタックにわたるインテリジェントなスレッド管理
US11418512B2 (en) Method for virtual machine to access physical server in cloud computing system, apparatus, and system
CN107181808B (zh) 一种私有云系统及运行方法
US9244817B2 (en) Remote debugging in a cloud computing environment
CN108322325B (zh) 一种虚拟机管理方法及装置
CN111857873A (zh) 一种实现云原生容器网络的方法
CN111585887B (zh) 基于多个网络的通信方法、装置、电子设备及存储介质
US10817327B2 (en) Network-accessible volume creation and leasing
CN112291298A (zh) 异构系统的数据传输方法、装置、计算机设备和存储介质
CN113810230A (zh) 对容器集群中的容器进行网络配置的方法、装置及系统
CN113746641B (zh) 一种基于分布式存储的odx协议处理方法
CN108540408B (zh) 一种基于Openstack的分布式虚拟交换机的管理方法及系统
CN110543315A (zh) 一种kbroker分布式操作系统、存储介质和电子设备
JP2022069420A (ja) コンピュータ実装方法、コンピュータシステムおよびコンピュータプログラム製品(エッジコンピューティング環境における障害管理)
CN111970162B (zh) 一种超融合架构下的异构gis平台服务中控系统
CN115525416A (zh) 管理方法、相关设备和存储介质
CN111949378B (zh) 虚拟机启动模式切换方法和装置、存储介质及电子设备
WO2021232860A1 (zh) 通信方法、装置及系统
CN112565158B (zh) 数据访问方法、装置、系统、电子设备及计算机可读介质
US20180123999A1 (en) Tracking client location using buckets
CN113127145B (zh) 信息处理方法、装置以及存储介质
US20230315543A1 (en) Tightly coupled parallel applications on a serverless computing system
US20230205505A1 (en) Computer system, container management method, and apparatus
WO2023040504A1 (zh) 数据处理系统、数据处理方法及相关装置
US20230315541A1 (en) Tightly coupled parallel applications on a serverless computing system

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