System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机存储,特别地,涉及分布式存储;具体而言,涉及一种基于追加写分布式存储的lba全缓存方法及系统。
技术介绍
1、分布式共享存储是指基于分布式算法,利用网络通信将异构的设备连接起来,协同组成一个大规模的共享存储系统。在分布式共享存储中,大规模存储系统会由多个存储设备共享,每个存储设备在大规模存储系统中,都会维护自己的lba(logical blockaddress)。逻辑区块地址(logical block address,lba)是描述计算机存储设备上数据所在区块的通用机制,一般用在像硬盘这样的辅助记忆设备。lba可以意指某个数据区块的地址或是某个地址所指向的数据区块。
2、在分布式共享存储系统中,每个用户的共享存储设备都会有单独的寻址空间,用于寻址共享设备逻辑区块数据在分布式存储中的物理位置,通常的做法是,将共享设备的地址空间分割成固定长度的单元,每个单元为类似内核页表中的一页,称为虚拟块。相应地,物理硬盘可以看作定长的单元,每个单元为一个物理chunk。为了记录虚拟块映射到物理chunk的哪个位置,共享存储系统需要维护寻址数据结构。寻址数据结构的主要作用是保存虚拟块到物理块地址转换,从而可以使共享存储能够找到数据实际的物理存储位置。寻址数据结构在分布式共享存储系统中被描述为:lba:value。lba为使用单调递增的序号来描述逻辑上连续地、定长的数据块,value为逻辑上连续地、定长的数据块的物理存储地址,通常为:chunk_id,chunk_offset。在分布式共享存储系统中,通常将lba逻
3、为了提高lba寻址映射关系的访问性能,通常会采用如下组织lba的方式:lba变长存储,或lba定长存储。在两种存储方式中,为了提高lba访问性能,通常会将lba信息缓存在内存中,缓存内存的数据结构一般采取链表结构、树形结构的淘汰算法,例如lru、lfu等。具体缓存lba的算法通常如下:
4、缓存内容为:
5、key=lba,
6、value={physical_chunk,physical_chunk_offset}
7、left=left_point
8、right=right_point
9、其中,value包含lba逻辑块的物理位置信息,left/right包含数据结构的左右指针。
10、查询写入算法描述为:
11、1、用lba做为key,在内存中找到相应的value。查询的时间复杂度与数据结构的选择相关。
12、2、拷贝value,做更新或者进一步查询。
13、3、根据内存整体占用情况,进行缓存数据的trim操作。
14、但是,由于数据结构的选择,会导致lba内存缓存中的数据量,除了有效数据以外,还会消耗部分存储空间去维护数据结构。其次,lba逻辑块的物理位置信息在内存中消耗的存储空间与集群寻址空间相关,通常都会很大,导致传统的lba缓存算法无法缓存住所有lba信息,通常采用缓存淘汰算法,这样不利于数据缓存的完整性和可靠性。
15、因此,当前亟需设计一种基于追加写分布式存储的lba全缓存方法、系统和电子设备,以解决现有技术的上述难点和痛点问题。
技术实现思路
1、鉴于此,本专利技术的目的在于提出一种基于追加写分布式存储的lba全缓存方法、系统和设备,提高在分布式共享存储中共享设备lba寻址的性能,并在全内存缓存lba的同时减少内存空间使用;利用内核多级页表对共享存储lba进行全内存缓存,提高lba的寻址性能以及减少内存存储空间占用,并利用追加写的特性,抽象出chunk_table层,减少一块逻辑lba物理地址的寻址空间,节省lba全内存缓存的内存空间,使分布式共享存储能够在消耗更小的存储空间的同时,缓存住所有共享存储设备的lba寻址信息,提高数据缓存的完整性。
2、本专利技术提供基于追加写分布式存储的lba全缓存方法,包括以下步骤:
3、s1、将用户申请的共享块存储寻址空间按照固定大小分解为多个块,散列到存储集群中,将每一个块定义为一个region;将每一个region的寻址空间按照固定大小拆分为多个逻辑块;
4、s2、将所述region的寻址空间在全缓存中的数据结构定义为内核页表结构的线性表,所述线性表的每一个子项对应为每一个逻辑块的寻址结构;
5、s3、将寻址结构的item项存储寻址物理chunk在chunk表中的索引,当lba寻址到所述item项后,利用item项标识的内容寻址lba的物理地址,减少lba寻址空间的范围;
6、本专利技术将逻辑块的寻址结构的item项不直接存储chunk,而是存储chunk在chunk表中的索引,当lba寻址到所述item项后,利用item项标识的内容寻址lba的物理地址,以节省存储空间,减少lba寻址空间的范围;
7、s4、当lba寻址发生一次覆盖写时,原有指向的chunk的位置为空闲位置,当一个物理chunk的数据被lba覆盖写或者整合全部搬移走时,此chunk在chunk_table线性表中的标识为空闲位置;该空闲位置在写入新的chunk时,存储新的chunk地址:chunk_id;
8、lba全缓存chunk_table是一个可以复用的线性表;当一个chunk地址的数据全部搬移走后,该chunk地址在chunk_table线性表中标识为空闲位置,空闲位置在写入新的chunk地址时,用于存储新的chunk_id;
9、s5、基于集群追加写的特性,当一个chunk写满后,更换新的chunk进行写入,在chunk_table线性表中寻找可用的空闲位置,存放新的chunk_id;
10、当出现chunk中有部分数据发生覆盖写释放出空闲空间,则对chunk进行整合,使多数量的lba item项继续指向chunk_table中的一个chunk_id,使得chunk_table线性表的总大小不超过一个阈值。
11、region的线性表中,未写过的部分将不再分配内存存储空间。
12、进一步地,所述s2步骤的region的线性表创建为多级存储结构,每级的子表都为线性表,在所述多级存储结构中,上级存储下级的地址以及状态信息。
13、region的线性表的多级存储结构可以是2级,或者是更多级。
14、进一步地,所述s2步骤的所述逻辑块的块数lba为所述线性表的下标,对region发起寻址查询时利用所述线性表的下标,在reigon中不存储逻辑块的块数lba。
15、进一步地,所述region的线性表的结构描述为:
16、region_x=[lg1,lg2,lg3,……,lgn]
17、其中,region_x代表散列后的任意一个region,lg代表逻辑块的寻址结构;
18、由本文档来自技高网...
【技术保护点】
1.基于追加写分布式存储的LBA全缓存方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于追加写分布式存储的LBA全缓存方法,其特征在于,所述S2步骤的region的线性表创建为多级存储结构,每级的子表都为线性表,在所述多级存储结构中,上级存储下级的地址以及状态信息。
3.根据权利要求1所述的基于追加写分布式存储的LBA全缓存方法,其特征在于,所述S2步骤的所述逻辑块的块数LBA为所述线性表的下标,对region发起寻址查询时利用所述线性表的下标,在reigon中不存储逻辑块的块数LBA。
4.根据权利要求3所述的基于追加写分布式存储的LBA全缓存方法,其特征在于,所述region的线性表的结构描述为:
5.根据权利要求2所述的基于追加写分布式存储的LBA全缓存方法,其特征在于,所述region的线性表的多级存储结构为2级,lba_table包含directory_table、下级的叶子线性表item_table;
6.根据权利要求5所述的基于追加写分布式存储的LBA全缓存方法,其特征在于,所述叶子线性表中包含
7.基于追加写分布式存储的LBA全缓存系统,执行如权利要求1-6任一项所述的基于追加写分布式存储的LBA全缓存方法,其特征在于,部署在分布式共享存储集群中。
8.基于追加写分布式存储的LBA全缓存设备,其特征在于,携带如权利要求7所述的基于追加写分布式存储的LBA全缓存系统。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-6任一项所述的基于追加写分布式存储的LBA全缓存方法的步骤。
10.一种计算机设备,所述计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6任一项所述的基于追加写分布式存储的LBA全缓存方法的步骤。
...【技术特征摘要】
1.基于追加写分布式存储的lba全缓存方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于追加写分布式存储的lba全缓存方法,其特征在于,所述s2步骤的region的线性表创建为多级存储结构,每级的子表都为线性表,在所述多级存储结构中,上级存储下级的地址以及状态信息。
3.根据权利要求1所述的基于追加写分布式存储的lba全缓存方法,其特征在于,所述s2步骤的所述逻辑块的块数lba为所述线性表的下标,对region发起寻址查询时利用所述线性表的下标,在reigon中不存储逻辑块的块数lba。
4.根据权利要求3所述的基于追加写分布式存储的lba全缓存方法,其特征在于,所述region的线性表的结构描述为:
5.根据权利要求2所述的基于追加写分布式存储的lba全缓存方法,其特征在于,所述region的线性表的多级存储结构为2级,lba_table包含directory_table、下级的叶子线性表item_table;
6.根据权利要求5所述的基于追加写分布式存储的lba全缓存方法,其特征在于,所述叶...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。