一种基于多纠删码的拟态对象存储系统的制作方法

    专利2022-07-08  75


    本发明属于数据存储技术还进领域,尤其涉及一种基于多纠删码的拟态对象存储系统。



    背景技术:

    拟态防御

    随着互联网日新月异的发展,互联网逐渐成为我们生活中不可或缺的一部分。互联网有着开放和自由的特性,正因如此,互联网也极易受到攻击。因此,网络空间的安全成为互联网研究的重要方向。

    传统的网络空间安全,多使用被动防御的方式。在被动防御中,被攻击者完成初始配置之后,攻击者可以在任何时刻、持续地对被攻击者的信息进行采集,可以在合适的时机对被攻击者发动攻击。在这种模式下,攻击者与被攻击者处于不对等的地位,这对网络系统的安全性来说,是一个极大的挑战。为了改善安全博弈中防御方的不利状况,网络空间拟态防御(cybermimicdefense,cmd)这类主动防御方法应运而生。

    拟态在生物学中指的是一个物种在演化过程中,获得与另一种成功生物相似的特征,从而使两者或其中一方有所助益的生态现象。如果将拟态依照防御行为来分类的话,拟态应属于基于内生机理的主动防御,又被叫做拟态伪装(mimicguise,mg)。如果伪装不仅在色彩、纹理和形状上迷惑天敌,而且在行为和形态上也能模拟其他的生物,这种拟态伪装可以称为“拟态防御”(mimicdefense,md)。

    网络安全专家们发现,如果将自然界中常见的这种主动防御引入到网络空间中,这将为处理网络空间的安全问题提供新的思路,特别是在应对目前最棘手的安全威胁——未知漏洞后门、木马病毒等不确定威胁时,具有显著的效果。

    cmd,建立在生物学的拟态防御思想之上,在网络空间中表现为:不改变原系统服务功能的前提下,其内部体系结构、冗余资源、运行操作机制、核心算法和其他环境因素,以及可能附着其上的未知漏洞或木马、病毒都可以在时间、空间范畴上做出战略性的变化。攻击者面对运行场景不断变化的拟态系统,难以看清整个系统架构的全貌,从而扰乱攻击者构造攻击链的过程,增加攻击的成本。

    在技术层面,cmd旨在整个各种主动防御的要素:将拥有相似性、单一性的目标系统改造为异构且多样的;将用偶静态性、确定性的目标系统改造为动态的、随机的;启用异构冗余多模仲裁机制,用于探查和屏蔽未知后门漏洞;采用高可靠性架构增强系统的灵活性。

    在网络空间拟态防御中,动态异构冗余(dynamicheterogeneousredundancy,dhr)架构是实现拟态防御(md)的原理性方法之一。该构造由输入代理、异构构件集、策略调度算法、执行体集和多模表决器组成。异构构件集和策略调度组成执行集的多维动态重构支撑环节。标准化的软硬件模块可以组合出m种功能等价的异构构件体集合,按特定的策略调度算法动态的从集合e中选出n个构件体作为一个执行体集(a1,a2,…,an),系统输入代理将输入转发给当前服务集中各执行体,这些执行体的输出矢量提交给表决器进行表决,得到系统输出。

    对象存储

    对象存储(objectstorage,os)本质上是一种键-值存储,使用put、get、del等简单的接口和一些扩展接口就能进行访问。在os系统中,对象与文件存储系统中的文件类似,对象包含数据,但是与文件系统的树状结构不同,os是扁平化的;而且os系统没有随机读写功能,使用put、get命令上传、下载对象都是针对整个对象而言的,在系统中不能对对象进行修改。

    对象还包括元数据,元数据是指用于描述数据的数据,主要包括数据的属性信息——存储时间、修改时间、数据散列值、数据存储位置。系统可以通过元数据检索到数据的位置,从而实现数据的查找。

    os拥有显著的优点:它的扩展性很高,可以扩招到数十甚至数百eb的容量,而且整个对象存储系统是横向扩展的,随着容量增加,数据会根据算法分布到所有存储节点;扁平化的设计减少了目录系统对系统效率的影响;访问方便,支持http/https协议,使用restful的接口可直接访问。但os也存在缺点,在系统中不能直接修改对象,如果想修改对象,必须在本地修改对象后再将对象完整上传至系统。

    现代对象存储系统多采用分布式架构,各节点分布在不同的服务器上。为了防止数据丢失的同时最大化磁盘利用率,os系统多采用纠删码对数据进行分块、编码,生成一些冗余编码块。如果数据块丢失或被篡改(数量少于冗余编码块),系统可以通过纠删码算法对数据进行恢复。

    ceph,ceph是一个分布式存储系统,它支持对象存储。ceph的对象存储主要包含几个重要模块:

    1)监控集群(cephmonitor):用于维护集群状态的映射,同时负责管理守护进程和客户端之间的身份认证。monitor集群通过paxos算法实现了自己数据的一致性

    2)管理集群(cephmanagerdaemon):守护进程,负责维护运行时指标和ceph集群状态。

    3)对象存储集群(cephobjectstoragedaemon):守护进程,用于存储数据,处理集群数据的复制、恢复、回填、均衡。同时osd之间会发送心跳信息,向monitor提供监控信息。

    4)归置组(placementgroup,pg)一个pg包含多个osd,引入pg的概念,便于分配和定位数据。

    5)ceph将数据看作对象存储在逻辑存储池中,客户端使用crush算法计算对象应该存储在哪个位置,crush使ceph客户机能够直接与osds通信,而不是通过集中的服务器或代理。

    在ceph存储系统中,数据存储分三个映射过程:首先要将用户要操作的文件,映射为rados能够处理的对象,接着把的对象映射到pg,在文件被映射为一个或多个文件之后,就需要将每个文件独立地映射到一个pg中去。

    1)ceph中使用单纠删码对存储的文件进行冗余处理,但如果该文件被完全篡改、删除,ceph就不能恢复该文件。

    2)ceph不设置元数据服务器或代理服务器,客户端使用crush算法计算数据块存储位置后直接从数据服务器中取数据,这样的处理方法向用户暴露出了数据服务器,增加了安全风险。

    swift,openstack对象存储(swift)是openstack开源云计算项目的子项目之一,提供了可通过http存储和检索数据的软件。对象存储在层次组织结构中,这个层次结构提供匿名只读访问,应用程序通过行业标准的httprestfulapi在对象存储中存储和检索数据。对象存储的后端组件遵循相同的restful模型。

    对象存储主要包括以下几个模块:

    1)代理服务器(proxyserver)

    代理服务器负责将swift架构整合起来,用户可以使用标准restfulhttp接口与swift进行交互。

    2)存储服务器(storageserver)

    存储服务器又分为object服务器、container服务器和account服务器,分别用于存储二进制对象、处理对象列表、处理容器列表。

    3)一致性服务器(consistencyserver)

    swift中的consistencyserver用于查找并解决由数据损坏和硬件故障引起的错误。

    ring是swift最关键的组件,用于记录存储对象与真实物理位置间的映射关系。在涉及查询account、container、object信息时,就需要查询集群的ring信息。ring使用zone、device、partition和replica来维护这些映射信息。ring中每个partition在集群中都(默认)有3个replica。每个partition的位置由ring来维护,并存储在映射中。ring文件在系统初始化时创建,之后每次增减存储节点时,会对ring文件中的项目进行再次平衡,在增减节点的过程中文件会发生迁移,且发生迁移的文件数量可以保证最小。

    swift编写了一致性散列算法搭建一个具有很强扩展性、冗余存储的分布式对象存储系统。当集群节点数发生变化时,openstack的swift的键与节点之间的映射关系改变尽可能的小,这种能力是swift应用一致性散列算法的结果。

    一致性散列算法的思路可以被描述为以下三点。首先将每个节点的散列值计算出来,并将这些散列值分配到一个0~232的圆环区间上。接着应用相同的计算方法求出存储对象(object)的散列值,也将其分配到这个圆环上。最后从数据映射到的位置开始按顺时针方向查找,将数据保存到找到的第一个节点上。如果超过232仍然找不到节点,就会保存到第一个节点上。

    1)与ceph类似,swift中使用单纠删码对存储的文件进行冗余处理,但如果该文件被完全篡改、删除,swift就不能恢复该文件。

    2)swift系统是一个满足“最终一致性”的存储系统,也就是说系统中存储的文件首先会经过一段时间的“不一致”后,才能达到一致。因此swift可能会存在延迟问题,客户端请求数据可能会访问过时的版本。



    技术实现要素:

    本发明的目的在于提供一种基于多纠删码的拟态对象存储系统,旨在解决的问题。

    本发明是这样实现的,一种基于多纠删码的拟态对象存储系统,所述基于多纠删码的拟态对象存储系统包括接口服务模块、纠删编码模块、判断模块、数据服务模块、元数据模块及文件输出判决模块,所述口服务模块,用于提供客户端与系统交互的接口函数,用户可以通过客户端查询、创建、删除存储桶,可以进行对象的上传、下载、删除操作;所述纠删编码模块,用于系统中嵌入多种纠删码作为功能构建池,每个对象会随机选用其中若干种纠删码进行编码后存入底层数据块服务器,并将编码方式作为元数据记录在元数据服务器中;所述判断模块,用于在对象存储过程中,动态地、随机地决定文件对象纠删码以及选用的数目;所述数据服务模块,用于保存数据块及其校验块;所述元数据模块,用于提供元数据存储功能的服务;所述文件输出判决模块,用于对输出数据进行判断是否与需求一致并输出数据。

    本发明的进一步技术方案是:所述接口服务模块在于客户端进行交互时,客户端会向接口服务模块随数据发送一个accesskey,系统会随机从两种不同的验证算法中选择一种对用户accesskey进行验证。

    本发明的进一步技术方案是:所述数据服务模块中数据服务节点不断向接口服务节点发送心跳信息;接口服务节点发送定位数据块的请求后,如果本数据服务节点内有该数据块,则将该数据块发送给接口服务节点。

    本发明的进一步技术方案是:所述元数据模块中元数据服务节点对接口服务节点提供restfulwebapi,元数据可扩展,提高系统元数据读写效率及防止元数据节点宕机,元数据通过消息队列向接口服务节点发送心跳包。

    本发明的进一步技术方案是:所述接口服务模块和数据服务模块之间设有消息列队模块,所述接口服务模块和数据服务模块之间设有对象的存储使用rest接口及通过消息队列进行通讯。

    本发明的进一步技术方案是:所述纠删编码模块中用户请求下载对象时,通过对应的解码方式获取到源对象的多个副本,在通过对文件哈希在判决模块实现值多判决后向客户端返回数据。

    本发明的进一步技术方案是:所述判决模块在接收到用户的读操作指令后,判决器调用纠删编码模块功能,解码对象,将其存放在缓存队列中,并对多份文件的内容一致性进行比对;如内容一致,则选择其中一份副本输出;如内容不一致,则执行值多判决,剔除不一致的数据。

    本发明的进一步技术方案是:所述基于多纠删码的拟态对象存储系统还包括日志模块,所述日志模块,用于记录每个服务器发送和接受的心跳信息,在用户上传和下载对象的过程中记录必要的日志信息。

    本发明的进一步技术方案是:所述纠删编码模块在编码时,系统动态地、随机的选取若干种纠删码,每一种纠删码模块都会将原始数据分为多个数据块,根据不同的编码算法生成校验数据块,并将原始数据块和校验块随机存入不同的数据服务节点中。

    本发明的进一步技术方案是:所述纠删编码模块在解码时,纠删码模块根据判决模块随机选取若干种纠删码,向元数据服务节点请求选取的纠删码对应的解码对象的元数据信息,并从数据服务节点中获取对应的数据块和编码块进行解码。

    本发明的有益效果是:拥有动态异构冗余网络防御能力的对象存储系统,整个系统分为多个模块,这便于系统的后续维护、更新、升级;系统的用户接口与常规的对象存储系统类似,用户不会因为系统使用了拟态架构而难以上手该系统。

    整个系统提供了多个方面的安全保障:系统中的部分数据节点被关闭,系统可以继续运行;系统使用了纠删码的方式来存储对象,而不是多副本冗余,这有助于减少对象占用的存储空间;在存储过程中,对象被分为多个数据块和多个检验块,这些块中的一部分丢失后,系统仍可以修复该对象;系统采用了动态选取多种纠删码对数据进行编码,只要存在一种纠删码能将数据正确解码出来,系统就能恢复该数据;系统的判决模块在多个纠删码输出不同对象时会启动值多判决,输出正确的对象。这种存储方式既有纠删码分片存储、数据可修复的特性,又能通过比对多纠删码恢复出的多种数据的一致性来保证文件的安全。系统实现数据多个层面上的异构,这种做法极大的增加了攻击者的攻击成本,使得系统更加难以被攻破。

    用户在和系统进行交互的时候,全程使用https协议。

    附图说明

    图1是本发明实施例提供的拟态对象存储架构的示意图。

    具体实施方式

    如图1所示,本发明提供的基于多纠删码的拟态对象存储系统,其详述如下:

    已有的对象存储系统多用于内容分发网络(contentdeliverynetwork,cdn)数据分发、大数据计算与分析的数据湖和数据容灾等多种应用场景,对象存储的出现为大量互联网公司提供了极大的便利。但近年来,网络安全事故频发,科技公司不仅需要存储系统具有海量存储的能力,还需要其有极高的安全性。但“漏洞无处不在、后门难以避免”的现实告诉我们,网络空间构成环境内无漏洞无后门从技术角度难以实现。

    本发明“基于多纠删码的拟态对象存储系统”是在cmd思想的指导下完成的一套拥有动态异构冗余网络防御能力的分布式对象存储系统。它如“沙滩建楼”一般,允许“已知的未知”风险和“未知的未知”威胁存在网络空间中。它既有传统分布式对象存储系统可扩展、负载均衡的优点,也为对象存储系统提供了主动防御的能力。

    综上所述,本发明所要解决的技术问题是:在网络空间拟态防御思想指导下,构建动态异构冗余架构的拟态对象存储系统,该系统具有主动防御能力。

    整体架构

    本发明采用的是无目录层次结构、无数据格式限制的分布式对象存储系统。

    本发明采用接口与数据存储分离的架构,让接口和数据存储成为互相独立的服务节点,两者合作提供对象存储服务,集群中可以添加接口服务节点或数据服务节点,实现分布式和可扩展性。

    系统中有三种服务:接口服务、数据服务以及元数据服务。接口服务层对外提供rest接口,而数据服务层则提供数据的存储功能。接口服务处理客户端的请求,然后向数据服务存取对象,向元数据服务存取元数据。数据服务处理来自接口服务的请求并在本地磁盘上存取对象。元数据服务处理来自接口服务的请求并在本地磁盘上存储资源的元数据。

    接口服务和数据服务之间的接口有两种,第一种接口实现对象的存取。对象的存取使用rest接口。也就是说数据服务本身也提供rest接口,此时,接口服务节点作为http客户端向数据服务请求对象。

    客户端

    系统为用户定制化不同类型的客户端,如下:

    1)可以在安卓系统上运行的客户端

    2)可以通过浏览器接入存储系统的web客户端

    用户可以在不同客户端使用唯一的用户标识uid,对该标识下的所有文件进行相关操作。

    接口服务模块

    接口服务节点提供客户端与系统交互的接口函数,用户可以通过客户端查询、创建、删除存储桶;可以进行对象的上传、下载、删除操作。

    客户端与系统进行交互时,客户端会向接口服务模块随数据发送一个accesskey,系统会随机从两种不同的验证算法中选择一种对用户accesskey进行验证,使用两种验证算法提升了系统的安全性。

    系统采用lvs技术实现接口服务模块的负载均衡的需求,从而增加了系统的吞吐量。lvs是linuxvirtualserver的简写,意即linux虚拟服务器,是一个虚拟的服务器集群系统,lvs集群实现了ip负载均衡技术和基于内容请求分发技术。调度器通过将请求均衡地转移到不同的服务器上执行,且可以屏蔽掉后台故障的服务器,从而将一组服务器构成一个高性能的、高可用的服务器集群,而这样的结构对客户端来说是完全透明的,所以无需修改客户端和其他服务器端的程序。

    lvs服务器可以让客户端将lvs服务器作为一个连接的单点,仅仅通过连接lvs服务器便可以得到后端一整个服务器集群的处理与存储能力,这样能够大大提高系统的扩展性与可用性,同时也能够提供服务的安全性,单一入侵一台服务器并不会破坏其他与该服务器隔离的服务。

    在接口服务节点中维护数据服务节点的信息,当不再收到来自某一数据服务节点的心跳信息时,则认为该节点宕机,删除该节点的信息。当接口服务节点收到下载请求时,首先会向元数据服务节点请求被下载对象的元数据信息,再根据元数据信息向数据服务节点请求定位数据块。

    数据服务模块

    数据服务节点用于保存数据块及其校验块。服务器集群使用对象寻址,每个存储对象拥有唯一的内容标识cid,所有节点可以通过cid获取到存储对象。存储集群能够灵活地应对集群的伸缩,自主完成数据迁移、负载均衡、故障恢复。

    数据服务节点不断向接口服务节点发送心跳信息;接口服务节点发送定位数据块的请求后,如果本数据服务节点内有该数据块,则将该数据块发送给接口服务节点。

    数据服务模块为系统提供了一层安全保障:

    1)假设系统拥有n个数据服务节点,如果有不少于k个数据服务节点正常工作,则整个系统可以正常工作。

    元数据服务模块

    和数据服务节点类似,元数据服务就是提供元数据存储功能的服务。元数据指的是对象的描述信息,比如名称、版本、大小以及散列值等。

    在用户向系统向接口服务器发送各种请求时,接口服务器首先要向元数据服务器发起请求,获取相应的元数据,之后再向数据服务节点请求数据。

    元数据服务节点对接口服务节点提供restfulwebapi,元数据可扩展,提高系统元数据读写效率及防止元数据节点宕机,元数据通过消息队列向接口服务节点发送心跳包。

    消息队列模块

    消息队列模块存在于接口服务模块和数据服务模块之间。接口服务和数据服务之间的接口有两种:对象的存储使用rest接口,第二种接口通过消息队列进行通讯。使用不同的接口可以满足不同的需求,rest接口能够处理对象存储大数据量传输,消息队列能够处理心跳信息以及定位信息的群发和单发。

    纠删编码模块

    为满足拟态特性,系统中嵌入多种纠删码作为功能构建池,每个对象会随机选用其中若干种纠删码进行编码后存入底层数据块服务器,并将编码方式作为元数据记录在元数据服务器中。当用户请求下载对象时,再通过对应的解码方式获取到源对象的多个副本,最后通过对文件哈希在判决模块实现值多判决(值多判决是一种多模冗余判决模型,以多数输出作为判决系统的正确输出)后向客户端返回数据。

    本发明中可以使用基于原始范德蒙矩阵的rs纠删码、柯西rs纠删码、二进制里德-所罗门码(简称brs)以及liberationraid-6编码、blaum-roth编码和liber8tion编码。

    在编码时,系统动态地、随机的选取若干种纠删码,每一种纠删码模块都会将原始数据分为多个数据块,再根据不同的编码算法生成校验数据块,最后将原始数据块和校验块随机地存入不同的数据服务节点中。

    在解码时,纠删码模块根据判决模块随机选取若干种纠删码,向元数据服务节点请求选取的纠删码对应的解码对象的元数据信息,接着从数据服务节点中获取对应的数据块和编码块,最后进行解码。在解码的过程中如果发现块丢失或被篡改系统会进行修复,如果不能修复则选择使用下一种纠删码进行解码。

    纠删码模块动态、异构、冗余的特性为系统安全提供两层保障:

    1)一个对象经过系统中的一个纠删码编码后被分为n块,假设其中k块被篡改或删除,系统可以修复该对象。

    2)系统采用m种纠删码对对象进行编码,假设其中m-1种都无法解码出对象,但只要有一种纠删编码能成功解码,系统就能正确恢复该对象。

    判决模块

    判决层在对象存储过程中,动态地、随机地决定文件对象纠删码以及选用的数目;

    判决模块的设计思想来源于拟态安全防御理论中的多余度表决器,异构系统同时存在相同漏洞并被同时攻击的概率微乎其微,对整个系统来说,可以认为在绝大多数异构系统中的同一文件不会同时发生变更,因此在文件内容或文件状态产生不同状态时,系统以多数相同状态为准,少数被变更的文件则被进行修复。文件变更产生的原因可能来源于存储系统本身的异常或者磁盘io错误,也有可能是来源于外部的攻击。无论哪种状态,由于文件不一致产生的判决日志都将被永久保存,用于归档和管理员查询。同时,判决产生的异常和修复过程都将被实时显示在管理监控界面中,以供管理员实时对系统判决状态进行分析和处理。

    接收到用户的读操作指令后,判决器调用纠删编码模块功能,解码对象,将其存放在缓存队列中,并对多份文件的内容一致性进行比对。如果内容是一致的,则选择其中的一份副本输出;如果文件的内容不一致,则执行值多判决,剔除不一致的数据,保证输出结果的一致性。

    日志模块

    日志模块会记录每个服务器发送和接受的心跳信息;该模块还会在用户上传和下载对象的过程中记录必要的日志信息,比如用户对系统发送的请求和参数、对象存储的位置、对象的分片信息等,这些日志有助于运维人员及时发现系统的问题。如果出现了入侵者,会在日志中留下相应的痕迹。

    本系统使用自主开发的日志模块。

    用户注册、登录模块

    用户在进行注册时,除了需要输入账号、密码等常规信息外,系统还会要求录入指纹、人脸和身份证信息,以保证每一个用户都是实名的。指纹、人脸和身份证作为账号的信息保存在服务器中。

    系统可以设置用户在登录时,选择是否需要对人脸进行验证。

    本发明设计了一种拟态安全对象存储系统,它是拥有动态异构冗余网络防御能力的对象存储系统,整个系统分为多个模块,这便于系统的后续维护、更新、升级;系统的用户接口与常规的对象存储系统类似,用户不会因为系统使用了拟态架构而难以上手该系统。

    整个系统提供了多个方面的安全保障:系统中的部分数据节点被关闭,系统可以继续运行;系统使用了纠删码的方式来存储对象,而不是多副本冗余,这有助于减少对象占用的存储空间;在存储过程中,对象被分为多个数据块和多个检验块,这些块中的一部分丢失后,系统仍可以修复该对象;系统采用了动态选取多种纠删码对数据进行编码,只要存在一种纠删码能将数据正确解码出来,系统就能恢复该数据;系统的判决模块在多个纠删码输出不同对象时会启动值多判决,输出正确的对象。这种存储方式既有纠删码分片存储、数据可修复的特性,又能通过比对多纠删码恢复出的多种数据的一致性来保证文件的安全。系统实现数据多个层面上的异构,这种做法极大的增加了攻击者的攻击成本,使得系统更加难以被攻破。

    用户在和系统进行交互的时候,全程使用https协议。

    本发明提出了一种拟态对象存储系统,这个系统拥有动态异构冗余架构,具有极高的安全性,不仅拥有https传输协议、用户认证等其他常规存储系统中常见的被动防御模块,还具备拟态防御能力。

    具体实施上,系统可以使用基于原始范德蒙矩阵的rs纠删码、柯西rs纠删码、二进制里德-所罗门码(简称brs)以及liberationraid-6编码、blaum-roth编码和liber8tion编码。在进行对象存储时,系统会动态地、随机地选取多种纠删码算法对文件进行冗余存储,这既不同于常见的多副本冗余,也不同于单纠删码编码存储。这种存储方式既有纠删码分片存储、数据可修复的特性,又能通过比对多纠删码恢复出的多种数据的一致性来保证文件的安全。系统实现数据多个层面上的异构,这种做法极大的增加了攻击者的攻击成本,使得系统更加难以被攻破。系统核心技术架构如图1所示。

    1.客户端与系统进行交互时,客户端向系统发送的每一条消息都附带accesskey,系统会从两种验证算法中随机选择一种对accesskey进行验证。

    2.在用户上传数据时,系统会动态选择多种纠删码对数据进行编码处理,并将编码后的数据随机存入数据节点中。

    3.在用户下载数据时,系统首先获取上传时使用的n种纠删码类型,动态地选择k种类型的纠删码(3<=k<=n,k为奇数),分别对数据进行解码。

    4.输出数据时,系统比对解码数据的一致性,如果一致则随机选择一份数据进行输出;否则系统启动值多判决并随机选择一份数据输出。

    5.出现数据判决不一致时,表示系统中数据被篡改或丢失,系统首先使用该数据对应的纠删码k1对其进行恢复;

    6.如果无法恢复,系统会先使用其他纠删码(纠删码k2、k3等)恢复出完整文件,再通过该文件来重新生成纠删码k1对应的数据块。

    以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。


    技术特征:

    1.一种基于多纠删码的拟态对象存储系统,其特征在于,所述基于多纠删码的拟态对象存储系统包括接口服务模块、纠删编码模块、判断模块、数据服务模块、元数据模块及文件输出判决模块,所述口服务模块,用于提供客户端与系统交互的接口函数,用户可以通过客户端查询、创建、删除存储桶,可以进行对象的上传、下载、删除操作;所述纠删编码模块,用于系统中嵌入多种纠删码作为功能构建池,每个对象会随机选用其中若干种纠删码进行编码后存入底层数据块服务器,并将编码方式作为元数据记录在元数据服务器中;所述判断模块,用于在对象存储过程中,动态地、随机地决定文件对象纠删码以及选用的数目;所述数据服务模块,用于保存数据块及其校验块;所述元数据模块,用于提供元数据存储功能的服务;所述文件输出判决模块,用于对输出数据进行判断是否与需求一致并输出数据。

    2.根据权利要求1所述的基于多纠删码的拟态对象存储系统,其特征在于,所述接口服务模块在于客户端进行交互时,客户端会向接口服务模块随数据发送一个accesskey,系统会随机从两种不同的验证算法中选择一种对用户accesskey进行验证。

    3.根据权利要求2所述的基于多纠删码的拟态对象存储系统,其特征在于,所述数据服务模块中数据服务节点不断向接口服务节点发送心跳信息;接口服务节点发送定位数据块的请求后,如果本数据服务节点内有该数据块,则将该数据块发送给接口服务节点。

    4.根据权利要求3所述的基于多纠删码的拟态对象存储系统,其特征在于,所述元数据模块中元数据服务节点对接口服务节点提供restfulwebapi,元数据可扩展,提高系统元数据读写效率及防止元数据节点宕机,元数据通过消息队列向接口服务节点发送心跳包。

    5.根据权利要求4所述的基于多纠删码的拟态对象存储系统,其特征在于,所述接口服务模块和数据服务模块之间设有消息列队模块,所述接口服务模块和数据服务模块之间设有对象的存储使用rest接口及通过消息队列进行通讯。

    6.根据权利要求5所述的基于多纠删码的拟态对象存储系统,其特征在于,所述纠删编码模块中用户请求下载对象时,通过对应的解码方式获取到源对象的多个副本,在通过对文件哈希在判决模块实现值多判决后向客户端返回数据。

    7.根据权利要求6所述的基于多纠删码的拟态对象存储系统,其特征在于,所述判决模块在接收到用户的读操作指令后,判决器调用纠删编码模块功能,解码对象,将其存放在缓存队列中,并对多份文件的内容一致性进行比对;如内容一致,则选择其中一份副本输出;如内容不一致,则执行值多判决,剔除不一致的数据。

    8.根据权利要求7所述的基于多纠删码的拟态对象存储系统,其特征在于,所述基于多纠删码的拟态对象存储系统还包括日志模块,所述日志模块,用于记录每个服务器发送和接受的心跳信息,在用户上传和下载对象的过程中记录必要的日志信息。

    9.根据权利要求8所述的基于多纠删码的拟态对象存储系统,其特征在于,所述纠删编码模块在编码时,系统动态地、随机的选取若干种纠删码,每一种纠删码模块都会将原始数据分为多个数据块,根据不同的编码算法生成校验数据块,并将原始数据块和校验块随机存入不同的数据服务节点中。

    10.根据权利要求9所述的基于多纠删码的拟态对象存储系统,其特征在于,所述纠删编码模块在解码时,纠删码模块根据判决模块随机选取若干种纠删码,向元数据服务节点请求选取的纠删码对应的解码对象的元数据信息,并从数据服务节点中获取对应的数据块和编码块进行解码。

    技术总结
    本发明提供了一种基于多纠删码的拟态对象存储系统,包括口服务模块,用于提供客户端与系统交互的接口函数,用户可以通过客户端查询、创建、删除存储桶,可以进行对象的上传、下载、删除操作;纠删编码模块,用于系统中嵌入多种纠删码作为功能构建池,每个对象会随机选用其中若干种纠删码进行编码后存入底层数据块服务器,并将编码方式作为元数据记录在元数据服务器中;判断模块,用于在对象存储过程中,动态地、随机地决定文件对象纠删码以及选用的数目;数据服务模块,用于保存数据块及其校验块;元数据模块,用于提供元数据存储功能的服务;文件输出判决模块,用于对输出数据进行判断是否与需求一致并输出数据。拥有动态异构冗余网络防御能力的对象存储系统。

    技术研发人员:李挥;马化军;国宏宇;史梦楚;于海洋;杨元元;霍垚光;王博辉;谢鑫;侯韩旭;张华宇
    受保护的技术使用者:佛山赛思禅科技有限公司;深圳赛思鹏科技发展有限公司
    技术研发日:2020.11.30
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-22265.html

    最新回复(0)