HDD或SSD可靠性浴缸型曲线(如图1),是指在磁盘的整个寿命周期里,故障通常遵循一种模式——故障率随时间增长会达到一个稳定状态,然后再随着设备的磨损而再次增加。
但你是否考虑过存储性能的浴缸型曲线问题呢?
如图2,左轴线I/O读取达到100%,右轴线I/O写入达到100%。在任何一种极端情况下,存储性能的表现都很好。然而,在运行混合工作负载的中间段,性能下降,形成了典型的“浴缸型曲线”。
曲线呈现的深度取决于存储阵列的有效性。如图所示,对于每个性能指标(IOPS,吞吐量,延迟),曲线的最低点可能是从100%读取到100%写入轴线内的任何位置。
问题是——你知道你的曲线下降到什么程度,这与供应商承诺的性能相比如何?
关于市场对存储性能的表述
通常,IOPS引用的块大小是尽可能小的,因为它会生成更多的单个I/O操作——一般在高队列深度。而吞吐量则相反,因为更大的块能获得更好的吞吐量。当然,供应商希望以最佳方式表现其产品性能,这意味着相应地调整测试结果。
图2:存储性能浴缸曲线
延迟如何?特别是对于存储阵列,你会看到类似“通常”,“平均”,“最好”这样的词,但其并未表达一个较为中肯的指标。
为什么性能会发生变化?
是什么导致了性能问题?我们来专注一下闪存以及传统介质的运作方式。利用SAS/SATA协议,只有一个队列处理I/O.对处理全读取请求,过程简单,控制器可以进行顺序处理,如果正在访问闪存的同一部分,还可以在重新排序中性能有所改善。还有多个对应分布式I/O的后端通道,也可以获得一些好处。
全闪存IOPS
而如果是处理100%的写入流量,过程会很复杂。因为每次写入意味着至少要更新一次闪存页面。有时还必须擦除整个闪存块(多个页面),这意味着移动与合并闲置块中的页面。此外还要考虑磨损均衡等其它因素,因此100%写入能力通常低于100%读取能力,虽然两者都受益于主板DRAM进行数据缓存(由于这一点,某些磁盘可能会显示单队列深度下更高的写入性能)。
混合I/O
在我们开始接触混合I/O时,会发现数字低于读取或写入性能。在这一点上,是介质的架构成为了阻碍。我们之前说过,闪存是以块和页面写入的,因此写入操作是直到写入完成都可能会延迟(或限制)同一块/页面的读取。而对于SAS/SATA,一切都是通过前端连接进行,仍然只处理单个队列。
缓解方案
介质与阵列供应商显然已经实施了一些解决方案来打破这些限制。在介质方面,这可能意味着更多的超量配置(over-provisioning)。定制存储设计为我们带来了尝试克服可变闪存性能问题的一些产品,以提供更一致性的主机I/O体验。和构建软件定义或HCI型解决方案相比,这是购买全闪存系统的固有优势之一。
NVMe
随着我们转向基于NVMe的阵列和存储级内存解决方案,充分利用介质的能力变得更加重要。因为NVMe SSD和英特尔傲腾驱动器都能以非常低的延迟实现大规模并行计算。如果你的存储阵列无法优化介质,那么浴缸曲线将会有显著降低。
总结
全闪存供应商的潜在客户需要询问整个读取/写入比率范围内的性能,而不仅仅是极端情况。
当然,不要忘记混合工作负载环境会生成一系列不同的I/O配置文件,包括顺序/随机,大的块和突发/流媒体(stream)型流量的组合。如果你想要交付平台,最好让(潜在)供应商向你展示一系列真实的性能数字,最好与实际应用关联,例如数据库,虚拟化或分析等。