输入分发方法、输入代理及拟态分布式存储系统
文献发布时间:2023-06-19 10:14:56
技术领域
本发明涉及分布式存储系统,具体的说,涉及了一种输入分发方法、输入代理及拟态分布式存储系统。
背景技术
在分布式或软件定义存储中,由3个重要组成部分:MON模块负责数据服务分布,数据块分布和集群状态维护;MDS模块负责传统意义文件系统的元数据维护;OSD模块负责数据切片存储。由于MON模块保存了数据地图,OSD只是保存的数据切片,MDS只是保存了文件的元数据;如果不拿到数据地图就无法提取原始文件,所以对MON模块进行拟态化,可以实现以最小的改造代价达到存储系统的内生安全,有效主动抵御基于已知经验或者未知安全漏洞的攻击行为,防止数据泄露风险。
为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。
发明内容
本发明的目的是针对现有技术的不足,从而提供了一种输入分发方法、输入代理及拟态分布式存储系统。
为了实现上述目的,本发明所采用的技术方案是:一种用于拟态系统的输入分发方法,当接收到请求信息后,生成加密密钥和标识ID,将所述标识ID、所述加密密钥以及当前时间添加至所述请求信息的消息头中,并将所述请求消息复制分发给所有在线异构执行体。
其中,所述标识ID生成步骤为:以当前时间为随机数种子生成随机数,并将所述随机数和所述请求消息的到达时间字符串合成标识ID。
本发明还公开了一种用于拟态系统的输入代理,包括接收模块、处理模块、密钥生成模块、标识ID生成模块以及分发模块,所述处理模块分别与所述接收模块、所述密钥生成模块和所述标识ID生成模块连接,所述分发模块与所述处理模块连接;
所述接收模块,用于接收请求消息;
所述处理模块,用于在接收到所述请求信息后,向所述密钥生成模块发送密钥生成指令,以及向所述标识ID生成模块发送标识ID生成指令;
所述密钥生成模块,用于在接收到所述密钥生成指令后,生成加密密钥返回给所述处理模块;
所述标识ID生成模块,用于在接收到所述标识ID生成指令后,生成标识ID返回给所述处理模块;
所述处理模块,用于将当前时间、所述标识ID以及所述加密密钥添加至所述请求信息的消息头中;
所述分发模块,用于将所述请求消息复制分发给在线异构执行体。
基于上述,所述标识ID生成模块包括随机数生成模块和合成模块,
所述合成模块分别与所述处理模块和所述随机数生成模块连接,用于在接收到所述标识生成指令后,获取所述标识生成指令里携带的请求消息的到达时间字符串,并向所述随机数生成模块发送随机数生成指令;
所述随机数生成模块,用于在接收到所述随机数生成指令后,以当前时间为随机数种子生成随机数返回给所述合成模块;
所述合成模块,用于将所述随机数与所述请求消息的到达时间字符串合成标识ID。
基于上述,所述处理模块包括HTTP协议处理模块和TCP协议处理模块,所述HTTP协议处理模块,用于处理HTTP协议的集群web管理软件的请求消息;所述TCP协议处理模块,用于处理TCP协议的集群内部请求消息;所述接收模块,在接收所述请求消息后,根据所述请求消息使用的消息传输协议,将所述请求消息分发给所述HTTP协议处理模块或所述TCP协议处理模块。
基于上述,所述输入代理还包括判断模块和发送模块,所述判断模块分别与所述接收模块、所述处理模块和所述发送模块连接,用于根据所述请求消息的消息ID判断所述请求消息是否需要进行分发,若需要,则将所述请求消息发送至所述处理模块;若不需要分发,则将所述请求消息发送至所述发送模块;
所述输出模块,用于将在所述请求信息发送出去。
本发明还提供一种拟态分布式存储系统,包括输入代理、若干个在线异构MON执行体、负反馈控制模块、裁决器和输出代理,所述输入代理,用于接收请求消息,并进行所述请求消息的复制分发;
所述在线异构MON执行体,与所述输入代理连接,用于对所述请求消息进行响应,并将响应结果发送至所述裁决器;
所述裁决器,分别与所述在线异构MON执行体和所述输出代理连接,用于对不同在线异构MON执行体发送的响应结果进行裁决,并输出裁决结果至所述输出代理;
所述负反馈控制模块,分别与所述裁决器、所述输入代理和所述在线异构MON执行体连接,用于根据所述裁决结果调度所述在线异构MON执行体的上下线。
优选的,所述输入代理为前述的输入代理,所述输入代理的分发模块与不同在线异构MON执行体连接。
优选的,所述输入代理的分发模块与不同在线异构MON执行体连接,所述输入代理的发送模块与所述输出代理连接,用于将所述请求消息通过所述输出代理发送出去。
本发明相对现有技术具有突出的实质性特点和显著的进步,具体的说,
1.本发明在输入分发阶段,实现token需要的加密密钥的生成,并将加密密钥和判断token超时间需要的当前时间添加到请求消息的消息头中,并通过所述请求消息设置到在线异构执行体,从而使得不同执行体生成的token是相同的,解决了拟态执行体会随机生产不同的HTTP鉴权token的问题。
2.本发明通过在请求消息的消息头中增加一个唯一的标识ID,以便于裁决模块可以轻易找到进行裁决的消息组进行裁决,从而解决由于请求消息经过异构执行体到达裁决模块的顺序不可控,从而影响裁决效率和结果的问题。
3、本发明只对MON模块进行拟态化,从而最小的改造代价达到存储系统的内生安全,有效主动抵御基于已知经验或者未知安全漏洞的攻击行为,防止数据泄露风险。
4、本发明根据将处理模块分为HTTP协议处理模块或TCP协议处理模块,在接收所述请求消息后,根据所述请求消息使用的消息传输协议,将所述请求消息分发给所述HTTP协议处理模块或所述TCP协议处理模块,从而提高请求消息的处理效率。
5、针对分布式存储中一些原先需要通过mon异构执行体请求后端服务但不需要进行裁决的消息,在输入代理中根据消息ID进行判断是否需要进行分发裁决,如果不需要,则直接通过所述输入代理向后端服务直接发送查询请求返回给客户端,从而降低所述输入代理转发,异构执行体处理以及裁决的耗时,提高了执行效率。
附图说明
图1是本发明实施例2的结构示意图。
图2是本发明实施例3的结构示意图。
图3是本发明实施例4的结构示意图。
具体实施方式
下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。
实施例1
本实施例提供一种用于拟态系统的输入分发方法,当接收到请求信息后,生成加密密钥和标识ID,将所述标识ID、所述加密密钥以及当前时间添加至所述请求信息的消息头中,并将所述请求消息复制分发给所有在线异构执行体。
本发明在输入分发阶段,实现token需要的加密密钥的生成,并将加密密钥和判断token超时间需要的当前时间添加到请求消息的消息头中,并通过所述请求消息设置到在线异构执行体,从而使得不同执行体生成的token是相同的,解决了拟态执行体会随机生产不同的HTTP鉴权token的问题。
本发明通过在请求消息的消息头中增加一个唯一的标识ID,以便于裁决模块可以轻易找到进行裁决的消息组进行裁决,从而解决由于请求消息经过异构执行体到达裁决模块的顺序不可控,从而影响裁决效率和结果的问题。
在具体实施过程中,所述标识ID生成步骤为:以当前时间为随机数种子生成随机数,并将所述随机数和所述请求消息的到达时间字符串合成标识ID。
实施例2
如图1所示,本实施例提供一种用于拟态系统的输入代理,包括接收模块、处理模块、密钥生成模块、标识ID生成模块以及分发模块,所述处理模块分别与所述接收模块、所述密钥生成模块和所述标识ID生成模块连接,所述分发模块与所述处理模块连接;
所述接收模块,用于接收请求消息;
所述处理模块,用于在接收到所述请求信息后,向所述密钥生成模块发送密钥生成指令,以及向所述标识ID生成模块发送标识ID生成指令;
所述密钥生成模块,用于在接收到所述密钥生成指令后,生成加密密钥返回给所述处理模块;
所述标识ID生成模块,用于在接收到所述标识ID生成指令后,生成标识ID返回给所述处理模块;以便于裁决模块可以轻易找到进行裁决的消息组进行裁决;
所述处理模块,用于将当前时间、所述标识ID以及所述加密密钥添加至所述请求信息的消息头中;
所述分发模块,用于将所述请求消息复制分发给在线异构执行体。
在具体实施过程中,所述分发模块将当前时间、所述标识ID以及所述加密密钥添加至所述请求信息的消息头中,并将所述请求消息按照在线异构执行体的个数复制多份,并在每份所述请求消息的消息头中添加唯一的异构执行体信息,然后根据所述异构执行体信息将复制后的多份请求消息分别分发给对应在线异构执行体。
在具体实施过程中,所述标识ID生成模块包括随机数生成模块和合成模块,
所述合成模块分别与所述处理模块和所述随机数生成模块连接,用于在接收到所述标识生成指令后,获取所述标识生成指令里携带的请求消息的到达时间字符串,并向所述随机数生成模块发送随机数生成指令;
所述随机数生成模块,用于在接收到所述随机数生成指令后,以当前时间为随机数种子生成随机数返回给所述合成模块;
所述合成模块,用于将所述随机数与所述请求消息的到达时间字符串合成标识ID。
本发明只对MON模块进行拟态化,从而最小的改造代价达到存储系统的内生安全,有效主动抵御基于已知经验或者未知安全漏洞的攻击行为,防止数据泄露风险。
由于MON模块需要处理的消息分为两类,一类的HTTP协议的集群web管理软件的请求;一类是TCP协议的集群内部请求,且由于这两类协议区别很大,因此针对不同的协议,需要不同的处理模块进行处理;具体的,将所述处理模块包括HTTP协议处理模块和TCP协议处理模块,所述HTTP协议处理模块,用于处理HTTP协议的集群web管理软件的请求消息;所述TCP协议处理模块,用于处理TCP协议的集群内部请求消息;所述接收模块,在接收所述请求消息后,根据所述请求消息使用的消息传输协议,将所述请求消息分发给所述HTTP协议处理模块或所述TCP协议处理模块。
本发明根据将处理模块分为HTTP协议处理模块或TCP协议处理模块,在接收所述请求消息后,根据所述请求消息使用的消息传输协议,将所述请求消息分发给所述HTTP协议处理模块或所述TCP协议处理模块,从而提高请求消息的处理效率。
进一步的,为了更好的了解和控制所述输入代理的运行状态,所述输入代理还包括:
命令行维护模块,与所述处理模块连接,用于接收命令行命令消息,对所述输入代理的运行状态进行查询及控制。
更进一步的,所述输入代理模块还包括控制模块,所述控制模块与所述处理模块连接,用于接收控制消息如重新裁决请求等,并根据所述控制消息控制所述处理模块进行请求消息的重新发送。
为了记录审计日志,所述处理模块还需要在需要裁决的所述请求消息内添加源客户端信息。
实施例3
本实施例提与实施例的区别在于:如图2所示,所述输入代理还包括判断模块和输出模块,所述判断模块分别与所述接收模块、所述处理模块和所述输出模块连接,用于据所述请求消息的消息ID判断所述请求消息是否需要进行分发,若需要,则将所述请求消息发送至所述处理模块;若不需要分发,则将所述请求消息发送至所述输出模块;
所述输出模块,用于将在所述请求信息发送出去。
针对分布式存储中一些原先需要通过mon异构执行体请求后端服务但不需要进行裁决的消息,在输入代理中根据消息ID进行判断是否需要进行分发裁决,如果不需要,则直接通过所述输入代理向后端服务直接发送查询请求返回给客户端,从而降低所述输入代理转发,异构执行体处理以及裁决的耗时,提高了执行效率。
实施例4
本实施例提供一种拟态分布式存储系统,如图3所示,包括输入代理、若干个在线异构MON执行体、负反馈控制模块、裁决器和输出代理,所述输入代理,用于接收请求消息,并进行所述请求消息的复制分发;优选的,所述输入代理为前述实施例1的输入代理,所述输入代理的分发模块与不同在线异构MON执行体连接;
所述在线异构MON执行体,与所述输入代理连接,用于对所述请求消息进行响应,并将响应结果发送至所述裁决器;
所述裁决器,分别与所述在线异构MON执行体和所述输出代理连接,用于对不同在线异构MON执行体发送的响应结果进行裁决,并输出裁决结果至所述输出代理;
所述负反馈控制模块,分别与所述裁决器、所述输入代理和所述在线异构MON执行体连接,用于根据所述裁决结果调度所述在线异构MON执行体的上下线;
实施例5
本实施例与实施例4的区别之处在于:所述输入代理为前述实施例3的输入代理,所述输入代理的输出模块与所述输出代理连接,用于将所述请求消息通过所述输出代理发送出去。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
- 输入分发方法、输入代理及拟态分布式存储系统
- 一种分布式输入代理系统、方法及拟态构造架构