海康威视C2000PRO系列的固态硬盘近期进行了一次升级,使用新版的SMI2262EN主控+紫光3D TLC替代了旧版的群联代工的E12主控+东芝3D TLC的方案,并且提供了偏重于速度和稳定的双固件。其实E12和SMI2262EN很难在直观性能上判高低,东芝和紫光的原片这个也有很多值得评价的地方,但是这一切都不是最关键,我最有兴趣的是这个双固件,双固件不稀奇,双固件的设计方向偏重点完全不同,这令我感觉很有意思,所以直接下了一块解析下这东西究竟是什么梗。
▲从上图来看,其实这些来自销售端的资料还是有误的,软件支持的话,其实C2000PRO旧版完全是群联公版可以兼容群联的TOOLBOX以及刷机工具,并不是没有软件支持,而新版很明显海康威视利用SMI提供的源码定制了一个TOOLBOX命名为Hikbox。
▲海康威视新版C2000PRO 1TB包装正面
▲海康威视新版C2000PRO 1TB包装背面
▲开箱
▲主体以及附件
▲SSD正面
▲去标签正面
▲SSD背面
▲海康威视新版C2000PRO 1TB使用了正反面各两颗共四颗UNIC紫光的闪存UNN1TTE1B1JEB1
▲从紫光提供的RAW NAND参数来看,UNN1TTE1B1JEB1是一颗8Die的256GB的NAND,单Die 256Gb也就是32GB,FBGA132封装。从接口标准仅为ONFI3.2/4.0来看,一定是出自IMFT的闪存,也就是说不是来自INTEL就是MT镁光。其实按照业内传闻,紫光的闪存其实就是INTEL的B16A,64层3D TLC闪存。那么剩下就一个问题,究竟视之为正片还是白片呢?
1、按照紫光自己的说法是正片,那么就是INTEL B16A紫光买过来自己打磨而已。
2、紫光有没可能直接买回来自己切割封装晶元呢?可能是有的。
▲主控为SMI的2262ENG,和INTEL 760P一样使用了铝壳罩对主控进行被动散热,只不过INTEL 760P使用的是2262EN的降级版主控2262而已。
▲缓存正反面各一颗共两颗NANYA NT5CC256M16ER-EK
▲从NANYA提供的DATASHEET来看,NT5CC256M16ER-EK是一颗DDR3L-1866的512MB缓存,两颗组成1GB的缓存。
CPU:Intel Xeon-W 2175
主板:Supermicro X11SRA-F
内存:Micron DDR4-2400 ECC-UDIMM 16GB x4
散热:Thermalright AXP-100 Cooper
网卡:Intel X540-T2 10G
电源:SilverStone SX5000-G
机箱:SilverStone GD-9B
▲我自己的HP MircoServer GEN8卖掉之后购入了这套服务器平台作为家庭中心,数据分层三层,
第一层安全数据层为Intel DC P3600 U2 1.6TB、Intel 750 U2 1.2TB、Unigen U2 1.2TB以及Kimtigo AIC 1TB四块企业级MLC SSD组成,高速且稳定。
第二层为高速缓存层,使用两颗M.2 SSD组成,也是M.2 SSD的测试区域
第三层为低速层,使用四颗SATA SSD完成,支持热拔插。主要用来验证各种系统的代码应用,热拔插方便替换测试环境。
共20TB SSD存储,无HDD,使用万兆网卡作为家庭网络中心的标配。
这个双固件并不是我们理解中的两个包,而是一个SSD TOOLBOX,默认固件是高速固件HBAF28FT,使用TOOLBOX刷一次会变成稳定固件HBAF28ST,再刷又会变回高速固件HBAF28FT。固件地址要扫描包装盒里的二维码地址进去下载即可。
▲刷完固件之后建议关机后开机让其彻底生效。检验的方法除了TOOLBOX之外可以用CrystalDiskinfo 8.0检测固件刷新后是否生效:
▲HBAF28FT
▲HBAF28ST
▲HBAF28FT
▲HBAF28ST
▲AS SSD Benchmark 2.0的空盘1GB数据块和98%满盘10GB数据块的两个固件测试对比,有一定衰减,但是并不大,在可接受范围。
▲HBAF28FT
▲HBAF28ST
▲CrystalDiskMark 6.0.2 的空盘1GB数据块和98%满盘32GB数据块的两个固件测试对比,可以很直观反应Windows环境下磁盘最好的表现和最差的表现。差距相对来说变化不大,这只能说是SLC Cache设计的比较大且比较科学造成的结果,普通玩家大部分基本就看看这些。
有个大家都容易碰到的结果是往往空盘去测试的结果有可能还不如接近满盘下的结果,普通玩家会很迷惑,其实这不是您测试的问题,而是盘本身的性能浮动较大,取决于SLC Cache和GC的机制,你测试的那会正好RP大爆发了,可能满盘下也会给你个高分,但是即使你空盘下,赶上主控忙碌状态对盘的性能没有协调到最佳状态时候,可能就给个低分,再次测试可能又高了,这是大部分3D TLC的消费级SSD的共性。
▲向SSD里写入一个16M的文件,这文件头的前16位字节如上图白色区域所表示,这也是该文件唯一的文本字符串,然后将其删除,如果TRIM工作,控制器也将删除这个数据,这时候软件让你等待大约20秒后然后按ENTER继续,然后关闭软件再次打开。
▲再次打开软件,提示原白色区域的字节已经被0所填充,说明主控固件的TRIM机制有效。这里两个固件都是没有区别的。
▲HBAF28FT
▲HBAF28ST
▲URWTEST使用随机模式QD1深度随机往SSD里面以2GB数据块大小为单位写入并且反馈即时的写入速度,写满了盘之后可以进行一次数据校验,校验的过程就是随机读取的过程,而校验的结果就是数据完整性的检测。这个测试更接近我们日常的应用等级。当全盘写入完毕会计算出一个平均写入速度,写完后校验读取一次全盘,计算出一个平均的读取速度,其实这里来看的话,高速固件还不如稳定固件,为了验证稳定性,我们就需要看下面的SNIA的PTS测试。
消费级SSD大部分都在NTFS格式下的Windows桌面环境中用那些耳熟能详的流行软件进行测试,因为消费级的大部分应用场景确实就那些;而真正适合企业级SSD的测试项目绝对是SNIA组织发布的PTS1.1规范,PTS1.1规范了如何测试企业级闪存设备或固态存储,这也是因为业界希望有一种来比较SSD的科学方法,这也是需要SNIA测试规范的原因。
这个测试,如果性能浮动太大的话,可能永远无法达到稳定态直到测试中断,或者如果Earse机制偶发性失效出现问题,这个测试也会中断,所以不是什么盘都能得到最终的测试结果。
SSD的写入性能在很大程度上取决于NAND的写入历史。SSD一般有三个写阶段:
1、FOB(全新从盒子里拿出来的状态)
2、Transition(过渡)
3、Steady State(稳定状态)
▲以上图例来自SINA PTS 1.1测试规范
Transition(过渡)过渡是FOB和稳态的良好表现之间的阶段。大多数情况下,性能会随着时间的推移而持续下降,直到达到稳定状态为止。SNIA PTS1.1的测试规范则很严格的监控了FOB到稳定态的每一个阶段,以及评估标准帮你去确认你的企业级SSD确实达到了稳定态,所以根据以上溯源我们有了如下的操作:
软件系统及设置
操作系统 : Ubuntu 19.04 Disco Dingo (development branch)
内核版本 : 5.0.0-11-generic
测试软件 : fio-3.14
Number of jobs : 4
Number of outstanding IOs (iodepth) : 32
▲这个测试使用了4线程进行测试。双核加超线程环境我相信是目前最广普的环境了,比较具有代表性。
SSD的序列号以及固件版本是必须要提供的,说明测试的针对性和客观性。
· Model Number: HS-SSD-C2000Pro/1024GB
· Serial Number: AA000000000000000266
· Firmware Revision: HBAF28FT(Speed FW)、HBAF28ST(Stable FW)
测试方法
进行Secure Erase安全擦除
预处理:128K持续写入双倍SSD容量
每一轮测试包含.512B,4K,8K,16K,32K,64K,128K,以及1MB数据块大小,每个数据块在100%,95%,65%,50%,35%,5%和0%运行读/写混合测试,各为一分钟。试验由25回合(Round)组成(一个循环需要56分钟,25回合=1400分钟)
使用4K随机写入的IOPS作为测试目标,写入振幅20%平均值与测量值线性最佳拟合线的斜率作为验证进入稳定态的标准。
▲IOPS稳定态验证图-QD32显示使用4K QD32随机写入的IOPS在(0,1,2,3,4)回合进入了稳态,这里需要说明的是,两根虚线是20%性能浮动的控制线,必须连续五轮控制在虚线内才有可能通过这个测试,当性能稳定的盘上去,一般来说都是(0,1,2,3,4)直接进入稳定态了,而稳定性差点的盘上去,可能就是(7,8,9,10,11)这样的回合进入了,性能浮动较大的盘如果不能控制在20%以内的话,那就永远通不过这个测试,所以这个环节,从FOB状态到稳定态,对于新版C2000Pro 1TB而言:
Speed固件跑的浮动偏大,性能一直在50000-55000 IOPS之间浮动,一直跑到(14,15,16,17,18)才过关。
Stable固件几乎没有振幅,完美的一条直线,直接(0,1,2,3,4)回合过关,性能浮动远低于通过测试的20%振幅要求,说明性能在过渡阶段良好,且过渡到稳定态的过程中效能稳定。
▲IOPS稳态收敛图-QD32显示相关变量如何收敛到稳定状态的过程,Stable固件真的稳如泰山。
▲IOPS测试2D图-QD32
▲IOPS测试3D图-QD32
在稳定态下:
Speed固件4K QD32随机读278848.6 IOPS,随机写51520 IOPS。我曾经测试过C2000 2TB的盘获得的数据是4K QD32随机读240936 IOPS,随机写52553 IOPS。这样就可以给新版C2000PRO 1TB一个直观的对比评价。
Stable固件4K QD32随机读180107.2 IOPS,随机写38495 IOPS。
虽然主控此时在不停的协调整个读写过程,应付不同数据块大小,不同读写比例的频繁切换,理论上硬件资源已经被榨干,就看此时此刻的主控还能否保证NAND的稳定高速读写。
测试结果全程无0 IOPS的数据出现,稳定态下的随机读,随机写和随机读写保持稳定渐进趋势,每个数据块大小读写与混合读写均能顺利完成测试,都是稳定态下效能稳定的体现。
这个测试由于是高速连续不间断轰炸,所以固件根本没有时间去GC回复效能,实打实的打出了这个盘最差状态下的表现。
这个测试的目的其实是模拟一个残酷且频繁的操作环境,将主控资源榨干到接近0,测试表现力,建立起一个最低的性能基线,然后给桌面版或者服务器端客户一个应用体验的参考,说的俗一些就是你们在实际服务器应用里再怎么瞎折腾也只会比这个结果更好,不会更差
测试方法
进行Secure Erase安全擦除
对于['1024k', '64k', '8k', '4k', '512']数据块大小进行持续读写60秒为一回合(Round)
使用1024K持续写入的吞吐量作为测试目标,写入振幅20%平均值与测量值线性最佳拟合线的斜率作为验证进入稳定态的标准
▲带宽稳定态验证图-QD32显示从FOB状态到稳定态,对于新版C2000Pro 1TB而言,在执行1024K QD32持续写入的时候:
Speed固件跑的性能一直在250000-280000 IOPS之间浮动,直接(0,1,2,3,4)回合过关,优秀
Stable固件几乎没有振幅,完美的230000 IOPS附近一条直线,直接(0,1,2,3,4)回合过关,卓越
▲带宽稳态收敛图-QD32显示相关变量如何收敛到稳定状态的过程:
双固件表现都异常的稳健,只不过高速固件的峰值偏高一点点而已。
▲读写带宽测试2D图-QD32
我们可以看到QD32深度下持续读写各个数据块下的平均表现力,
Speed固件持续读最大带宽3125.412 MB/S,持续写最大带宽2565.577 MB/S。
Stable固件持续读最大带宽2585.686 MB/S,持续写最大带宽2244.520 MB/S。但是就读取而言,64K持续读就是巅峰了,增大数据块大小读取速度发生降低。很明显Stable固件把持续读的优化放在64K上面了。
测试方法
进行Secure Erase安全擦除
预处理:128K持续写入双倍SSD容量
对于['8k','4k','512']数据块大小进行100%读,65%读35%写,100%写的随机读写测试,测量最大最小以及平均的延迟,60秒为一个回合(Round)
使用4K随机写入的平均延迟作为测试目标,写入振幅20%平均值与测量值线性最佳拟合线的斜率作为验证进入稳定态的标准
▲延迟稳定态确认图-QD32显示了4K QD32随机写入过程中:
Speed固件的平均延迟的均线在14.5微秒左右,振幅在13-16微秒之间波动,在(8,9,10,11,12)回合达到了稳定态。
Stable固件平均延迟依然稳定一条直线25微秒,不动如山,在最理想的(0,1,2,3,4)回合达到了稳定态。
▲延迟稳定态收敛图-QD32显示相关变量如何收敛到稳定状态的过程。
▲平均延迟的比较,两个固件有差距,但是不明显。
▲最大延迟立判高下了,高速固件的写入延迟瞬间被拉到了200ms以上,而稳定固件的写入延迟被牢牢锁在20ms以内,混合读写以及读取延迟也是类似的情况,只不过差距没有写入延迟那么夸张而已。
这里涉及到的问题就是主控资源的充足度以及LDPC解码资源和耗费时间问题之间的平衡调节问题了,相对于3D TLC而言,写入部分的最大延迟普遍性高一些和以下一些因素有关:
1、主控的资源,比如主控的主频以及核心数,ARM构架或者MIPS构架的实际效能。
2、LDPC硬软解码的能力。
3、主控固件的硬软件开发能力。
新版C2000PRO 1TB的Speed固件完全是无视了最大延迟只看重最大爆发速度,而Stable固件在这里的表现是可圈可点,整体最大延迟控制在20毫秒以内,说实话,我非常吃惊这个表现。
▲平均和最大延迟3D图-QD32是整个以上延迟方面表现的汇总数据。
这个对比数据可以很直观反馈两个固件的平均延迟以及最大延迟在读、混合读写、写之间的差距,这里来看完全Speed固件是被Stable固件妥妥秒杀的结局。
测试方法
进行Secure Erase安全擦除
执行4K随机写入1分钟为一回合(Round),写入4倍全盘容量或者24h,以先达到者为准
计算各个回合的平均IOPS(Avg IOPS)和平均延迟(Avg Latency)
▲写饱和平均IOPS图-QD32
这个测试双固件都写入了50轮,纯写入任务相对于混合读写比例的测试要简单很多,这个测试的压力程度较低,主要考验NAND写入性能的稳定性,所以从空盘到写满四倍全盘容量的过程中没有发现4K随机写入性能发生衰减,4K QD32随机写入两个固件都稳定在32W IOPS附近
▲写饱和平均延迟图-QD32显示新版C2000PRO 1TB双固件的平均延迟均稳定在0.375-0.4毫秒。
这个测试实际是个镜像测试,可以发现其实IOPS的上升和平均延迟的下降是个镜像关系,IOPS上升了,平均延迟就会下降,反之同理,他们保持着相对的同步性,且非常直观。
这个测试其实说明两个固件的表现都是很优秀。
下面我们把高速固件(Speed)和稳定固件(Stable)的数据进行一个直观图标对比:
▲IOPS测试环节,确实Speed固件在读写上有着绝对的优势。
▲带宽测试也是Speed固件占据着绝对的优势。
▲平均延迟测试中,其实读的话,Stable固件延迟更低,而写入的话,Speed固件的延迟更低,但是我们前面说过了平均延迟的差距其实都不算差距了,关键是最大延迟的差距太大了。
▲写饱和度测试的IOPS两者基本都在一个水平线上,难分轩轾。
这两个固件如果让我选择的话,我可能会更倾向于Stable固件,因为SNIA的PTS测试中,Stable固件几乎无可挑剔,几乎可以正面硬抗企业级产品,甚至很多企业级产品都做不到稳定固件那么稳健的数据。
1、Stable固件 在最大延迟上面相对Speed固件有着无可比拟的优势。
2、Stable固件在SNIA PTS测试中均以(0,1,2,3,4)轮直接进入稳定态代表着可靠性标准预设相当高。
3、速度上快一点慢一点其实不是SSD唯一的评估标准。
▲HBAF28FT Speed固件70度是个写入降速阀,达到70度,写入立即降速
▲HBAF28ST Stable固件70度也一样是个写入降速阀,达到70度,写入立即降速,温度降低到70度以下,速度立刻恢复。
而我们实际应用测试的时候发现,HBAF28ST大概比HBAF28FT低4度左右,所以这个盘刷成HBAF28ST是相对比较适合笔记本使用的,性能稳定,温度也相对较低。
新版C2000PRO虽然更换了方案,其实并不属于什么缩水行为,虽然NAND使用紫光这一点确实让我摸不着头脑,但是看测试而言,双固件方案确实给不同的需求者提供了更多的应用范围:
1、台式机选择使用Speed固件,外加散热片即可。只需要温度控制在以内即可,对于有性能一致性要求较高的用户可以选择Stable固件。
2、笔记本优先使用Stable固件,速度降低一点,温度也降低4-5度左右,整体性能的稳定性以及一致性会获得大幅提升。
SMI这几年给INTEL做代工被培养出了好习惯,对于Stable的理解程度明显不是群联可以比拟的,至少在企业级范畴是可以摸到边的了,群联感觉更多的是做一些业界的风向标产品,但是从来群联没被INTEL或者APPLE这些大厂折磨过,所以产品的底蕴还是和被INTEL折磨过的SMI有着一定的差距。
SMI2262EN主控相比INTEL 760P使用的SMI2262还是高一个档次,和HP EX920使用的是同一款主控。
NAND而言,紫光NAND无论是INTEL B16A的贴牌货,还是自购封装,按照紫光的尿性和卖出的价格还是在白片之上的,价格略低于INTEL原片,但是使用这个NAND着实让人有点不爽而已,虽然都说支持国产,但是这个国产贴牌确实有点LOW,实话实说。
目前C2000PRO 1TB的新版和旧版同价格,至于如何选择,
1、主控和固件来说,新版更好
2、闪存而言,旧版略好
3、性能来说,新旧差不多
4、稳定性而言,新版胜出
我的建议是,有笔记本安装需求或者对稳定性有特殊要求的用户直接选择新版刷Stable固件即可,旧版的温度还是太过于感人。
对这个盘来说,良心大碗肉说不上,羊头狗肉更说不上,对于用户层面来说只是说给多用途需求的用户更多一个选择而已,对于销售层面也间接反馈出群联的产能不足,或者海康也在试图寻找其他的方案以保不受制于人。
联系客服