一种存储引擎和基于基础引擎的存储结构的制作方法

文档序号:6384030阅读:168来源:国知局
专利名称:一种存储引擎和基于基础引擎的存储结构的制作方法
技术领域
本发明涉及计算机存储领域,具体涉及一种存储引擎和基于基础引擎的存储结构。
背景技术
随着信息产业的发展,数据生产率水平的提高,人们对数据依赖性越来越强,从而对存储系统提出了更高的要求随着信息产业的发展,数据的生产已经从科学计算等方面产生的TB级数据发展成多元化的数据生产机制产生的PB、EB级海量大数据,因此存储系统需要能够存储更海量的数据;随着社会的发展,数据存储的可靠性将越来越关系到国计民生,因此对存储系统的可靠性提出了要求;随着数据量的指数级增长,存储系统的扩容是必然要面对的问题,这对于现有的存储系统来说是一个极大的挑战。另一方面,在数据中心中,存储系统需要支撑多样不同的应用。多应用对应于同一数据实体。应用的多样性体现在数据访问具有不确定性、数据具有时效性、空间性等特征,这些特征需要能够动态的对存储资源进行有效的调整。现有的存 储引擎根据需要选择有相应功能的模块,如在需要一个IO处理器(IOP)时则选择一个Ι0Ρ,需要两个IOP时则选择两个Ι0Ρ,每个IOP所实现的功能都是一样的,即所有的IOP都是对称的。且因为现有的存储引擎都是根据需要选择相应功能的模块进行设计,所以没有固定的结构,扩展性很差。综上所述,基于现有的存储引擎无法实现能够满足上述要求的存储系统。

发明内容
有待于此,本发明要解决的技术问题是提供一种基础引擎,以提高现有存储引擎的性能和扩展性。为了解决上述问题,采用如下技术方案一种存储引擎,包括第一 IOP和第二 Ι0Ρ、磁盘互连接口、存储引擎互连接口和管理接口,所述第一 IOP通过所述磁盘互连接口及外部交换模块与至少一个磁盘相连,所述第二 IOP与所述外部交换模块相连,其中所述存储引擎互连接口设置成通过外部交换模块与其他的存储引擎相连;所述管理接口设置成将该存储引擎与外部管理模块相连;所述第一 IOP设置成通过所述服务接口读写所述服务器;通过所述磁盘互连接口与所述外部交换模块读写至少一个所述磁盘;所述第二 IOP设置成存储对共用所述外部交换模块的所有存储引擎的所有磁盘做RAID形成的RAID元数据 ,并接收所述外部管理模块的指令,对RAID元数据进行更新;存储与该存储引擎互连的所有存储引擎的所有磁盘的镜像,并向所述外部管理模块上报其所在的存储引擎的运行状态及负载情况,根据所述外部管理模块下发的接替工作的指令,利用其所存储的磁盘镜像接替相应的存储引擎的工作;当所述第二 IOP所在的存储引擎启动时随机生成存储引擎ID标识并保存该ID标识;当接收到所述外部管理模块发送的包含存储引擎ID标识及要读写的磁盘信息的独占读写指令后,判断该独占读写指令中包含的存储引擎ID标识与自身的存储引擎ID标识是否一致,若一致,则向相应的磁盘执行该独占读与。可选地,所述RAID元数据包括相应RAID所包含的磁盘、条带信息、RAID状态和副
本信息。本发明要解决的另外一个技术问题是提供一种基于基础引擎的存储结构,以满足信息产业的发展对存储引擎的要求。为解决该技术问题,采用如下技术方案一种存储结构,包括多个存储引擎组,共享一个交换模块的至少两个如权利要求1或2所述的存储引擎构成一个存储引擎组,该存储结构还包括管理模块,其中所述交换模块设置成实现共用该交换模块的存储引擎之间的数据交换;所述管理模块设置成控制存储引擎组中所有的磁盘在某一时刻由一个存储引擎独占读写;根据存储引擎组中所有存储引擎的负载情况调整主管读写的存储引擎;通过存储引擎组中所有存储引擎的存储情况调整数据的存放位置;接收存储引擎上报的运行状态及负载情况,当存储引擎组中某一存储引擎失效后,根据存储引擎上报的运行状态及负载情况确定用于接替工作的存储引擎,并向相应的存储引擎发送接替工作的指令;当存储引擎组中某一存储引擎的RAID更新时,通知该存储引擎组中其他存储引擎更新相应的RAID元数据。可选地,控制存储引擎组中所有的磁盘在某一时刻由一个存储引擎独占读写从存储引擎组中选择在某一时刻对与该存储引擎组相应的所有磁盘中某一磁盘进行独占读写的存储引擎,并向该存储引擎发送独占读写指令,所述独占读写指令中包含该存储引擎ID标识及要读写的磁盘信息。可选地,所述管理模块设置成按照以下方式根据存储引擎组中所有存储引擎的负载情况调整主管读写的存储引擎若该存储引擎组中当前正在读写某一磁盘的存储引擎有新的读写任务,且该存储引擎组中有空闲的存储引擎时,由该空闲的存储引擎代替有新的读写任务的存储引擎执行当前读写任务。可选地,所述管理模块设置成按照以下方式通过存储引擎组中所有存储引擎的存储情况调整数据的存放位置根据读写热点、该存储引擎组中所有存储引擎的分布情况动态调整数据的存放位置。可选地,用于接替工作的存储引擎与失效的存储引擎处于同一存储引擎组。可选地,一个存储引擎组中的每个存储引擎与至少一个磁盘相连,与一个存储引擎组中的所有存储引擎相连的所有磁盘存放在磁盘柜中。本发明实施例中的存储引擎扩展性好,且因为采用非对称设计,存储效率高,性能好。由该存储引擎形成的存储结构能够实现对海量数据的存储,且能够实现全局访问,且数据存储的可靠性和安全性强。


图1为本发明实施例的存储引擎示意图;图2为本发明实施例的基于存储引擎的存储结构示意图;图3为本发明实施例的存储引擎的实例。
具体实施例方式下面将结合附图及实施例对本发明的技术方案进行更详细的说明。需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行 所示出或描述的步骤。本发明实施例的一种存储引擎,如图1所示,包括两个IO处理器(IOP)—第一IOP和第二 Ι0Ρ、服务接口、磁盘互连接口、存储引擎互连接口和管理接口,其中两个IOP采取非对称设计,其中所述第一 IOP主要负责IO处理,所述第二 IOP主要进行IO处理中的数据管理,所述第一 IOP和所述第二 IOP通过内部总线互连,这种非对称设计使得存储引擎的性能显著提高,因为所述第一 IOP只负责IO处理,包括对内的IO处理和对外的IO处理,而所述第二 IOP主要负责IO处理中的数据管理。所述第一 IOP通过所述服务接口与外部服务器相连,所述第一 IOP还通过所述磁盘互连接口及外部交换模块与至少一个磁盘相连。所述第一 IOP设置成通过所述服务接口读写所述服务器;通过所述磁盘互连接口与所述交换模块读写至少一个所述磁盘。所述服务接口采用多协议整合芯片,可根据需要支持IP协议或者FC协议。可选地,所述第一 IOP与磁盘之间的互连采用标准的串行连接小型计算机系统接口(SAS, Serial Attached SCSI)互连机制。所述第二 Ι0Ρ,通过与外部交换模块相连以实现存储引擎间的互联。通过实现存储引擎之间的高速互连交换,以实现管理、RAID同步等模块的跨存储引擎操作。其中,所述存储引擎互连接口为专用网络。所述第二 IOP设置成存储对共用所述外部交换模块的所有存储引擎的所有磁盘做RAID形成的RAID元数据,并接收所述外部管理模块的指令,对RAID元数据进行更新;存储与该存储引擎互连的所有存储引擎的所有磁盘的镜像,并向所述外部管理模块上报其所在的存储引擎的运行状态及负载情况,根据所述外部管理模块下发的接替工作的指令,利用其所存储的磁盘镜像接替相应的存储引擎的工作;当所述第二 IOP所在的存储引擎启动时随机生成存储引擎ID标识并保存该ID标识;当接收到所述外部管理模块发送的包含存储引擎ID标识及要读写的磁盘信息的独占读写指令后,判断该独占读写指令中包含的存储引擎ID标识与自身的存储引擎ID标识是否一致,若一致,则向相应的磁盘执行该独占读与。所述RAID元数据包括相应RAID所包含的磁盘、条带信息、RAID状态、副本等方面的信息,只有在创建和设置时才变更。RAID元数据是用于描述RAID具体组织方式的数据,包括一个RAID由哪些磁盘组成,每个数据块的数据之间的校验关系等信息,只有RAID元数据在每个存储引擎中都是同步的才能保重系统能正常访问数据。
因为做了RAID,共享一个交换模块的所有存储引擎构成,因为一个存储引擎与至少一个磁盘相连,与一个存储引擎组中的所有存储引擎相连的所有磁盘组成一个磁盘组,一个存储引擎组与一个磁盘组对应。存储引擎组中的任何一个存储引擎都能够访问与其相对应的一组磁盘中的任意一个,而不能直接访问跨组的磁盘。当需要访问跨组的某个磁盘时,需要向管理该磁盘的存储引擎发送访问请求,这样就可以实现磁盘的全局访问。可选地,磁盘镜像可以根据可靠性的性能配置成一致性磁盘镜像和非一致性磁盘镜像,是存储结构中的可选配置。一致性磁盘镜像采用事务机制处理,确保副本与RAID中的数据在每个访问时刻均一致。非一致性磁盘镜像通过异步复制产生,仅能够保证数据的最终一致性。RAID与磁盘镜像相结合的市局分布方式增强了存储结构的可靠性。所述存储引擎互连接口设置成通过外部交换模块与其他的存储引擎相连;所述管理接口设置成将该存储引擎与外部管理模块相连。可选地,所述存储引擎还包括超级IO和BMC模块(图中未示出),所述超级IO和所述BMC模块的结构和功能属于现有技术,在此不再赘述。所述存储引擎还包括校验加速芯片,所述校验加速芯片与所述第二 IOP相连,设置成通过硬件实现数据校验算法,实现数据可靠性的加速处理,其结构和功能属于现有技术,在此不再赘述。本发明实施例的一种基于存储引擎的存储结构,如图2所示,包括多个存储引擎组,共享一个交换模块的至少两个如上所述的存储引擎构成一个存储引擎组,其中,该存储结构还包括管理模块。所述交换模块设置成实现共用该交换模块的存储引擎之间的数据交换;所述管理模块设置成控制存储引擎组中所有的磁盘在某一时刻由一个存储引擎独占读写;根据存储引擎组中所有存储引擎的负载情况调整主管读写的存储引擎;通过存储引擎组中所有存储引擎的存储情况调整数据的存放位置;接收存储引擎上报的运行状态及负载情况,当存储引擎组中某一存储引擎失效后,根据存储引擎上报的运行状态及负载情况确定用于接替工作的存储引擎,并向相应的存储引擎发送接替工作的指令;当存储引擎组中某一存储引擎的RAID更新时,通知该存储引擎组中其他存储引擎更新相应的RAID元数据。可选地,控制存储引擎组中所有的磁盘在某一时刻由一个存储引擎独占读写从存储引擎组中选择在某一时刻对与该存储引擎组相应的所有磁盘中某一磁盘进行独占读写的存储引擎,并向该存储引擎发送独占读写指令,所述独占读写指令中包含该存储引擎ID标识及要读写的磁盘信息。可选地,所述管理模块设置成按照以下方式根据存储引擎组中所有存储引擎的负载情况调整主管读写的存储引擎若该存储引擎组中当前正在读写某一磁盘的存储引擎有新的读写任务,且该存储引擎组中有空闲的存储引擎时,由该空闲的存储引擎代替有新的读写任务的存储引擎执行当前读写任务。可选地,所述管理模块设置成按照以下方式通过存储引擎组中所有存储引擎的存储情况调整数据的存放位置根据读写热点、该存储引擎组中所有存储引擎的分布情况动态调整数据的存放位置。可选地,用于接替工作的存储引擎与失效的存储引擎处于同一存储引擎组。因为一个存储引擎与至少一个磁盘相连,与一个存储引擎组中的所有存储引擎相连的所有磁盘组成一个磁盘组,一个存储引擎组与一个磁盘组对应。磁盘存放在磁盘柜中。对一个存储引擎组做RAID,形成相应的RAID元数据,在该组中的所有存储引擎中存储相应的RAID元数据。每一个存储引擎组能够访问相应的一个磁盘组,但不能直接访问跨组的磁盘。当需要访问跨组的某个磁盘时,需要向管理这个磁盘的存储引擎发送访问请求,这样就能实现磁盘的全局访问。所有的磁盘在某一时刻由一个存储引擎独占读写,其它不能直接读写磁盘的存储引擎可以通过所述存储引擎互连接口访问该磁盘,因此,所有的存储引擎均能够访问到存储结构中所有的磁盘,只要一个存储引擎组中有一个存储引擎能够正常工作就可以保证磁盘中的数据被访问到。在结构部署时可以根据可靠性的要求,对存储引擎进行划组。考虑到读写同步机制,每一个存储引擎组保持在2-4个存储引擎,即2-4个存储引擎共用一个交换模块。由2到4个存储引擎组成一个存储引擎组共同管理一组磁盘,每个存储引擎组可管理磁盘数超过90个。存储引擎之间通过交换模块实现互访,采用这种交换式架构的优点是降低了布线难度并通过互连引擎的容错机制增加了存储系统的可靠性。每个存储引擎都可以作为其他存储引擎的冗余存储引擎,当一个存储引擎出现问题时,其他的存储引擎能够接替工作,进而使得存储结构仍能正常提供服务。并且所有的存储引擎都可以并行使用增大通信带宽。下面用本发明的一个应用示例进一步加以说明。如图3所示为本发明实施例的存储引擎的实例,该图中,小型千兆位接口转换器(GBIC) —SFP为服务接口、一般与前端服务器相连,用于读写前端服务器;MiniSAS为磁盘互连接口,用于读写磁盘;RJ45为管理接口 ;专用网络用于实现存储引擎互连;左边的IOP用户负责IO处理,读写前端服务器和读写磁盘,其余的工作由右边的IOP来完成。除了本发明实施例中介绍的模块外,图中其他的模块和功能属于现有技术,在此不再赘述。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
权利要求
1.一种存储引擎,其特征在于,包括第一 IOP和第二 Ι0Ρ、磁盘互连接口、存储引擎互连接口和管理接口,所述第一 IOP通过所述磁盘互连接口及外部交换模块与至少一个磁盘相连,所述第二 IOP与所述外部交换模块相连,其中 所述存储引擎互连接口设置成通过外部交换模块与其他的存储引擎相连; 所述管理接口设置成将该存储引擎与外部管理模块相连; 所述第一 IOP设置成通过所述服务接口读写所述服务器;通过所述磁盘互连接口与所述外部交换模块读写至少一个所述磁盘; 所述第二 IOP设置成存储对共用所述外部交换模块的所有存储引擎的所有磁盘做RAID形成的RAID元数据,并接收所述外部管理模块的指令,对RAID元数据进行更新;存储与该存储引擎互连的所有存储引擎的所有磁盘的镜像,并向所述外部管理模块上报其所在的存储引擎的运行状态及负载情况,根据所述外部管理模块下发的接替工作的指令,利用其所存储的磁盘镜像接替相应的存储引擎的工作;当所述第二 IOP所在的存储引擎启动时随机生成存储引擎ID标识并保存该ID标识;当接收到所述外部管理模块发送的包含存储引擎ID标识及要读写的磁盘信息的独占读写指令后,判断该独占读写指令中包含的存储引擎ID标识与自身的存储引擎ID标识是否一致,若一致,则向相应的磁盘执行该独占读与。
2.如权利要求1所述的存储引擎,其特征在于,所述RAID元数据包括相应RAID所包含的磁盘、条带信息、RAID状态和副本信息。
3.一种存储结构,其特征在于,包括多个存储引擎组,共享一个交换模块的至少两个如权利要求1或2所述的存储引擎构成一个存储引擎组,该存储结构还包括管理模块,其中 所述交换模块设置成实现共用该交换模块的存储引擎之间的数据交换; 所述管理模块设置成控制存储引擎组中所有的磁盘在某一时刻由一个存储引擎独占读写;根据存储引擎组中所有存储引擎的负载情况调整主管读写的存储引擎;通过存储引擎组中所有存储引擎的存储情况调整数据的存放位置;接收存储引擎上报的运行状态及负载情况,当存储引擎组中某一存储引擎失效后,根据存储引擎上报的运行状态及负载情况确定用于接替工作的存储引擎,并向相应的存储引擎发送接替工作的指令;当存储引擎组中某一存储引擎的RAID更新时,通知该存储引擎组中其他存储引擎更新相应的RAID元数据。
4.如权利要求3所述的存储结构,其特征在于,控制存储引擎组中所有的磁盘在某一时刻由一个存储引擎独占读写 从存储引擎组中选择在某一时刻对与该存储引擎组相应的所有磁盘中某一磁盘进行独占读写的存储引擎,并向该存储引擎发送独占读写指令,所述独占读写指令中包含该存储引擎ID标识及要读写的磁盘信息。
5.如权利要求3所述的存储结构,其特征在于,所述管理模块设置成按照以下方式根据存储引擎组中所有存储引擎的负载情况调整主管读写的存储引擎 若该存储引擎组中当前正在读写某一磁盘的存储引擎有新的读写任务,且该存储引擎组中有空闲的存储引擎时,由该空闲的存储引擎代替有新的读写任务的存储引擎执行当前读写任务。
6.如权利要求3所述的存储结构,其特征在于,所述管理模块设置成按照以下方式通过存储引擎组中所有存储引擎的存储情况调整数据的存放位置 根据读写热点、该存储引擎组中所有存储引擎的分布情况动态调整数据的存放位置。
7.如权利要求3所述的存储结构,其特征在于,用于接替工作的存储引擎与失效的存储引擎处于同一存储引擎组。
8.如权利要求3所述的存储结构,其特征在于,一个存储引擎组中的每个存储引擎与至少一个磁盘相连,与一个存储引擎组中的所有存储引擎相连的所有磁盘存放在磁盘柜中。
全文摘要
一种存储引擎和一种存储结构,该存储引擎包括第一IOP和第二IOP、磁盘互连接口、存储引擎互连接口和管理接口,所述第一IOP通过所述磁盘互连接口及外部交换模块与至少一个磁盘相连,所述第二IOP与所述外部交换模块相连。本发明实施例中的存储引擎扩展性好,且因为采用非对称设计,存储效率高,性能好。由该存储引擎形成的存储结构能够实现对海量数据的存储,且能够实现全局访问,且数据存储的可靠性和安全性强。
文档编号G06F3/06GK103049505SQ201210536328
公开日2013年4月17日 申请日期2012年12月12日 优先权日2012年12月12日
发明者吴庆民, 文中领, 施培任 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1