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

基于Cinder组件的信息流优化方法与流程

2021-11-05 21:36:00 来源:中国专利 TAG:

基于cinder组件的信息流优化方法
技术领域
1.本技术涉及计算机技术领域,具体来说涉及一种基于cinder组件的信息流优化方法。


背景技术:

2.随着云计算的发展,openstack的项目落地也越来越繁杂。为了支持其庞大数量的节点,openstack采用分布式

微服务化的设计架构。这导致其各个组件以及单个组件内部服务之间,都是松耦合的。同时,为了保证处理效率,异步处理在openstack中使用得非常广泛。这就导致单个组件内部的信息流呈现单向流通。致使获取某些重要的底层信息,变得非常不友好。通常只能通过人工查询相关日志,才能获取这些信息,使得运维效率非常低下。以cinder组件为例,其内部分为cinder

api服务,cinder

scheduler服务以及cinder

volume服务。cinder

api服务向用户提供restful api,cinder

scheduler服务负责调度业务,cinder

volume服务则负责对接具体的后端存储。三个服务之间通过rabbitmq进行消息传递,而且采用的是cast这种不等待返回值的rpc调用。因此当业务流程在cinder

scheduler或者cinder

volume中发生错误时,错误信息将被写进日志文件,用户无法通过api获取错误信息。


技术实现要素:

3.本发明的目的在于提供一种基于cinder组件的信息流优化方法,该方法能够在cinder

scheduler/cinder

volume服务中发生错误时记录相应信息并实现信息查询。
4.其采用的技术方案:
5.一种基于cinder组件的信息流优化方法,其包括如下步骤:
6.步骤1、客户端发送工作请求;
7.步骤2、基于cinder

api进行参数检测;当参数不合规时将错误信息反馈至客户端;当参数合规时将工作请求发送至cinder

scheduler并执行步骤3;
8.步骤3、基于cinder

scheduler进行调度处理;当调度处理失败时将操作对象的状态设置为error,将错误信息写入日志文件,解析错误信息,将解析后的错误信息记录到数据库表格中;当调度处理成功时进入cinder

volume;
9.步骤4、调用cinder.conf中配置的存储后端driver执行具体动作,若执行出错,将处理对象的状态设置为error,将错误信息写入相应的日志文件,同时解析错误信息并将解析后的错误信息记录到数据库表格中;若执行成功,将操作对象的状态设置为available。
10.优选的是,上述基于cinder组件的信息流优化方法中,所述解析错误信息包括:
11.步骤31、捕获异常信息;
12.步骤32、基于信息解析算法对错误信息进行解析归类,取得错误归类信息;
13.步骤33、实例化一个错误信息类的错误对象、并在该错误对象中写入错误归类信息;
14.步骤34、将错误归类信息存储至数据库中。
15.更优选的是,上述基于cinder组件的信息流优化方法中,所述步骤32包括:基于exception_to_dict函数和_get_fault_details函数对错误信息进行解析归类。
16.进一步优选的是,上述基于cinder组件的信息流优化方法中:所述错误归类信息包括:错误信息id、磁盘id、错误码、错误信息类别、发生错误的函数调用堆栈、发生错误的主机名。
17.与现有技术相比,本技术取得了以下技术效果:
18.通过标准restful api接口发送创建磁盘请求:在cinder

scheduler/cinder

volume服务中发生错误时记录相应信息;客户端通过标准restful api接口发送获取磁盘详情请求,如果磁盘状态为error,则会在获取到的磁盘详情中,多出包含磁盘状态为error的具体原因的信息。只使用了cinder

api接口,不影响其他接口;本技术不但可以用于捕获错误信息,还可捕获监控信息,客户自定以的元数据信息等其他任何用户想要传递的信息。
附图说明
19.下面结合附图与具体实施方式对本技术作进一步详细的说明:
20.图1为本发明的第一工作流程图;
21.图2为本发明的第二工作流程图;
22.图3为实施例1中人为破坏环境的界面截图;
23.图4为实施例1中调用接口进行信息解析并记录的界面截图;
24.图5为实施例1中创建磁盘的界面截图;
25.图6为实施例1中查看磁盘信息时的磁盘简短信息截图;
26.图7为实施例1中查看磁盘信息时的磁盘详细信息截图;
27.图8为实施例1中cinder

scheduler的日志文件的报错信息截图。
具体实施方式
28.为了更清楚地说明本技术的技术方案,下面将结合各个实施例作进一步描述。
29.一种基于cinder组件的信息流优化方法,其包括如下步骤:
30.步骤1、客户端发送工作请求;
31.步骤2、基于cinder

api进行参数检测;当参数不合规时将错误信息反馈至客户端;当参数合规时将工作请求发送至cinder

scheduler并执行步骤3;
32.步骤3、基于cinder

scheduler进行调度处理;当调度处理失败时将操作对象的状态设置为error,将错误信息写入日志文件,解析错误信息,将解析后的错误信息记录到数据库表格中;当调度处理成功时进入cinder

volume;
33.步骤4、调用cinder.conf中配置的存储后端driver执行具体动作,执行出错时,将处理对象的状态设置为error,将错误信息写入相应的日志文件,同时解析错误信息并将解析后的错误信息记录到数据库表格中;当执行成功时,则将操作对象的状态设置为available。
34.如果想要获取错误信息,可在cinder.api.v2.volumes.volumecontroller.show中,首先判断磁盘状态是否为error,如果是,则实例化一个错误信息对象,并调用其获取磁
盘最新错误信息的方法,获取最新的错误信息,并通过setattr方法将错误信息加入到磁盘属性中。然后在cinder.api.v2.volumes.views.volumes.viewbuilder.detail中,将错误信息添加到磁盘详情的返回值中。
35.实施例1:
36.以创建磁盘流程为例
37.第一步:如图3所示,人为破坏环境,此时创建磁盘失败,没有可用的cinder

volume服务供cinder

scheduler调度,在cinder

scheduler中必然失败。
38.第二步:如图4所示,在cinder

scheduler中,调用add_volume_fault_from_exc。添加位置为/usr/lib/python2.7/site

packages/cinder/scheduler/flows/create_volume.py
39.第三步:创建磁盘;如图5所示:此时磁盘现在正处于创建中,磁盘的id为ef1a128b

b6d4

4a31

b984

b8822f7c2ab8
40.第四步:查看磁盘信息;
41.图6是磁盘的简短信息,可以看到磁盘现在的状态为error;
42.图7是磁盘详细信息的部分,在本图中可以看到在fault项中包含了详细的错误信息;
43.第五步:比对日志文件;
44.如图8,为cinder

scheduler的日志文件的报错部分,与图7做比对,证明本文所介绍的方法可以正确地记录错误信息
45.以上所述,仅为本技术的具体实施例,但本技术的保护范围并不局限于此,任何熟悉本领域技术的技术人员在本技术公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。本技术的保护范围以权利要求书的保护范围为准。
再多了解一些

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

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

相关文献