一种分布式存储系统的纠删码优化方法与流程

文档序号:11460181阅读:1358来源:国知局
一种分布式存储系统的纠删码优化方法与流程

本发明涉及数据存储技术领域,具体的说是涉及一种分布式存储系统的纠删码优化方法。



背景技术:

随着信息化时代的来临,全球数据量正处于爆炸式增长的趋势。提高存储系统可靠性以及保障数据可用性已成为企业的研究重点。现有的分布式存储系统中,绝大多数是通过多副本技术来提升系统可靠性、可用性、性能以及可扩展性。但在大数据时代,存储规模越来越大,多副本技术的系统开销将越来越大。相对于副本技术,纠删码技术具有更高存储效率,并且能降低网络中的数据流量。但纠删码需要消耗较大的cpu资源,读写流程比较复杂,需要对齐读写。现有的技术纠删码存储系统中,大多需要在前段实现缓存池,先把数据写到缓存池中,等满足一定条件时再把缓存池中的数据刷到后端存储。这种方法可以保证大部分写请求都是满条带写,避免了传统写操作前需要先读取未满条带数据的步骤,但缓存可能造成数据丢失,大大降低了数据的安全性。



技术实现要素:

针对现有技术中的不足,本发明要解决的技术问题在于提供了一种分布式存储系统的纠删码优化方法。

为解决上述技术问题,本发明通过以下方案来实现:一种分布式存储系统的纠删码优化方法,该方法是利用纠删码的特点,减小纠删码条带的大小,小的条带更能满足满条带写,对于未满条带的部分,使读取补齐的数据最小化;大于大io,小条带把请求数据切分成很多个条带,利用内存引用技术,进行逻辑层的小条带合并,保证了大io被切分,性能不受影响;所述方法把纠删码的条带最小化,减少了未满条带写时读取补齐数据的数据量,前段不需要设置缓存池也能保证较高的读写性能,增加数据的安全性和减少了前段的内存消耗;

所述方法包括分布式块存储系统,该分布式块存储系统包括:

控制主机:所述控制主机生成虚拟磁盘,作为存储数据路径的前端主机,完成数据接收、转发功能;

存储主机:所述存储主机分布于存储系统中,数据最终的存放地点将存储资源抽象成多个存储组件,每个组件由大型的稀疏文件链组成;

所述方法还包括(k+r,k)纠删码存储虚拟磁盘,该(k+r,k)纠删码存储虚拟磁盘包括k个数据组件,r个校验组件;

(k+r,k)纠删码虚拟磁盘的一个纠删码条带包含k个数据块和r个校验块,数据块的大小为n字节;前段虚拟磁盘写入k*n个字节的数据,会被拆分成k份,分别写入到k个数据组件中,根据纠删码算法,计算出r个校验数据块,分别写入到r个校验组件中;

纠删码写入时需要计算校验数据,数据偏移量和数据长度必须对齐数据块大小,如果没有满足该条件必须先到后端组件上读取数据补齐条带;如果数据偏移量没有对齐,需要读取条带头,如果数据长度没有对齐,需要读取条带尾;

所述方法还包括纠删码数据拆分重组方法,该纠删码数据拆分重组方法是通过多个数据条带在内存中进行数据拆分重组后,只需进行一次纠删码运算;

所述分布式存储系统的纠删码优化方法如下:

①:基本变量说明,假设数据块个数k为4,校验块个数为2,数据大小n为1k,条带大小s为n*k=4k,数据偏移量为offset,数据长度为length;

②:数据偏移量和数据长度补齐;如果数据偏移量不能被条带大小整除,数据块需要向前补齐,如果数据偏移量+数据长度的大小不能被条带大小整除,需要向后补齐数据;由于本分布式存储系统的所有前端io的数据偏移量和数据长度都是4k对齐的;所以只要保证条带大小为4k就可以避免数据补齐;

③:当条带大小为4k时,前段一个大io会被分成多个条带;每个条带的数据都要进行一次纠删码计算和k+r次网络传输;消耗大量的cpu资源、降低网络的利用率和降低了后端存储的写性能;

④:为了不降低小条带的性能,先对数据进行拆分重组,、假设需要写入的数据大小为12k,分成3个条带;对每个条带对应的数据块进行合并,假设合并前的数据块编号为[123456789101112],合并后的数据块编号为{[159][2610][3711][4812]};数据重新合并后,可以看成条带大小为12k,数据块为3k的纠删码条带,只需进行一次纠删码运算就可以算出整个数据块的校验值;并且可以把数据合并发送给存储后端,减少网络数据发送系统调用的次数,降低了cpu消耗和提高网络的利用率。

相对于现有技术,本发明的有益效果是:本发明提供一种分布式存储系统的纠删码优化方法。利用纠删码的特点,尽量减小纠删码条带的大小。小的条带更能满足满条带写,对于未满条带的部分,可以使读取补齐的数据最小化。大于大io,小条带会把请求数据切分成很多个条带,利用内存引用技术,进行逻辑层的小条带合并,保证了大io会把被切分,性能不受影响。本纠删码优化方法把纠删码的条带最小化,减少了未满条带写时读取补齐数据的数据量。前段不需要设置缓存池也能保证较高的读写性能,大大增加了数据的安全性和减少了前段的内存消耗。

本发明提供一种分布式存储系统的纠删码优化方法,在不影响性能的条件下,最小化纠删码的条带,减少了未满条带写时读取未满条带数据的数据量。前段不需要设置缓存池也能保证较高的读写性能,大大增加了数据的安全性和减少了前段的内存消耗。

附图说明

图1为本发明的分布式块存储系统架构图;

图2为本发明的(k+r,k)纠删码存储虚拟磁盘示意图;

图3为本发明的纠删码虚拟磁盘中各组件数据分块示意图;

图4为本发明的纠删码虚拟磁盘写入示意图;

图5为本发明的纠删码数据拆分重组示意图。

具体实施方式

下面结合附图对本发明的优选实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。

请参照附图1-5,本发明的一种分布式存储系统的纠删码优化方法,该方法是利用纠删码的特点,减小纠删码条带的大小,小的条带更能满足满条带写,对于未满条带的部分,使读取补齐的数据最小化;大于大io,小条带把请求数据切分成很多个条带,利用内存引用技术,进行逻辑层的小条带合并,保证了大io被切分,性能不受影响;所述方法把纠删码的条带最小化,减少了未满条带写时读取补齐数据的数据量,前段不需要设置缓存池也能保证较高的读写性能,增加数据的安全性和减少了前段的内存消耗;

所述方法包括分布式块存储系统,该分布式块存储系统包括:

控制主机:所述控制主机生成虚拟磁盘,作为存储数据路径的前端主机,完成数据接收、转发功能;

存储主机:所述存储主机分布于存储系统中,数据最终的存放地点将存储资源抽象成多个存储组件,每个组件由大型的稀疏文件链组成;

所述方法还包括(k+r,k)纠删码存储虚拟磁盘,该(k+r,k)纠删码存储虚拟磁盘包括k个数据组件,r个校验组件;

(k+r,k)纠删码虚拟磁盘的一个纠删码条带包含k个数据块和r个校验块,数据块的大小为n字节;前段虚拟磁盘写入k*n个字节的数据,会被拆分成k份,分别写入到k个数据组件中,根据纠删码算法,计算出r个校验数据块,分别写入到r个校验组件中;

纠删码写入时需要计算校验数据,数据偏移量和数据长度必须对齐数据块大小,如果没有满足该条件必须先到后端组件上读取数据补齐条带;如果数据偏移量没有对齐,需要读取条带头,如果数据长度没有对齐,需要读取条带尾;

所述方法还包括纠删码数据拆分重组方法,该纠删码数据拆分重组方法是通过多个数据条带在内存中进行数据拆分重组后,只需进行一次纠删码运算;

所述分布式存储系统的纠删码优化方法如下:

①:基本变量说明,假设数据块个数k为4,校验块个数为2,数据大小n为1k,条带大小s为n*k=4k,数据偏移量为offset,数据长度为length;

②:数据偏移量和数据长度补齐;如果数据偏移量不能被条带大小整除,数据块需要向前补齐,如果数据偏移量+数据长度的大小不能被条带大小整除,需要向后补齐数据;由于本分布式存储系统的所有前端io的数据偏移量和数据长度都是4k对齐的;所以只要保证条带大小为4k就可以避免数据补齐;

③:当条带大小为4k时,前段一个大io会被分成多个条带;每个条带的数据都要进行一次纠删码计算和k+r次网络传输;消耗大量的cpu资源、降低网络的利用率和降低了后端存储的写性能;

④:为了不降低小条带的性能,先对数据进行拆分重组,如图5所示,假设需要写入的数据大小为12k,分成3个条带;对每个条带对应的数据块进行合并,假设合并前的数据块编号为[123456789101112],合并后的数据块编号为{[159][2610][3711][4812]};数据重新合并后,可以看成条带大小为12k,数据块为3k的纠删码条带,只需进行一次纠删码运算就可以算出整个数据块的校验值;并且可以把数据合并发送给存储后端,减少网络数据发送系统调用的次数,降低了cpu消耗和提高网络的利用率。

以上所述仅为本发明的优选实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

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