一种数据存储方法、装置、存储介质及终端与流程

文档序号:15761253发布日期:2018-10-26 19:19阅读:177来源:国知局
一种数据存储方法、装置、存储介质及终端与流程

本发明涉及数据存储领域,特别是涉及一种数据存储方法、装置、存储介质及终端。



背景技术:

随着云计算和大数据技术的发展,新兴分布式文件,块和对象存储技术也正在逐渐取代网络附属存储(nas,networkattachedstorage),存储区域网络(san,storageareanetwork)等传统的存储技术,尤其是对象存储技术更是由于互联网和云存储的发展应运而生。

数据分布策略作为分布式存储技术中的关键技术点,被广泛研究。分布式系统基础架构hadoop的底层分布式文件系统(hdfs,hadoopdistributedfilesystem)采用机架感知策略进行副本放置,但在该策略下数据可以被写入至负载较高的节点,造成数据分布不均衡的问题。

b站文件存储系统bfs将存储节点划分为组group,每个group管理若干个逻辑存储卷volume,每个volume又有若干备份的存储节点store负责进行实际的存储。在进行数据写入时,先获取所有group,然后根据group下的所有store,以及所有store下的volume,给group计算一个总分,根据总分对group进行权重分配,然后随机命中一个group,在这个group中再随机命中一个volume,将数据写入到这个volume中。在bfs中以group为单位进行选取,粒度比较粗,并且在文件存储系统的硬件状态发生改变后,再次选取逻辑存储卷时无法及时调整存储模式,易造成数据分配不均衡的问题。



技术实现要素:

本发明提供一种数据存储方法、装置、存储介质及终端,用以解决现有技术在选取逻辑存储卷时的选取策略不合理,在存储系统状态发生改变时,无法及时调整存储模式,易造成数据分配不均衡的问题。

为解决上述技术问题,一方面,本发明提供一种数据存储方法,包括:获取所有逻辑存储卷的状态;根据所述所有逻辑存储卷中每个逻辑存储卷的状态,确定每个所述逻辑存储卷对应的第一权重值;根据所述第一权重值,选取用于进行本次数据存储的逻辑存储卷。

进一步,所述根据所述第一权重值,选取用于本次数据存储的逻辑存储卷,包括:根据所述第一权重值,调整每个所述逻辑存储卷上一次数据存储后的负载状态权重值,得到每个所述逻辑存储卷本次数据存储前的负载状态权重值;选择所述负载状态权重值最大的逻辑存储卷,作为进行本次数据存储的逻辑存储卷。

进一步,所述逻辑存储卷的状态至少包括如下状态之一:总空间、当前剩余空间、最小时延、最大时延、总时延。

进一步,所述根据所述所有逻辑存储卷中每个逻辑存储卷的状态,确定每个所述逻辑存储卷对应的第一权重值,包括:根据每个所述逻辑存储卷的状态,计算每个所述逻辑存储卷在每个存储节点中的第三权重值;在所述逻辑存储卷在每个存储节点中的第三权重值中,选择符合预设选择策略的第三权重值作为所述逻辑存储卷的第一权重值;其中,所述第三权重值的计算方法为:

其中,freespace为所述逻辑存储卷的当前剩余空间,totalspace为所述逻辑存储卷总空间,totaldelay为所述逻辑存储卷总延时,totalwriteprocess为所述逻辑存储卷的总写入数据量,mindelay为所述逻辑存储卷最小延时,maxdelay为所述逻辑存储卷最大延时。

进一步,所述选择符合所述预设选择策略的第三权重值作为所述逻辑存储卷的第一权重值,包括:选择每个所述逻辑存储卷在每个存储节点中最小的第三权重值作为所述逻辑存储卷的第一权重值。

进一步,所述根据所述第一权重值,调整每个所述逻辑存储卷上一次数据存储后的负载状态权重值,得到每个所述逻辑存储卷本次数据存储钱的负载状态权重值,包括:将所述第一权重值与所述逻辑存储卷上一次数据存储后的负载状态权重值之和作为所述逻辑存储卷本次数据存储前的负载状态权重值。

进一步,所述选择所述负载状态权重值最大的逻辑存储卷,作为进行本次数据存储的逻辑存储卷之后,还包括:计算所述进行本次数据存储的逻辑存储卷所在的存储节点的总权重值;将进行本次数据存储的逻辑存储卷的负载状态权重值与所述总权重值的差作为所述逻辑存储卷本次数据存储后的负载状态权重值。

另一方面,本发明还提供一种数据存储装置,其特征在于,包括:获取模块,用于获取所有逻辑存储卷的状态;第一权重计算模块,根据所述所有逻辑存储卷中每个逻辑存储卷的状态,确定每个所述逻辑存储卷对应的第一权重值;存储模块,用于根据所述第一权重值,选取用于进行本次数据存储的逻辑存储卷。

进一步,所述存储模块,包括:负载状态权重计算单元,用于根据所述第一权重值,调整每个所述逻辑存储卷上一次数据存储后的负载状态权重值,得到每个所述逻辑存储卷本次数据存储前的负载状态权重值;存储单元,用于选择所述负载状态权重值最大的逻辑存储卷,作为进行本次数据存储的逻辑存储卷。

进一步,所述逻辑存储卷的状态至少包括如下状态之一:总空间、当前剩余空间、最小时延、最大时延、总时延。

进一步,所述第一权重计算模块,包括:计算单元,用于根据每个所述逻辑存储卷的状态,计算每个所述逻辑存储卷在每个存储节点中的第三权重值;选择单元,用于在所述逻辑存储卷在每个存储节点中的第三权重值中,选择符合预设选择策略的第三权重值作为所述逻辑存储卷的第一权重值;其中,所述第三权重值的计算方法为:

其中,freespace为所述逻辑存储卷的当前剩余空间,totalspace为所述逻辑存储卷总空间,totaldelay为所述逻辑存储卷总延时,totalwriteprocess为所述逻辑存储卷的总写入数据量,mindelay为所述逻辑存储卷最小延时,maxdelay为所述逻辑存储卷最大延时。

进一步,所述选择单元,具体用于:选择每个所述逻辑存储卷在每个存储节点中最小的第三权重值作为所述逻辑存储卷的第一权重值。

进一步,所述负载状态权重计算单元,具体用于:将所述第一权重值与所述逻辑存储卷上一次数据存储后的负载状态权重值之和作为所述逻辑存储卷本次数据存储前的负载状态权重值。

进一步,还包括:总权重计算模块,计算所述进行本次数据存储的逻辑存储卷所在的存储节点的总权重值;所述负载状态权重计算单元,还用于将进行本次数据存储的逻辑存储卷的负载状态权重值与所述总权重值的差作为所述逻辑存储卷本次数据存储后的负载状态权重值。

另一方面,本发明还提供一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的数据存储方法的步骤。

另一方面,本发明还提供一种终端,至少包括存储器、处理器,所述存储器上存储有计算机程序,所述处理器在执行所述存储器上的计算机程序时实现上述的数据存储方法的步骤。

本发明根据每个逻辑存储卷的状态,计算出每个逻辑存储卷对应的第一权重值,为选择本次数据存储的逻辑存储卷提供了合理的选择依据,提高了数据存储时的分配均衡性。

附图说明

图1是本发明第一实施例中数据存储方法流程图;

图2是本发明第二实施例中数据存储方法流程图;

图3是本发明第三实施例中数据存储方法流程图;

图4是本发明第四实施例中数据存储方法流程图;

图5是本发明第五实施例中数据存储装置结构示意图;

图6是本发明第五实施例中第一权重计算模块的结构示意图;

图7是本发明第六实施例中数据存储装置结构示意图;

图8是本发明第六实施例中存储模块的结构示意图。

具体实施方式

为了解决现有技术在选取逻辑存储卷时的选取策略不合理,在存储系统状态发生改变时,无法及时调整存储模式,易造成数据分配不均衡的问题,本发明提供了一种数据存储方法、装置、存储介质及终端,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。

本发明的第一实施例提供了一种数据存储方法,应用于对象存储系统中,其流程图如图1所示,包括步骤s101至s103:

s101,获取所有逻辑存储卷的状态。

本实施例是基于对象存储系统执行的一种数据存储方法,对象存储系统中包括多个存储节点store,即为数据实际存储的物理磁盘,每个存储节点下管理多个逻辑存储卷volume,即在store中预先分配的存储空间,数据写入时是不断追加到volume中的。为了保证数据的安全存储,通常在一个对象存储系统中,会设置多个互为镜像的存储节点,即互为镜像的多个存储节点中,每个存储节点中的逻辑存储卷划分相同,每个逻辑存储卷的编号、大小、存储的数据完全相同。在数据写入时,若将数据写入至某个存储节点的某个逻辑存储卷中,则同时将相同的数据同时写进互为镜像的所有其他存储节点的同一个逻辑存储卷中,以保证互为镜像的存储节点存储的数据完全相同。

存储节点同时管理多个逻辑存储卷,并且可以分别计算每个逻辑存储卷的状态,使对象存储系统在实现本实施例提供的数据存储方法时,可直接通过存储节点获取各逻辑存储卷的状态,以节省计算时间,提高存储效率。

具体地,逻辑存储卷的状态至少包括如下之一:总空间、当前剩余空间、最小时延、最大时延、总时延等,还可以包括逻辑存储卷的编号、名称、创建时间等基础信息。通过上述状态信息,可实际反馈每个逻辑存储卷的当前状态,以方便在选择逻辑存储卷时选择时延更短、剩余空间更大的逻辑存储卷进行存储。

s102,根据所有逻辑存储卷中每个逻辑存储卷的状态,确定每个逻辑存储卷对应的第一权重值。

s103,根据第一权重值,选取用于进行本次数据存储的逻辑存储卷。

为了选择最优的逻辑存储卷,在进行数据存储之前,根据所有逻辑存储卷中每个逻辑存储卷的当前状态计算其对应的的第一权重值,通过第一权重值反应其对应逻辑存储卷当前是否适合存储数据的状态。并根据第一权重值,选择当前的状态条件最好的逻辑存储卷进行本次数据存储。应当了解的是,在某个存储节点的逻辑存储卷下进行本次数据写入时,应同时向该存储节点对应的镜像存储节点中的同一个逻辑存储卷进行相同数据的写入。

本实施例根据每个逻辑存储卷的状态,计算出每个逻辑存储卷对应的第一权重值,为选择本次数据存储的逻辑存储卷提供了合理的选择依据。

进一步地,在现有技术的对象存储系统中,通过一致性哈希算法实现数据分布的情况下,在系统扩容时,通常会需要进行数据迁移以保证已存储数据的正常读取,而数据迁移会增加系统负载,降低系统工作效率。而通过本实施例记载的方法进行数据存储的对象存储系统,在系统扩容时,系统将根据本实施例提出的方法进行存储数据的合理分配,无需进行数据迁移,可进一步达到降低系统负载,提升工作效率的目的。

本发明的第二实施例提供了一种数据存储方法,应用于对象存储系统中,其流程图如图2所示,具体包括步骤s201至s204:

s201,获取所有逻辑存储卷的状态。

存储节点同时管理多个逻辑存储卷,并且可以分别计算每个逻辑存储卷的状态,使对象存储系统在实现本实施例提供的数据存储方法时,可直接通过存储节点获取各逻辑存储卷的状态,以节省计算时间,提高存储效率。

具体地,逻辑存储卷的状态至少包括如下之一:总空间、当前剩余空间、最小时延、最大时延、总时延等,还可以包括逻辑存储卷的编号、名称、创建时间等基础信息。通过上述状态信息,可实际反馈每个逻辑存储卷的当前状态,以方便在选择逻辑存储卷时选择时延更短、剩余空间更大的逻辑存储卷进行存储。

s202,根据所有逻辑存储卷中每个逻辑存储卷的状态,确定每个逻辑存储卷对应的第一权重值。

为了选择最优的逻辑存储卷,在进行数据存储之前,根据所有逻辑存储卷中每个逻辑存储卷的当前状态计算其对应的的第一权重值,通过第一权重值反应其对应逻辑存储卷当前是否适合存储数据的状态。

s203,根据第一权重值,调整每个逻辑存储卷上一次数据存储后的负载状态权重值,得到每个逻辑存储卷本次数据存储前的负载状态权重值。

s204,选择负载状态权重值最大的逻辑存储卷,作为进行本次数据存储的逻辑存储卷。

逻辑存储卷的负载状态权重值也可称为当前权重current_weight,进行本次数据存储之前的负载状态权重值,是根据第一权重值,调整每个逻辑存储卷上一次数据存储后的负载状态权重值确定的,用以使每个逻辑存储卷当前是否适合存储数据的状态的判断更合理,进一步保证数据存储的分配均衡性。

可选地,根据第一权重值,调整每个逻辑存储卷上一次数据存储后的负载状态权重值的具体方式可以但不限于平滑的加权轮询方式:将第一权重值与逻辑存储卷上一次数据存储后的负载状态权重值之和作为逻辑存储卷本次数据存储前的负载状态权重值。负载状态权重值在每次进行数据存储时都会调整,以保证每个逻辑存储卷都有进行数据存储的机会,使数据写入尽可能的平衡,防止数据连续不断地写入至同一个逻辑存储卷,造成该逻辑存储卷负载过大进而出现故障。默认地,负载状态权重值的初始值为零。

负载状态权重值最大的逻辑存储卷,证明其当前的条件最合适进行本次存储,则将本次数据存储至该逻辑存储卷。应当了解的是,在某个存储节点的逻辑存储卷下进行本次数据写入时,应同时向该存储节点对应的镜像存储节点中的同一个逻辑存储卷进行相同数据的写入。

本实施例根据每个逻辑存储卷的状态,计算出每个逻辑存储卷对应的第一权重值,为选择本次数据存储的逻辑存储卷提供了合理的选择依据。

本发明的第三实施例提供了一种数据存储方法,应用于对象存储系统中,其流程图如图3所示,具体包括步骤s301至s304:

s301,获取所有逻辑存储卷的状态。

存储节点同时管理多个逻辑存储卷,并且可以分别计算每个逻辑存储卷的状态,使对象存储系统在实现本实施例提供的数据存储方法时,可直接通过存储节点获取各逻辑存储卷的状态,以节省计算时间,提高存储效率。

具体地,逻辑存储卷的状态至少包括以下之一:总空间、当前剩余空间、最小时延、最大时延、总时延等,还可以包括逻辑存储卷的编号、名称、创建时间等基础信息。通过上述状态信息,可实际反馈每个逻辑存储卷的当前状态,以方便在选择逻辑存储卷时选择时延更短、剩余空间更大的逻辑存储卷进行存储。

s302,根据每个逻辑存储卷的状态,计算每个逻辑存储卷在每个存储节点中的第三权重值。

为了保证在进行数据存储时的充分考虑到各逻辑存储卷的实际情况,首先根据每个逻辑存储卷的状态,计算每个逻辑存储卷在每个存储节点中的第三权重值。具体地,第三权重值根据时延和剩余空间占有率进行归一化后计算而来,其具体计算公式如下:

其中,freespace为逻辑存储卷的当前剩余空间,totalspace为逻辑存储卷总空间,totaldelay为逻辑存储卷总延时,totalwriteprocess为逻辑存储卷的总写入数据量,mindelay为逻辑存储卷最小延时,maxdelay为逻辑存储卷最大延时。具体地,逻辑存储卷最小延时是指同一个逻辑存储卷在不同存储节点中所有延时的最小值,同样的,逻辑存储卷最大延时是指同一个逻辑存储卷在不同存储节点中所有延时的最大值。

应当了解的是,针对每个存储节点下的逻辑存储卷均要计算第三权重值。

s303,在逻辑存储卷在每个存储节点中的第三权重值中,选择符合预设选择策略的第三权重值作为逻辑存储卷的第一权重值。

由于在对象存储系统中存在多个存储节点互为镜像,且每个存储节点下管理的逻辑存储卷相同,但由于存储节点作为物理存储的磁盘设备,可能由于外部环境、设备型号、设备年限、网络状态等不同因素,造成同一个逻辑存储卷在不同存储节点下的第三权重值不同。当确定某一个逻辑存储卷的第一权重值时,在该逻辑存储卷在不同存储节点下的不同第三权重值中,选择符合预设策略的第三权重值作为该逻辑存储卷的第一权重值,具体地,预设策略可以但不限于以下策略:选择每个逻辑存储卷在每个存储节点中最小的第三权重值作为该逻辑存储卷的第一权重值。

s304,根据第一权重值,选取用于进行本次数据存储的逻辑存储卷。

为了选择最优的逻辑存储卷,在进行数据存储之前,根据所有逻辑存储卷中每个逻辑存储卷的当前状态计算其对应的的第一权重值,通过第一权重值反应其对应逻辑存储卷当前是否适合存储数据的状态。并根据第一权重值,选择当前的状态条件最好的逻辑存储卷进行本次数据存储。应当了解的是,在某个存储节点的逻辑存储卷下进行本次数据写入时,应同时向该存储节点对应的镜像存储节点中的同一个逻辑存储卷进行相同数据的写入。

本实施例通过结合逻辑存储卷的剩余空间、延时等状态信息,进行数据分布存储,充分考虑了系统当前的实际状况,为数据分布提供了更为充分的依据。

本发明的第四实施例提供了一种数据存储方法,应用于对象存储系统中,其流程图如图4所示,具体包括步骤s401至s06:

s401,获取所有逻辑存储卷的状态。

存储节点同时管理多个逻辑存储卷,并且可以分别计算每个逻辑存储卷的状态,使对象存储系统在实现本实施例提供的数据存储方法时,可直接通过存储节点获取各逻辑存储卷的状态,以节省计算时间,提高存储效率。

具体地,逻辑存储卷的状态至少包括如下之一:总空间、当前剩余空间、最小时延、最大时延、总时延等,还可以包括逻辑存储卷的编号、名称、创建时间等基础信息。通过上述状态信息,可实际反馈每个逻辑存储卷的当前状态,以方便在选择逻辑存储卷时选择时延更短、剩余空间更大的逻辑存储卷进行存储。

s402,根据所有逻辑存储卷中每个逻辑存储卷的状态,确定每个逻辑存储卷对应的第一权重值。

为了选择最优的逻辑存储卷,在进行数据存储之前,根据所有逻辑存储卷中每个逻辑存储卷的当前状态计算其对应的的第一权重值,通过第一权重值反应其对应逻辑存储卷当前是否适合存储数据的状态。

s403,根据第一权重值,调整每个逻辑存储卷上一次数据存储后的负载状态权重值,得到每个逻辑存储卷本次数据存储前的负载状态权重值。

s404,选择负载状态权重值最大的逻辑存储卷,作为进行本次数据存储的逻辑存储卷。

逻辑存储卷的负载状态权重值也可称为当前权重current_weight,进行本次数据存储之前的负载状态权重值,是根据第一权重值,调整每个逻辑存储卷上一次数据存储后的负载状态权重值确定的,用以使每个逻辑存储卷当前是否适合存储数据的状态的判断更合理,进一步保证数据存储的分配均衡性。

可选地,根据第一权重值,调整每个逻辑存储卷上一次数据存储后的负载状态权重值的具体方式可以但不限于以下方式:将第一权重值与逻辑存储卷上一次数据存储后的负载状态权重值之和作为逻辑存储卷本次数据存储前的负载状态权重值。

负载状态权重值最大的逻辑存储卷,证明其当前的条件最合适进行本次存储,则将本次数据存储至该逻辑存储卷。应当了解的是,在某个存储节点的逻辑存储卷下进行本次数据写入时,应同时向该存储节点对应的镜像存储节点中的同一个逻辑存储卷进行相同数据的写入。

s405,计算进行本次数据存储的逻辑存储卷所在的存储节点的总权重值。

s406,将进行本次数据存储的逻辑存储卷的负载状态权重值与总权重值的差作为逻辑存储卷本次数据存储后的负载状态权重值。

在进行本次数据存储时,进行数据存储的逻辑存储卷为负载状态权重值最大的逻辑存储卷,为了防止使用同一逻辑存储卷不断进行存储,造成该逻辑存储卷负载过大进而出现故障的问题,在该逻辑存储卷进行了一次数据存储之后,将其负载状态权重值减去其归属存储节点的总权重值之后的差,作为其本次数据存储后的负载状态权重值。应当了解的是,存储节点的总权重值为该存储节点管理的所有逻辑存储卷的第一权重值的和,由于总权重值非常大,逻辑存储卷当前的负载状态权重值与总权重值之间的差必定为负值,则在下一次进行数据存储时,不会再选定负载状态权重值为负的逻辑存储卷进行存储,使每个逻辑存储卷都有进行数据存储的机会,使数据写入尽可能的平衡,防止数据连续不断地写入至同一个逻辑存储卷,造成该逻辑存储卷负载过大进而出现故障。

本发明的第五实施例提供了一种数据存储装置,设置在对象存储系统中,该装置的结构示意如图5所示,包括:

获取模块10,用于获取所有逻辑存储卷的状态;第一权重计算模块20,与获取模块10耦合,根据所有逻辑存储卷中每个逻辑存储卷的状态,确定每个逻辑存储卷对应的第一权重值;存储模块30,与第一权重计算模块20耦合,用于根据第一权重值,选取用于进行本次数据存储的逻辑存储卷。

对象存储系统中包括多个存储节点store,即为数据实际存储的物理磁盘,每个存储节点下管理多个逻辑存储卷volume,即在store中预先分配的存储空间,数据写入时是不断追加到volume中的。为了保证数据的安全存储,通常在一个对象存储系统中,会设置多个互为镜像的存储节点,即互为镜像的多个存储节点中,每个存储节点中的逻辑存储卷划分相同,每个逻辑存储卷的编号、大小、存储的数据完全相同。在数据写入时,若将数据写入至某个存储节点的某个逻辑存储卷中,则同时将相同的数据同时写进互为镜像的所有其他存储节点的同一个逻辑存储卷中,以保证互为镜像的存储节点存储的数据完全相同。

存储节点同时管理多个逻辑存储卷,并且可以分别计算每个逻辑存储卷的状态,数据存储装置在工作时,可通过获取模块10直接通过存储节点获取各逻辑存储卷的状态,以节省计算时间,提高存储效率。

具体地,逻辑存储卷的状态至少包括以下之一:总空间、当前剩余空间、最小时延、最大时延、总时延等,还可以包括逻辑存储卷的编号、名称、创建时间等基础信息。通过上述状态信息,可实际反馈每个逻辑存储卷的当前状态,以方便在选择逻辑存储卷时选择时延更短、剩余空间更大的逻辑存储卷进行存储。

实现时,为了选择最优的逻辑存储卷,在进行数据存储之前,通过第一权重计算模块20根据所有逻辑存储卷中每个逻辑存储卷的当前状态计算其对应的的第一权重值,通过第一权重值反应其对应逻辑存储卷当前是否适合存储数据的状态。为了保证在进行数据存储时的充分考虑到各逻辑存储卷的实际情况,第一权重计算模块20可以包括计算单元2011和选择单元2012,其结构示意图如图6所示,计算单元2011根据每个逻辑存储卷的状态,计算每个逻辑存储卷在每个存储节点中的第三权重值。具体地,第三权重值根据时延和剩余空间占有率进行归一化后计算而来,其具体计算公式如下:

其中,freespace为逻辑存储卷的当前剩余空间,totalspace为逻辑存储卷总空间,totaldelay为逻辑存储卷总延时,totalwriteprocess为本次数据存储的总写请求量,mindelay为逻辑存储卷最小延时,maxdelay为逻辑存储卷最大延时。具体地,逻辑存储卷最小延时是指同一个逻辑存储卷在不同存储节点中所有延时的最小值,同样的,逻辑存储卷最大延时是指同一个逻辑存储卷在不同存储节点中所有延时的最大值。

由于在对象存储系统中存在多个存储节点互为镜像,且每个存储节点下管理的逻辑存储卷相同,但由于存储节点作为物理存储的磁盘设备,可能由于外部环境、设备型号、设备年限、网络状态等不同因素,造成同一个逻辑存储卷在不同存储节点下的第三权重值不同。当选择单元2012在确定某一个逻辑存储卷的第一权重值时,在该逻辑存储卷在不同存储节点下的不同第三权重值中,选择符合预设策略的第三权重值作为该逻辑存储卷的第一权重值,具体地,预设策略可以但不限于以下策略:选择每个逻辑存储卷在每个存储节点中最小的第三权重值作为该逻辑存储卷的第一权重值。

为了选择最优的逻辑存储卷,存储模块30根据所有逻辑存储卷中每个逻辑存储卷的当前状态计算其对应的的第一权重值,通过第一权重值反应其对应逻辑存储卷当前是否适合存储数据的状态。并根据第一权重值,选择当前的状态条件最好的逻辑存储卷进行本次数据存储。应当了解的是,在某个存储节点的逻辑存储卷下进行本次数据写入时,应同时向该存储节点对应的镜像存储节点中的同一个逻辑存储卷进行相同数据的写入。

本实施例根据每个逻辑存储卷的状态,计算出每个逻辑存储卷对应的第一权重值,为选择本次数据存储的逻辑存储卷提供了合理的选择依据。

本发明的第六实施例提供了一种数据存储装置,设置在对象存储系统中,该装置的结构示意如图7所示,包括:

获取模块10,用于获取所有逻辑存储卷的状态;第一权重计算模块20,与获取模块10耦合,根据所有逻辑存储卷中每个逻辑存储卷的状态,确定每个逻辑存储卷对应的第一权重值;存储模块30,与第一权重计算模块20耦合,用于根据第一权重值,选取用于进行本次数据存储的逻辑存储卷;总权重计算模块40,与存储模块30耦合,用于计算存储节点的总权重值。

在本实施例中,存储模块30可以包括负载状态权重计算单元3011以及存储单元3012,其结构示意图如图8所示,其中,负载状态权重计算单元3011,用于根据第一权重值,调整每个逻辑存储卷上一次数据存储后的负载状态权重值,得到每个逻辑存储卷本次数据存储前的负载状态权重值;存储单元3012,与负载状态权重计算单元3011耦合,用于选择负载状态权重值最大的逻辑存储卷,作为进行本次数据存储的逻辑存储卷。

逻辑存储卷的负载状态权重值也可称为当前权重current_weight,进行本次数据存储之前的负载状态权重值,是负载状态权重计算单元3011根据第一权重值,调整每个逻辑存储卷上一次数据存储后的负载状态权重值确定的,用以使每个逻辑存储卷当前是否适合存储数据的状态的判断更合理,进一步保证数据存储的分配均衡性。

可选地,负载状态权重计算单元3011根据第一权重值,调整每个逻辑存储卷上一次数据存储后的负载状态权重值的具体方式可以但不限于平滑的加权轮询方式:将第一权重值与逻辑存储卷上一次数据存储后的负载状态权重值之和作为逻辑存储卷本次数据存储前的负载状态权重值。负载状态权重值在每次进行数据存储时都会调整,以保证每个逻辑存储卷都有进行数据存储的机会,使数据写入尽可能的平衡,防止数据连续不断地写入至同一个逻辑存储卷,造成该逻辑存储卷负载过大进而出现故障。默认地,负载状态权重值的初始值为零。

负载状态权重值最大的逻辑存储卷,证明其当前的条件最合适进行本次存储,存储单元3012将本次数据存储至该逻辑存储卷。应当了解的是,在某个存储节点的逻辑存储卷下进行本次数据写入时,应同时向该存储节点对应的镜像存储节点中的同一个逻辑存储卷进行相同数据的写入。

在进行本次数据存储时,进行数据存储的逻辑存储卷为负载状态权重值最大的逻辑存储卷,为了防止使用同一逻辑存储卷不断进行存储,造成该逻辑存储卷负载过大进而出现故障的问题,在该逻辑存储卷进行了一次数据存储之后,负载状态权重计算单元3011将其负载状态权重值减去其归属存储节点的总权重值之后的差,作为其本次数据存储后的负载状态权重值。应当了解的是,存储节点的总权重值为通过总权重计算模块40计算而来的该存储节点管理的所有逻辑存储卷的第一权重值的和,由于总权重值非常大,逻辑存储卷当前的负载状态权重值与总权重值之间的差必定为负值,则在下一次进行数据存储时,存储模块30不会再选定负载状态权重值为负的逻辑存储卷进行存储,使每个逻辑存储卷都有进行数据存储的机会,使数据写入尽可能的平衡,防止数据连续不断地写入至同一个逻辑存储卷,造成该逻辑存储卷负载过大进而出现故障。

本发明第七实施例提供了一种存储介质,存储有计算机程序,计算机程序被处理器执行时实现如下步骤s11至s13:

s11,获取所有逻辑存储卷的状态;

s12,根据所有逻辑存储卷中每个逻辑存储卷的状态,确定每个逻辑存储卷对应的第一权重值;

s13,根据第一权重值,选取用于进行本次数据存储的逻辑存储卷。

在本实施例中,存储介质可以安装在对象存储系统中。由于在第一实施例中已经对数据存储方法进行了详细说明,因此,在本实施例中不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行上述实施例记载的方法步骤。可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

本发明的第八实施例提供了一种终端,至少包括存储器、处理器,存储器上存储有计算机程序,处理器在执行存储器上的计算机程序时实现如下步骤s21至s23:

s21,获取所有逻辑存储卷的状态;

s22,根据所有逻辑存储卷中每个逻辑存储卷的状态,确定每个逻辑存储卷对应的第一权重值;

s23,根据第一权重值,选取用于进行本次数据存储的逻辑存储卷。

在本实施例中,终端可以为对象存储系统。由于在第一实施例中已经对数据存储方法进行了详细说明,因此,在本实施例中不再赘述。

尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1