多租户固态盘中实现RAID的方法、控制器及多租户固态盘技术

技术编号:22329986 阅读:32 留言:0更新日期:2019-10-19 12:15
本发明专利技术公开了一种多租户固态盘中实现RAID的方法、控制器及多租户固态盘,属于存储技术领域,包括:各闪存晶圆中偏移相同的闪存页组成一个RAID条带,各条带的校验信息存储于NVM晶圆中;若租户请求写入新数据页,则将其写入空闲闪存页;若租户请求更新部分数据页,则读取旧数据页以合并得到新数据页,同时将该旧数据页标记为无效,并更新对应的校验页,以将其移出保护;若租户请求更新完整数据页,则将其写入空闲闪存页,并将旧数据页标记为无效;每次向空闲闪存页写入数据时,更新对应的校验页,以将其加入保护;每当I/O空闲时,读取受保护的无效数据页并更新对应的校验页,以将其移出保护。本发明专利技术能够保证多租户固态盘存储可靠性并提升租户服务质量。

【技术实现步骤摘要】
多租户固态盘中实现RAID的方法、控制器及多租户固态盘
本专利技术属于存储
,更具体地,涉及一种多租户固态盘中实现RAID的方法、控制器及多租户固态盘。
技术介绍
基于NAND型闪存的固态盘(SolidStateDisk,SSD)具有高性能、低功耗和尺寸小等优点,而且其存储容量不断提高,成本也不断下降,因此在数据中心得到了广泛应用。为提供大容量和高吞吐量,固态盘采用高度并行的存储结构,即包含多个闪存晶圆(晶圆是独立执行闪存操作命令的最小存储单元),比如128个64GB的晶圆组成一个8TB固态盘。一方面,为提高存储空间利用率和成本效益,大容量固态盘被多租户共享使用的场景不断增多。租户的范围包括应用、容器、虚拟机和数据库实例等。因此,实现租户之间的性能隔离和保证它们的服务质量成为固态盘系统设计的关键要求。现有方法通常根据各租户的存储容量需求和带宽需求,为它们分配独立的闪存晶圆,因此,各租户之间的I/O干扰被消除,称之为硬件隔离,如附图1所示。另一方面,固态盘通常在闪存晶圆之间构建RAID(RedundantArrayofIndependentDisks)条带,为数据添加校验信息,以提高存储可靠性。目前,在固态盘中实现RAID的方法一般分为两类:一类是将多个连续的逻辑数据页和它们的校验页组成RAID-5条带,分散存储在多个闪存晶圆中;另一类是将多个晶圆内同一偏移位置的闪存页组成RAID-4条带,其中每个条带的校验页集中存储在一个闪存晶圆中。当向闪存写入数据页或者擦除某个闪存块上的数据时,对应的校验页需要更新。对于RAID-5方法,当一个租户的闪存晶圆中发生数据写入或者擦除时,其它租户的闪存晶圆上会产生校验信息的更新,因此租户之间存在I/O干扰;对于RAID-4方法,各租户在自己的闪存晶圆中独立地写入或擦除数据,会在校验信息所在的晶圆上产生频繁的校验更新操作,使其成为性能瓶颈。因此,现有的RAID方法不适用于基于硬件隔离的多租户固态盘。
技术实现思路
针对现有技术的缺陷和改进需求,本专利技术提供了一种多租户固态盘中实现RAID的方法、控制器及多租户固态盘,其目的在于,在保证多租户固态盘存储可靠性的同时,提升对租户的服务质量。为实现上述目的,按照本专利技术的第一方面,提供了一种多租户固态盘中实现RAID的方法,该多租户固态盘包括多个闪存晶圆和多个NVM晶圆,各闪存晶圆被独立地分配给租户,本专利技术第一方面所提供的多租户固态盘中实现RAID的方法包括:条带构建步骤和写请求处理步骤;条带构建步骤包括:利用各闪存晶圆中同一偏移位置的闪存页组成一个RAID条带,并将每一个条带的校验信息分别存储到NVM晶圆中的一个校验页中;写请求处理步骤包括:(S1)判断租户写请求的类型,若请求写入新的数据页,则转入步骤(S2);若请求更新部分数据页,则转入步骤(S3);若请求更新完整数据页,则转入步骤(S5);(S2)在该租户的闪存晶圆内分配空闲闪存页,写入数据页;与此同时,更新所分配的闪存页所属RAID条带的校验页,从而将新写入的数据页加入RAID校验保护;转入步骤(S6);(S3)从闪存晶圆中读取旧数据页,与待写入数据合并得到完整的数据页;与此同时,更新该旧数据页所属RAID条带的校验页,从而将该旧数据页移出RAID校验保护;(S4)在该租户的闪存晶圆内分配空闲闪存页,写入合并所得的数据页并将旧数据页标记为无效数据页;与此同时,更新所分配的闪存页所属RAID条带的校验页,从而将新写入的数据页加入RAID校验保护;转入步骤(S6);(S5)在该租户的闪存晶圆内分配空闲闪存页,写入数据页并将旧数据页标记为无效数据页;与此同时,更新所分配的闪存页所属RAID条带的校验页,从而将新写入的数据页加入RAID校验保护;转入步骤(S6);(S6)写请求处理结束。本专利技术在多租户固态盘中实现了RAID,保证了多租户固态盘的存储可靠性;本专利技术通过将各RAID条带的校验页存储在NVM晶圆中,可以利用NVM的访问特性避免校验更新成为性能瓶颈,从而提升对租户的服务质量;本专利技术在处理部分数据页更新请求的过程中,在读取旧数据页的同时,将其移出RAID保护,由此能够在不阻塞租户I/O请求处理的情况下,提前将无效数据页移出RAID保护,从而减小后续垃圾回收操作中的检验更新开销,提升对租户的服务质量。总的来说,本专利技术在保证多租户固态盘的存储可靠性的同时,提升了对租户的服务质量。进一步地,对于需要加入RAID校验保护或者需要移出RAID校验保护的数据页,更新该数据页所属RAID条带的校验页,包括:从NVM晶圆中读取该数据页所属RAID条带的校验页,利用该数据页与所读取的校验页计算新的校验信息并更新回NVM晶圆,从而完成对校验页的更新。进一步地,更新校验页时,仅更新NVM晶圆中对应的校验页中需要更新的部分。本专利技术利用NVM支持字节寻址的特性,更新校验页时,仅更新NVM晶圆中对应的校验页中需要更新的部分,而不是更新完整的校验页,由此能够减少校验更新过程中NVM晶圆的写入量,进一步提高RAID校验更新的效率。进一步地,本专利技术第一方面所提供的多租户固态盘中实现RAID的方法,还包括:维护一个状态表,并在状态表中为每一个RAID条带分别维护一个条目,用于实时记录各RAID条带中各闪存页是否受RAID校验保护。进一步地,本专利技术第一方面所提供的多租户固态盘中实现RAID的方法,还包括:空闲校验更新步骤;空闲校验更新步骤包括:持续监控各租户的I/O状态,任意一个租户的I/O空闲时间超过预设的空闲阈值,则判定该租户处于I/O空闲状态,并按照如下步骤对该租户的RAID校验信息进行更新:(T1)从该租户的闪存晶圆中获取一个受RAID校验保护的无效数据页,若获取成功,则转入步骤(T2);否则,转入步骤(T4);(T2)从闪存晶圆读取该无效数据页,并更新该无效数据页所属RAID条带的校验页,从而将该无效数据页移出RAID校验保护;(T3)若有新的I/O请求到来,则转入步骤(T4);否则,转入步骤(T1);(T4)结束当前I/O空闲周期的操作,转而处理该租户的I/O请求。本专利技术利用I/O负载中存在的空闲周期,在不阻塞租户I/O请求处理的情况下,提前将无效数据页移出RAID校验保护,能够进一步减小后续垃圾回收操作中的检验更新开销,提升对租户的服务质量。进一步地,本专利技术第一方面所提供的多租户固态盘中实现RAID的方法,还包括:垃圾回收步骤;垃圾回收步骤包括:(W1)租户触发垃圾回收操作时,在该租户的晶圆内选取一个或多个闪存块作为回收目标块;(W2)找到并读取回收目标块中所有的有效数据页和受RAID校验保护的无效数据页,并更新这些数据页所属RAID条带的校验页,从而将目标回收块中受RAID保护的所有数据页均移出RAID校验保护;(W3)在该租户的闪存晶圆中分配空闲的闪存页,并将所读取的有效数据页迁移至所分配的闪存页中;与此同时,更新所分配的闪存页所属RAID条带的校验页,从而将迁移后的有效数据页加入RAID校验保护;(W4)擦除回收目标块,擦除操作结束。本专利技术在执行垃圾回收操作时,会先读取所有受RAID校验保护的数据页(包括有效数据页和无效数据页),并通过校验更新将这些数据页均移出RAID校验保护,再本文档来自技高网
...

【技术保护点】
1.一种多租户固态盘中实现RAID的方法,所述多租户固态盘包括多个闪存晶圆和多个NVM晶圆,各闪存晶圆被独立地分配给租户,其特征在于,所述多租户固态盘中实现RAID的方法包括:条带构建步骤和写请求处理步骤;所述条带构建步骤包括:利用各闪存晶圆中同一偏移位置的闪存页组成一个RAID条带,并将每一个条带的校验信息分别存储到NVM晶圆中的一个校验页中;所述写请求处理步骤包括:(S1)判断租户写请求的类型,若请求写入新的数据页,则转入步骤(S2);若请求更新部分数据页,则转入步骤(S3);若请求更新完整数据页,则转入步骤(S5);(S2)在该租户的闪存晶圆内分配空闲闪存页,写入数据页;与此同时,更新所分配的闪存页所属RAID条带的校验页,从而将新写入的数据页加入RAID校验保护;转入步骤(S6);(S3)从闪存晶圆中读取旧数据页,与待写入数据合并得到完整的数据页;与此同时,更新该旧数据页所属RAID条带的校验页,从而将该旧数据页移出RAID校验保护;(S4)在该租户的闪存晶圆内分配空闲闪存页,写入合并所得的数据页并将旧数据页标记为无效数据页;与此同时,更新所分配的闪存页所属RAID条带的校验页,从而将新写入的数据页加入RAID校验保护;转入步骤(S6);(S5)在该租户的闪存晶圆内分配空闲闪存页,写入数据页并将旧数据页标记为无效数据页;与此同时,更新所分配的闪存页所属RAID条带的校验页,从而将新写入的数据页加入RAID校验保护;转入步骤(S6);(S6)写请求处理结束。...

【技术特征摘要】
1.一种多租户固态盘中实现RAID的方法,所述多租户固态盘包括多个闪存晶圆和多个NVM晶圆,各闪存晶圆被独立地分配给租户,其特征在于,所述多租户固态盘中实现RAID的方法包括:条带构建步骤和写请求处理步骤;所述条带构建步骤包括:利用各闪存晶圆中同一偏移位置的闪存页组成一个RAID条带,并将每一个条带的校验信息分别存储到NVM晶圆中的一个校验页中;所述写请求处理步骤包括:(S1)判断租户写请求的类型,若请求写入新的数据页,则转入步骤(S2);若请求更新部分数据页,则转入步骤(S3);若请求更新完整数据页,则转入步骤(S5);(S2)在该租户的闪存晶圆内分配空闲闪存页,写入数据页;与此同时,更新所分配的闪存页所属RAID条带的校验页,从而将新写入的数据页加入RAID校验保护;转入步骤(S6);(S3)从闪存晶圆中读取旧数据页,与待写入数据合并得到完整的数据页;与此同时,更新该旧数据页所属RAID条带的校验页,从而将该旧数据页移出RAID校验保护;(S4)在该租户的闪存晶圆内分配空闲闪存页,写入合并所得的数据页并将旧数据页标记为无效数据页;与此同时,更新所分配的闪存页所属RAID条带的校验页,从而将新写入的数据页加入RAID校验保护;转入步骤(S6);(S5)在该租户的闪存晶圆内分配空闲闪存页,写入数据页并将旧数据页标记为无效数据页;与此同时,更新所分配的闪存页所属RAID条带的校验页,从而将新写入的数据页加入RAID校验保护;转入步骤(S6);(S6)写请求处理结束。2.如权利要求1所述的多租户固态盘中实现RAID的方法,其特征在于,对于需要加入RAID校验保护或者需要移出RAID校验保护的数据页,更新更新该数据页所属RAID条带的校验页,包括:从NVM晶圆中读取该数据页所属RAID条带的校验页,利用该数据页与所读取的校验页计算新的校验信息并更新回NVM晶圆,从而完成对校验页的更新。3.如权利要求1所述的多租户固态盘中实现RAID的方法,其特征在于,更新校验页时,仅更新NVM晶圆中对应的校验页中需要更新的部分。4.如权利要求1所述的多租户固态盘中实现RAID的方法,其特征在于,还包括:维护一个状态表,并在所述状态表中为每一个RAID条带分别维护一个条目,用于实时记录各RAID条带中各闪存页是否受RAID校验保护。5.如权利要求1-4任一项所述的多租户固态盘中实现RAID的方法,其特征在于,还包括:空闲校验更新步骤;所述空闲校验更新步骤包括:持续监控各租户的I/O状态,任意一个租户的I/O空闲时间超过预设的空闲阈值,则判定该租户处于I/O空闲状态,并按照如下步骤对该租户的RAID校验信息进行更新:(T1)从该租户的闪存晶圆中获取一个受RAID校验保护的无效数据页,若获取成功,则转入步骤(T2);否则,转入步骤(T4);(T2)从闪存晶圆读取该无效数据页,并更新该无效数据页所属RAID条带的校验页,从而将该无效数据页移出RAID校验保护;(T3)若有新的I/O请求到来,则转入步骤(T4);否则,转入步骤(T1);(T4)结束当前I/O空闲周期的操作,转而处理该租户的I/O请求。6.如权利要求1-4任一项所述的多租户固态盘中实现RAID的方法,其特征在于,还包括:垃圾回收步骤;所述垃圾回收步骤包括:(W1)租户触发垃圾回收操作时,在该租户的晶圆内选取一个或多个闪存块作为回收目标块;(W2)找到并读取回收目标块中所有的有效数据页和受RAID校验保护的无效数据页,并更新这些数据页所属RAID条带的校验页,从而将目标回收块中受RAID保护的所有数据页均移出RAID校验保护;(W3)在该租户的闪存晶圆中分配空闲的闪存页,并将所读取的有效数据页迁移至所分配的闪存页中;与此同时,更新所分配的闪存页所属RAID条带的校验页,从而将迁移后的有效数据页加入RAID校验保护;(...

【专利技术属性】
技术研发人员:周游黄维周王顺卓吴非谢长生
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

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

1