朱尔斯- Fotolia
固态硬盘的性能指标超越了延迟、IOPS
在确定SSD的性能和寿命时,除了IOPS和延迟外,公司还必须考虑驱动器的架构、存储控制器和写放大。
企业级SSD供应商通常根据吞吐量、延迟和IOPS来销售硬盘,以向买家销售固态硬盘性能,但这些规范只说明了部分情况。其他因素——驱动器的组件架构和它如何处理写放大——在决定驱动器在其生命周期内的性能方面同样重要。
目前数据中心中实现的大多数ssd都是基于flash技术的。组成闪存驱动器的组件包括存储数据的NAND单元,以及存储控制器、接口和缓存缓冲区,所有这些都在固态硬盘性能中发挥着关键作用。
NAND电池技术已经发展到现在支持更大的容量和降低价格。最初的闪存驱动器是基于单级单元(SLC)结构,每个单元存储1位。接下来是多级单元驱动器,它支持每个单元2位,然后是三级单元(TLC)驱动器,它每个单元存储3位。
有了TLC,闪存驱动器可以支持比以往更高的容量。它们超过了许多硬盘驱动器。不幸的是,TLC驱动器不能总是提供与原始SLC驱动器相同的性能级别。更新的3D NAND技术承诺一次性提供容量和性能使制造成本保持一致使用其他NAND技术。
存储控制器
谈到固态硬盘性能时,另一个重要的考虑因素是存储控制器,一个特定于驱动器的处理器,它执行固件并处理诸如此类的操作穿平、垃圾回收、加密、坏块映射、错误码纠错。由于控制器扮演着如此重要的角色,它必须能够执行所有与存储相关的操作,而不管驱动器的I/O工作负载如何,即使在满负荷运行时也是如此。否则,SSD性能可能会受到负面影响。
两者之间的接口服务器和驱动器也是SSD架构中的关键组件。两种常用的接口是串行连接SCSI和串行高级技术连接。SAS倾向于提供更多企业级特性,通常可以提供更好的固态硬盘性能。
也就是说,这两个接口都会造成存储瓶颈。由于这个原因,供应商提供了非易失性内存快速接口与PCI Express一起工作提供比SAS或SATA更好的性能。
企业级SSD还应该包括存储媒体和接口之间的动态RAM内联缓冲区。缓冲区应该是一个高速缓存机制这为数据提供了一个临时staging和收集区域。为了有效地执行这个过程,缓冲区必须足够大,以简化数据访问和修改,并将写操作的影响降到最低。正确的缓冲区可以是高性能SSD中的关键组件。
写放大
像大多数ssd一样,闪存驱动器也容易出现写放大,即实际写的数量超过请求写的数量。写放大发生在数据写入SSD的方式。在写入数据之前,必须先擦除其他数据,然后再重写,不像一个硬盘只是简单地添加或覆盖数据。由于写放大而增加的IOPS会显著降低写性能。
当数据存储在闪存驱动器上时,它被写入页面,这些页面被分组成块。为了向单元格写入数据,必须擦除整个块,除非块已经是空的。如果它不是空的,则必须复制旧数据,从原始位置删除旧数据,然后连同新数据一起重写到驱动器。这个过程会增加大量的写操作,这不仅会影响SSD的性能,还会缩短驱动器的寿命。
为了帮助提高写性能,SSD通常实现某种类型的垃圾收集进程,它采取一种主动的方法来释放以前写的块。这个过程可以帮助消除每次写操作都要擦除整个数据块的需要。但是,如果处理不当,垃圾收集过程可能会导致写操作的扩大,并影响主写操作的性能。
大多数ssd还实现了磨损平衡过程,以帮助防止细胞过早磨损。磨损均衡将写操作均匀地分布在可用的块上,以防止相同的块不断受到擦除和写操作的影响。与垃圾收集一样,磨损均衡可以增加写放大,并可能影响固态驱动器性能,这取决于它是如何实现的。
其他过程也有助于写放大,如坏块管理,其中控制器标识包含一个或多个不能可靠存储数据的单元格的块。磁盘碎片整理对SSD没有好处,但会增加读/写开销。
一个常见的策略,以减少写放大和减轻影响垃圾回收,磨损平整和其他进程是过度供应SSD,或限制驱动器的可用存储数量仅为一定百分比。例如,一些组织将可用存储限制在75%或80%,有时甚至更低。通过提供足够的空闲空间,驱动器可以更有效地支持写操作,并最大化SSD性能。
此外,ssd有时可以利用接口内的功能来减缓写放大。例如,SATA提供了TRIM命令,SAS提供了UNMAP命令。这两个命令都识别不再使用的数据块,因此可以在内部清除它们。这将带来更好的固态驱动器性能,因为可以最小化垃圾收集进程,并在驱动器上提供更多可用空间。
还有其他的考虑ssd实现在数据中心,如可用服务器和网络资源以及运行在这些服务器上的操作系统。但驱动器的组件和编写放大方法应该是首要关注的问题。只有考虑到所有这些因素,组织才能确保他们购买的驱动器能够提供支持其应用程序所需的性能。