一种基于固态盘阵列的数据处理方法及系统技术方案

技术编号:16427488 阅读:39 留言:0更新日期:2017-10-21 21:47
本发明专利技术公开了一种基于固态盘阵列的数据处理方法及系统,包括:接收写请求,指示固态盘阵列和日志盘写入写请求对应的数据,固态盘阵列包括N个成员盘;通过哈希表指示日志盘中记录的每个成员盘中最后一次写入的数据;在空闲时间、日志盘失效、日志盘的剩余空间低于第一阈值或有成员盘的剩余空间低于第二阈值时,指示固态盘阵列根据每个逻辑地址对应的N‑1个成员盘上的数据更新每个逻辑地址对应的校验信息;当有成员盘失效时,通过哈希表恢复失效成员盘中最后一次写入的数据,以及通过未失效成员盘中数据和对应逻辑地址的校验信息恢复失效成员盘中相应逻辑地址上的数据。本发明专利技术实施例减少了为计算校验块所需的预读操作,保证了访问负载的原始特性。

A data processing method and system based on solid state disk array

The invention discloses a processing method and system, solid state disk array based data includes receiving a write request, indicating the solid state disk array and the log disk write write requests to the corresponding data, including members of N solid state disk array disk; through each member after the hash table indicating the log intraday record for the last time to write data in my spare time; and log log disk disk failure, the remaining space is lower than the first threshold or disk space remaining members below the second threshold, the parity information indicating solid state disk array according to each logical address corresponding to the N 1 members on the disk data update each logical address corresponding; when there is a member disk failure, the hash table after the last member recovery failure data and failure by checking information members of intraday data and the corresponding logical address recovery failure Data on the corresponding logical address of the worker's disk. The embodiment of the invention reduces the computation required for verifying block prefetch operation, ensure the original characteristics of access load.

【技术实现步骤摘要】
一种基于固态盘阵列的数据处理方法及系统
本专利技术属于计算机存储
,更具体地,涉及一种基于固态盘阵列的数据处理方法及系统。
技术介绍
磁盘阵列(RedundantArrayofIndependentDisks,RAID)可以给用户提供大容量、高性能和高可靠性服务。RAID根据容错能力和数据布局的不同可以分为不同的阵列级别(RAIDLevels)。RAID5是RAIDLevels中最常用的一种级别。随着固态盘技术越来越成熟,价格越来越低,更多的存储厂商使用RAID技术,把多个固态盘组建成固态盘阵列(RedundantArrayofIndependentSSDs,RAIS)作为高端的存储产品。阵列存储系统可以提供大容量、高性能和高可靠性服务,但是它的小写性能很差。针对这一问题,很多研究采用日志技术延迟校验块更新来提升阵列的小写性能。但是传统日志技术是针对磁盘的特性进行设计的,而固态盘有很多不同于磁盘的特性。固态盘采用异地更新策略写数据,因此固态盘中存在很多“无效”的数据块。传统日志技术并没有充分利用这些“无效”的数据块,需要预读取阵列中一些旧的数据块,将这些数据和要写入的新数据一起顺序地写到日志盘中,以便当存储器失效时根据预读数据计算对应的校验块用于数据恢复。这些预读操作带来的额外读请求会破坏访问负载原本的访问特性。
技术实现思路
针对现有技术的缺陷,本专利技术的目的在于解决现有技术频繁的预读会破坏访问负载的原本访问特性的技术问题。为实现上述目的,第一方面,本专利技术提供了一种基于固态盘阵列的数据处理方法,包括:接收写请求,指示固态盘阵列和日志盘写入所述写请求对应的数据;所述固态盘阵列包括N个成员盘,所述N个成员盘中任意两个成员盘的逻辑地址范围相同,所述N个成员盘采用异地更新策略写入数据,所述异地更新策略为前后两次写入的相同逻辑地址的数据的物理地址不同,N为正整数;通过哈希(Hash)表指示所述日志盘中对应的每个成员盘中最后一次写入的数据;在空闲时间、所述日志盘失效、所述日志盘的剩余空间低于第一阈值或有成员盘的剩余空间低于第二阈值时,指示所述固态盘阵列根据每个逻辑地址对应的N-1个成员盘上的数据更新每个逻辑地址对应的校验信息,并将每个逻辑地址对应的校验信息写入对应逻辑地址的成员盘中;当有成员盘失效时,通过所述哈希表指示的日志盘中的数据恢复失效成员盘中最后一次写入的数据,以及通过未失效成员盘中的数据和对应逻辑地址的校验信息恢复失效成员盘中相应逻辑地址上的数据。具体地,第一阈值可以为日志盘总空间的20%,第二阈值可以为成员盘总空间的20%。另外,第一阈值和第二阈值也可根据实际需要设置,本专利技术实施例不对此做任何限定。本专利技术利用日志技术和固态盘的异地更新策略将更新的数据块同时写到日志盘和固态盘阵列中,由于固态盘采用异地更新,原始数据还保存在固态盘中,故可延迟校验块的更新,提升了固态盘的小写性能,减少对校验块的擦写次数,提升了访问负载的性能。可选地,本专利技术实施例提供的数据处理方法还包括:接收读请求,在成员盘对应的数据页读取数据;根据所述成员盘中包括的数据页的读写请求信息,确定所述数据页为只读页、只写页或交叉页中的一种;当接收写请求时,若所述写请求访问的数据页为只写页,则使用低代价处理所述写请求;若所述写请求访问的数据页为交叉页,则使用中等代价处理所述写请求;当接收读请求时,若所述读请求访问的数据页为只读页,则确定对所述数据页的前一次读请求是否为低代价,当不是低代价的读时,在系统空闲且所述读请求处理之前在所述数据页插入一个高代价的写请求。本专利技术在减少预读操作后,使得数据页为只写页的几率增加,在此基础上结合调节读写代价的技术,进一步提升固态盘阵列的读写性能。可选地,接收写请求,指示固态盘阵列和日志盘写入所述写请求对应的数据,包括:(a)将用户请求按照条带进行分解后,挂载到对应的条带上;用LBA表示成员盘中的逻辑地址,Log_LBA表示日志盘中的逻辑地址;所述条带的编号对应LBA;(b)对有请求的条带进行处理,如果是读请求,则执行步骤(f),否则执行步骤(c);(c)查找哈希表中是否有对应的条目,所述条目包括LBA和Log_LBA信息,若哈希表中有对应的条目,则更改Log_LBA,若哈希表中没有对应的条目,则创建一个条目,将对应的LBA和Log_LBA信息填充到所述创建的条目中;(d)判断所述写请求要写的数据页所属类型并作标记,将所述写请求克隆后,同时分发到成员盘和日志盘;(e)写请求到达成员盘时,根据所述写请求要写的数据页所属类型动态调节访问的代价,接着判断地址映射表中所述写请求对应的数据页的Old_PPN是否为空,如果为空则将Old_PPN的值设置为所述写请求对应的数据页的物理页号,所述地址映射表用于记录数据页的逻辑页号LPN、物理页号PPN以及该数据页对应的无效数据页的物理页号Old_PPN;(f)读请求到达成员盘时,根据所述读请求要读的数据页所属类型动态调节访问的代价。需要说明的是,条带(strip)是把连续的数据分割成相同大小的数据块,把每段数据分别写入到阵列中的不同磁盘上的方法。简单的说,条带是一种将多个磁盘驱动器合并为一个卷的方法。一个条带上的数据块在不同磁盘(成员盘)的逻辑地址相同。本专利技术通过修改地址映射表,通过Old_PPN记录“无效”的数据块,去除预读操作,从而保证了真实负载的访问特性。可选地,所述在空闲时间、所述日志盘失效、所述日志盘的剩余空间低于第一阈值或有成员盘的剩余空间低于第二阈值时,指示所述固态盘阵列根据每个逻辑地址对应的N-1个成员盘上的数据更新每个逻辑地址对应的校验信息,包括:依次取出所述哈希表的节点,确定对应的条带,读出成员盘中对应条带上所有的数据块,计算出对应的校验块并在成员盘对应条带写入所述校验块,删除该条带上被更新过的数据块在哈希表中的对应条目,重复计算校验块以及删除哈希表中对应的条目直到哈希表为空。可选地,当有成员盘失效时,通过所述哈希表指示的日志盘中的数据恢复失效成员盘中最后一次写入的数据,以及通过未失效成员盘中的数据和对应逻辑地址的校验信息恢复失效成员盘中相应逻辑地址上的数据,包括:如果失效数据块在哈希表中有对应的条目,则直接从日志盘中读取对应的数据块作为恢复数据;如果失效数据块在哈希表中没有对应的条目,则使用未失效成员盘中对应逻辑地址的数据块和校验块的旧数据进行异或确定恢复数据,当未失效成员盘中对应逻辑地址的数据块或校验块被更新过的,通过地址映射表中Old_PPN域所指的位置读取对应的旧数据。可选地,处理写请求时,通过成员盘的异地更新策略和日志盘的日志技术延迟了校验块的更新,减少了为计算校验块所需的预读操作,保证了访问负载的原始特性。第二方面,本专利技术实施例提供了一种基于固态盘阵列的数据处理系统,包括:固态盘阵列、日志盘、请求处理模块、数据记录模块、校验同步模块以及数据恢复模块;所述固态盘阵列包括N个成员盘,所述N个成员盘中任意两个成员盘的逻辑地址范围相同,所述N个成员盘采用异地更新策略写入数据,所述异地更新策略为前后两次写入的相同逻辑地址数据的物理地址不同,N为正整数;所述请求处理模块,用于接收写请求,指示所述固态盘阵列和日志盘写入所述写请求对应的数据;数据记录模块,本文档来自技高网...
一种基于固态盘阵列的数据处理方法及系统

【技术保护点】
一种基于固态盘阵列的数据处理方法,其特征在于,包括:接收写请求,指示固态盘阵列和日志盘写入所述写请求对应的数据;所述固态盘阵列包括N个成员盘,所述N个成员盘中任意两个成员盘的逻辑地址范围相同,所述N个成员盘采用异地更新策略写入数据,所述异地更新策略为前后两次写入的相同逻辑地址的数据的物理地址不同,N为正整数;通过哈希表指示所述日志盘中对应的每个成员盘中最后一次写入的数据;在空闲时间、所述日志盘失效、所述日志盘的剩余空间低于第一阈值或有成员盘的剩余空间低于第二阈值时,指示所述固态盘阵列根据每个逻辑地址对应的N‑1个成员盘上的数据更新每个逻辑地址对应的校验信息,并将每个逻辑地址对应的校验信息写入对应逻辑地址的成员盘中;当有成员盘失效时,通过所述哈希表指示的日志盘中的数据恢复失效成员盘中最后一次写入的数据,以及通过未失效成员盘中的数据和对应逻辑地址的校验信息恢复失效成员盘中相应逻辑地址上的数据。

【技术特征摘要】
1.一种基于固态盘阵列的数据处理方法,其特征在于,包括:接收写请求,指示固态盘阵列和日志盘写入所述写请求对应的数据;所述固态盘阵列包括N个成员盘,所述N个成员盘中任意两个成员盘的逻辑地址范围相同,所述N个成员盘采用异地更新策略写入数据,所述异地更新策略为前后两次写入的相同逻辑地址的数据的物理地址不同,N为正整数;通过哈希表指示所述日志盘中对应的每个成员盘中最后一次写入的数据;在空闲时间、所述日志盘失效、所述日志盘的剩余空间低于第一阈值或有成员盘的剩余空间低于第二阈值时,指示所述固态盘阵列根据每个逻辑地址对应的N-1个成员盘上的数据更新每个逻辑地址对应的校验信息,并将每个逻辑地址对应的校验信息写入对应逻辑地址的成员盘中;当有成员盘失效时,通过所述哈希表指示的日志盘中的数据恢复失效成员盘中最后一次写入的数据,以及通过未失效成员盘中的数据和对应逻辑地址的校验信息恢复失效成员盘中相应逻辑地址上的数据。2.根据权利要求1所述的数据处理方法,其特征在于,还包括:接收读请求,在成员盘对应的数据页读取数据;根据所述成员盘中包括的数据页的读写请求信息,确定所述数据页为只读页、只写页或交叉页中的一种;当接收写请求时,若所述写请求访问的数据页为只写页,则使用低代价处理所述写请求;若所述写请求访问的数据页为交叉页,则使用中等代价处理所述写请求;当接收读请求时,若所述读请求访问的数据页为只读页,则确定对所述数据页的前一次读请求是否为低代价,当不是低代价的读时,在系统空闲且所述读请求处理之前在所述数据页插入一个高代价的写请求。3.根据权利要求2所述的数据处理方法,其特征在于,接收写请求,指示固态盘阵列和日志盘写入所述写请求对应的数据,包括:(a)将用户请求按照条带进行分解后,挂载到对应的条带上;用LBA表示成员盘中的逻辑地址,Log_LBA表示日志盘中的逻辑地址;所述条带的编号对应LBA;(b)对有请求的条带进行处理,如果是读请求,则执行步骤(f),否则执行步骤(c);(c)查找哈希表中是否有对应的条目,所述条目包括LBA和Log_LBA信息,若哈希表中有对应的条目,则更改Log_LBA,若哈希表中没有对应的条目,则创建一个条目,将对应的LBA和Log_LBA信息填充到所述创建的条目中;(d)判断所述写请求要写的数据页所属类型并作标记,将所述写请求克隆后,同时分发到成员盘和日志盘;(e)写请求到达成员盘时,根据所述写请求要写的数据页所属类型动态调节访问的代价,接着判断地址映射表中所述写请求对应的数据页的Old_PPN是否为空,如果为空则将Old_PPN的值设置为所述写请求对应的数据页的物理页号,所述地址映射表用于记录数据页的逻辑页号LPN、物理页号PPN以及该数据页对应的无效数据页的物理页号Old_PPN;(f)读请求到达成员盘时,根据所述读请求要读的数据页所属类型动态调节访问的代价。4.根据权利要求3所述的数据处理方法,其特征在于,所述在空闲时间、所述日志盘失效、所述日志盘的剩余空间低于第一阈值或有成员盘的剩余空间低于第二阈值时,指示所述固态盘阵列根据每个逻辑地址对应的N-1个成员盘上的数据更新每个逻辑地址对应的校验信息,包括:依次取出所述哈希表的节点,确定对应的条带,读出成员盘中对应条带上所有的数据块,计算出对应的校验块并在成员盘对应条带写入所述校验块,删除该条带上被更新过的数据块在哈希表中的对应条目,重复计算校验块以及删除哈希表中对应的条目直到哈希表为空。5.根据权利要求1至4任一项所述的数据处理方法,其特征在于,当有成员盘失效时,通过所述哈希表指示的日志盘中的数据恢复失效成员盘中最后一次写入的数据,以及通过未失效成员盘中的数据和对应逻辑地址的校验信息恢复失效成员盘中相应逻辑地址上的数据,包括:如果...

【专利技术属性】
技术研发人员:冯丹梅林军陈俭喜曾令仿刘景宁张晓祎
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1