掌桥专利:专业的专利平台
掌桥专利
首页

一种主动对象存储系统的实现方法

文献发布时间:2023-06-19 09:36:59


一种主动对象存储系统的实现方法

技术领域

本发明涉及网络存储技术领域,具体而言,涉及一种主动对象存储系统的实现方法。

背景技术

传统的对象存储系统并不支持主动存储功能。

发明内容

本发明的目的在于提供一种主动对象存储系统的实现方法。

本发明采用如下技术方案,本发明提供了一种主动对象存储系统的实现方法,将该系统设计为包括客户端、主动存储节点OSD,该客户端用于为用户提供文件、块、对象接口,还包括主动对象服务和通信服务模块;该OSD位于文件、块、对象接口之上,该OSD包括主动存储模块、主动对象管理模块、文件接口VFS、通信服务模块,对象通过OSD底层的文件接口VFS存储在OSD的本地文件系统中,主动对象存储系统中的每个对象最后会根据其ID被映射为本地文件系统的一个文件;

该主动存储模块位于OSD的主动对象管理模块与底层的文件接口VFS之间,包括方法对象处理模块与策略对象处理模块;该客户端的主动对象服务和通信服务模块中包含了主动存储相关命令的包装;OSD的通信服务模块用于解析客户端传过来的命令,若该命令与主动存储无关,则按照传统对象存储系统的处理方式进行处理;若与主动存储相关,则交由方法对象处理模块与策略对象处理模块,进行主动存储处理;

方法对象处理模块采用方法对象实现主动存储处理,方法对象是主动存储的主要实现手段,引入了方法对象后,用户可将需要的操作下传到OSD中,将其作为方法对象,由OSD来进行存储与管理;该方法对象分为用户方法对象和系统方法对象,该用户方法对象是对用户对象进行操作的方法对象,该系统方法对象是根据策略对象而实现某种OSD自主管理功能的方法对象,两者触发执行的方法不同;当方法对象被触发执行后,OSD即自主地通过文件接口VFS读取方法对象的内容运行。

优选地,所述方法对象处理模块根据用户方法对象相关请求完成方法对象的注册和删除,并关联和解关联相应的用户对象;当用户向系统发送带有主动存储标记的读命令时,方法对象处理模块就能根据给定用户对象,自动读出与之关联的方法对象的内容,将用户对象作为方法对象的输入进行调度执行,并将执行后的结果返回给用户;当用户向系统发送带有主动存储标记的写命令时,方法对象处理模块就能根据给定用户对象,自动读出与之关联的方法对象的内容,输入流作为方法对象的输入进行调度执行,并将执行后的结果保存在相应用户对象中。

优选地,当数据被分割成多个用户对象,并存放在不同OSD上时,实现方法对象时考虑存放位置,操作结果的同步;

对于用户方法对象,将它上传至每个与之关联的用户对象所在的OSD,对于系统方法对象,将其上传至每个与之关联的策略对象所在的OSD上,并且,所有方法对象和策略对象不再被分割;

上传的过程是这样的:若需要上传的为用户方法对象,则先将其随机上传至一OSD,并将该信息存放至外部的元数据服务器上,当客户端发出与其相关的关联命令时,查找元数据服务器,找到用户方法对象和相应的用户对象所在的OSD,将方法对象转存并复制到所有与其关联的用户对象所在的OSD上,并将关联信息写入方法对象和用户对象的信息属性页中。需要注意的是,如果用户对象被删除或迁移,则与其关联的用户方法对象也需要做同样的工作;

若需要上传的为系统方法对象,则先将其随机上传至一OSD,并将该信息存放至元数据服务器上,当客户端发出与其相关的关联命令时,查找元数据服务器,找到系统方法对象和相应策略对象所在的OSD,将系统方法对象转存并复制到与其关联的策略对象所在的OSD上,并将关联信息写入两者的信息属性页中,如果策略对象被删除,迁移,则与其关联的系统方法对象也需要做同样的工作。

优选地,方法对象作为多个副本保存在不同的设备上,当数据分布在多个OSD上,用户请求数据时,根据其(offset,len)来依次向不同的OSD发出使用方法对象的读写请求,在各个OSD上,根据自身得到的相对对象的(offset,len)去读取相应用户对象,并将最终结果返回,这样,数据在客户端按读取顺序依次整合。

优选地,OSD按照策略对象的条件去监控系统情况,策略对象也与一个系统方法对象进行关联,当策略对象的每一个条件都返回真值时,策略对象触发相应系统方法对象自动执行,策略对象是系统方法对象自动执行的前提条件。

优选地,策略对象处理模块与文件接口VFS的交互时,策略对象处理模块根据策略请求完成策略对象的注册和删除,并关联和解关联相应的方法对象;当策略对象与方法对象关联以后,就运行一个内核线程,去读取根信息属性页中的系统信息,并与其条件进行比较,一旦条件都得到满足,将调用与其关联的方法对象进行执行,策略对象的实现是系统方法对象自动执行的基础。

优选地,当用户需要使用策略对象来实现系统方法对象自动执行时,执行的流程如下:

(1)向系统提交需要执行的系统方法对象;

(2)使用OSD_CREATE_AND_WRITE_POLICY命令,向系统注册并写入策略对象;

(3)使用OSD_ASSOCIATE_POLICY命令,将策略对象与所需执行的系统方法对象进行关联;

(4)用户完成以上步骤后,策略对象处理模块就自动读取根对象属性页中信息,并监测系统运行情况,读取策略对象属性页属性得到与其关联的系统方法对象ID,当系统运行情况使得策略对象中条件均返回真,则调用系统方法对象进行执行;

(5)当用户不再需要使用该策略对象,就使用OSD_UNASSOCIATE_POLICY命令来解除策略对象与系统方法对象之间的关联,使用OSD_REMOVE_METHOD命令删除该策略对象。

本发明还提供了一种利用所述的方法设计得到的主动对象存储系统。

本发明还提供了一种利用所述的主动对象存储系统在网络存储技术领域中的应用。

本发明的有益效果包括:本发明提出了一种智能主动对象存储系统,通过增加支持主动存储的接口,修改传统对象存储系统的各层模块,并加入主动存储模块,可以灵活实现对象存储系统节点内部的数据预处理,诸如过滤筛选,数据校验和各种自定义功能,同时赋予节点一定自主性,诸如主动故障诊断和数据恢复等,从而提升存储系统性能。

附图说明

图1为本发明中主动对象存储系统框图;

图2为本发明中方法对象处理模块与系统的交互流程图;

图3为本发明中方法对象的存储过程流程图;

图4为本发明中策略对象处理模块与文件接口VFS的交互流程图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

本发明设计的一种加入了主动存储模块的主动对象存储系统的框架如图1所示,包括客户端(Client)、主动存储节点(OSD),该客户端用于为用户提供文件、块、对象接口,还包括主动对象服务和通信服务模块;该OSD位于文件、块、对象接口之上,该OSD包括主动存储模块、主动对象管理模块、文件接口VFS、通信服务模块,对象通过OSD底层的文件接口VFS存储在OSD的本地文件系统中,主动对象存储系统中的每个对象最后会根据其ID被映射为本地文件系统的一个文件;

该主动存储模块位于OSD的主动对象管理模块与底层的文件接口VFS之间,包括方法对象处理模块与策略对象处理模块;该客户端的主动对象服务和通信服务模块中包含了主动存储相关命令的包装;OSD的通信服务模块用于解析客户端传过来的命令,若该命令与主动存储无关,则按照传统对象存储系统的处理方式进行处理;若与主动存储相关,则交由方法对象处理模块与策略对象处理模块,进行主动存储处理。

方法对象处理模块采用方法对象实现主动存储处理,方法对象是主动存储的主要实现手段,引入了方法对象后,用户可以方便地将需要的操作下传到OSD中,将其作为方法对象,由OSD来进行存储与管理。该方法对象分为用户方法对象和系统方法对象,该用户方法对象是对用户对象进行操作的方法对象,该系统方法对象是根据策略对象而实现某种OSD自主管理功能的方法对象,两者的主要区别是触发执行的方法不同;当方法对象被触发执行后,OSD即自主地通过文件接口VFS读取方法对象的内容运行;方法对象的提出使得能够下放到存储设备上的操作可以是计算任务,也可以是管理任务,两者能够统一起来,同时,由于方法对象编写灵活、下放方便,极大地扩展了系统主动存储的可扩展性。

方法对象处理模块与整个系统其他模块的交互流程如图1所示。方法对象处理模块根据用户方法对象相关请求完成方法对象的注册和删除,并关联和解关联相应的用户对象;当用户向系统发送带有主动存储标记的读命令时,方法对象处理模块就能根据给定用户对象,自动读出与之关联的方法对象的内容,将用户对象作为方法对象的输入进行调度执行,并将执行后的结果返回给用户;当用户向系统发送带有主动存储标记的写命令时,方法对象处理模块就能根据给定用户对象,自动读出与之关联的方法对象的内容,输入流作为方法对象的输入进行调度执行,并将执行后的结果保存在相应用户对象中。

当数据被分割成多个用户对象,并存放在不同OSD上时,实现方法对象时需要考虑更多的因素,例如,存放位置,操作结果的同步等。

对于用户方法对象,需将它上传至每个与之关联的用户对象所在的OSD,对于系统方法对象,需要将其上传至每个与之关联的策略对象所在的OSD上,并且,所有方法对象和策略对象不再被分割,以保持其完整性。方法对象与策略对象的存储过程如图3所示。

上传的过程是这样的:若需要上传的为用户方法对象,则先将其随机上传至某一OSD,并将该信息存放至外部的元数据服务器上,当客户端发出与其相关的关联命令时,查找元数据服务器,找到用户方法对象和相应的用户对象所在的OSD,将方法对象转存并复制到所有与其关联的用户对象所在的OSD上,并将关联信息写入方法对象和用户对象的信息属性页中。需要注意的是,如果用户对象被删除或迁移,则与其关联的用户方法对象也需要做同样的工作。

若需要上传的为系统方法对象,则先将其随机上传至某一OSD,并将该信息存放至元数据服务器上,当客户端发出与其相关的关联命令时,查找元数据服务器,找到系统方法对象和相应策略对象所在的OSD,将系统方法对象转存并复制到与其关联的策略对象所在的OSD上,并将关联信息写入两者的信息属性页中。如果策略对象被删除,迁移,则与其关联的系统方法对象也需要做同样的工作。

方法对象作为多个副本保存在不同的设备上,有助于提高设备的并行度,减少用户响应时间,虽然占用了一定的存储空间,但是极大地提高了存储设备的性能。当数据分布在多个OSD上,用户请求数据时,会根据其(offset,len)来依次向不同的OSD发出使用方法对象的读写请求。在各个OSD上,会根据自身得到的相对对象的(offset,len)去读取相应用户对象,并将最终结果返回。这样,数据会在客户端按读取顺序依次整合,不需要系统再进行额外的处理。

策略对象是一系列条件的集合。它类似于C语言中的条件判断语句,可以对策略对象的每一个条件进行判断,返回布尔值。OSD会按照策略对象的条件去监控系统情况。策略对象也需要与某个系统方法对象进行关联,当策略对象的每一个条件都返回真值时,策略对象就会触发相应系统方法对象自动执行。策略对象是系统方法对象自动执行的前提条件。

策略对象处理模块与文件接口VFS的交互流程如图4所示。策略对象处理模块根据策略请求完成策略对象的注册和删除,并关联和解关联相应的方法对象;当策略对象与方法对象关联以后,就会运行一个内核线程,去读取根信息属性页中的系统信息,并与其条件进行比较。一旦条件都得到满足,将会调用与其关联的方法对象进行执行。策略对象的实现是系统方法对象自动执行的基础。当用户需要使用策略对象来实现系统方法对象自动执行时,需要执行的流程如下:

(1)向系统提交需要执行的系统方法对象;

(2)使用OSD_CREATE_AND_WRITE_POLICY命令,向系统注册并写入策略对象;

(3)使用OSD_ASSOCIATE_POLICY命令,将策略对象与所需执行的系统方法对象进行关联;

(4)用户完成以上步骤后,策略对象处理模块就会自动读取根对象属性页中信息,并监测系统运行情况,读取策略对象属性页属性得到与其关联的系统方法对象ID,当系统运行情况使得策略对象中条件均返回真,则调用系统方法对象进行执行;

(5)当用户不再需要使用该策略对象,就使用OSD_UNASSOCIATE_POLICY命令来解除策略对象与系统方法对象之间的关联,使用OSD_REMOVE_METHOD命令删除该策略对象。

可以看出,本发明的系统通过将应用程序的部分操作模块下放到对象存储设备(OSD)中,以利用存储系统中富余的并行计算能力,减少网络上的数据传输量,减小应用程序对网络带宽的需求,同时增强OSD的智能性。将对象存储和主动存储结合起来形成主动对象存储系统,以吸取两者的优点,提升存储系统性能。本发明提出的一种智能主动对象存储系统,可以灵活实现对象存储系统节点内部的数据预处理,赋予节点一定自主性,提升存储系统性能。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 一种主动对象存储系统的实现方法
  • 一种主动对象存储系统上的入侵检测方法
技术分类

06120112232731