发明名称 |
一种利用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号 |