存储 频道

性能可观 解析固态硬盘垃圾收集程序

  【IT168 技术】固态存储(SSS)终将替代机械硬盘驱动器(HDD)。闪存由于成本比DRAM低,已成为主要交付方式(SSS)。闪存系统供应商要克服两个导致性能无法预测和降低可靠性的闪存缺陷,特别是在企业。本文我们将把重点放在厂商如何提供可预测的性能。

  闪存在写入前需要先清除。清除本质是由“写入”完成的,即单元重组,然后单元可以被写入。闪存第一次使用时不包含任何数据,因此没有删除步骤,此时几乎所有闪存设备表现出来的结果都是极好的。

  当然随着时间推移,当你去使用驱动器读、写和删除数据时,由于设备一开始运行未使用的闪存单元块写入新的数据,后来它开始寻找已标记为删除的使用过的单元。最后,剩下一些存储活跃或陈旧数据的单元格和没有完全使用的单元格。驱动器只能短期储存,从这点开始每次新的数据需要写入磁盘之前旧的单元必须被清除。因此写入性能将大大下降了。

  为了解决这个问题,所有闪存系统都有一个被称为垃圾收集的程序,用于清空旧的内存区域,闪存控制器唯一的所要做的就是写入新的数据块。这个过程运行在后台存储设备的闪存控制器驱动上。这可以解决大多数系统中长期的性能问题,因为一旦运行垃圾收集进程,你将看到你的固态存储上可观的性能。问题是,繁重的写入条件下垃圾收集进程可能无法保持优先清除。

  “垃圾收集(Garbage collection)”可以保证在每次写入操作之前不必对整个数据块进行擦除,从而提高写入性能。垃圾收集在后台工作,将之前标记删除的数据块收集起来,然后在每个垃圾区块执行整区擦除,然后将回收的空间返回以便写入操作再次使用。

  写入频繁也就意味着有大量的数据要被标记为删除,也就意味着垃圾收集程序不得不努力找到预删除单元的权限。这种情况下,使用闪存作为缓存区是一个很好的例子。缓存中的数据不断交换,从不同的数据集中载入缓存而另一些被移除(这意味着从缓存中删除,但它们并不是通过垃圾收集过程清除)。

  不管使用的情况,当垃圾收集程序不能保持写入的频率,性能就会受到影响。数据中心面临的挑战是他们无法预测可能发生的准确性。性能的可预测性是高性能数据中心的重点。

  为解决这一问题,厂商们已经采用了多种技术。首先,很多厂商根据存储系统可访问的闪存量分配。例如200Gb的固态设备有可能是真正225GB的内存,但存储系统只显示200GB。这可以确保垃圾收集程序和Flash控制器总能有额外的可用空间进行工作。

  另一个步骤是要确保个人闪存控制器功能强大到足够快的驱动垃圾收集程序,以保持写入顺畅。最后许多闪存厂商正在使用多个闪存控制器,每个控制器专用于闪存系统特定的区域。换句话说,程序通过多个控制器运行在较小的区域。

  可预测的性能在企业中是至关重要的。闪存厂商在几个系统下展示闪存表现,即使在最繁重的写入负荷下,其性能几乎保持在高峰水平。

0
相关文章