除了延迟和IOPS 评估SSD性能还要考虑这些因素

日期: 2017-11-15 作者:Robert Sheldon翻译:徐继军 来源:TechTarget中国 英文

企业级SSD供应商通常基于吞吐量、延迟和IOPS指标来为市场上的买家区分固态驱动器的性能档次,但这些规格并不能代表全部。其他因素——驱动器组件的架构以及处理写入放大的方式——同样是评估驱动器在生命周期内性能表现的重要指标。

目前在数据中心内已经部署的大多数SSD都基于flash闪存技术。构成闪存驱动器的零件包括存储数据的NAND单元以及存储控制器、接口和高速缓冲存储器,每个组件都会对固态驱动器的性能起到重要作用。

NAND单元技术经历了长期的发展,现在支持的容量越来越大,市场价格越来越便宜。最初的闪存驱动器基于单级单元(SLC)结构,每个数据单元能存储1位二进制数据。后来出现的是每个单元能存储2位二进制数据的多级单元(MLC)驱动器,再然后是三级单元(TLC)驱动器,每个单元能存储3位数据。

基于TLC的闪存驱动器可以支持比过去更高的容量,其容量甚至超过了他们的许多硬盘驱动器近亲。不幸的是,TLC驱动器无法持续提供与最初的SLC驱动器相同的性能水平。最新出现的3D NAND技术给出了供容量和性能两全的承诺——只要制造成本降低到与其他NAND技术相当就可以实现。

存储控制器

存储控制器是一种专用于各型号驱动器的处理器,用于运行固件程序并处理耗损均衡、垃圾回收、加密、坏块映射和错误代码纠正等操作,这是决定固态硬盘性能的另一个关键要素。无论驱动器的I/O工作负载程度如何,控制器都要维持关键的操作功能,即使在满负荷运行时也必须能够正确执行所有存储相关的操作。控制器的任何缺陷都可能严重降低SSD的性能。

服务器和驱动器之间的接口也是SSD架构中的关键组件。常用的两种接口是:串行连接SCSI(SAS)和串行高级技术连接(SATA)。SAS侧重于提供更多的企业级功能,通常也可以提供(比SATA)更好的固态驱动器性能。

潜台词是,这两种接口都可能成为存储瓶颈。为了突破瓶颈,供应商提供非易失性存储器快速接口(NVMe),让闪存结合PCI Express运作以提供比SAS或SATA更好的性能。

在企业级SSD内部的存储介质和接口之间还包括一个动态RAM内联缓冲区。缓冲区提供高速缓存机制,为数据提供临时分段和汇集区域。为了有效地执行这些操作,缓冲区必须足够大才能有效加速数据访问和修改动作,并尽可能减少写入操作的影响。正确设计的缓冲区是高性能SSD中的关键组件。

写入放大

大多数SSD和闪存驱动器都同样容易产生写入放大的问题,在某些情况下的实际写入次数会超过实际请求的写入次数。写入放大问题是由SSD的数据写入方式而带来的固有缺陷。和硬盘直接添加或覆盖数据的操作不同,SSD必须整块写入,并且在数据写入之前必须先擦除数据块内已有的数据,然后重新写入。由于写入放大带来的额外IOPS会明显降低写入性能。

数据存储在闪存驱动器上时会被写入页面,这些页面被组合成块。将数据写入单元之前必须先擦除整个块,除非块已经是空的。如果要写入的块非空,则必须复制旧数据到缓存,然后从原始位置删除数据,最后合并新旧数据一起重新写入驱动器。这些过程会增加大量写入操作,不仅会影响SSD性能,还会缩短驱动器的使用寿命。

为了提高写入性能,SSD通常会启用某种类型的垃圾回收过程,在后台主动释放带有旧数据的废弃块。这个过程可以消除每次写入操作中的擦除整个数据块的步骤。但是,如果处理不当,垃圾回收过程同样会导致写入放大并影响主写入操作的性能。

大多数固态硬盘还会实施磨损平衡处理,以防止存储单元过早磨损。磨损均衡算法能将写入次数均匀地分布在可用块上,以防止相同块持续承受擦除和写入操作。磨损平衡与垃圾回收一样也会导致写入放大,并可能影响固态驱动器性能,具体取决于实这些技术的实现方式。

其他进程也可能有助于缓解写入放大问题,例如坏块管理,控制器能识别和标记出对于存储数据可能不可靠的一个或多个块。另外,对驱动器进行碎片整理不会给SSD带来任何好处,只会白白增加读/写开销。

如果要减少写入放大,减轻垃圾收集、磨损平衡和其他操作的不良影响,一个常见的策略是过量配置SSD,或将驱动器的允许被使用的存储空间限制在一定比例。例如,一些组织将允许使用的存储空间限制在75%或80%,有时甚至更低。通过预留足够的剩余可用空间,驱动器可以更有效地支持写入操作,并最大限度地提高SSD性能。

另外,SSD有时可以利用接口内置的功能来缓解写入放大。例如,SATA提供TRIM指令,SAS提供UNMAP指令。两种指令都能标识不再使用的数据块,从而可以让设备从内部自动清除这些数据。这些措施可以获得更好的固态驱动器性能,因为可以最小化垃圾收集进程,并且可以尽快在驱动器上获得更多可用空间。

在数据中心部署固态硬盘要注意的事项还有很多,例如可用的服务器和网络资源,以及在这些服务器上运行的操作系统类型,但驱动器的组件架构和写放大对策才是最需要关心的问题。只有充分考虑到所有因素,组织才能确保购买的驱动器能提供足够的性能,更好地支持各种应用程序。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

Robert Sheldon
Robert Sheldon

自由技术撰稿人和技术咨询专家,曾出版和发布若干本书籍、文章和培训教材,重点关注Windows、数据库、商务智能等。

翻译

徐继军
徐继军

TechTarget中国特约作者

相关推荐

  • 【专家答疑】我应该担心SSD的寿命吗?

    SSD的寿命有多久?对SSD寿命的关注仍然存在,但是闪存耗尽不再是一个问题。事实上,供应商为每个驱动器指定了磨损寿命。不同系列的SSD产品的寿命可能有所不同。