一种基于Openstack云平台的多类型后端存储混合部署系统及方法与流程

文档序号:27754333发布日期:2021-12-03 21:19阅读:247来源:国知局
一种基于Openstack云平台的多类型后端存储混合部署系统及方法与流程
一种基于openstack云平台的多类型后端存储混合部署系统及方法
技术领域
1.本发明涉及异构存储对接纳管技术领域,尤其是涉及一种基于openstack云平台的多类型后端存储混合部署系统及方法。


背景技术:

2.随着行业信息化与it战略在全社会的广泛推进,面对信息数据量呈指数级增长的现状,数据中心不仅要拥有强大算力,更需要具备提供海量存储的服务能力。如何对接管理不同服务商、不同型号的存储,并实现异构存储的资源合理规划具有重要的现实意义,基于openstack的云计算平台是当下数据中心云端提供服务能力,资源管理的重要选择之一。openstack云平台纳管底层物理资源时根据不同功能、性能、服务器品牌型号,将计算节点划分为不同可用域(available zone),而传统对接存储的方式将计算可用域和存储类型可用域一一对应,形成了存储类型和计算资源可用域的强绑定。在用户部署虚拟机时,当确定了部署可用域后,将不能根据需求灵活选择存储类型,且同一业务虚拟机无法实现根据不同需求挂载不同品牌、型号的存储盘,对于存储资源的混合部署,高效利用形成了局限。因此一种能够使云平台多类型后端存储混合部署的方法不可或缺。


技术实现要素:

3.本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种兼容性好、管理方便、功能丰富、灵活性好、用户体验好的基于openstack云平台的多类型后端存储混合部署系统及方法。
4.本发明的目的可以通过以下技术方案来实现:
5.一种基于openstack云平台的多类型后端存储混合部署系统,所述的部署系统包括依次相连的用户访问层、请求认证层、cinder组件层、任务调度层、存储驱动层和存储资源池;
6.用户访问层,用于接收horizon用户前端请求,并发送至请求认证层;
7.请求认证层,用于进行keystone请求认证;
8.cinder组件层,用于进行存储管理和存储调度;
9.任务调度层,用于根据cinder组件层发送的调度信息对存储驱动层进行任务调度;
10.存储驱动层,用于根据任务调度调用对应的存储驱动;
11.存储资源池,用于存储数据。
12.优选地,所述的cinder组件层包括存储调度模块和存储管理模块;所述的存储调度模块的输入端请求认证层相连,输出端与存储管理模块相连;所述的存储管理模块的输出端与任务调度层相连;
13.存储调度模块,用于选择最合适的存储节点,并将存储节点信息发送给存储管理
模块;
14.存储管理模块,用于根据存储调度模块筛选的存储节点创建存储卷,并对存储卷进行功能管理。
15.更加优选地,所述的存储调度模块包括:
16.可用域过滤器,用于判断存储管理模块创建的存储卷的驱动所在节点的可用域是否与业务创建所选目的可用域相同,若相同,则不进行过滤,否则,进行过滤;
17.空间过滤器,用于判断存储池剩余空间大小是否大于存储管理模块创建的存储卷大小,若是,则不进行过滤,否则,进行过滤;
18.存储类型过滤器,用于根据存储管理模块创建的存储卷类型选择存储池,若没有对应类型的存储池,则将其过滤。
19.优选地,所述的任务调度层包括:
20.多后端存储调度管理模块,用于在用户未指定存储类型的情况下,通过权重计算选择最优存储类型,并发动给驱动调用模块;
21.驱动调用模块,用于根据用户指定存储类型或多后端存储调度管理模块选择的最优存储类型调用存储驱动层中对应的驱动。
22.更加优选地,所述的多后端存储调度管理模块选择最优存储类型的方法为:
23.查询各存储池使用空间和总空间、自建存储卷与存储池接口调用成功次数和总次数以及自建存储卷平均创建时间;
24.计算存储池利用率、调用请求错误率和创建平均时间差率;
25.根据存储池利用率、调用请求错误率和创建平均时间差率的权重计算得分值;
26.选择最小得分值为最优得分值,对应的存储类型为最优存储类型;
27.将筛选出的最优存储类型信息发送给驱动调用模块。
28.更加优选地,所述的存储池利用率、调用请求错误率和创建平均时间差率的计算方法分别为:
[0029][0030][0031]
更加优选地,所述的得分值的计算方法具体为:
[0032]
得分值=调用请求错误率*α+存储池利用率*β+创建平均时间差率*λ
[0033]
其中,α、β和λ分别为调用请求错误率、存储池利用率和创建平均时间差率的权重值。
[0034]
更加优选地,所述的α、β和λ的取值分别为0.5、0.3和0.2。
[0035]
一种用于上述任一项所述基于openstack云平台的多类型后端存储部署系统的多类型后端存储混合部署方法,所述的部署方法包括:
[0036]
步骤1:用户访问层获取horizon前端用户创建存储卷请求;
[0037]
步骤2:请求认证层接收请求,进行keystone认证,判断是否通过用户认证,若通过,则将请求发送至cinder组件层;
[0038]
步骤3:cinder组件层的存储调度模块通过过滤器创建存储卷请求进行过滤,将过滤后的创建请求发送给任务调度层;
[0039]
步骤4:任务调度层判断是否存在用户指定的存储类型,若是,则将存储类型发送给驱动调用模块,执行步骤6,否则,执行步骤5;
[0040]
步骤5:任务调度层的多后端存储调度管理模块通过权重计算选择最优存储类型,并将存储类型信息发送给驱动调用模块;
[0041]
步骤6:驱动调用模块调用存储驱动层中对应的存储驱动;
[0042]
步骤7:完成存储操作。
[0043]
优选地,所述的步骤5具体为:
[0044]
步骤5

1:查询各存储池使用空间和总空间、自建存储卷与存储池接口调用成功次数和总次数以及自建存储卷平均创建时间;
[0045]
步骤5

2:计算存储池利用率、调用请求错误率和创建平均时间差率;
[0046][0047][0048][0049]
步骤5

3:根据存储池利用率、调用请求错误率和创建平均时间差率的权重计算得分值;
[0050]
得分值=调用请求错误率*α+存储池利用率*β+创建平均时间差率*λ
[0051]
其中,α、β和λ分别为调用请求错误率、存储池利用率和创建平均时间差率的权重值;
[0052]
步骤5

4:选择最小得分值为最优得分值,对应的存储类型为最优存储类型;
[0053]
步骤5

5:将筛选出的最优存储类型信息发送给驱动调用模块。
[0054]
与现有技术相比,本发明具有以下有益效果:
[0055]
一、兼容性好,管理方便:本发明中的基于openstack云平台的多类型后端存储混合部署系统及方法将cinder组件集权至控制节点,通过开发任务调度层,将不同服务商的存储驱动统一管理调度,实现了可用域与存储类型的解耦,同一可用域可同时对接集中式存储和分布式存储,集中式存储也可同时对接具备兼容性的不同服务商不同型号的产品,相较于传统将计算可用域和存储类型可用域对应绑定的方式,本发明中的基于openstack云平台的多类型后端存储混合部署系统及方法的兼容性更好,管理也更方便。
[0056]
二、功能丰富,灵活性好:本发明中的基于openstack云平台的多类型后端存储混合部署系统及方法通过开发任务调度层,不仅通过调用适配程序、适配文件进行灵活处理,
单元模块化,向上承接cinder组件层的调用,还可以向下有效管理调度各类型存储驱动;当用户未指定任何类型存储创建时,通过多后端存储调度管理模块,选择当前最适合存储类型进行创建,丰富了系统功能,灵活性好。
[0057]
三、用户体验好:本发明中的基于openstack云平台的多类型后端存储混合部署系统及方法用户业务虚拟机在选定可用域之后,既能选择高性能的集中式存储,也能选择创建速率秒级的分布式存储,大大提升了用户体验。
附图说明
[0058]
图1为本发明中基于openstack云平台的多类型后端存储混合部署系统的结构示意图;
[0059]
图2为本发明中基于openstack云平台的多类型后端存储混合部署方法的流程示意图;
[0060]
图3为本发明实施例中基于openstack云平台的多类型后端存储混合部署系统的搭建流程示意图。
具体实施方式
[0061]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
[0062]
本实施例涉及一种基于openstack云平台的多类型后端存储混合部署系统,其结构如图1所示,包括依次相连的用户访问层、请求认证层、cinder组件层、任务调度层、存储驱动层和存储资源池;
[0063]
用户访问层,用于接收horizon用户前端请求,并发送至请求认证层;
[0064]
请求认证层,用于进行keystone请求认证;
[0065]
cinder组件层,用于进行存储管理和存储调度;
[0066]
任务调度层,用于根据cinder组件层发送的调度信息对存储驱动层进行任务调度;
[0067]
存储驱动层,用于根据任务调度调用对应的存储驱动;
[0068]
存储资源池,用于存储数据。
[0069]
下面对各个主要层分别进行描述:
[0070]
(1)cinder组件层包括存储调度模块和存储管理模块,存储调度模块的输入端请求认证层相连,输出端与存储管理模块相连,存储管理模块的输出端与任务调度层相连;
[0071]
存储调度模块,用于选择最合适的存储节点,并将存储节点信息发送给存储管理模块;
[0072]
存储调度模块包括:
[0073]
可用域过滤器,用于判断存储管理模块创建的存储卷的驱动所在节点的可用域是否与业务创建所选目的可用域相同,若相同,则不进行过滤,否则,进行过滤;
[0074]
空间过滤器,用于判断存储池剩余空间大小是否大于存储管理模块创建的存储卷
大小,若是,则不进行过滤,否则,进行过滤;
[0075]
存储类型过滤器,用于根据存储管理模块创建的存储卷类型选择存储池,若没有对应类型的存储池,则将其过滤;
[0076]
存储管理模块,用于根据存储调度模块筛选的存储节点创建存储卷,并对存储卷进行功能管理,该模块云平台中主要执行存储卷相关的功能管理,与存储驱动协调工作一起实现存储池生命周期的维护,openstack对存储池的操作,最后均由存储管理模块来完成。
[0077]
在本实施例中,对接多后端存储需要在cinder.conf中对不同类型的后端存储池进行定义,包括后端存储名称(volume_backend_name)、存储驱动相对位置(volume_driver)、存储池适配文件位置(cinder_backend_conf_file);如果需要认证的存储则需要开启ssl证书认证(ssl_cert_verify),以及证书位置(driver_ssl_cert_path);如果是分布式存储则需要另外定义一些连接参数、密匙id等,具体示例如表1所示。
[0078]
表1配置示例
[0079]
[0080][0081]
(2)任务调度层包括:
[0082]
多后端存储调度管理模块,用于在用户未指定存储类型的情况下,通过权重计算选择最优存储类型,并发动给驱动调用模块;
[0083]
驱动调用模块,用于根据用户指定存储类型或多后端存储调度管理模块选择的最优存储类型调用存储驱动层中对应的驱动。
[0084]
多后端存储调度管理模块选择最优存储类型的方法为:
[0085]
查询各存储池使用空间和总空间、自建存储卷与存储池接口调用成功次数和总次数以及自建存储卷平均创建时间;
[0086]
计算存储池利用率、调用请求错误率和创建平均时间差率;
[0087]
存储池利用率、调用请求错误率和创建平均时间差率的计算方法分别为:
[0088][0089][0090][0091]
由于调用请求错误率代表了存储驱动和后端存储池接口调用的稳定性,直接会影
响创建成功与失败;存储池利用率则需要综合考虑剩余空间较大的存储类型优先考虑;另外通过将日常创建时间均值记录在数据库并伴随每次创建进行均值刷新,则可获取到不同存储类型创建卷的平均时间,选择平均时间最短的存储类型,用其余类型平均时间减去最短时间,除以不同存储类型平均时间集中最长时间,将创建时间百分率化,作为第三个维度的评比,最终得分最小的则为本次最优选择。
[0092]
根据存储池利用率、调用请求错误率和创建平均时间差率的权重计算得分值;
[0093]
得分值=调用请求错误率*α+存储池利用率*β+创建平均时间差率*λ
[0094]
其中,α、β和λ分别为调用请求错误率、存储池利用率和创建平均时间差率的权重值;
[0095]
选择最小得分值为最优得分值,对应的存储类型为最优存储类型;
[0096]
将筛选出的最优存储类型信息发送给驱动调用模块。
[0097]
本实施例中α、β和λ的取值分别为0.5、0.3和0.2。
[0098]
该模块为本实施例相较于传统技术的新增模块,其承上接收cinder组件层的操作请求,对下调用存储驱动层对远端存储池进行请求操作;当存储池信息发生改变时,例如用户名密码等信息变更时,无需进入存储驱动内部对底层进行修改,通过重启存储管理模块触发backend type adapter,通过获取cinder.conf中不同类型存储驱动的xml配置文件所在路径,根据路径读取配置文件中backend所有信息,并封装成json串,逐一写入存储驱动配置信息中。
[0099]
(3)存储驱动层
[0100]
存储驱动层主要负责接收到cinder组件层的指令后,和后端存储池进行rest接口通信,将创建、删除等其他操作需求、对应参数传递给存储池接口进行存储端具体实现。存储驱动根据不同存储服务商提供的官方版本需要进行对应的升级,以保证功能更新与性能稳定。
[0101]
上述系统的搭建方法的流程示意如图3所示,包括:
[0102]
步骤s1:根据所需对接的存储类型更新存储管理模块配置文件cinder.conf,在默认配置中enabled_backend属性下加入新的定义的volume_backend_name,该名称可自定义,主要是用于后续配置标记,示例如下:
[0103]
[default]
[0104]
enabled_backends=rbd

1,18000v1_fc,vmax200k_fc,18500v5_fc_ssd1_2
[0105]
上述示例中对接了四种存储类型,分别为开源ceph分布式存储、戴尔emc集中式存储、华为集中式标准存储,华为集中式高性能存储,无论是对接新的存储型号,还是对接一套全新的存储,只要需要新建存储类型volume

type,即需要在这里进行定义配置;
[0106]
步骤s2:在存储管理模块配置文件cinder.conf中,根据步骤s1新定义的volume_backend_name,在配置文件后面追加关于该backend相关驱动,自定义文件位置等信息,具体配置可参考表一示例配置;
[0107]
步骤s3:在cinder.conf所在目录下定义所需对接存储类型的详细配置xml配置文件,该文件名称格式定义为“cinder_backendname_conf.xml”,固定文件名格式主要是为了本发明新增的backend type adapter按既定逻辑解析,该xml文件内容示例如下:
[0108][0109]
主要定义了存储型号,使用协议、rest通信地址,请求认证信息,后端存储池名称,卷拷贝速率等信息,除了以上,不同的存储服务商由于提供的存储驱动不同,还需要一些特殊配置,开源ceph的除了该配置文件,还需要.pem格式证书文件,保存请求token信息的文件。
[0110]
步骤s4:在存储管理模块容器组件路径“/var/lib/kolla/venv/lib/python2.7/site

packages/cinder/volume/drivers”下上传所需对接存储的volume driver;
[0111]
步骤s5:重启存储管理模块容器触发本实施例新增的backend type adapter,将步骤s03中的信息抽取出来,并更新至volume driver中;
[0112]
步骤s6:创建volume type,即新对接存储的存储类型,创建时候需要传入properties中键值对,key为volume_backend_name,value为步骤s1中所定义的名称,另外还可传入创建时置备设置等,此步骤将用户选择的存储类型和后台调用的存储池真正对应起来;
[0113]
步骤s7:可使用本次对接的存储类型进行创建、删除、挂载、卸载等操作验证。
[0114]
本实施例还涉及一种基于openstack云平台的多类型后端存储混合部署方法,其流程如图2所示,包括:
[0115]
步骤1:用户访问层获取horizon前端用户创建存储卷请求;
[0116]
步骤2:请求认证层接收请求,进行keystone认证,判断是否通过用户认证,若通过,则将请求发送至cinder组件层;
[0117]
步骤3:cinder组件层的存储调度模块通过过滤器创建存储卷请求进行过滤,将过滤后的创建请求发送给任务调度层;
[0118]
步骤4:任务调度层判断是否存在用户指定的存储类型,若是,则将存储类型发送给驱动调用模块,执行步骤6,否则,执行步骤5;
[0119]
步骤5:任务调度层的多后端存储调度管理模块通过权重计算选择最优存储类型,并将存储类型信息发送给驱动调用模块;
[0120]
步骤6:驱动调用模块调用存储驱动层中对应的存储驱动;
[0121]
步骤7:完成存储操作。
[0122]
步骤5具体为:
[0123]
步骤5

1:查询各存储池使用空间和总空间、自建存储卷与存储池接口调用成功次数和总次数以及自建存储卷平均创建时间;
[0124]
步骤5

2:计算存储池利用率、调用请求错误率和创建平均时间差率;
[0125][0126][0127][0128]
步骤5

3:根据存储池利用率、调用请求错误率和创建平均时间差率的权重计算得分值;
[0129]
得分值=调用请求错误率*α+存储池利用率*β+创建平均时间差率*λ
[0130]
其中,α、β和λ分别为调用请求错误率、存储池利用率和创建平均时间差率的权重值;
[0131]
步骤5

4:选择最小得分值为最优得分值,对应的存储类型为最优存储类型;
[0132]
步骤5

5:将筛选出的最优存储类型信息发送给驱动调用模块。
[0133]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1