一种虚拟SSD与SSD异构镜像的磁盘阵列缓存方法技术

技术编号:9809687 阅读:289 留言:0更新日期:2014-03-24 21:19
本发明专利技术公开了一种虚拟SSD与SSD异构镜像的磁盘阵列缓存方法,包括:将磁盘进行逻辑分区为两个部分。其中上半部分组成RAID0或RAID5结构作为虚拟SSD。用于备份真实SSD中脏数据。虚拟SSD采用日志写的方式。并设置有ram写缓存。下半部分根据用户需要组装成不同RAID结构,用作数据阵列,以存放冷数据。建立数据盘和真实SSD缓存之间地址映射哈希查找表。设置计时器,用于定期地将虚拟SSD的ram写缓存中缓存的数据写入到虚拟SSD中。接收来自上层文件系统的请求。对于读请求,当读请求不在真实SSD中命中时,从数据阵列中读取数据即可。本发明专利技术提出了一种兼顾性能,可靠性和成本开销的方案。

【技术实现步骤摘要】
一种虚拟SSD与SSD异构镜像的磁盘阵列缓存方法
本专利技术属于数据存储
,更具体地,涉及一种虚拟SSD与SSD异构镜像的磁盘阵列缓存方法。
技术介绍
固态硬盘采用闪存作为存储介质,因此相对于传统磁盘,没有了磁头寻道的机械过程,其读写性能大大优于磁盘,尤其是随机的读写性能。将SSD引入存储系统中,从而大大提高了整个系统的性能。目前来看,SSD的容量也比一般磁盘要小许多,难以满足现在大量数据的应用情景。业界目前使用SSD主要作为分级存储介质,SSD缓存,相比传统的内存缓存,SSD可以提供更大的缓存空间,把经常访问的热数据存储在SSD中,把访问较少的冷数据存储在磁盘设备上。对于目前海量数据的存储需求,由于其中有大量的是冷数据,都将其存储在后端的磁盘设备上,通常采用磁盘阵列的形式组织起来。但是,单独SSD做缓存依然存在以下缺陷:首先,价格昂贵,而且随着容量的增大价格更加昂贵;其次,SSD的擦写次数有限,写入数据之前会完成擦除工作,相比普通磁盘,SSD的使用寿命更短,从而也造成了使用SSD系统的可靠性的问题。对于SSD作缓存可靠性的保证,可以采用写穿的方式实现,从而确保了 SSD在数据磁盘中有数据备份。但是,采用写穿方式,写请求则会响应变慢,减小了 SSD缓存高速的优势。另一种普遍的方式是采用另一 SSD和原缓存SSD组成类似RAIDl结构的双镜像方式,以保证可靠性,但这会导致整个系统成本大大增加。还有一种普遍的方式是简单采用普通磁盘做SSD的镜像,以保证可靠性,然而,由于一般磁盘相比较SSD性能不好,此时,当写命中发生时,数据同时写入SSD和镜像磁盘,显然镜像磁盘会成为性能瓶颈,大大减小了 SSD缓存高速的优势。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种虚拟SSD与SSD异构镜像的磁盘阵列缓存方法和系统,其目的在于,针对单独SSD做缓存的可靠性问题,双SSD镜像带来的成本开销问题,以及磁盘做SSD镜像带来的性能问题,提出了一种兼顾性能,可靠性和成本开销的方案。为实现上述目的,按照本专利技术的一个方面,提供了一种虚拟SSD与SSD异构镜像的磁盘阵列缓存方法,包括以下步骤:(I)将磁盘进行逻辑分区为两个部分,其中上半部分组成RAIDO或RAID5结构作为虚拟SSD,用于备份真实SSD中脏数据,虚拟SSD采用日志写的方式,并设置有ram写缓存,下半部分根据用户需要组装成不同RAID结构,用作数据阵列,以存放冷数据;(2)建立数据盘和真实SSD缓存之间地址映射哈希查找表,设置计时器,用于定期地将虚拟SSD的ram写缓存中缓存的数据写入到虚拟SSD中;(3)接收来自上层文件系统的请求,对于读请求,当读请求不在真实SSD中命中时,从数据阵列中读取数据即可,当读请求在真实SSD中命中时,直接从真实SSD中读出该读请求对应的数据即可,对于写请求,当写请求不在真实SSD中命中时,直接将其写入数据盘中即可,当在真实SSD中命中时,把写请求对应的数据写入到真实SSD,并以日志写方式写入。优选地,步骤(3)包括以下子步骤:(3-1)接收来自上层文件系统的请求,并判断该请求是读请求还是写请求,如果是读请求则转入步骤(3-2 ),如果是写请求则转入步骤(3-7 );(3-2)根据该读请求的逻辑地址(Logical Block Address,简称LBA)对应的数据块块号在(2)中地址映射哈希查找表中进行查找,判断该表中是否存储有该请求块号对应在真是SSD中块地址,如果存在,则表示该读请求对应的数据块存储在真实SSD中,并进入步骤(3-3),否则表示该读请求对应的数据块没有在真实SSD中缓存,然后转入步骤(3-4);(3-3)从真实SSD中读取该读请求对应的数据块,并将该数据块返回给上层文件系统,过程结束;(3-4)从数据阵列中读取该读请求对应的数据块,并判断计时器是否达到规定的计时周期,若到达计时周期,表示需要进行数据阵列中热数据选取和真实SSD中冷数据淘汰,则进入步骤(3-5),否则进入步骤(3-6);(3-5)根据数据淘汰算法选取真实SSD中变冷的数据淘汰到数据阵列中,同时作废虚拟SSD中的对应副本,并将数据阵列中变热的数据写入真实SSD中,然后进入步骤(3-6);(3-6)将该读请求对应的数据块返回给上层文件系统,过程结束;(3-7)根据该写请求的逻辑地址获得请求块号,根据请求的数据块块号在(2)中地址映射哈希查找表中进行查找,判断该表中是否存储有该请求块号对应在真是SSD中块地址,如果存在,进入步骤(3-11),否则转入步骤(3-8);(3-8)将该写请求对应的数据块写入数据阵列中,并判断计时器是否达到规定的计时周期,若到达计时周期,则进入步骤(3-9),否则进入步骤(3-10);(3-9)根据数据淘汰算法选取真实SSD中变冷的数据淘汰到数据阵列中,并将数据阵列中变热的数据写入真实SSD中,然后进入步骤(3-10);(3-10)将该写请求对应的数据块返回给上层文件系统,过程结束;(3-11)将该写请求对应的数据写入其在真实SSD中的对应位置;(3-12)把该写请求对应的数据以日志写方式写入虚拟SSD中,过程结束。优选地,步骤(3-12)包括以下子步骤:(3-12-1)判断虚拟SSD的ram写缓存中数据是否已满,并根据计时器判断时间是否达到写入周期的结束,如果数据未满且时间没有到达写入周期的结束,则进入步骤(3-12-5),如果数据已满或者时间达到写入周期的结束,则进入步骤(3-12-2);(3-12-2)判断虚拟SSD空间是否已满,如果已满,则对虚拟SSD空间进行整理,然后进入步骤(3-12-3 ),否则,直接进入步骤(3-12-3);(3-12-3)把虚拟SSD的ram写缓存中缓存的数据整体写入虚拟SSD的当前条带指针cur所指向的条带,清空虚拟SSD的ram写缓存,同时,将虚拟SSD中受影响而变旧的副本数据作废;(3-12-4)虚拟SSD的当前条带指针cur向下移动若干条带的距离,移动的距离是由ram缓存了的数据条带数而定;(3-12-5)把数据写入虚拟SSD的ram写缓存,过程结束。优选地,步骤(3-12-4)中,若当前条带指针cur超过虚拟SSD的最大条带号,则对该cur指针取模,并使其循环指向第一条带,即cur以循环数组指针的方式存在。优选地,步骤(3-12-2)包括以下子步骤:(3-12-2-1)根据虚拟SSD碎片整理条带指针reorg和当前条带指针cur,判断虚拟SSD中是否有空闲条带,若没有则进入步骤(3-12-2-2),否则,过程结束;(3-12-2-2)遍历虚拟SSD的reorg指针所指向的条带中的每个数据块,对于包含有效数据的数据块,查找其作为真实SSD数据备份在真实SSD中的源的位置,将其在真实SSD中的源的数据读取出来,以日志写的方式将读取得到的数据写入虚拟SSD中,同时作废虚拟SSD中所有同源的备份数据;(3-12-2-3)虚拟SSD的碎片整理条带指针reorg向下移动一个条带的距离,过程结束。优选地,在步骤(3-12-2-3)中,若reorg指针超过虚拟SSD的最大条带号,则对reorg指针取模,并使其循环指向第一条带,即reorg以循环数组指针的方本文档来自技高网
...

【技术保护点】
一种虚拟SSD与SSD异构镜像的磁盘阵列缓存方法,其特征在于,包括以下步骤:(1)将磁盘进行逻辑分区为两个部分,其中上半部分组成RAID0或RAID5结构作为虚拟SSD,用于备份真实SSD中脏数据,虚拟SSD采用日志写的方式,并设置有ram写缓存,也可以用独立的磁盘来做虚拟SSD。下半部分根据用户需要组装成不同RAID结构,用作数据阵列,以存放冷数据;(2)建立数据盘和真实SSD缓存之间地址映射哈希查找表,设置计时器,用于定期地将虚拟SSD的ram写缓存中缓存的数据写入到虚拟SSD中;(3)接收来自上层文件系统的请求,对于读请求,当读请求不在真实SSD中命中时,从数据阵列中读取数据即可,当读请求在真实SSD中命中时,直接从真实SSD中读出该读请求对应的数据即可,对于写请求,当写请求不在真实SSD中命中时,直接将其写入数据盘中即可,当在真实SSD中命中时,把写请求对应的数据写入到真实SSD,并以日志写方式写入虚拟SSD中。

【技术特征摘要】
1.一种虚拟SSD与SSD异构镜像的磁盘阵列缓存方法,其特征在于,包括以下步骤: (1)将磁盘进行逻辑分区为两个部分,其中上半部分组成RAIDO或RAID5结构作为虚拟SSD,用于备份真实SSD中脏数据,虚拟SSD采用日志写的方式,并设置有ram写缓存,也可以用独立的磁盘来做虚拟SSD。下半部分根据用户需要组装成不同RAID结构,用作数据阵列,以存放冷数据; (2)建立数据盘和真实SSD缓存之间地址映射哈希查找表,设置计时器,用于定期地将虚拟SSD的ram写缓存中缓存的数据写入到虚拟SSD中; (3)接收来自上层文件系统的请求,对于读请求,当读请求不在真实SSD中命中时,从数据阵列中读取数据即可,当读请求在真实SSD中命中时,直接从真实SSD中读出该读请求对应的数据即可,对于写请求,当写请求不在真实SSD中命中时,直接将其写入数据盘中即可,当在真实SSD中命中时,把写请求对应的数据写入到真实SSD,并以日志写方式写入虚拟SSD中。2.根据权利要求1所述的磁盘阵列缓存方法,其特征在于,步骤(3)包括以下子步骤: (3-1)接收来自上层文件系统的请求,并判断该请求是读请求还是写请求,如果是读请求则转入步骤(3-2 ),如果是写请求则转入步骤(3-7 ); (3-2)根据该读请求的逻辑地址(Logical Block Address,简称LBA)对应的数据块块号在(2)中地址映射哈希查找表中进行查找,判断该表中是否存储有该请求块号对应在真是SSD中块地址,如果存在,则表示该读请求对应的数据块存储在真实SSD中,并进入步骤(3-3),否则表示该读请求对应的数据块没有在真实SSD中缓存,然后转入步骤(3-4);(3-3)从真实SSD中读取该读请求对应的数据块,并将该数据块返回给上层文件系统,过程结束; (3-4)从数据阵列中读取该读请求对应的数据块,并判断计时器是否达到规定的计时周期,若到达计时周期,表示需要进行数据阵列中热数据选取和真实SSD中冷数据淘汰,则进入步骤(3-5),否则进入步骤(3-6); (3-5)根据数据淘汰算法选取真实SSD中变冷的数据淘汰到数据阵列中,同时作废虚拟SSD中的对应副本,并将数据阵列中变热的数据写入真实SSD中,然后进入步骤(3-6);(3-6)将该读请求对应的数据块返回给上层文件系统,过程结束; (3-7)根据该写请求的逻辑地址获得请求块号,根据请求的数据块块号在(2)中地址映射哈希查找表中进行查找,判断该表中是否存储有该请求块号对应在真是SSD中块地址,如果存在,进入步骤(3-11 ),否则转入步骤(3-8 ); (3-8)将该写请求对应的数据块写入数据阵列中,并判断计时器是否达到规定的计时周期,若到达计时周期,则进入步骤(3-9),否则进入步骤(3-10); (3-9)根据数据淘汰算法选取真实SSD中变冷的数据淘汰到数据阵列中,并将数据阵列中变热的数据写入真实SSD中,然后进入步骤(3-10); (3-10)将该写请求对应的数据块返回给上层文件系统,过程结束; (3-11)将该写请求对应的数据写入其在真实SSD中的对应位置; (3-12)把该写请求对应的数据以日志写方式写入虚拟SSD中,过程结束。3.根据权利要求2所述的磁...

【专利技术属性】
技术研发人员:万继光刘庆宾谢长生吴畏
申请(专利权)人:华中科技大学
类型:发明
国别省市:

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

1