CN113835685A - 一种基于拟态数据库的网络操作系统设计方法 - Google Patents
一种基于拟态数据库的网络操作系统设计方法 Download PDFInfo
- Publication number
- CN113835685A CN113835685A CN202111416379.0A CN202111416379A CN113835685A CN 113835685 A CN113835685 A CN 113835685A CN 202111416379 A CN202111416379 A CN 202111416379A CN 113835685 A CN113835685 A CN 113835685A
- Authority
- CN
- China
- Prior art keywords
- data
- mimicry
- storage
- database
- designing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于拟态数据库的网络操作系统设计方法,包括:设计拟态化的数据结构;设计拟态化的数据对象;设计拟态化的数据库;设计同步和裁决机制;设计拟态数据库安全存储指令处理系统;设计网络操作系统当中业务模块与数据库交互数据的分类存储机制。通过纵向分级和横向分类的方式,解决了数据库拟态化改造后与网络操作系统的兼容性问题。通过内存随机分发存储机制和内存硬件异构存储机制,可以降低拟态化改造所造成的成本,提高安全性的同时实现成本可控。
Description
技术领域
本发明涉及网络通信和数据库技术领域,特别涉及一种基于拟态数据库的网络操作系统设计方法。
背景技术
近些年以SONiC为代表的网络操作系统正如火如荼地发展起来,特别是在软件定义网络(SDN)的场景当中。SONiC可以实现软件操作系统与硬件平台的解耦,从而实现更加开放的网络,并越来越广泛地应用到公有云数据中心等领域当中。网络操作系统往往以数据库为核心,所有模块都围绕着跟数据库的交互来进行,因而数据库的安全性就至关重要,而如何兼顾数据库安全存储与读写速率以及版本兼容性等问题也亟待解决。
发明内容
本发明的目的在于提供一种基于拟态数据库的网络操作系统设计方法,以克服现有技术中的不足。
为实现上述目的,本发明提供如下技术方案:
本申请公开了一种基于拟态数据库的网络操作系统设计方法,其特征在于,所述的网络操作系统包括总数据库以及与总数据库交互的各个业务模块,所述的总数据库从高到低包含服务器、数据库、数据对象、数据结构和数据五个层级,所述设计方法具体如下步骤:
S1、设计拟态化的数据结构,所述数据结构实现对数据的拟态同构或拟态异构存储,所述的拟态同构存储是在现有的同一内存当中将同一数据在多个不同的地址进行备份;所述拟态异构存储基于实际硬件平台环境的异构内存,在不同内存当中对同一数据进行备份;;
S2、设计拟态化的数据对象,所述数据对象实现对拟态化数据结构的组织和存储;所述对拟态化数据结构的存储表现为普通存储和拟态存储之间二选一;
S3、设计拟态化的数据库,所述数据库实现对拟态化数据对象的整合、管理和存储;所述对拟态化数据对象的存储表现为普通存储和拟态存储之间二选一;
S4、设计同步和裁决机制,所述同步机制用于将同构或异构的数据库、数据对象或数据结构当中的内容进行统一;所述的裁决机制用于在同构或异构的数据库当中选择合适的数据对象、在同构或异构的数据对象中选择合适的数据结构、在同构或异构的数据结构中选择合适的数据;
S5、设计拟态数据库安全存储指令处理系统,所述处理系统包含安全存储指令列表,安全存储指令分发器和安全存储指令处理器;
S6、设计网络操作系统当中业务模块与总数据库交互数据的分类存储机制。
作为优选,所述步骤S1具体包括以下子步骤:
S11、设计拟态化数据结构总体框架和对外接口;所述总体框架包含拟态化数据项;所述对外接口包括但不限于创建、增加、删除、修改、获取数据、获取状态等;
S12、设计拟态存储管理模块,所述管理模块包括同构存储管理和异构存储管理;所述同构存储管理采用随机性内存分配策略;所述异构存储管理需要硬件异构的支持;
S13、计拟态存储检测模块,用于跨平台移植后检测拟态存储管理模块接口是否满足功能和性能要求,若不符合要求则自动屏蔽相关的拟态存储功能;
作为优选,所述步骤S13中所述的检测机制包括但不限于以下方法:
S131、系统上电初始化阶段进行阻塞式检测,检测通过后再执行后续业务逻辑;
S132、系统上电后进行时间周期性检测,将所有检测内容分成几个部分,每个时间周期到达后检测其中一个部分;检测过程中对有效数据进行备份,在任意检测节点出现检测失败,则屏蔽硬件异构功能,将备份的数据转换为拟态同构存储;
S133、系统上电后进行单步检测,在每个拟态数据存取处理的过程当中,先对即将调用的拟态存储管理模块的接口进行检测;检测过程中对有效数据进行备份,在任意检测节点出现检测失败,则屏蔽硬件异构功能,将备份的数据转换为拟态同构存储;检测通过后记录检测结果,避免重复检测;
作为优选,所述步骤S2具体包括以下子步骤:
S21、设计拟态化数据对象总体框架和对外接口;所述总体框架当中包含拟态化数据结构项,也包含对拟态数据结构进行普通存储或拟态存储的选择/标志项;所述对外接口包括但不限于创建、增加、删除、修改等;
S22、设计拟态数据结构管理模块,用于管理存储在拟态化数据对象当中的拟态化数据结构;
作为优选,所述步骤S3具体包括以下子步骤:
S31、设计拟态化数据库总体框架,所述总体框架当中包含拟态化的健值空间和非拟态化的健值空间;
S32、设计拟态数据对象管理模块,用于管理拟态化健值空间当中的键值对象;
作为优选,所述步骤S4中的同步机制在以下几种情形当中被执行:
S41、被拟态保护的数据发生修改;
S42、裁决发现数据不统一;
S43、时间周期性触发;
作为优选,所述步骤S5中的安全存储指令列表包含了安全等级特征,相同的安全存储指令可以有不同的安全等级;
作为优选,所述步骤S5中的安全存储指令处理器根据安全等级来规划组织层次结构;
作为优选,所述步骤S6中的分类存储机制具体分为以下几种情形:
S61、无安全性要求数据、高耦合性数据采用原始数据库存储指令或接口;
S62、低耦合性数据中,按照安全性需求和存取速率需求,选择不同安全等级的存取方式。
本发明的有益效果:与现有技术相比,本发明提供一种基于拟态数据库的网络操作系统设计方法,以解决现有存在的网络操作系统安全性不足、未知风险抵御能力较弱的问题。通过纵向分级和横向分类的方式,解决了数据库拟态化改造后与网络操作系统的兼容性问题。通过内存随机分发存储机制和内存硬件异构存储机制,可以降低拟态化改造所造成的成本,提高安全性的同时实现成本可控。
本发明的特征及优点将通过实施例结合附图进行详细说明。
附图说明
图1是本发明实施例提供的一种基于拟态数据库的网络操作系统设计方法的流程图。
图2是SONiC系统框架示意图。
图3是Redis层次结构示意图。
图4是拟态化改造前后的字典数据结构示意图。
图5是拟态字典接口名称以及功能示意图。
图6是硬件异构存储功能示意图。
图7是拟态哈希对象的框架示意图。
图8是拟态数据库框架示意图。
图9是安全等级结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面通过附图及实施例,对本发明进行进一步详细说明。但是应该理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
参考图1,本发明实施例提供一种基于拟态数据库的网络操作系统设计方法,其特征在于,所述的网络操作系统包括拟态数据库以及与该数据库交互的各个业务模块,所述的拟态数据库从高到低包含服务器、数据库、数据对象、数据结构和数据五个层级。
具体的,参考图2,以SONiC系统为基本框架实施本发明,处于SONiC架构中心位置的为Redis数据库,各个业务逻辑模块直接跟Redis进行交互,从而实现数据的分发和共享。
Redis是以C语言进行实现的内存数据库,本发明的实施例以Redis的拟态化改造为重点。具体的,参考图3,Redis本身即可以分为服务器、数据库、数据对象、数据结构和数据五个层级,Redis对外表现形式为一台服务器,通过层层组织,将用户数据保存起来。
所述设计方法具体如下步骤:
步骤S1,设计拟态化的数据结构,所述数据结构实现对数据的拟态同构或拟态异构存储,所述的拟态同构存储是在现有的同一内存当中将同一数据在多个不同的地址进行备份;所述拟态异构存储基于实际硬件平台环境的异构内存,在不同内存当中对同一数据进行备份,具体包含以下步骤:
步骤S11,设计拟态化数据结构总体框架和对外接口;所述总体框架包含拟态化数据项;所述对外接口包括但不限于创建、增加、删除、修改、获取数据、获取状态等。
具体的,可以将传统的链表、集合、字典等进行拟态化改造。需要注意的是,此处的拟态化改造并非针对数据库当中的所有数据结构进行,本发明的目的是构造一个安全的网络操作系统而非数据库,因而针对数据结构的拟态化改造要按照网络操作系统的实际需求进行。
以基于Redis的SONiC系统为例,SONiC当中对于Redis的应用主要是HSET、HGET等命令,也就是针对哈希对象的操作,而Redis当中的哈希对象有压缩链表和哈希表两种编码方式,其中压缩链表只保存占用空间较小的数据,主要的数据保存工作是通过哈希表编码完成,而哈希表编码形式的实现则依赖于字典数据结构。同时,字典数据结构还用来实现Redis数据库中的键值空间管理,因而最简单的实现拟态化安全存储的方法,就是将字典进行拟态化改造,也就是设计一个拟态化的字典。
Redis是基于C语言开发,C语言本身并不内置字典这一数据结构,需要自行实现,拟态化的字典可以在Redis原生代码实现的基础上进行设计。如果需要更高的安全等级,或者有维护更复杂代码的能力和意愿,也可以将更多类型的数据结构——例如链表、集合、压缩集合——等数据结构也进行拟态化改造。
具体的,参考图4,一种简单的将字典数据结构进行拟态化改造是将字典数据结构当中的key和val节点由一个扩展为三个,新增的key和val指针指向的内存空间要重新分配,然后将原先的key值和val值分别拷贝过去。由此,虽然三个key和val都指向相同的数据,但并非指向同一个数据。此处选择拷贝三份,是为了后续裁决模块采用择多裁决的方案,当然也可以根据实际采用的裁决方案以及软硬件性能和需求,拷贝更多数量的key和val,从而实现更高的安全性能。而此处的数据拷贝过程,可以类比为拟态防御设计体系当中的向执行体“分发任务”的行为。
具体的,参考图5,设计并实现该模块的相关接口,对比Redis原有的字典操作相关接口,省略了一些非必要功能的接口,相当于一个定制化的标准字典数据结构的功能子集,从而简化开发和维护的难度。
步骤S12,设计拟态存储管理模块,所述管理模块包括同构存储管理和异构存储管理;所述同构存储管理采用随机性内存分配策略;所述异构存储管理需要硬件异构的支持。
具体的,在拟态数据框架下,当对同一个数据进行存储时,需要重新开辟多个内存空间,最简单的内存分配方法是基于malloc函数,但该函数往往分配的是连续的内存空间,难以达到拟态存储的要求。采用随机性内存分配策略的同构存储或基于硬件异构支持的异构存储,无论是采用哪种策略,整个拟态存储管理模块的对外接口保持一致,内部策略用户不感知。
采用随机性分配策略的同构存储的实现有多种方式,一种是基于malloc/free函数,先连续malloc随机次数,从中随机选择一个用于保存数据,然后将剩余的空间释放掉。这种方式本质上还是基于malloc的连续分配,导致安全性不足。还有一种实现方式是参考malloc开发一个safemalloc函数,内部采用随机分配策略,这种实现方式安全性更高,难度也更大。
异构存储管理需要硬件异构的支持,具体的,参考图6,CPU有多个外扩的异构的内存可以进行存取访问,这些内存通过定制化驱动程序开发等方式,设置成为拟态数据存储专用,避免被系统作为虚拟地址空间分配给不同的进程。硬件异构支持的情况下,需要拟态化存储的数据可以分别下发给外扩内存A、B、C当中,从而实现异构存储,大大增加攻击者的攻击成本。
步骤S13,设计拟态存储检测模块,用于跨平台移植后检测拟态存储管理模块接口是否满足功能和性能要求,若不符合要求则自动屏蔽相关的拟态存储功能。
由于硬件异构存储不一定能获得硬件上的支持,且跨平台移植后用户实现的驱动也存在功能和性能的不确定性,因而对于硬件异构存储部分的功能需要进行隔离,以防上电以后发现硬件异构不可用的情形。一方面用户可以通过配置文件主动关闭硬件异构的功能;另一方面,即使用户开启了硬件异构功能,系统上电后也要对该部分接口进行功能和性能的检测。具体的,包含以下方法:
S131,系统上电初始化阶段进行阻塞式检测,检测通过后再执行后续业务逻辑。
该方法适用于规模较小的拟态存储模块设计,例如针对拟态存储的数据量种类和数量都较小,因而只需要开发简单的拟态存储模块及其接口,针对这些接口的检测阻塞时间较短,可以采用上电后阻塞式检测。
S132,系统上电后进行时间周期性检测,将所有检测内容分成几个部分,每个时间周期到达后检测其中一个部分;检测过程中对有效数据进行备份,在任意检测节点出现检测失败,则屏蔽硬件异构功能,将备份的数据转换为拟态同构存储。
该检测方法的具体实现,可以采用一个时钟定时器,每10s或者1min左右检测一次。例如待检测的存储空间是100M,则可以分10次每次检测10M的空间。
S133,系统上电后进行单步检测,在每个拟态数据存取处理的过程当中,先对即将调用的拟态存储管理模块的接口进行检测;检测过程中对有效数据进行备份,在任意检测节点出现检测失败,则屏蔽硬件异构功能,将备份的数据转换为拟态同构存储;检测通过后记录检测结果,避免重复检测。
例如某个数据需要在某10M空间上进行存储,则在调用拟态存储管理模块的相关接口之前,先对该接口在目标空间上的执行的有效性进行检测,检测通过后进行标记,下一次存储时不会重复检测。这样,在执行了一定数量的命令后,大部分甚至所有的拟态存储管理模块的接口都可以检测一遍,这种方法几乎不会阻塞,但潜在程序bug的风险较大,维护成本高。
一般情况下可以采用三种方法相结合的方式,例如将关键检测放在上电初始化阶段阻塞执行,次重要的检测分步在时钟周期当中检测,剩余的小众接口进行调用前的单步检测。
步骤S2,设计拟态化的数据对象,所述数据对象实现对拟态化数据结构的组织和存储;所述对拟态化数据结构的存储表现为普通存储和拟态存储之间二选一;具体的,包含以下子步骤:
步骤S21,设计拟态化数据对象总体框架和对外接口;所述总体框架当中包含拟态化数据结构项,也包含对拟态数据结构进行普通存储或拟态存储的选择/标志项;所述对外接口包括但不限于创建、增加、删除、修改等。
在设计拟态化数据对象的总体框架和对外接口时,原则上与拟态化数据结构一样,并非对所有的数据类型的数据对象都要进行拟态化改造,而是根据网络操作系统的实际需求,选择一部分数据类型的数据对象进行拟态化改造。以基于Redis的SONiC为例,类似于我们只需要对底层的字典数据结构进行拟态化改造,在数据对象这一层,也只需要针对SONiC当中应用最广泛的哈希类型的对象进行改造即可。在Redis的源码当中,数据对象的类型常量分别是REDIS_STRING、REDIS_LIST、REDIS_HASH、REDIS_SET和REDIS_ZSET,此时可以增加REDIS_SAFEHASH类型。
Redis源码当中数据对象的结构体参考图7,其中encoding字段原先是用于标记特定类型的数据的编码格式,例如原生的哈希类型的数据对象有ziplisht和hashtable两种编码,其中hashtable编码格式对应的底层数据结构即为字典数据结构。而针对拟态化的数据对象的框架设计,可以复用该字段。根据前文所描述的,拟态化数据对象的类型可以固定为REDIS_SAFEHASH,编码格式也可以固定为safehashtable这一种编码格式,对应的底层数据结构为步骤S1当中设计的拟态字典safeDict数据结构。因而encoding字段可以用于标记/控制是否对拟态字典safeDict进行拟态化存储。该标记/控制位决定了拟态数据对象当中的拟态数据结构是被保存了一份还是多份。
参考图7,Redis的拟态哈希对象指向底层数据结构的指针为ptr,该指针可以按照步骤S11当中类似的方式进行扩展,由一个ptr扩展为prtA、ptrB和ptrC。也可以保持该结构体框架不变,让ptr指针指向另一个数据结构safeDictEntry,该数据结构当中包含三个指针,分别指向同构或异构存储的safeDictA、safeDictB、safeDictC。此处尽量采用后一种方式,原因在于Redis当中数据对象与其他模块的耦合度较高,并且数据对象的接口实现较为复杂,与原生框架上保持一致,可以避免很多bug的产生。
Redis源代码当中,对于数据对象的接口包含了各种对象类型的增删改查接口及其相关的业务逻辑接口,而我们只针对哈希对象进行拟态化改造,对外接口也只需要保留一种类型的增删改查接口即可,大大减小开发和维护工作量。
步骤S22,设计拟态数据结构管理模块,用于管理存储在拟态化数据对象当中的拟态化数据结构。
针对拟态数据对象当中拟态数据结构的存储,可以参考步骤S12当中拟态数据结构对数据的存储,根据硬件异构的支持情况,选择采用同构或异构的方式。
以Redis的拟态哈希对象的实现为例,与步骤S12当中描述的拟态字典数据结构针对数据的存储不同的是,参考图7,拟态哈希对象当中对于拟态字典数据结构的存储可以是拟态化的——即存储三个,也可以是非拟态化的——即只存储一个,因而拟态数据结构管理模块需要根据拟态哈希对象结构体当中的encoding字段决定是采用普通存储还是拟态存储。
拟态字典数据结构管理模块可以定义为一个结构体,该结构体的实例化即为一个拟态字典数据数据管理器。当创建一个拟态哈希对象时,可以同步创建一个关联的拟态字典数据结构管理器,根据拟态哈希对象当中encoding的标志,在管理器当中注册不同的管理函数,这样拟态哈希对象当中针对数据结构管理相关的操作,可以直接调用管理器当中的标准化命名的接口,而不必每次进行数据管理时都判断一下encoding类型。由此,可以实现面向对象当中的多态特征。
步骤S3,设计拟态化的数据库,所述数据库实现对拟态化数据对象的整合、管理和存储;所述对拟态化数据对象的存储表现为普通存储和拟态存储之间二选一。具体的,包含以下子步骤:
步骤S31,设计拟态化数据库总体框架,所述总体框架当中包含拟态化的健值空间和非拟态化的健值空间。
具体的,参考图8。Redis的源码当中数据库的结构体当中只有一个作为健值空间的哈希表,二拟态化的数据库框架当中,增加一个步骤S1当中设计的拟态哈希表作为拟态健值空间进行管理。当有新的键值对需要存储时,根据用户的指令选择是放入到普通健值空间当中还是拟态健值空间当中,二者选其一。
步骤S32,设计拟态数据对象管理模块,用于管理拟态化健值空间当中的键值对象。
原生Redis当中,数据库对于健值空间当中的数据对象的管理,是通过直接调用数据对象模块的接口来进行的。而改造后的Redis,数据库当中包含了拟态健值空间和普通健值空间,因而需要额外设计一个拟态数据对象管理模块,实例化后成为一个拟态数据对象管理器,管理器当中根据关联的健值空间注册普通数据对象管理接口或拟态数据对象管理接口,从而避免在每次调用时都需要检测健值空间的类型。类似于步骤S22当中的拟态数据结构管理器,可以实现面向对象的多态特性。
拟态化的数据库独立于非拟态化的数据库存于服务器当中。在Redis源码的redisServer结构体当中有一项redisDb项,该项当中保存的是原生数据信息。本实施例在Redis源码当中增加一项redisSafeDb项,即拟态化数据库项,从而避免跟原生数据库相关数据及其业务逻辑产生冲突,尽可能解耦从而减小开发和维护的难度。
步骤S4,设计同步和裁决机制,所述同步机制用于将同构或异构的数据库、数据对象或数据结构当中的内容进行统一;所述的裁决机制用于在同构或异构的数据库当中选择合适的数据对象、在同构或异构的数据对象中选择合适的数据结构、在同构或异构的数据结构中选择合适的数据。
拟态同步和裁决机制有多种实现方式,此处由于Redis与SONiC的紧耦合,以及SONiC针对数据库的性能需求,采用较为简单的一种同步和裁决机制。
具体的,此处的裁决采用简单的择多裁决策略,即每次裁决池当中的数据有三个(A、B、C),当三个数据都相同时(A=B=C),那么最终返回任意数据(A或B或C);当三个数据中有两个相同时(A=B≠C),那么少数服从多数,从相同的数据中任意返回结果(A或B);若三个数据都不相同,那么判定该数据遭到严重破坏,返回一个错误信号。
同步机制就是保持裁决池当中数据一致性的过程,同步机制在以下三种情形当中发挥作用:
S41,被拟态保护的数据发生修改。
此处指的是用户主动修改,例如更新已有键对应的值,此时要进行同步,将所有同构或异构存储的数据都进行同步更新。
S42,裁决发现数据不统一。
也就是上述当中A=B≠C的情形。一般情况下,这说明被拟态保护的数据发生了被动修改,极有可能是遭受到了外部的攻击。此时,也要调动同步机制,将同构或异构的数据进行统一,将数据C恢复到A=B=C的状态。
S43,时间周期性触发。
可以将同步动作作为一个时间事件进行周期性触发。遍历各个键值对,针对拟态改造的数据先裁决,发现数据不同一则调用步骤S42当中描述的同步机制。
需要注意的是,此处的遍历过程可能造成阻塞,因而可以分步进行同步,即一次时间周期到达后只同步一部分数据,并记录同步进度,最后分几次时间周期完成所有数据的同步,防止一次性阻塞过久导致其他业务逻辑出现问题。
步骤S5,设计拟态数据库安全存储指令处理系统,所述处理系统包含安全存储指令列表,安全存储指令分发器和安全存储指令处理器。
具体的,所述安全存储指令列表包含了安全等级特征,相同的安全存储指令可以有不同的安全等级。所述安全存储指令处理器根据安全等级来规划组织层次结构。
原生的Redis代码当中,所有的指令都是redisCommand结构体的实例,并在redisCommandTable当中进行管理。安全存储相关的指令可以复用redisCommand结构体,并在redisCommandTable当中扩展。通过这种方式,可以兼容Redis当中客户端和服务器之间的指令传输和执行的过程。
拟态Redis的安全存储指令可以参考原生Redis当中的哈希类型相关的命令,分别有HSET、HGET、HMSET、HMGET、HGETALL、HKEYS、HVALS、HLEN等。此处并不一定要将上述所有指令全部实现,可以根据实际SONiC当中的应用情况,选择一部分实现即可。例如可以只实现HSET、HGET、HMSET和HMGET四个指令,并且重新命名为SHSET、SHGET、SHMSET、SHMGET。
相对于原生的哈希类型相关指令,拟态Redis的安全存储的写指令(SHSET、SHMSET)需要增加安全等级特征。根据前述的实现方案,安全等级可以分为低、中、高三级。具体的,参考图9,Redis数据库包含服务器、数据库、数据对象、数据结构和数据五个层级,低安全等级对应的是只在数据结构层级针对数据进行拟态化存储,即:1、在服务器的数据库当中,选择普通字典结构的健值空间创建键值对;2、在普通健值空间的键值对中,键为普通的字符串对象,值为普通存储的安全哈希对象,也就是redisObject中的ptr指针只指向一份数据;3、在安全哈希对象当中,通过拟态化的安全字典数据结构,将数据拟态化存储。
中安全等级是在数据对象和数据结构两个层级进行拟态化存储,即:1、在服务器的数据库当中,选择普通字典结构的健值空间创建键值对;2、在普通健值空间的键值对中,键为普通的字符串对象,值为拟态存储的安全哈希对象,也就是redisObject中的ptr指针指向三份数据;3、在每一份安全哈希对象当中,都通过拟态化的安全字典数据结构,将数据拟态化存储。
高安全等级对应的是所有节点均采用拟态化存储,即:1、在服务器的数据库当中,选择拟态安全字典结构的健值空间创建键值对;2、在拟态安全健值空间的键值对中,键为备份了三个的字符串对象,值为拟态存储的安全哈希对象,也就是redisObject中的ptr指针指向三份数据;3、在每一份安全哈希对象当中,都通过拟态化的安全字典数据结构,将数据拟态化存储。
由于在进行拟态化改造后,同构或异构存储的数据需要裁决、同步等过程,势必影响服务器的性能,越高安全等级影响越大。通过纵向的安全分级,可以在网络操作系统层面根据自身的实际应用,对读取速率要求高的场景下采用低安全等级(甚至用原生Redis机制来存取),对数据安全要求高的场景下采用高安全等级,牺牲一定的服务器存取性能,换取更高的安全性能。
步骤S6,设计网络操作系统当中业务模块与数据库交互数据的分类存储机制。
具体的,可以分为以下几种类型:
S61,无安全性要求数据、高耦合性数据采用原始数据库存储指令或接口。
S62,低耦合性数据中,按照安全性需求和存取速率需求,选择不同安全等级的存取方式。
以基于Redis的SONiC系统为例,系统当中有多个处理业务逻辑的容器同时运行,Redis服务器也作为一个单独的容器并行运行。典型的低存取速率、高安全性需求的数据为用户输入的各个业务逻辑的配置信息,这些信息通过Redis数据库容器作为中间环节,转发到各个目的容器当中。典型的高存取速率、低安全性需求的数据为设备运行的日志信息,可以采用低等级甚至无安全性要求的存取指令。
以上所述的一种基于拟态数据库的网络操作系统设计方法的具体实施例,通过纵向分级和横向分类的方式,最大可能性得将数据库拟态化改造的部分与原业务逻辑之间实现松耦合,从而最大程度上避免由于数据库的改动导致的正常业务逻辑无法运行的情况,极大降低开发和维护成本。同时,即使没有硬件异构存储的支持,通过软件同构随机地址的分发存储、裁决读取以及同步机制,也能够有效实现拟态防御的目标,并且能够最大程度上节省设备硬件成本,避免多CPU等硬件架构导致的高成本特征,有利于提高运行了该操作系统的网络设备的市场价值。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于拟态数据库的网络操作系统设计方法,其特征在于,具体如下步骤:
S1、设计拟态化的数据结构,所述数据结构实现对数据的拟态同构存储或拟态异构存储;
S2、设计拟态化的数据对象,所述数据对象实现对数据结构的组织和存储;所述对数据结构的存储表现为普通存储或拟态存储两者中的一种;
S3、设计拟态化的数据库,所述数据库实现对数据对象的整合、管理和存储;所述对数据对象的存储表现为普通存储或拟态存储两者中的一种;
S4、设计同步机制和裁决机制,所述同步机制用于将同构或异构的数据库、数据对象或数据结构当中的内容进行统一;所述的裁决机制用于在同构或异构的数据库当中选择合适的数据对象、在同构或异构的数据对象中选择合适的数据结构、在同构或异构的数据结构中选择合适的数据;
S5、设计拟态数据库安全存储指令的处理系统,所述处理系统包含安全存储指令列表,安全存储指令分发器和安全存储指令处理器;
S6、设计网络操作系统中业务模块与总数据库交互数据的分类存储机制。
2.如权利要求1所述的一种基于拟态数据库的网络操作系统设计方法,其特征在于,所述步骤S1具体包括以下子步骤:
S11、设计拟态化的数据结构的总体框架和对外接口;所述总体框架包含拟态化数据项;所述对外接口包括但不限于创建、增加、删除、修改、获取数据和获取状态;
S12、设计拟态存储管理模块,所述拟态存储管理模块包括同构存储管理和异构存储管理;所述同构存储管理采用随机性内存分配策略;所述异构存储管理需要硬件异构的支持;
S13、设计拟态存储检测模块,用于跨平台移植后检测拟态存储管理模块接口是否满足功能和性能要求,若不符合要求则自动屏蔽相关的拟态存储功能。
3.如权利要求2所述的一种基于拟态数据库的网络操作系统设计方法,其特征在于,步骤与S13所述的检测机制包括下述方法中的一种:
S131、系统上电初始化阶段进行阻塞式检测,检测通过后再执行后续业务逻辑;
S132、系统上电后进行时间周期性检测,将所有检测内容分成几个部分,每个时间周期到达后检测其中一个部分;检测过程中对有效数据进行备份,在任意检测节点出现检测失败,则屏蔽硬件异构功能,将备份的数据转换为拟态同构存储;
S133、系统上电后进行单步检测,在每个拟态数据存取处理的过程当中,先对即将调用的拟态存储管理模块的接口进行检测;检测过程中对有效数据进行备份,在任意检测节点出现检测失败,则屏蔽硬件异构功能,将备份的数据转换为拟态同构存储;检测通过后记录检测结果。
4.如权利要求1所述的一种基于拟态数据库的网络操作系统设计方法,其特征在于,所述步骤S2具体包括以下子步骤:
S21、设计拟态化的数据对象的总体框架和对外接口;所述总体框架中包括数据结构项和对数据结构进行普通存储或拟态存储的选择/标志项;所述对外接口包括但不限于创建、增加、删除、修改;
S22、设计拟态数据结构管理模块,用于管理存储在拟态化的数据对象中的数据结构。
5.如权利要求1所述的一种基于拟态数据库的网络操作系统设计方法,其特征在于,所述步骤S3具体包含以下子步骤:
S31、设计拟态化的数据库的总体框架,所述总体框架中包含拟态化的健值空间和非拟态化的健值空间;
S32、设计拟态数据对象管理模块,用于管理拟态化的健值空间中的键值对象。
6.如权利要求1所述的一种基于拟态数据库的网络操作系统设计方法,其特征在于,所述步骤S4中的同步机制在以下几种情形当中被执行:
S41、被拟态保护的数据发生修改;
S42、裁决发现数据不统一;
S43、时间周期性触发。
7.如权利要求1所述的一种基于拟态数据库的网络操作系统设计方法,其特征在于,所述步骤S5中的安全存储指令列表中包括安全等级特征。
8.如权利要求1所述的一种基于拟态数据库的网络操作系统设计方法,其特征在于,所述步骤S5中的安全存储指令处理器根据安全等级来规划组织层次结构;。
9.如权利要求1所述的一种基于拟态数据库的网络操作系统设计方法,其特征在于,所述步骤S6中的分类存储机制具体操作如下:
S61、对于无安全性要求数据、高耦合性数据采用原始数据库存储指令或接口;
S62、对于低耦合性数据,按照安全性需求和存取速率需求,选择不同安全等级的存取方式。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111416379.0A CN113835685B (zh) | 2021-11-26 | 2021-11-26 | 一种基于拟态数据库的网络操作系统设计方法 |
PCT/CN2022/084973 WO2023082537A1 (zh) | 2021-11-26 | 2022-04-02 | 一种基于拟态数据库的网络操作系统设计方法 |
US17/824,349 US11934383B2 (en) | 2021-11-26 | 2022-05-25 | Mimetic database-based network operating system design method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111416379.0A CN113835685B (zh) | 2021-11-26 | 2021-11-26 | 一种基于拟态数据库的网络操作系统设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113835685A true CN113835685A (zh) | 2021-12-24 |
CN113835685B CN113835685B (zh) | 2022-02-18 |
Family
ID=78971462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111416379.0A Active CN113835685B (zh) | 2021-11-26 | 2021-11-26 | 一种基于拟态数据库的网络操作系统设计方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11934383B2 (zh) |
CN (1) | CN113835685B (zh) |
WO (1) | WO2023082537A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114398683A (zh) * | 2022-03-24 | 2022-04-26 | 之江实验室 | 一种基于异构子系统的内生安全数据库存储方法及装置 |
CN114500114A (zh) * | 2022-04-14 | 2022-05-13 | 之江实验室 | 一种网络操作系统中应用的拟态数据库交互方法和装置 |
CN114780569A (zh) * | 2022-06-22 | 2022-07-22 | 之江实验室 | 一种拟态redis数据库的输入输出代理方法和装置 |
CN115001852A (zh) * | 2022-07-18 | 2022-09-02 | 之江实验室 | 一种网络操作系统中应用内生安全数据库存取方法和装置 |
WO2023082537A1 (zh) * | 2021-11-26 | 2023-05-19 | 之江实验室 | 一种基于拟态数据库的网络操作系统设计方法 |
CN116150280A (zh) * | 2023-04-04 | 2023-05-23 | 之江实验室 | 一种拟态redis数据库同步方法、系统、设备和存储介质 |
CN117573293A (zh) * | 2024-01-16 | 2024-02-20 | 北京卓翼智能科技有限公司 | 一种基于Redis的大规模仿真系统数据记录方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111031096A (zh) * | 2019-11-15 | 2020-04-17 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 一种基于拟态防御的分布式存储系统构建方法 |
WO2021213293A1 (zh) * | 2020-04-24 | 2021-10-28 | 西北工业大学 | 一种面向群智感知的泛在操作系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7206805B1 (en) * | 1999-09-09 | 2007-04-17 | Oracle International Corporation | Asynchronous transcription object management system |
US7657581B2 (en) * | 2004-07-29 | 2010-02-02 | Archivas, Inc. | Metadata management for fixed content distributed data storage |
US8244913B1 (en) * | 2004-10-13 | 2012-08-14 | Progress Software Corporation | Replication horizon determination with an independent distributed database system |
US7694181B2 (en) * | 2005-12-12 | 2010-04-06 | Archivas, Inc. | Automated software testing framework |
CN102004745B (zh) * | 2009-09-02 | 2013-06-12 | 中国银联股份有限公司 | 数据转移系统及方法 |
US10346374B1 (en) * | 2014-03-14 | 2019-07-09 | Open Invention Network Llc | Optimized data migration application for database compliant data extraction, loading and transformation |
US11741380B2 (en) * | 2020-01-31 | 2023-08-29 | Oracle International Corporation | Machine learning predictions for database migrations |
CN111314214B (zh) * | 2020-05-11 | 2020-08-18 | 之江实验室 | 一种拟态工业边缘网关及拟态处理方法 |
CN112383528B (zh) * | 2020-11-09 | 2021-09-24 | 浙江大学 | 一种拟态waf的执行体构建方法 |
CN113505006A (zh) * | 2021-07-08 | 2021-10-15 | 上海红阵信息科技有限公司 | 一种面向拟态数据库的裁决装置及方法 |
CN113835685B (zh) * | 2021-11-26 | 2022-02-18 | 之江实验室 | 一种基于拟态数据库的网络操作系统设计方法 |
-
2021
- 2021-11-26 CN CN202111416379.0A patent/CN113835685B/zh active Active
-
2022
- 2022-04-02 WO PCT/CN2022/084973 patent/WO2023082537A1/zh unknown
- 2022-05-25 US US17/824,349 patent/US11934383B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111031096A (zh) * | 2019-11-15 | 2020-04-17 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 一种基于拟态防御的分布式存储系统构建方法 |
WO2021213293A1 (zh) * | 2020-04-24 | 2021-10-28 | 西北工业大学 | 一种面向群智感知的泛在操作系统 |
Non-Patent Citations (1)
Title |
---|
赵琳娜: "基于异构冗余的拟态数据库模型设计与测试", 《计算机系统应用》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023082537A1 (zh) * | 2021-11-26 | 2023-05-19 | 之江实验室 | 一种基于拟态数据库的网络操作系统设计方法 |
US11934383B2 (en) | 2021-11-26 | 2024-03-19 | Zhejiang Lab | Mimetic database-based network operating system design method |
CN114398683A (zh) * | 2022-03-24 | 2022-04-26 | 之江实验室 | 一种基于异构子系统的内生安全数据库存储方法及装置 |
CN114500114A (zh) * | 2022-04-14 | 2022-05-13 | 之江实验室 | 一种网络操作系统中应用的拟态数据库交互方法和装置 |
CN114500114B (zh) * | 2022-04-14 | 2022-07-12 | 之江实验室 | 一种网络操作系统中应用的拟态数据库交互方法和装置 |
CN114780569A (zh) * | 2022-06-22 | 2022-07-22 | 之江实验室 | 一种拟态redis数据库的输入输出代理方法和装置 |
CN115001852A (zh) * | 2022-07-18 | 2022-09-02 | 之江实验室 | 一种网络操作系统中应用内生安全数据库存取方法和装置 |
CN116150280A (zh) * | 2023-04-04 | 2023-05-23 | 之江实验室 | 一种拟态redis数据库同步方法、系统、设备和存储介质 |
CN117573293A (zh) * | 2024-01-16 | 2024-02-20 | 北京卓翼智能科技有限公司 | 一种基于Redis的大规模仿真系统数据记录方法 |
CN117573293B (zh) * | 2024-01-16 | 2024-04-12 | 北京卓翼智能科技有限公司 | 一种基于Redis的大规模仿真系统数据记录方法 |
Also Published As
Publication number | Publication date |
---|---|
US20230169063A1 (en) | 2023-06-01 |
US11934383B2 (en) | 2024-03-19 |
WO2023082537A1 (zh) | 2023-05-19 |
CN113835685B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113835685B (zh) | 一种基于拟态数据库的网络操作系统设计方法 | |
CN105159818B (zh) | 内存数据管理中日志恢复方法及其仿真系统 | |
US10657008B2 (en) | Managing a redundant computerized database using a replicated database cache | |
Brown | Persistent object stores | |
CN103842969B (zh) | 信息处理系统 | |
US8769350B1 (en) | Multi-writer in-memory non-copying database (MIND) system and method | |
CN105612503A (zh) | 持久性数据结构 | |
CN108292235A (zh) | 使用选择性资源迁移的网络附连存储器 | |
CN108701048A (zh) | 数据加载方法及装置 | |
US10733057B2 (en) | Techniques for application undo and redo using SQL patchsets or changesets | |
CN108932154A (zh) | 一种分布式虚拟机管理器 | |
Atkinson et al. | A review of the rationale and architectures of PJama-a durable, flexible, evolvable and scalable orthogonally persistent programming platform. | |
CN106202459A (zh) | 虚拟化环境下的关系型数据库存储性能优化方法及系统 | |
US11720607B2 (en) | System for lightweight objects | |
CN106775501A (zh) | 基于非易失内存设备的数据去冗余方法及系统 | |
Sandhu et al. | A secure kernelized architecture for multilevel object-oriented databases | |
CN105512553A (zh) | 一种预防虚拟机逃逸攻击的访问控制方法 | |
US9009731B2 (en) | Conversion of lightweight object to a heavyweight object | |
Pang et al. | Async-fork: Mitigating query latency spikes incurred by the fork-based snapshot mechanism from the os level | |
CN113986775B (zh) | 一种risc-v cpu验证中页表项生成方法、系统及装置 | |
Janson | Using type extension to organize virtual memory mechanisms | |
Gamell et al. | Specification of Fenix MPI Fault Tolerance library version 0.9. | |
Baird et al. | Checkpointing Kernel Executions of MPI+ CUDA Applications | |
McNamee | Virtual memory alternatives for transaction buffer management in a single-level store | |
Lee | Designing key-value stores for emerging memory and disaggregation technologies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |