存储极客谈“SPC-1负载分析与AFA寿命评估”-阿里云开发者社区

开发者社区> 数据库> 正文

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

简介:
存储极客
 
这是一群存储偏执狂
 
为存储而生,跟存储死磕
 
各具独家秘笈
 
有观点,有碰撞,有干货
 
从2015年8月18起
 
做客存储极客栏目
 
与你分享存储里的那点事儿
 
企业存储界公认的SPC-1 Benchmark读写比例是多少、I/O大小如何、都是随机访问吗?以该测试成绩来估算闪存阵列的SSD寿命是否合理?有没有更好的办法?且听我们细细道来……
 
在《存储极客谈“如何绕开一堆复杂技术参数评估SSD寿命”》一文中,一方面我们讨论了最直观的闪存写寿命指标——DWPD,以及由此而建立起来的企业级SSD等级体系;另一方面根据某份SPC-1测试报告中的SSD型号,查询出其DWPD水平并归类到读密集型SSD。
 
接下来就是如何评估典型应用负载?对应的闪存阵列SSD应该怎样配?我们有哪些建议
 
SSD磨损速度:SPC-1只代表极限负载
 
首先,SPC-1作为一款性能Benchmark测试,肯定是跑到满负载。那么它的IOPS成绩中写入占到的比例有多大,数据量又是多少呢?
 
 
这部分资料引用自《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的参数类型和值举例进一步分析。
 
 
结合红框标出的一项Read fraction——读I/O所占的比例,下面列出的完整IOPS测试结果就更好理解了。另一项Transfer size(512 byte blocks)如果是8,应该代表I/O大小为4KB;SMIX则是按照一定比例的混合块,经计算其平均I/O大小为14.4KB。
 
 
 
如上图,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测试成绩很可能会有提高。
 
同时有必要指出,真正的生产存储7x24常年平均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等。
 
 
 
根据资料,Dell SC9000的控制器硬件应该基于最新一代的PowerEdge R930服务器平台,每控制器两颗3.2GHz 8核Intel Xeon(至强)处理器。Dell SC4020控制机箱的设计更加紧凑,每控制器配置一颗4核Xeon CPU。
 
轻松获得当前系统及应用目标的写入量
 
在理清了由存储写入IOPS/容量来计算SSD配置的方法之后,还剩下一个问题——如何获得应用负载需要达到的写入量?
 
 
有的存储厂商提供了相应的工具,能够收集主机端性能信息,以此协助存储解决方案的规划和选型。比如我们在《【工程师笔记】第三期:如何评估应用的存储性能需求?》一文中介绍的戴尔免费增值工具DPACK,“能够对用户的存储过程进行拆分分析——包括应用下发到存储,以及存储设备自身的处理两部分。以判断在存储不成为瓶颈的情况下,应用能够跑多快。所收集的数据会生成专业报告(涵盖多种不同语言),客户可以更好了解自己的环境,基于报告做出最佳的业务决策。”
 
除了性能数据,DPACK还能报告当前数据总量和每天的写入量,帮助用户评估存储容量的增长目标。








====================================分割线================================

本文转自d1net(转载)

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章