发明名称 一种提高固态盘有效容量和寿命的方法和系统
摘要 本发明公开了一种提高固态盘有效容量和寿命的方法,包括:在SSD中划分出一部分空间作为SSD的阴影区域,在该阴影区域中初始化副本哈希表和第二哈希表;在内存中划分出多个桶,桶与块组是一一对应的,且桶的数量和块组的数量一致,将阴影区域中除了副本哈希表和第二哈希表所占的空间以外的其他空间划分成多不同的小区域,这些小区域也与块组一一对应,解析SSD上文件系统的布局,并根据解析结果生成用于记录元数据块和数据块的地址的查询树,接收来自用户的请求,根据查询树判断该请求是元数据块请求还是数据块请求。本发明能够通过分别对数据块运用重删技术、对元数据块运用Delta编码技术减少SSD所最终经历的写的次数,最终提高SSD有效容量和寿命。
申请公布号 CN103309815A 申请公布日期 2013.09.18
申请号 CN201310195850.7 申请日期 2013.05.23
申请人 华中科技大学 发明人 周可;李春花;万广平;黄平;王桦
分类号 G06F12/02(2006.01)I 主分类号 G06F12/02(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 朱仁玲
主权项 一种提高固态盘有效容量和寿命的方法,其特征在于,包括以下步骤:(1)在SSD中划分出一部分空间作为SSD的阴影区域,在该阴影区域中初始化副本哈希表和第二哈希表,其中副本哈希表用于把SSD中数据块的MD5值映射为该数据块的信息,包括数据块的编号、以及数据块的索引计数器,第二哈希表用于将数据块的编号映射为副本哈希表的MD5值;(2)在内存中划分出多个桶,桶与块组是一一对应的,且桶的数量和块组的数量一致,将阴影区域中除了副本哈希表和第二哈希表所占的空间以外的其他空间划分成多不同的小区域,这些小区域也与块组一一对应;(3)解析SSD上文件系统的布局,并根据解析结果生成用于记录元数据块和数据块的地址的查询树;(4)接收来自用户的请求,根据查询树判断该请求是元数据块请求还是数据块请求,若是数据块请求,则转步骤(5),若是元数据块请求,则转步骤(8);(5)判断该数据块请求是数据块读请求还是数据块写请求,如果是数据块读请求,则转步骤(6),若是数据块写请求,则转步骤(7);(6)根据SSD中数据块的正常读请求路径完成该数据块读请求对应的数据块的读操作,然后返回步骤(4);(7)判断该数据块写请求对应的数据块是否存在,如果存在则对该数据块在副本哈希表中的索引计数器执行加1操作,如果不存在则根据SSD中数据块的正常写请求路径完成该数据块的写操作,并在写操作完成后在副本哈希表中创建该数据块对应的表项并设置表项中的索引计数器为1,同时在第二哈希表中创建该数据块对应的键值对,然后返回步骤(4);(8)判断该元数据块请求是元数据块写请求还是元数据块读请求,若是元数据块写请求,则转步骤(9),若是元数据块读请求,则转步骤(11);(9)将元数据块写请求中包含的该元数据块的内容与SSD中该元数据块的内容进行Delta编码,以获得二者的内容增量Delta,将获得的内容增量Delta缓存放于内存中该元数据块所在块组对应的桶中,周期性地转存内存桶中的Delta到SSD阴影区中对应的小区域中,并判断SSD阴影区中存储Delta桶的剩余空间是否低于预先设定的门限值,如果低于则转步骤(10),否则转入步骤(11);(10)把内存中所有桶中的Delta转存到对应的SSD阴影区域中的桶中,然后返回步骤(4);(11)把该阴影区中对应存储Delta的桶与对应的元数据块结合产生最新的元数据并更新SSD中的元数据;(12)把内存中所有桶中的Delta转存到对应的SSD阴影区域中的桶中;(13)判断该元数据块读请求中的元数据块所在的块组对应的阴影区域的桶中是否有内容增量Delta,如果有则转入步骤(14),否则转入步骤(15);(14)把SSD阴影区中的内容增量Delta和相应的元数据块结合起来生成最新的元数据块并返回给用户,然后返回步骤(4);(15)向用户返回该元数据块读请求对应的元数据块,然后返回步骤(4)。
地址 430074 湖北省武汉市洪山区珞喻路1037号