企业存储界公认的SPC-1 Benchmark读写比例是多少、I/O大小如何、都是随机访问吗?以该测试成绩来估算闪存阵列的SSD寿命是否合理?有没有更好的办法?且听我们细细道来……
在《存储极客谈“如何绕开一堆复杂技术参数评估SSD寿命”》一文中,一方面我们讨论了最直观的闪存写寿命指标——DWPD,以及由此而建立起来的企业级SSD等级体系;另一方面根据某份SPC-1测试报告中的SSD型号,查询出其DWPD水平并归类到读密集型SSD。
接下来就是如何评估典型应用负载?对应的闪存阵列SSD应该怎样配?我们有哪些建议
SSD磨损速度:SPC-1只代表极限负载
首先,SPC-1作为一款性能Benchmark测试,肯定是跑到满负载。那么它的IOPS成绩中写入占到的比例有多大,数据量又是多少呢?
在每个ASU上又运行数量不等的I/O Stream,根据下表拿ASU-2的参数类型和值举例进一步分析。
由于是评估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性能上已经不弱,那么它支撑的应用负载通常是多大呢?
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等。
轻松获得当前系统及应用目标的写入量
在理清了由存储写入IOPS/容量来计算SSD配置的方法之后,还剩下一个问题——如何获得应用负载需要达到的写入量?
除了性能数据,DPACK还能报告当前数据总量和每天的写入量,帮助用户评估存储容量的增长目标。