本次PCEVA定制版的硬件部分为建兴企业级NAS系列的用料,闪存颗粒最多出现同一块盘两种批次(PCB正反面不同)而已,完整掉电保护所需硬件电路也都在。大家也都看了前天石头写的事件说明了,很明显硬件没问题,造成本次事件的关键是固件因素,既然石头已经先发帖了,那本帖我也来稍微深入的分析下这次初版固件的问题。
建兴企业级的SATA产品分为NAS系列和N9S系列,其中NAS系列采用的是东芝19nm TYPE C eMLC,默认预留OP为28%,带完整掉电保护,而N9S系列采用的是东芝A19nm MLC,默认预留13% OP,并且掉电保护为可选功能。主要区别是由于前者预留OP更多,颗粒耐久度更好,所以稳定态写入性能和寿命为后者的N倍,在企业级应用中NAS被称作混合型SSD,而N9S则称作读取型SSD。
既然如此,NAS系列的固件容量就应该是100GB/200GB/400GB/800GB,而N9S的容量则为240GB/480GB/960GB甚至1920GB。但是本次定制版的初始固件容量为无2层OP的256GB/512GB/1TB,问题是这并不是建兴重新开发了完整容量的固件,而是简单的取消了2层OP的容量给用户操作,达到了提高用户可用容量的目的,并以此和企业级固件做出区分,理由在上面石头的链接里也有给出。应该说,大部分消费者们对容量还是很敏感的,如果这个大容量的固件能够稳定使用的话,当然是皆大欢喜,可惜事实并非如此,而且从1TB的问题上可以看出,这个固件还没有经过验证就拿出来了。
建兴OEM的最大客户是DELL,几年前我就提过当初DELL带了一批工程师去建兴开发固件,几年下来发展到3位数的工程师团队,因此DELL的固件可以说是建兴固件的正统,再由DELL固件演变后就最终变成了公版固件,前者针对DELL服务器做优化,后者则可作为其它客户的基板固件,然后再按照客户大小和实际需求调整,近2年建兴加大了企业级部门的投入,因此在消费端出现了断层,经验丰富的工程师调派去做企业级客户,而消费级端年轻工程师总会在经验上有各种欠缺,初版消费级产品的固件问题会较多,实在解决不了则再让老工程师调回来帮助改进来解决。
发现1:对之前发我测试的S920样品和本次的PCEVA订制SSD是否为DELL货的怀疑
在产品的型号后缀中我发现了(DELL)tm字样,我是否该怀疑给我送测的S920的样品其实是DELL的NAS系列备品,然后量产时改变型号为S920和简单的扩容到512GB的操作呢?我相信建兴给DELL的货不可能1块SSD颗粒均混搭吧。一般来说,一块SSD上单面的颗粒需要保证尽可能周期一样,而1块盘上甚至出现了8种完全不同批号的颗粒,况且还是14年和13年,台湾和大陆封混搭,那么是否市面上的T9标准版均为库存甚至退单颗粒呢?
发现2:经过我之前在发现定制版1TB固件出现问题后的跟进测试,本次带掉电保护的PCEVA定制版SSD不同容量下的固件垃圾回收设置略有不同,不过均是基于建兴NAS固件的框架扩容而来,初版固件性能表现会非常的不稳定。
如图所示,256GB的PCEVA定制版SSD固件当写入数据量超过60%容量后(大约150-160GB)就会进入被动垃圾回收模式,这说明此时固件认为SSD已经填满,再写入数据需要先擦除内部数据,对性能的影响很大。
如图所示,512GB的PCEVA定制版SSD固件当写入数据量超过80%后会进行被动垃圾回收。这说明此时固件认为SSD已经填满,再写入数据需要先擦除内部数据,对性能的影响很大。
1TB的PCEVA定制版固件表现相信会和上面2个型号的一样,在数据量达到一定程度后就会进入主动垃圾回收模式影响性能表现。因此怀疑256GB/512GB/1TB的固件分别是由原NAS系列200GB/400GB/800GB的固件简单扩容而来。为何1TB的我没贴图,因为1TB的版本并没完成整个验证过程就已经完蛋了。
扩容固件恢复到默认情况下又是如何的呢?
新的200GB固件在开放2层OP到28%后,在150-160GB区域依然出现性能下降,和原本256GB容量的60%范围150-160GB吻合。
新的400GB固件再开放2层OP到28%后,在填满400GB范围后出现性能下降1个坡度,这是因为垃圾回收消耗了主控资源。
新的800GB固件再开放2层OP到28%后,在填满800GB范围后出现性能下降1个坡度,这是因为垃圾回收消耗了主控资源。
发现3:只是对量产工具做简单的扩容设置,导致了1TB的PCEVA定制版SSD缓存溢出。
Marvell 88SS9187 Monet 2.0主控最大支持1GB外置缓存,外置缓存里一般存放有映射表和关键信息。PCEVA定制版的容量和外置缓存对应分别为256GB配512MB,512GB配768MB,1TB配1GB缓存。建兴NAS系列的容量为200GB/400GB/800GB,在固件全局设计时,一般会预留出一部分缓存地址专门做为映射表范围,并针对这个范围作出后期优化,最后还要经过稳定性验证。本次的问题出在简单通过扩容后的SSD虽然释放了用户可用容量,但是硬件上缓存容量却并没提高,由于256GB和512GB的闪存/缓存容量比为1GB:2MB和1GB:1.5MB,所以没出现这个问题。但是1TB的闪存/缓存容量比为1GB:1MB,这显然超出了原本设计的NAS 800GB固件内缓存的规格和范围(如果1GB:1MB够得话256GB何必要搭配512MB),可能造成了缓存溢出的bug,当用户写入的数据超出缓存内映射表范围后,表现如下:随机认不出SSD,显示需要初始化,初始化时会失败,丢失分区和数据不稳定,每次正常关机或者休眠再次开机或者唤醒也需要重建映射表,硬盘灯常亮并卡住,主控莫名其妙死循环,后台资源占用100%等等。
相关人员应该只是简单的通过类似下图中量产工具里拉高容量量产。
上图中为台湾某厂的量产工具设置图,以此举例,左边红框改下产品型号,中间红框改下容量和垃圾回收策略就以为完事儿了。我相信目前市面上在卖的T9 128GB和256GB不带掉电保护的,和带掉电保护的型号区别只是量产时候像上图那样在中间区域把掉电保护逻辑的框给去掉。会玩量产工具并不代表你是个负责任的工程师。
从本次1TB型号事故可以看出,建兴在改动量产设置后并没有再次验证产品扩容后的健壮性,这是很严重的态度问题。所以鉴于已经发生的事情,重新开发并完整验证扩容固件肯定不现实,消费者需要尽快的使用上安全的固件,所以我们最终要求建兴方面针对PCEVA定制版产品做到请保证使用完整的最新版公版NAS系列的固件,完整保留设计时的28% 2层OP容量,确保一定要带完整的掉电保护功能,容量依次变为200GB/400GB/800GB,这样就省去了重新开发和验证固件的时间。
从上面一系列的测试可以发现,PCEVA定制版SSD的固件确实基于建兴NAS家族,只是初版固件被不负责任的人员简单扩容导致了问题,新版固件只是还原了2层 OP的容量并更新到了最新的公版固件版本。
这里拿刷新成800GB的定制版新固件举例,新固件多出了个E5的值,这个值的定义为掉电保护电容的状态,如果原始值 = 0则说明掉电保护工作正常,如果原始值 = 1则说明掉电保护工作异常,不带掉电保护电容的T9系列是没这个定义的。另外增加2层OP后,备用快的数量也被释放出来,这一部分也可以参与到稳定态性能优化。为了方便各位PCEVA定制版用户看SMART值,我提供个工具箱。(请使用微软的默认AHCI驱动,右键管理员权限运行。)
另:截止目前,网上已经有卖新版的T9标准版了,128GB和256GB容量型号的颗粒均是4颗闪存的黑色壳子,美名其曰散热增强,出厂固件从原本的0306变成了03G3,最新固件为03G5,解决了原B1定义3000 P/E和温度的显示问题。不过我这里也提醒一下,据说新版的4颗装性能并不稳定,因为NAS系列没有4颗装的固件,这个固件也是通过量产工具简单的魔改出来的,不信的自己去连着跑2次ASSSD就明白了。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|