发明名称 一种利用SSD的无效数据优化RAID5/6写性能的方法
摘要 发明公开了一种利用SSD中无效数据优化RAID5/6写性能的方法,是应用在一种包括1个或多个SSD和多个磁盘组成的RAID5/6系统中,其中SSD作为RAID5/6的读写缓存,所述方法包括:在SSD中建立空闲池、数据池、保留池和回收池,其中保留池用于暂时存储SSD中无效的旧数据并在SSD的内存中构造映射表,用于存储SSD中数据和对应的无效旧数据的信息及其与RAID磁盘中数据的对应关系,当SSD中数据要写回到RAID5/6中时,读取SSD中无效的旧数据,以避免读RAID5/6磁盘中的旧数据,用来计算RAID5/6的校验值,从而减少磁盘的访问次数,优化RAID5/6的写性能。本发明能够解决传统RAID5/6系统在小写过程中性能不佳的问题。
申请公布号 CN103631536A 申请公布日期 2014.03.12
申请号 CN201310612211.6 申请日期 2013.11.26
申请人 华中科技大学 发明人 谢长生;万继光
分类号 G06F3/06(2006.01)I;G06F12/08(2006.01)I 主分类号 G06F3/06(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 朱仁玲
主权项 一种利用SSD中无效数据优化RAID5/6写性能的方法,是应用在一种包括1个或多个SSD和多个磁盘组成的RAID5/6系统中,其中SSD作为RAID5/6的读写缓存,其特征在于,所述方法包括以下步骤:(1)在SSD中建立空闲池、数据池、保留池和回收池,将SSD中所有数据块放入数据池中,建立一个计数表,用来统计所有数据块的访问次数,并在SSD的内存中构造映射表,用于存储SSD中数据和对应无效数据的状态及其与RAID5/6磁盘中数据的对应关系,其中空闲池由SSD中的空闲块组成,数据池用于存储SSD缓存的最新数据,保留池用于存储SSD中能够用于优化RAID写性能的无效数据,回收池由SSD中待擦除的无效数据块组成;(2)接收来自上层文件系统的请求,在计数表中更新该请求对应的数据块的访问计数,并判断请求是读请求还是写请求,如果是读请求,则转入步骤(3),如果是写请求,则转入步骤(4);(3)判断该读请求是否命中SSD,当读请求命中SSD时,可以直接从SSD中读取数据,当读请求未命中SSD时,则从RAID5/6磁盘中读取数据,同时判断该读请求对应的数据块是否为热点数据,如果是热点数据,则还需要将该数据块缓存到SSD中,并从SSD中选取数据块进行替换,如果被选取的数据块是脏数据,则转入步骤(5),否则返回步骤(2);(4)判断该写请求是否命中SSD,如果未命中SSD,则将该请求对应的数据写到RAID5/6中,如果命中SSD,则根据对应数据块在SSD中的原数据块的状态来执行不同的处理,如果是脏数据,则将原数据块作废,移动到SSD的回收池中,否则将其保留,移动到SSD的保留池中。然后将写请求所对应的新数据写入SSD,并判断保留池中是否还有足够的空间,如果保留池已满,则从保留池中选取保留块进行淘汰,转入步骤(5),否则返回 步骤(2);(5)对于被选取的数据块及对应保留块,从保留池和数据池中分别读出与其对应的旧数据与脏数据,并从RAID5/6中读出校验数据,对三者进行异或运算,以得到新的校验数据,将新数据和新的校验值写回到RAID5/6中,并将保留池中的旧数据改为无效状态,移动到回收池中,如果SSD中数据池满,则将数据池中的脏数据块修改为无效状态,移动到回收池中,否则将其修改为干净状态,然后返回步骤(2)。
地址 430074 湖北省武汉市洪山区珞喻路1037号