一种基于OpenStack扩展实现物理节点管理的方法与流程

文档序号:17535814发布日期:2019-04-29 13:58阅读:184来源:国知局
一种基于OpenStack扩展实现物理节点管理的方法与流程

本发明涉及openstack扩展技术领域,特别是涉及一种基于openstack扩展实现物理节点管理的方法。



背景技术:

openstack是一个开源的云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过web接口让最终用户部署资源。openstack支持几乎所有类型的云环境,已经成为主流iaas(基础设施即服务)标准,通过各种服务提供了基础设施即服务(iaas)的解决方案,各个服务提供应用程序编程接口(applicationprogramminginterface,简称api)以进行集成。

openstack更偏向于虚拟资源的生命周期管理,针对越来越复杂硬件构架和底层技术实现,物理机的信息获取和管理显得尤为重要。作为openstack独立组件,认证、消息队列、数据库转换器等公共服务按需对接,提供api和cli两种访问方式。

所以基于openstack扩展实现物理节点管理是亟待解决的技术问题。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于openstack扩展实现物理节点管理的方法,旨在基于openstack框架形成组件相对独立,且降低与openstack耦合性。

为实现上述目的及其他相关目的,本发明提供一种基于openstack扩展实现物理节点管理的方法,所述方法包括:

每一个代理组件从其对应的物理机中读取目标数据,并将所述目标数据上报至第二api组件,其中,每一个代理组件有其对应的一个物理机,且该代理组件部署在对应的物理机上;

第二api组件获取到各个代理组件上报的数据后,将数据存储到数据库中;

当第一api组件接收到用户查询请求时,在判断所述用户查询请求为合法的情况下,调用第二api组件向所述数据库查询所述用户查询请求对应的数据。

本发明的一种实现方式中,所述方法还包括:

client组件发送查询指令至第一api组件;

所述第一api组件读取代理组件的信息,并将所述信息发送至client组件。

本发明的一种实现方式中,所述每一个代理组件从其对应的物理机中读取目标数据,并将所述目标数据上报至第二api组件的步骤,包括:

每一个代理组件从其对应的物理机中读取目标数据,并将定时将所述目标数据通过消息队列向第二api组件上报。

本发明的一种实现方式中,所述方法还包括:

每一个代理组件根据预设的汇报周期,向第二api组件上报当前的运行状态。

本发明的一种实现方式中,所述当第一api组件接收到用户查询请求时,在判断所述用户查询请求为合法的情况下,调用第二api组件向所述数据库查询所述用户查询请求对应的数据的步骤,包括:

当第一api组件接收到带有管理员令牌的用户查询请求时,确定所述查询请求所对应的物理机;

所述第一api组件首先需要通过keystone服务校验令牌的合法性;

在确定所述用户查询请求为合法的情况下,调用第二api组件向所述数据库进行查询,并接收所述第二api组件返回的数据。

本发明的一种实现方式中,所述当第一api组件接收到带有管理员令牌的用户查询请求时,确定所述查询请求所对应的物理机的步骤,包括:

当第一api组件接收到带有管理员令牌的用户查询请求时,确定所述查询请求所对应的查询信息是物理机信息或者是物理机列表信息。

本发明的一种实现方式中,所述第一api组件读取代理组件的信息,并将所述信息发送至client组件的步骤,包括:

所述第一api组件读取代理组件的信息,并将所述信息发送至client组件,所述client组件通过cli方式查看代理组件的状态和列出物理机列表以及展示每个物理机详细信息。

如上所述,本发明实施例提供的一种基于openstack扩展实现物理节点管理的方法,所述方法包括:每一个代理组件从其对应的物理机中读取目标数据,并将所述目标数据上报至第二api组件,通过第二api组件获取到各个代理组件上报的数据后,将数据存储到数据库中;当第一api组件接收到用户查询请求时,在判断所述用户查询请求为合法的情况下,调用第二api组件向所述数据库查询所述用户查询请求对应的数据。本发明实施例中,基于openstack框架下,每一个组件都相对独立,最大程度降低与openstack耦合性。

附图说明

图1是本发明实施例的一种基于openstack扩展实现物理节点管理的方法的控制方法的一种流程示意图。

图2是本发明实施例的一种基于openstack扩展实现物理节点管理的方法的控制方法的一种具体实施方式。

图3是本发明实施例的一种基于openstack扩展实现物理节点管理的方法的控制方法的一种具体实施方式。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。

请参阅图1-3。需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

如图1和图2所示,本发明时候实施例提供一种基于openstack扩展实现物理节点管理的方法,所述方法包括:

s101,每一个代理组件从其对应的物理机中读取目标数据,并将所述目标数据上报至第二api组件,其中,每一个代理组件有其对应的一个物理机,且该代理组件部署在对应的物理机上。

需要说明的是,公共组件novaextension-common,是其他组件包的依赖包,包含源代码,示例配置文件,说明文档等。

第一api组件novaextension-api,部署到多个控制节点的apiservice,只包含服务启动文件和服务注册文件,依赖novaextension-common;第二api组件novaextension-conductor,部署到多个控制节点的conductorservice,只包含服务启动文件和服务注册文件,依赖novaextension-common;代理组件novaextension-agent,部署到每个物理节点的代理服务agentservice,只包含服务启动文件和服务注册文件,依赖novaextension-common;client组件python-novaextensionclient,部署到任意节点的commandline,不依赖以上任何包。第一公共组件identity/keystone服务,对接现有的权限认证系统,第二公共组件queue,对接现有的消息队列系统。

如图1所示,每一个物理机对应的代理组件,示例性的,物理机1对应代理组件1,代理组件1部署在物理机1上,物理机2对应代理组件2,代理组件2部署在物理机2上,以此规律,直至物理机n对应代理组件n。

示例性的,通过restapi的方式,对外提供云平台的物理机列表信息以及物理机详情信息,所以读取的目标数据可以是物理机列表信息或者物理机详情信息。并且需要进行权限管理,只能是admin用户才有查询物理机列表和某个物理机详情的权限。

本发明实施例中,为了最大程度上降低与openstack其他组件的耦合性,实现一个独立组件novaextension,本发明实施例中,每一个第一组件为一个独立组件novaextension,用来完成获取host列表和host详情需求功能。

本发明的一种实现方式中,所述每一个代理组件从其对应的物理机中读取目标数据,并将所述目标数据上报至第二api组件的步骤,包括:

每一个代理组件从其对应的物理机中读取目标数据,并将定时将所述目标数据通过消息队列向第二api组件上报。

本发明实施例中,如图2所示,代理组件与第二组件之间通过第二公共组件queue,对接现有的消息队列系统,实现数据的发送。

s102,第二api组件获取到各个代理组件上报的数据后,将数据存储到数据库中。

实际应用中,第二api组件分别接收每一个代理组件上报过来的数据,并统一存储到数据库中,实现数据的数据库持久化操作。

s103,当第一api组件接收到用户查询请求时,在判断所述用户查询请求为合法的情况下,调用第二api组件向所述数据库查询所述用户查询请求对应的数据。

可以理解的是,当第一api组件novaextensionapi接收到带有admintoken的用户查询请求查询指定物理机详情或者是物理机列表时,第一组件novaextensionapi首先需要通过keystone服务校验token的合法性以及鉴权,然后根据具体获取物理机主机详情还是物理机列表的请求,调用第二api组件novaextensionconductor,由第二api组件novaextensionconductor来完成查询本地数据库,后将查询到的数据数据进行组装,实现满足需求的数据格式并返回。

本发明的一种实现方式中,所述当第一api组件接收到用户查询请求时,在判断所述用户查询请求为合法的情况下,调用第二api组件向所述数据库查询所述用户查询请求对应的数据的步骤,包括:当第一api组件接收到带有管理员令牌的用户查询请求时,确定所述查询请求所对应的物理机;所述第一api组件首先需要通过keystone服务校验令牌的合法性;在确定所述用户查询请求为合法的情况下,调用第二api组件向所述数据库进行查询,并接收所述第二api组件返回的数据。

本发明实施例中,第一公共组件identity/keystone服务,对接现有的权限认证系统,novaextensionapi首先需要通过keystone服务校验token的合法性以及鉴权。

因此,本发明实施例提供的一种基于openstack扩展实现物理节点管理的方法,所述方法包括:每一个代理组件从其对应的物理机中读取目标数据,并将所述目标数据上报至第二api组件,通过第二api组件获取到各个代理组件上报的数据后,将数据存储到数据库中;当第一api组件接收到用户查询请求时,在判断所述用户查询请求为合法的情况下,调用第二api组件向所述数据库查询所述用户查询请求对应的数据。本发明实施例中,基于openstack框架下,每一个组件都相对独立,最大程度降低与openstack耦合性。

本发明的一种实现方式中,所述方法还包括:client组件发送查询指令至第一api组件;所述第一api组件读取代理组件的信息,并将所述信息发送至client组件。具体的过程为:所述第一api组件读取代理组件的信息,并将所述信息发送至client组件,所述client组件通过cli方式查看代理组件的状态和列出物理机列表以及展示每个物理机详细信息。用户可以通过client组件novaextensionclient的cli方式查看agent的状态和列出物理机列表hostlist以及展示每个物理机host详细信息等。

示例性的,采用cli使用示例,获取物理机信息详情的示例,可以采用:

#novaextensionhost-showd77c588e-ed76-551d-a3e4-94d09151a654,获得结果如图3所示。

本发明的一种实现方式中,所述方法还包括:每一个代理组件根据预设的汇报周期,向第二api组件上报当前的运行状态。

一种实现方式中,因为需要获取每一个host上的数据,所以需要在每个host上部署agent,通过agent进行host相关数据的收集工作,并且该agent定时(例如60s)通过消息队列向第二api组件novaextensionconductor上报收集到的数据,为了保持数据的可靠性,代理组件novaextensionagent需要定时(例如10s)上报自己的状态,以便及时发现代理组件是否出现故障,进一步保障数据传输的可靠性。

因此,应用本发明的实施例,提供openstack物理机管理功能独立组件,能够同步nova组件硬件相关的数据信息,及时获取物理主机、处理器、内存、网络等信息。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1