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

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

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

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

[[210295]]

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指令。两种指令都能标识不再使用的数据块,从而可以让设备从内部自动清除这些数据。这些措施可以获得更好的固态驱动器性能,因为可以最小化垃圾收集进程,并且可以尽快在驱动器上获得更多可用空间。

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

责任编辑:武晓燕
相关推荐

2020-05-17 20:40:30

SIEMSOAR安全软件

2018-07-27 10:46:47

存储系统因素

2022-05-27 09:05:57

混合云多云云计算

2015-06-03 10:34:10

iOS 9苹果WWDC

2021-05-18 07:46:06

存储系统IOPS

2014-03-07 09:25:00

2023-05-15 16:09:00

边缘计算

2020-11-12 10:30:42

多云公共云私有云

2009-07-14 14:56:06

微软虚拟化VDI

2013-10-28 13:48:10

技术选型

2015-12-04 10:23:47

2021-01-27 10:49:45

物联网资产管理IOT

2022-01-14 07:28:19

效益成本云部署

2023-02-28 14:16:52

边缘计算数据中心

2015-08-18 11:57:20

PUE值数据中心

2015-05-18 16:53:56

OCZ

2017-04-06 13:33:46

数据中心大数据

2023-12-30 18:35:37

Go识别应用程序

2014-07-14 11:30:23

手机系统小众火狐

2013-10-12 10:04:17

点赞
收藏

51CTO技术栈公众号