存储极客谈“SPC-1负载分析与AFA寿命评估”

企业存储界公认的SPC-1 Benchmark读写比例是多少、I/O大小如何、都是随机访问吗?以该测试成绩来估算闪存阵列的SSD寿命是否合理?有没有更好的办法?且听我们细细道来……

在《存储极客谈“如何绕开一堆复杂技术参数评估SSD寿命”》一文中,一方面我们讨论了最直观的闪存写寿命指标——DWPD,以及由此而建立起来的企业级SSD等级体系;另一方面根据某份SPC-1测试报告中的SSD型号,查询出其DWPD水平并归类到读密集型SSD。

接下来就是如何评估典型应用负载?对应的闪存阵列SSD应该怎样配?我们有哪些建议

SSD磨损速度:SPC-1只代表极限负载

首先,SPC-1作为一款性能Benchmark测试,肯定是跑到满负载。那么它的IOPS成绩中写入占到的比例有多大,数据量又是多少呢?

1
这部分资料引用自《SPC BENCHMARK 1/ENERGY™ EXTENSION (SPC-1/E™) OFFICIAL SPECIFICATION》。SPC-1的工作负载由3个ASU(应用存储单元)组成,分别为Data Store、User Store和Log/Sequential Write(日志/顺序写)。可见真正贡献随机IOPS性能的是前两者,也就不难理解有成绩较高的系统ASU-3只用了少量机械硬盘

在每个ASU上又运行数量不等的I/O Stream,根据下表拿ASU-2的参数类型和值举例进一步分析。

2
结合红框标出的一项Read fraction——读I/O所占的比例,下面列出的完整IOPS测试结果就更好理解了。另一项Transfer size(512 byte blocks)如果是8,应该代表I/O大小为4KB;SMIX则是按照一定比例的混合块,经计算其平均I/O大小为14.4KB。

3
如上图,112,476(实际应该是112,479?)这个IOPS值是由一系列读写测试结果叠加而来。混合读写负载可以理解为总共44,358随机读IOPS、36,503随机写IOPS,以及31, 608顺序写IOPS。可见SPC-1测试的写操作比例并不低

由于是评估SSD寿命,这里我们只需要关注写IOPS,并由此计算出每秒写入数据量。

(1967+15797+11814+1416+5509)*4 + 31608*14.4

=601167.2 KB/s ≈ 587 MB/s

如果长期保持这种写入压力,阵列每天总写入量达到48TB,按照测试配置6个SSD平均写入约为16TB。这里考虑了RAID 1镜像的写惩罚为2,如果RAID 5或者RAID 6,此处计算最差的随机写惩罚应分别按照2和3来计算,而不是通常的4和6,因为我们讨论的是写入寿命,由RAID而引发的读I/O在这里不用考虑

参考资料:戴尔技术文档《Briefing on how to leverage DPACK’s Average Daily Writes value to calculate SSD durability》

折算下来,每个480GB SSD每天写入达到36遍(也就是DWPD=36)——毕竟SPC-1的目的是为了测性能。我们设想一下,如果换成DWPD=10的1600GB混合用途或者写密集型SSD,配置12个(保持RAID 1)大约可以坚持9年的闪存寿命(或者24个800GB也是如此),只是更换SSD之后SPC-1测试成绩很可能会有提高。

同时有必要指出,真正的生产存储7×24常年平均IOPS能超过11万,写入达到587 MB/s的比例有多大?确实有金融交易系统结算批处理的日志生成量达到上GB/s,而那种级别的应用通常会选择EMC VMAX、XtremIO等高端阵列,对应的SSD数量也会更多。作为一款中端存储戴尔SC4020性能上已经不弱,那么它支撑的应用负载通常是多大呢?

4

Dell Storage SC4020

典型OLTP环境:读写混合20,000平均IOPS

我们再假设另外一种情况,按照典型的OLTP工作负载,模拟Oracle 8KB I/O大小,如果某存储系统在读/写比例80% / 20%情况下年平均IOPS——20,000(峰值可能要高得多),可以计算出每天写入量约为2.7TB,折合6个480GB SSD每天大约写入2遍。

如此则SC4020跑SPC-1测试的配置即可满足5年生命周期,即使换成DWPD=1的读密集型SSD,增加单盘容量或者数量也可以轻松应付,例如:使用1.92TB SSD。接下来要考虑的就是数据量(包括当前数据量和增量),还有混合负载的情况。

数据量这个计算起来比较简单,6个480GB SSD只是一个起步配置,容量增加的同时闪存寿命(可写入量)也会成正比提高;对于混合负载,一台阵列同时跑OLTP和其它业务(比如VDI)该怎么规划呢?如果要求较高的服务质量,我们建议将不同业务跑在由不同SSD组成的多个RAID存储池中,一旦峰值I/O压力超出阵列控制器的处理能力,则可以考虑换成更高端的型号,比如SC9000等。

5
根据资料,Dell SC9000的控制器硬件应该基于最新一代的PowerEdge R930服务器平台,每控制器两颗3.2GHz 8核Intel Xeon(至强)处理器。Dell SC4020控制机箱的设计更加紧凑,每控制器配置一颗4核Xeon CPU。

轻松获得当前系统及应用目标的写入量

在理清了由存储写入IOPS/容量来计算SSD配置的方法之后,还剩下一个问题——如何获得应用负载需要达到的写入量?

6
有的存储厂商提供了相应的工具,能够收集主机端性能信息,以此协助存储解决方案的规划和选型。比如我们在《【工程师笔记】第三期:如何评估应用的存储性能需求?》一文中介绍的戴尔免费增值工具DPACK,“能够对用户的存储过程进行拆分分析——包括应用下发到存储,以及存储设备自身的处理两部分。以判断在存储不成为瓶颈的情况下,应用能够跑多快。所收集的数据会生成专业报告(涵盖多种不同语言),客户可以更好了解自己的环境,基于报告做出最佳的业务决策。”

除了性能数据,DPACK还能报告当前数据总量和每天的写入量,帮助用户评估存储容量的增长目标。