论文部分内容阅读
相对于传统磁盘,基于闪存的固态盘具有良好的性能优势和发展潜力,在消费市场有将传统磁盘取而代之的趋势。然而,由于闪存的固有特性,固态盘的可用性面临以下挑战:闪存介质不稳定,存储可靠性面临严重威胁;长时间工作后,存储性能不稳定;无法彻底删除文件,用户面临“删而不除”的问题。针对这些问题,本文从三个方面进行了探索和研究。 随着闪存芯片制造工艺的线宽越来越小和闪存单元储存位数的增加,闪存的错误率、误码率和擦除寿命在不断劣化,当前闪存中普遍应用的错误纠正码(ECC)校验功能已不能很好地满足固态盘的可靠性需要。为了防止ECC校验功能无法纠正的闪存误码及闪存失效引起数据丢失,本文提出了一种基于物理页校验的可靠性增强算法,采用类似RAID4校验的方式,对固态盘中所有包含数据的闪存物理页划分条带,并使用SLC闪存保存相应的校验数据,避免性能瓶颈。该算法还采用校验缓存、后台校验等方法降低数据校验操作对固态盘性能的影响。结合ECC校验功能,该算法可以纠正位翻转、物理页错误、物理块损坏、闪存芯片失效等多个层次的闪存错误带来的数据丢失问题,确保数据存储的可靠性。相比传统的类似RAID5的校验算法,该算法中组成条带的是不同数据通道的物理页,而非逻辑页,从而明显降低了数据写更新的性能开销,还显著提升了校验缓存的命中率。实验表明,相比普通RAID5校验算法,该算法在基本保障读性能的情况下,具有明显的写性能优势。 固态盘在长期使用后存在性能越用越差的问题,一个主要原因是有效页较多,而无效页零散分布,垃圾回收效率急剧下降,性能开销太大,影响正常读写操作的性能。为了削弱这种影响,现有的垃圾回收算法设置两个固定的阈值,分别用于在空间足够时提前触发后台回收操作,以及在空间严重不足时触发不可中断的前台回收操作。但是测试分析表明,采用不同阈值的垃圾回收算法,都会在特定负载中出现性能瓶颈,垃圾回收算法不存在固定的“最佳阈值”。为尽量保证固态盘性能的稳定性,本文提出了一种采用动态自适应阈值的垃圾回收算法。其阈值随固态盘运行状态(有效页比例、无效页比例、空闲页比例等)动态变化,可以自动适应不同类型的应用负载,在较优的时机触发垃圾回收操作。通过与固定阈值的垃圾回收算法进行实验对比,该算法在不同负载中都表现稳定,并达到或接近最优性能。 闪存的异地更新方式,使固态盘的数据无法被物理覆盖,数据更新操作总是在闪存中产生无法从文件系统访问的数据页副本,导致现有的安全擦除软件无法真正在闪存介质中删除敏感文件的数据。针对此安全隐患,本文提出了一种智能安全删除方法,使基于 SLC闪存的固态盘可以支持文件级的安全删除。该算法在普通固态盘的异地更新操作中,增加物理页复写操作,将无效物理页清零,避免在闪存中残留数据副本,同时使安全擦除软件可以真正发挥作用。该算法通过所提出的智能分区识别技术,使固态盘只对用户指定的分区采用物理页复写操作,同时结合物理页后台复写的方式,减少对固态盘性能的影响。另外,该算法还结合基于逻辑页的数据冗余校验算法,使固态盘的数据完整性不受闪存失效或误码的影响。实验表明,在启用了智能安全删除和数据校验算法后,固态盘的性能与单独部署数据冗余校验算法的固态盘相当。该算法在不改变现有盘接口的前提下,配合通用的安全擦除软件,即可实现文件级的安全删除。 上述三个方面的研究工作,针对错误率高、先擦后写等闪存独有特性导致的固态盘可用性问题,在闪存转换层提出了有效的解决方案,从而显著提升了固态盘的可用性。