【IT168 评论】随着数据存储需求的不断增长,存储供应商尝试使NAND闪存驱动器中能够存入更多的数据——通常是通过增加每个单元(cell)中的bit数来实现的。NAND从每个单元1个bit开始(SLC),到2 bit(MLC),很快就达到了3 bit(TLC)。现在我们有了QLC驱动器,每个单元可以存储4 bit。
QLC NAND闪存驱动器比TLC驱动器的密度增加33%,有望进一步降低闪存成本。然而,QLC也有一些限制,这些限制使得它只适用于读密集型工作负载。在选择QLC之前,请先看看这些限制因素,了解是什么使某些工作负载比其他工作负载更适合QLC。
Pexels 上的 panumas nikhomkhai 拍摄的照片
什么限制了QLC?
企业级QLC成为了广泛部署在数据中心的低性能HDD的一个很有前途的替代品。根据美光的数据,QLC驱动器的读取IOPS比运行相同工作负载的HDD快450倍以上。QLC驱动器需要的空间也更少,消耗的能源更少,并且价格有望与硬盘存储相同。
基于NAND技术的闪存是一种由一个或多个闪存芯片组成的非易失性存储器。每个芯片包含die,每个die包含plane。每个plane被分入到块中,然后将这些块划分到page,并将page划分到cell(单元),在cell中存储数据bit。数据在page层进行读取和写入,但在块级擦除,从而带来了复杂的写擦除过程。
每个驱动器都包含一个控制器,用于管理数据操作,并处理那些与编写、修改数据相关的问题。例如,控制器负责诸如磨损均衡、垃圾收集、坏块映射、错误代码纠正和数据加密等操作。磨损均衡和垃圾回收特别重要,因为它们有助于延长驱动器的耐久或寿命,减轻了写擦除过程的一些影响。
对NAND闪存驱动器的耐用性产生影响的因素有几个。最值得关注的就是P/E(完全擦写)在驱动器生命周期中执行的次数,一个驱动器支持的P/E次数是有限的。
影响P/E次数的最大因素之一是写入放大,这是由于写入的数据比修改的数据量多。因为数据是在page级编写的,而在块级删除。更复杂的是,数据修改需要先删除数据,然后才能写入数据,这意味着无论更改多么小,都必须删除和重写整个块。磨损均衡和垃圾收集,以及过度供应,可以帮助解决其中的一些挑战,但驱动器仍然受制于有限的P/E周期。
QLC NAND闪存
每个单元的bit数可以直接影响驱动器在其生命周期中支持多少个P/E。尽管估计值各不相同,但我们可以放心地假设,每个单元的bit数越多,P/E的次数就越少。例如,SLC NAND支持大约100,000个P/E,而MLC NAND支持3,000到10,000个P/E。TLC NAND的估计数约为1,000至3,000个,QLC的估计数不到1,000个,有些估计数甚至接近100个。
密度更高会导致P/E次数更少,其原因与写入操作期间在单元级如何应用电压有关。尽管进程本身相当复杂,但我们只需要知道,每个写操作都会对单元格造成轻微的磨损,而且单元格中包含的bit越多,磨损就越大。由于这个原因,QLC NAND闪存比其他类型的NAND更容易磨损,因为带来更少的P/E。
适合的QLC工作负载
由于这些限制,QLC不适合频繁添加和更新数据的写工作负载。写操作越少,驱动器的使用时间就越长。读密集型工作负载,其中写操作只占QLC NAND flash操作的一小部分。事实上,美光建议写工作负载应该少于10%。
幸运的是,今天的许多工作负载都符合这个模型。例如,支持人工智能、机器学习、深度学习和其他形式的人工智能的分析应用程序是QLC存储的优秀候选。这些场景中的数据通常只编写一次,然后用于进行复杂的分析,这需要在建模、培训和聚合大量数据时快速访问存储。
归档数据是另一个有潜力的QLC工作负载,特别是当组织将这些数据用于基于人工智能的分析或商业智能应用程序时,这些应用程序挖掘数据,为相关人员提供近乎实时的信息,以便快速洞察和决策。支持流媒体操作的大型数据中心也可以使用QLC更快更有效地向客户提供音频或视频服务。
几乎任何支持读密集型应用程序的数据存储都是QLC的良好候选场景。例如,一个包含丰富数据和元数据的NoSQL数据库可以使用QLC NAND闪存驱动器来提高应用程序性能。与任何场景一样,关键是要理解应用程序编写数据的程度与读取数据的数量之间的关系。
理想选择还是成本陷阱?
随着QLC技术的成熟,无疑将提供更多的P/E次数,从而让更多类型的工作负载可以从QLC 闪存中获益。目前来看,在未来一段时间内,QLC可能仍然是最适合读密集型工作负载的。无论如何,IT部门应该合理地评估QLC闪存所能够支持的应用场景,以便尽可能高效和可靠地交付工作负载。在有些场景下,QLC可能是理想选择,但在其他情况下,这也可能带来更高的成本。
原文作者:Robert Sheldon