本发明涉及内生安全,尤其涉及一种基于内生安全架构的openstack云平台的云硬盘挂载及卸载方法。
背景技术:
1、内生安全架构是一种具备内生性安全防御能力的架构,旨在让安全由“外挂”变成“内生”,由只能防御已知威胁到可以应对未知威胁。内生安全架构的核心框架例如动态异构冗余构造(dynamic heterogeneous redundancy,dhr),其中包含多个异构执行体,每个异构执行体可以对接收的数据独立进行计算。
2、随着云计算的发展,云服务也越来越多应用到各行各业中。如何保证云平台在内生安全架构下更加快速、高效和稳定地挂载与卸载云硬盘,已经成为云平台中云主机正常运行和使用的关键。openstack云平台是当前广泛应用的一种云计算管理平台,在引入内生安全架构的情况下,每次挂载(或卸载)云硬盘时,会将对应的请求同时发送给随机选择的多个异构执行体,每个异构执行体根据接收的请求会独立地执行向数据库中写入挂载(或卸载)云硬盘的相关处理数据的操作。实际情况中,随机选择的多个异构执行体的执行进度通常都不一致,执行结果可能相同,也可能不同,由此导致在向数据库写入数据时,会出现多个异构执行体先后向数据库中写入相同数据或写入不同数据等情况,导致数据库内写入的数据出现混乱、重复甚至冲突等问题,影响云硬盘的挂载(或卸载)过程的正常进行。
技术实现思路
1、本发明提供一种基于内生安全架构的openstack云平台的云硬盘挂载及卸载方法,用以解决现有技术中在引入内生安全架构的openstack云平台中,执行挂载云硬盘操作时数据库内写入的数据存在混乱、重复或冲突的缺陷,实现在引入内生安全架构的openstack云平台中挂载云硬盘时,保证数据库内写入数据的一致性的目的。
2、本发明提供一种于内生安全架构的openstack云平台的云硬盘挂载方法,内生安全架构包括用户侧代理单元,业务侧代理单元、以及m个异构执行体,该方法包括如下步骤。
3、用户侧代理单元接收来自ui的挂载云硬盘的第一restful请求;第一restful请求携带目标云主机的第一标识和目标云硬盘的第二标识;用户侧代理单元将第一restful请求复制分发给m个异构执行体中的n个目标异构执行体;m和n为正整数,m≥n≥3;目标异构执行体响应于接收的第一restful请求,在确定目标云主机和目标云硬盘均处于可用状态的情况下,创建bdm信息;业务侧代理单元接收来自目标异构执行体的携带bdm信息、第一标识和第二标识的rpc call同步消息,对所有目标异构执行体的rpc call同步消息中的bdm信息是否一致进行裁决;nova-compute组件通过监听rabbitmq消息队列,获取业务侧代理单元在第一裁决结果为是的情况下发送给rabbitmq消息队列的携带bdm信息、第一标识和第二标识的第一消息;nova-compute组件将根据bdm信息、第一标识和第二标识获得的bdm表写入数据库;nova-compute组件在bdm表成功写入数据库的情况下,向目标异构执行体返回bdm表的第三标识,并执行在目标云主机中挂载目标云硬盘的操作。
4、根据本发明提供的一种基于内生安全架构的openstack云平台的云硬盘挂载方法,在nova-compute组件将根据bdm信息、第一标识和第二标识获得的bdm表写入数据库之后,还包括:nova-compute组件在bdm表成功写入数据库的情况下,创建副线程;nova-compute组件在bdm表成功写入数据库的情况下,向目标异构执行体返回bdm表的第三标识,并执行在目标云主机中挂载目标云硬盘的操作,包括:nova-compute组件通过当前的主线程向目标异构执行体返回bdm表的第三标识,以及通过副线程执行在目标云主机中挂载目标云硬盘的操作。
5、根据本发明提供的一种基于内生安全架构的openstack云平台的云硬盘挂载方法,创建副线程之后,还包括:nova-compute组件通过副线程向cinder-api组件发送更改目标云硬盘的状态的第一状态变更请求;cinder-api组件响应于接收的第一状态变更请求,将目标云硬盘的状态设置为预留状态;预留状态下的目标云硬盘禁止被目标云主机以外的其他云主机挂载。
6、根据本发明提供的一种基于内生安全架构的openstack云平台的云硬盘挂载方法,创建副线程之后,还包括:nova-compute组件通过副线程获取目标云主机的任务锁;以及,在通过副线程执行在目标云主机中挂载目标云硬盘的操作结束的情况下,释放任务锁。
7、根据本发明提供的一种基于内生安全架构的openstack云平台的云硬盘挂载方法,在nova-compute组件通过副线程获取目标云主机的任务锁之后,还包括:nova-compute组件向cinder-api组件发送挂载信息请求;nova-compute组件根据cinder-api组件响应于挂载信息请求返回的挂载信息,更新数据库中的bdm表;其中,挂载信息包括:目标云硬盘在目标云主机中的盘符信息。
8、根据本发明提供的一种基于内生安全架构的openstack云平台的云硬盘挂载方法,在用户侧代理单元将第一restful请求复制分发给m个异构执行体中的n个目标异构执行体之后,还包括:目标异构执行体响应于接收的第一restful请求,在确定目标云主机或目标云硬盘未处于可用状态的情况下,向用户侧代理单元返回操作冲突消息;用户侧代理单元将操作冲突消息对应的操作冲突响应消息发送给ui进行显示。
9、根据本发明提供的一种基于内生安全架构的openstack云平台的云硬盘挂载方法,内生安全架构还包括:反馈控制单元;对所有目标异构执行体的rpc call同步消息中的bdm信息是否一致进行裁决之后,还包括:业务侧代理单元在第一裁决结果为否的情况下,获取n个目标异构执行体中处于异常状态的第一异常异构执行体的标识信息,将第一异常异构执行体的标识信息发送给反馈控制单元;反馈控制单元对第一异常异构执行体进行轮换和清洗。
10、根据本发明提供的一种基于内生安全架构的openstack云平台的云硬盘挂载方法,在向目标异构执行体返回bdm表的第三标识之后,还包括:用户侧代理单元接收目标异构执行体根据其接收的第三标识返回的挂载响应消息;用户侧代理单元对所有目标异构执行体返回的挂载响应消息是否一致进行裁决;获得第二裁决结果;在第二裁决结果为是的情况下,将第二裁决结果发送给ui进行显示;在第二裁决结果为否的情况下,获取当前的所有目标异构执行体中处于异常状态的第二异常异构执行体的标识信息,将第二异常异构执行体的标识信息发送给反馈控制单元;反馈控制单元对第二异常异构执行体进行轮换和清洗。
11、本发明还提供一种基于内生安全架构的openstack云平台的云硬盘卸载方法,内生安全架构包括用户侧代理单元,业务侧代理单元、以及m个异构执行体,该方法包括如下步骤。
12、用户侧代理单元接收来自ui的卸载云硬盘的第二restful请求;第二restful请求携带目标云主机的第一标识和目标云硬盘的第二标识;用户侧代理单元将第二restful请求复制分发给m个异构执行体中的k个目标异构执行体;m和k为正整数,m≥k≥3;目标异构执行体响应于接收的第二restful请求,在确定目标云主机处于可用状态的情况下,向业务侧代理单元发送携带第一标识和第二标识的rpc call异步消息;业务侧代理单元对所有目标异构执行体的rpc call异步消息是否一致进行裁决;nova-compute组件通过监听rabbitmq消息队列,获取业务侧代理单元在第三裁决结果为是的情况下发送给rabbitmq消息队列的携带第一标识和第二标识的第二消息;nova-compute组件根据第一标识和第二标识,执行在目标云主机中卸载目标云硬盘的操作。
13、根据本发明提供的一种基于内生安全架构的openstack云平台的云硬盘卸载方法,nova-compute组件根据第一标识和第二标识,执行在目标云主机中卸载目标云硬盘的操作,包括:nova-compute组件根据第一标识,获取目标云主机的任务锁;nova-compute组件根据第一标识和第二标识,从数据库中获取包含第一标识和第二标识的bdm表;nova-compute组件根据bdm表中目标云硬盘的挂载信息,将目标云硬盘从目标云主机中卸载;nova-compute组件删除数据库中的bdm表;nova-compute组件向cinder-api组件发送第二状态变更请求;cinder-api组件响应于接收的第二状态变更请求,将目标云硬盘的状态设置为可使用状态。
14、根据本发明提供的一种基于内生安全架构的openstack云平台的云硬盘卸载方法,内生安全架构还包括:反馈控制单元;业务侧代理单元对所有目标异构执行体的rpccall异步消息是否一致进行裁决之后,还包括:业务侧代理单元在第三裁决结果为否的情况下,获取当前所有目标异构执行体中处于异常状态的第三异常异构执行体的标识信息,将第三异常异构执行体的标识信息发送给反馈控制单元;反馈控制单元对第三异常异构执行体进行轮换和清洗。
15、根据本发明提供的一中基于内生安全架构的openstack云平台的云硬盘卸载方法,目标异构执行体响应于接收的第二restful请求,在确定目标云主机处于可用状态的情况下,向业务侧代理单元发送携带第一标识和第二标识的rpc call异步消息之后,还包括:目标异构执行体向用户侧代理单元返回卸载响应消息;用户侧代理单元接收卸载响应消息后,对所有目标异构执行体返回的卸载响应消息进行一致性裁决,获得第四裁决结果;在第四裁决结果为是的情况下,将第四裁决结果发送给ui进行显示;在第四裁决结果为否的情况下,获取当前所有目标异构执行体中处于异常状态的第四异常异构执行体的标识信息,将第四异常异构执行体的标识信息发送给反馈控制单元;反馈控制单元对第四异常异构执行体进行轮换和清洗。
16、本发明提供的一种基于内生安全架构的openstack云平台的云硬盘挂载及卸载方法,能够在业务侧代理单元中对多个目标异构执行体的执行结果是否一致进行裁决,在裁决结果为多个目标异构执行体的执行结果是一致的情况下,执行云硬盘挂载操作或者云硬盘卸载操作,避免出现多个异构执行体先后向数据库中写入相同数据或写入不同数据等情况,导致数据库内写入的数据出现混乱、重复甚至冲突等问题的产生,实现在引入内生安全架构的openstack云平台中挂载或卸载云硬盘时,保证数据库内写入数据的一致性的目的。
1.一种基于内生安全架构的openstack云平台的云硬盘挂载方法,其特征在于,所述内生安全架构包括用户侧代理单元,业务侧代理单元、以及m个异构执行体,所述方法包括:
2.根据权利要求1所述的基于内生安全架构的openstack云平台的云硬盘挂载方法,其特征在于,在nova-compute组件将根据所述bdm信息、所述第一标识和所述第二标识获得的bdm表写入数据库之后,还包括:
3.根据权利要求2所述的基于内生安全架构的openstack云平台的云硬盘挂载方法,其特征在于,所述创建副线程之后,还包括:
4.根据权利要求2所述的基于内生安全架构的openstack云平台的云硬盘挂载方法,其特征在于,所述创建副线程之后,还包括:
5.根据权利要求4所述的基于内生安全架构的openstack云平台的云硬盘挂载方法,其特征在于,在nova-compute组件通过所述副线程获取所述目标云主机的任务锁之后,还包括:
6.根据权利要求1所述的基于内生安全架构的openstack云平台的云硬盘挂载方法,其特征在于,在所述用户侧代理单元将所述第一restful请求复制分发给m个所述异构执行体中的n个目标异构执行体之后,还包括:
7.根据权利要求1所述的基于内生安全架构的openstack云平台的云硬盘挂载方法,其特征在于,所述内生安全架构还包括:反馈控制单元;所述对所有所述目标异构执行体的所述rpc call同步消息中的bdm信息是否一致进行裁决之后,还包括:
8.根据权利要求7所述的基于内生安全架构的openstack云平台的云硬盘挂载方法,其特征在于,所述在向所述目标异构执行体返回所述bdm表的第三标识之后,还包括:
9.一种基于内生安全架构的openstack云平台的云硬盘卸载方法,其特征在于,所述内生安全架构包括用户侧代理单元,业务侧代理单元、以及m个异构执行体,所述方法包括:
10.根据权利要求9所述的基于内生安全架构的openstack云平台的云硬盘卸载方法,其特征在于,nova-compute组件根据所述第一标识和所述第二标识,执行在所述目标云主机中卸载所述目标云硬盘的操作,包括:
11.根据权利要求9所述的基于内生安全架构的openstack云平台的云硬盘卸载方法,其特征在于,所述内生安全架构还包括:反馈控制单元;所述业务侧代理单元对所有所述目标异构执行体的所述rpc call异步消息是否一致进行裁决之后,还包括:
12.根据权利要求11所述的基于内生安全架构的openstack云平台的云硬盘卸载方法,其特征在于,所述目标异构执行体响应于接收的所述第二restful请求,在确定所述目标云主机处于可用状态的情况下,向所述业务侧代理单元发送携带所述第一标识和所述第二标识的rpc call异步消息之后,还包括:
