实现企业QLC固态硬盘的突破
本主题演讲的重点是创新,使全闪光阵列与基于tlc的阵列具有相同的持久性和性能。
下载演示:实现企业QLC固态硬盘的突破
阿里斯泰尔00:05开始5系列:大家好,欢迎来到我即将举行的关于QLC的主题会议。
首先,让我介绍一下我自己。我Alistair系列。我是IBM存储开发部门的副总裁。所以,所有IBM的存储、硬件和软件产品开发报告都发给了我。所以,我今天要讨论的是QLC在任何地方,即使你会在主存储器中看到。
所以,首先,让我们来看看闪存行业作为一个存储的整体。如果你看看企业外部存储市场,那是几乎所有的flash数组现在。它也经常被用于超转换基础设施配置。而且很明显,它在云计算中非常普遍用于初级和高端性能。
00:54:如果我们看看下面的图表,你可以看到根据IDC的数据,在2020年,AFAs的销量第一次超过了混合闪存阵列。到2023年,他们预计AFAs的销量将超过混合闪存阵列和基于hdd的组合。但是,很明显,hdd仍然很常见,因为它们绝对有一个低速层和许多低端应用程序的位置,因为我们有成本非常低的近线驱动器,仍然可以为那些低端需求提供非常有吸引力的成本和性能,同时也非常适合媒体和备份设备以及任何需要保存的数据——这对于对象存储或归档来说是很冷的。
01:45:所以,考虑到我们已经有了这个行业的动态,我们已经有了全闪存阵列在这个主要存储空间继续增长,但我们仍然有磁盘驱动器被用于较慢的工作负载,这将持续一段时间,什么将进一步加速闪存?很明显,NVMe是通过存储技术实现的。它允许闪存设备的真正性能通过应用程序显示出来,无论是在驱动器级别还是作为服务器的网络接口。而且,很明显,随着应用程序对性能的要求越来越高,闪存的使用也会越来越多。
02:28:所以,我们在这里要讨论的是QLC如何推动flash的更多采用。显然,QLC是当今行业中成本最低的闪存。驱动器闪存的成本越低,它就可以服务于越多的应用程序和用例。我们是否还敢说PLC在某个时候也将推动这一技术的采用?所以,你可能会想,“这真的会很无聊吗?我能学到什么呢?我的意思是,很明显,flash无处不在。QLC中额外的位有什么特别之处?”我们有我提到的端到端NVMe,它很常见,而且还在增长。那么,这里有什么新的东西要学习呢? Well, I'm going to tell you, no, it's absolutely not going to be boring. In fact, the excitement is palpable. So, what we're going to talk about here is how we in IBM have actually enabled QLC for primary storage.
03:29:所以,如果你看看当今行业内大多数采用的QLC,它们是作为分层模型实现的,因为QLC不像TLC那样具有非闪光的持久性。而且,通常情况下,大多数供应商将其实现为一层存储,其中TLC是用于高性能的第一级存储,而QLC是用于更低、更冷的存储,这是更多的读密集型而不是写密集型存储。当然,虽然该体系结构有效,但它对用户来说具有内在的复杂性,因为他们的体系结构必须支持多层;他们必须在控制器中有软件和架构来自动地将数据从一层移动到另一层。
04:20:尽管这些技术很好——当然,我们今天在TLC、闪存和磁盘驱动器上使用了很多——但你还是要担心分层的动态程度。在某些工作负载中,它会快速改变工作负载模式,可能会有这样的情况,学习算法需要一些时间才能正确,这可能会导致性能问题。所以,如果我们能有一层flash来做所有的事情,那就简单多了。
这就是我们所做的,也是我们今天要讲的。是QLC有很好的性能,像TLC和TLC一样的耐力,就像TLC一样。那么,我们先来谈谈与此相关的问题,因为企业存储的QLC绝对不适合胆小的人.
05:17:如果我们要尝试这样的事情,我们还需要克服很多问题。首先,flash的编程时间较长,是TLC的3倍。在2x到3x TLC的flash上读延迟变长。在QLC和TLC中,读保持是一个更大的问题,使读保持和TLC一样长是一个问题。QLC更容易受到细胞间干扰。所有这些与读取保持和干扰相结合,它使闪光灯内在的耐力降低。对于企业的工作负载,很明显,我们必须能够在产品的生命周期内以相对较高的速度继续编写。所以,克服这些障碍当然不适合胆小的人。
06:16:所以,这是非常辛苦的工作。这真的能做到吗?这似乎太难了,我们不得不想办法去做。我们想要挑战。我们说:“是的,我们能做到。”事实上,我们现在已经做到了。如果我们看看今年第一季度推出的产品,我们有一个NVMe驱动器,一个NVMe U.2双端口闪存驱动器,我们称之为FlashCore模块.这是我们的FlashCore模块2,因为它是FlashCore模块本身的第二代。和我们使用的许多方面知识产权铺平了道路,在几代人之前,在我们FlashSystem 900产品,然后进入FlashCore模块1,真的我们这里用作构建块绕过这些障碍我们谈到了在前面的图表。
07:16:我们正在使用这个驱动器,下一代96层的美光QLC,现在我们仍然实现了每天两次驱动器写入。这是大多数人期望从QLC驱动器中看到的20倍。这是因为我们从IP的角度在驱动本身所做的一切。所以,一段时间以来,我们已经有能力在我们的闪存驱动器的设计中进行健康分类和热隔离,首先是在FS 900,然后是我们的FlashCore模块版本1。这让我们可以通过算法来发现驱动速度最快的工作负载,I/ o。得到的数据I / o,然后我们有一个方式告诉我把那些地方/ Os上flash最好的医疗和最低的热量,这样我们可以确保我们的flash,即使TLC,能拉长到非常高的寿命。
08:27:我们将它与非常流行的,对我们来说,基于fcm的压缩相结合。因此,我们已经在FlashCore模块中获得了压缩数据的能力,当它进入驱动器时,它将不会影响上述工作负载的性能。这让我们可以做非常高性能的数据缩减。这也很有帮助,因为在FlashCore模块内部的压缩,我们实际上需要写更少的数据到后端flash本身,所以这有助于flash的寿命。
分:但我们在我们所做的FCM 2设计,完全基于QLC flash技术,是我们使用一些额外的功能,如能够切换页面从QLC SLC和回来,使用这些技术的健康装箱和热隔离,加上智能数据放置能力和阅读评估真的。。。它就像硬盘里的人工智能。它将精确地计算出每个I/O进入时需要的页面类型。需要是SLC吗?需要是QLC吗?驱动器会解决这个问题的。它会适当地分配页面,这样我们就能得到最热的数据,在I/O访问方面,在最快和最健康的闪存上。这个算法的能力,在这开车真的让我们做一些很神奇的东西,可以得到两个驱动器的长寿和写周期每天写,这是相当于TLC,尽管这是完全标准QLC flash中我们使用的驱动器。
28:我们的其他特性是,我们做了很多关于垃圾收集算法的工作来确保我们有低的写放大。所以,我们有所有这些工具,我们带来的内部驱动本身,使QLC持续TLC驱动的生命周期。所以,如果我们看右下角的图表,你实际上看到的是,在x轴上你看到的是驱动器可以做的程序擦除周期,在y轴上是原始的误码率。
11:05:现在,在我们的驱动器中,我们已经有了一个非常,非常健壮的纠错算法它能够以比标准ssd高一个数量级的误码率读取数据。这是我们与IBM研究团队合作开发的。这已经让我们在误码率方面领先了一步,我们可以在驱动器内工作,因为闪存会随着时间流逝而损耗。你可以看到我们可以控制的误码率是用红色星号标记的。一个典型的QLC驱动器会下降到3个标记——3000个程序擦除周期——你可以在这里看到。
但是有了我们在这个驱动器内建的IP,我们的程序擦除周期和误码率就像你们在这里看到的深蓝色的线。如果你把这条蓝线从我们测量的数字中投影出来,事实上,我们已经测量了这条投影线直到整个闪光的生命周期。但是如果你把这条线画出来,你可以看到误码率出现问题的点大约是在15000到16000个擦除周期点。这让我们得到了与TLC相同的生命周期QLC闪光。然后绿线表示这是非常保守的因为压缩会进一步减少我们必须做的写的数量。所以,技术上,我们甚至可以超越我们在这里展示的耐力。
45:所以,我们已经使它绝对像TLC flash一样持久,并且使用了SLC页面和其他一些技术,我们将讨论这意味着性能和TLC一样好。那么,我们能做些什么呢?我们提供四种不同容量大小的模块——从4.8兆兆字节,9.6兆兆字节,19.2兆兆字节,到业界领先的38.4兆兆字节,这是业界最密集的闪存驱动器,它是NVMe,它是QLC,它的性能和持久像TLC。这让我们建立了最大的系统容量,我们的fs9000系统的SATA 2抽屉,有24个这样的驱动器,757tb的可用容量,这将提供高达1.7 pb的有效容量与驱动器内建的压缩。所以,巨大的密度,最低的成本闪存,高性能。所以,我们付出的努力是值得的;我们很高兴接受了这个挑战。
13:57:因此,正如我所说的,FCM QLC表现良好。在系统层面上,它的性能优于TLC。所以,如果我们想看看这个测试的表现,看右下角我们在这里,我们在这里有一个图表显示了我们在x轴上测量的IOPS,在y轴上的响应时间。,你可以在这里看到我们有一个非常,非常低的性能、平曲线,非常低的延迟,通过IOPS平延迟增加,和IOPS下来不到一毫秒到曲线的膝盖,这是实现QLC,不到半毫秒的响应时间。QLC,混合工作量70, 30读写,50%缓存在16k。
这是一个非常非常好的全qlc驱动的结果。如果我们看一些数字,我们取得了与FCM性能,读吞吐量增长了44%,写吞吐量增加33%,阅读延迟是削减40%,写延迟是削减30%,这些比较TLC记住,IOPS从10%上升到20%。这些是比较我们的FCM 2 QLC和我们的FCM 1 TLC。
15:31:那么,我们做了什么?这是我们的第三代计算平台,我们这样做,我们使用内联压缩要做到这一点,但我们使用这些技术,我之前谈到的,动态SLC分配一个,总是把最高访问的数据到最高的性能和健康的闪光。
我们可以利用右上角方框中的一些东西克服一些抑制因素,利用大多数工作负载是倾斜的,只有一小部分数据被真正高强度地访问。驱动器内的算法会确保它被放在SLC页面上。但我们不仅仅是在驱动器内的智能能力,驱动器可以允许给出一个提示,关于哪些块应该放在特定的执行页面中。控制器或上面的软件,与驱动器对话,可以给你一个提示,也许一段数据是高度读密集的,然后会给你一个提示,然后在驱动器中,把驱动器放在哪里。它的智能驱动器,但是能够提示之外,然后智能数据放置能够告诉哪里把特定数据的右侧页面的flash, SLC QLC——从健康的角度应该如何使用。
16:58:我们要做的另一件事是我们要克服程序挂起的写入时间。那么,我们要怎么做呢?我们这里内置的一种技术叫做程序挂起。所以,我们担心的是当我们在做一个很长的写程序时,会延迟读I/O。我们在这个驱动器中处理这个的方法是我们会在写周期的不同时间点暂停写I/O,并允许读进来。所以,这就像做一个…有效的写时间切片,这样我们就不会延迟读I/O,也不会挂起下行到驱动器的应用程序I/O。因此,我们克服了QLC固有的困难。所以,我们已经做了所有这些不同的技术,真的使QLC可测量,正如你在这里看到的,在这种情况下,TLC相同或更好,与我们的fcm1驱动器相比。很不错的结果,我想你会同意的。
18:01:在讨论了这个驱动的QLC方面之后,让我们谈谈我们可以用我们这里的架构做的其他事情。其中一件事是计算存储也开始出现,这同样令人兴奋。计算存储是指我们可以卸载存储系统或应用服务器上的进程这些进程现在正在系统处理器或控制器处理器上执行某些任务,并将任务传递到SSD设备,因为这可能更适合直接高效地完成任务,或非常接近所涉及的数据。这就是把任务从控制器或应用处理器卸载到驱动器本身的想法。有效,你可以看到,我们已经构建到我们FlashCore模块,我们有我们的内联压缩,这是一个很好的例子,真的,计算的援助,我们放到SSD,因为它做的压缩,以往在其他产品——正确的——是由控制器CPU或应用程序处理器CPU、在这种情况下是在SSD本身。
19:16:比如暗示这个驱动器可以像FCM一样,这也可以是一个非常合适的架构来帮助我们将任务转移到驱动器内的计算能力中。所以,这在未来确实有惊人的潜力。如果我们看看我们所说的计算存储和我讲过,这真是一个有趣的名称,用于应用程序加速器,过滤器是由应用程序或特定的人工智能工作负载您可能想要通过SSD本身将主处理器或任何其他帮助我们想放在那里。真正的目标总是减少流经SSD以上处理器的数据量,并让SSD自己完成这项工作。当我们有了一个设计,比如我们的FlashCore模块,我们有了构建在SSD上的fpga,我们可以在这些fpga中使用核心来有效地构建这些负载,非常高效和容易。
21奸细:那么,这只是炒作吗?这里有真实的东西吗?是的,绝对是真的。SNIA已经建立了一个工作组来处理ssd内的这种特殊活动,并且我们已经提供了一些供应商,这些供应商正在做这种类型的计算存储。因此,这里有一个巨大的潜力,为人工智能工作负载建立一套不同的协助。我提到过任何可能想要做的事情…过滤巨大的数据集,当然,这是可以用这种技术向前发展的东西。我给了你们一个真实的工作负荷的例子是我们用FCM压缩做的。
21:08:我现在要谈一谈另一件在这个行业中正在发生的事情,很明显,这就是持久记忆。所以,在右边我们得到了存储的分层金字塔,作为IBM的员工,我们总是想从基础层的磁带开始金字塔。
在我们的存储需求中,磁带仍然是一个活跃的部分,这当然是由今天的超规模者驱动的,他们需要保存大量的数据很长一段时间。很明显,上面是近线hdd。上面是QLC闪光。作为IBM的一员,这就是我们现在所拥有的,因为我们所有的flash都是基于qlc的,我们不再使用TLC了。然后我们有我们的SCM SSD,存储类内存,持久内存,我会在这里讲,但在SSD的形式因素。然后我们在SSD之间有持久内存,存储类内存SSD和DRAM。
22:08:那么,为什么它会在金字塔中占有一席之地呢?DRAM是昂贵的,大家都知道,但同时我们有这种需求,日益增长的需要更大的内存数据库变大,我们需要的数据量过程变大,我们要做更多的缓存和与之相关的元数据。所有这些都意味着我们需要增加服务器和存储设备的内存容量。持久内存是一种我们可以进行读取缓存的方式,例如,每千兆字节的成本比我们使用DRAM要低得多。因此,这是一项伟大的技术,在缓存方面提供了接近dram的性能,但同时成本更低。所以,这是一项伟大的技术,能够处理一些更大的数据集。
22:57:很明显,这种记忆的持久性给了我们存储控制器设计的圣杯,也就是摆脱讨厌的电池。我想任何听过这个的人,在存储控制或设计行业工作的人都知道,处理电池是件很头疼的事。你要担心确保他们定期充电,你要担心确保你代替他们在正确的时间,你必须确保你做正确的事情,当他们失败的时候,你要确保你做正确的事与他们当权力远离存储系统保存数据。如果你能把电池处理掉,你的一系列头疼问题就会消失。
和这种记忆的持久性结合它比DRAM更低的成本和高性能,意味着它在存储控制器体系结构中有一个真正的位置。它有一个在分层flash设备,无论是QLC还是TLC,因为您可以使用缓存持久记忆如上读/写缓存你的闪存设备,或者你可以持久记忆的SSD NVMe附加在分层环境QLC或TLC flash。
24:14:所以,如果我们观察的方式,持续内存控制器设备或服务器,或NVMe服务器中存储设备或存储控制器,它可用于缓存元数据和检查点持久的方式,它可以用于很大的读缓存。但它也可以在NVMe中使用,通过智能分层。该环境中的ssd将作为单独的存储层,使用QLC和TLC,自动迁移更高的性能,或者将元数据迁移到存储类内存设备。因此,您可以将它用作缓存,也可以将它用作智能分层,在这两种情况下,您都可以使用它来提高内存数据库的性能,或者提高带有nvme设备的这些数据库的存储工作负载。而且,在未来,我们将有CXL总线,它将允许这种技术以一种非常、非常低延迟的方式连接到处理器,这将导致更多的可组合存储的架构可能性。
25:33:这是对闪存行业的一个非常快速的介绍,以及在QLC,计算存储和持久存储中一些非常令人兴奋的东西,感谢大家的聆听。