闹得沸沸扬扬的西数SSD冷数据事件,究竟是怎么回事?固态硬盘大科普+推荐!

您所在的位置:网站首页 东芝bics3寿命 闹得沸沸扬扬的西数SSD冷数据事件,究竟是怎么回事?固态硬盘大科普+推荐!

闹得沸沸扬扬的西数SSD冷数据事件,究竟是怎么回事?固态硬盘大科普+推荐!

2023-10-20 12:21| 来源: 网络整理| 查看: 265

作为一名近10年吧龄的贴吧潜水党,前些天一打开某硬件贴吧就是扑面而来的一件事,它们都有一个关键词——冷数据,而且事主几乎都是同一个品牌——西部数据。

简单地介绍一下这件事吧,起因就是有用户发现自己的西数3D蓝盘SSD(方案是马牌88SS1074+闪迪3D TLC)所存储的一些很长时间不访问的内容(也就是他们常说的“冷数据”)的读取速度慢得离奇,经过贴吧大佬的挖掘,基本确定了原因和事主,也就是西数/闪迪(它们是一家人)的部分固件的部分SATA盘(PCIe盘还没被石锤出这个问题,买到手的人好好用)。

这里还要插播一下我的经历。本来我笔记本上的240G硬盘就不够用,这一年来我一直想买一个2.5寸的SATA盘,可是我等到今年12月也没等到闪迪Ultra3D大降价(500GB历史最低369)(别问为什么不买一样的西数蓝盘,西数的那个售后一言难尽,不过在京东买也没什么大不了的,当然还是因为西数也没怎么降价),所以我就在今年双十二前花670元买了英睿达MX500 1000GB(sm2259+美光96L的新方案),现在用得很开心,也算是机智的避开了这次的事故。

那这次事件的原因是什么呢?我们要从闪存的原理开始说起。闪存写入的原理是量子的隧穿效应,通过给浮置栅极充电来写入数据,但是这种说法实在是太晦涩……

打一个不恰当的比方,闪存(无论是NAND还是NOR)的每一个存储单元都相当于一个小电池,通过里面的电量来存储数据,对于SLC来说就用两种电量就可以表示了(因为SLC的每个单元只存1bit的数据),所以SLC在寿命、速度上很优秀,但是成本很高。为了降低成本,出现了MLC(2-bit)、TLC(3-bit)、QLC(4-bit)乃至PLC(5-bit)……以TLC为例,TLC每个单元存3bits数据,2的3次方是8(大概这是高中数学的排列组合),也就是用8种电量就可以存储3bits数据了,电量最低的数据是111,充“满电”是000,中间的6种情况就不再赘述。

关键的地方来了!电池这种东西是会自放电的,闪存的单元也是如此,也就是“漏电”,对于SLC来说漏电问题不大,只要不漏光电数据就不会发生改变,对于MLC来说问题也不严重,但对于TLC来说问题就大了,因为一共8种电量级别,稍微漏一点电,存储的数据就会发生变化,例如满电的数据000,漏电后就会变成001,再漏电就变成010,再漏电变成011,再漏电变成100……

但是对于存储器来说,保证数据的准确性是基本要求,所以就要迎来我们要说的主角——ECC,中文名叫“错误检查与校正”,通过真实数据之外的少量校正码来实现对数据中的出错进行校正,具体的技术有MLC时代的BCH和TLC时代大行其道的LDPC(这个技术当初因为5G标准的制订而闹得沸沸扬扬,直接出圈),正是因为LDPC,TLC闪存才得以实用化,因为TLC的出错量只能上LDPC这种大招才能足以校正。

但是,ECC是在主控中进行的,SSD主控这东西大家应该能了解,性能并不是特别强,就是一个单片机水平上的东西,所以ECC对主控的压力还是不小的,假如是常用的“热数据”还好办,刚写入,漏电也不多,顶多错个一位两位,ECC瞬间就完成了,关键就是长时间装死的“冷数据”,会出现大量的错误位数,大量的出错位会带来巨大的ECC压力,这就把数据的读取速度给降了下来,这就是我长篇大论后得出的结论。

有没有解决这个问题的方法呢?就是主控在系统空闲的时候,将冷数据搬家,重新“加热”。但是这样做会带来另一个问题——寿命,闪存的寿命只能说一般,尤其是TLC及之后的闪存,即使是3D NAND这种可以降低漏电的技术,TLC也勉强算是可用的级别(大概2000次PE,可能还要算上冗余的贡献),这要是再频繁搞数据“搬家”,SSD的寿命就别指望了。

而决定主控对数据搬家的策略的东西,叫“固件”,就是SSD在开卡时写入的东西(也就是大部分SSD暴毙的重要原因),激进的固件会让数据“热热乎乎”,但是寿命就一般了,而“佛系”的固件就完全相反了。

其实“冷数据”并不是新问题了,好多年之前的三星840EVO(初代TLC商用盘)就出过这个问题,主要原因还是初代TLC在固件上优化一般,后续三星似乎通过固件解决了这个问题。

上文中提到了一个词“冗余”,那这是什么意思呢?我们还是要从闪存说起,闪存在制造的时候其实都是会留出一些多余的空间,例如美光(当时应该是IMFT,和英特尔的合资厂)的32层TLC 3D NAND(这个NAND可以开成MLC,我就收藏了一个这种MLC的英睿达BX300;另外用这种颗粒的TLC版是MX300,容量很怪异,275GB/525GB/1050GB,原因是384-Gbit的闪存颗粒太非主流了),单个Die的标称就是384-Gbit,但实际上芯片的存储量肯定会多一些,因为闪存也是芯片,不可能有100%的良品率,肯定会有一些出厂的坏块,封装测试、开卡的时候屏蔽掉坏块就还是合格品(这也就是闪存的价格低的原因,因为少量的坏块是允许的),当然如果坏块多得厉害的话就只能“抛弃”了(这也就是“白片”和“黑片”的一个来源,原厂的要求过不去但是回收当废品也算是物尽其用)。但是坏块再多,也会有多余的部分,这也就是冗余的第一个来源。冗余的第二个来源来自SSD的开卡。大多数SSD并不是完美符合二进制的容量,如240G和250G的SSD很多,但256G的就少见一些,但闪存颗粒是严格符合二进制的容量的,假如一个颗粒是128GB(1Tbits),那这样的SSD就用2颗闪存就可以了,共256GB,至于250GB的盘就是用剩下的6GB当冗余,240GB的盘就有16GB的冗余。

冗余有什么用?两方面用途:其一是“候补”,当SSD的寿命进入末期,闪存单元已经存不住电量的时候,主控会将这个“块”标记为坏块,将这个块的数据写入冗余块中(出错的数据就用ECC校正后写入),SATA固态硬盘的S.M.A.R.T.的05项就是这个过程的计数(但是我有一块盘连05这项都没有,差评!)。直到冗余块用完,这个盘就算寿终正寝(写废了,一般用户做不到这一点)。其二是为了当作静态SLC缓存。SLC缓存我介绍过多次了,就是将MLC/TLC/QLC/PLC……的一部分存储空间模拟成SLC来进行写入(也就是存储单元只有2种电量状态),由此获得更快的写入速度。而SLC缓存(SLC Cache)分为动态和静态,动态就是可以将全盘中有效的区域模拟成SLC写入,这样的话SLC缓存可以做到很大(最夸张的就是“全盘SLC Cache”,虽然会严重影响超大量持续写入的性能和寿命,但是可以将TLC SSD的三分之一都当作缓存来用,杂牌SSD最爱),动态SLC缓存是大多数TLC盘所使用的,缺点是写入放大会很大(也就会影响寿命)。而静态SLC缓存则是用冗余来充当的,将冗余部分以SLC的形式存在,写入数据时就先往冗余的SLC部分写入,写满了再往MLC、TLC……中写,这样的策略下SLC缓存的量不会很大,但是写入放大就低很多。我有一块创见220S(sm2256+美光2D TLC方案)可能就是这个策略,写入放大惊人地低(而且这个盘能看到对NAND写入量,在现在的SSD中很少见)。

写入放大又是什么呢?写入放大就是主机写入量超过对NAND写入量的现象,原因之一是闪存只能把整块擦除之后才能写入,这就会导致一些本来事不关己的老数据要被转移后再重新和新数据一起写入(有点像叠瓦式机械硬盘写入数据的情况,smR叠瓦盘是大坑千万别买!),这一过程就会造成对NAND的更多写入。原因之二就是动态SLC缓存,SLC缓存本来就是将数据先临时写成SLC,还是要重写到MLC、TLC……中,这部分就是写入放大的来源。原因之三就是上文中所说的给冷数据搬家。

回到最初的话题,冷数据的问题已经基本石锤,但西部数据却迟迟没有出面来解决,连声明都没有,就在装死,以至于事件不断发酵,流言甚嚣尘上,以至于西数、闪迪全家的SSD产品都被吧友拉入“黑名单”,甚至怀疑的对象蔓延到相同闪存来源的铠侠(东芝)家的产品(铠侠的闪存工厂就是当初东芝和闪迪合资建立的,所以闪迪的闪存也算是原厂正片)。还是希望西数及时解决问题,拖着不会有什么好处的。

最后再来闲聊几句,讲一讲我的几块固态硬盘的故事。

我手上共有6块SSD,最早的那块是群联的OEM盘,mSATA接口,来自我的神舟笔记本(2016年10月买的),128GB,群联PS3111-S11主控(这个主控真的弱鸡),群联封装的东芝白片。之前我一直以为它是TLC的盘,因为它有很明显的SLC Cache,但是写满SLC Cache之后速度依然能达到近200MB/s,让我有些怀疑它的真身了。然后几天之前我用俄罗斯大佬的群联Flash ID(百度得到的结果基本上都是论坛积分下载,我用谷歌找到了一家俄罗斯网站就是免费下载的)查了一下,结果竟然是东芝15nm MLC,虽然说15nm MLC口碑不好(寿命没比3D TLC强多少),而且这个盘是相当不靠谱的,曾经出现过暂时的掉盘(开机过程中这块盘直接从系统中消失了,重启就恢复正常了)。现在这个盘被我装上SATA转接卡,用在我专门用来压制视频用的老电脑上当系统盘,虽然这台电脑很老(速龙II X4 605e的CPU,至少有10年的历史了),但是加上SSD还是速度起飞。就在我查完Flash ID之后的第二天,这台电脑就不能开机了,我本来还以为是引导丢了,废了千辛万苦进了PE,才发现这个盘中所有内容(包括数据和分区表)都“蒸发”了,留给我一块干干净净的空盘,我只好重新分区装系统。看来这块盘真是朽木不可雕。目前写入量大约15TB,希望MLC能够让这块盘多撑几年。

我的第二块SSD是上文中提到的创见220S 240GB,2016年我花了500多在京东买的,前些天我把它拆开了,确认了是慧荣sm2256K搭配美光原厂TLC(创见220S据说换过多种方案,包括群联s11)。这款盘性能也很差劲,虽然写入放大很低,但是性能真是弱到难以接受,SLC缓内还算可以,但是不到4GB的缓存之后速度会降到52MB/s左右,这速度也就是QLC的水平,660P都比它强多了。当然性能弱的好处是凉快,有的主控(例如sm2258XT)性能弱鸡还热的要命呢(例如英睿达BX500),而且这个盘真的很稳。4年过去了,这个盘的寿命还有95%,写入量10TB,所以大家根本不用担心SSD会被写到报废,很少有人能做到写废闪存的程度。

老三是我现在工作机的系统盘,2018年5月我装机的时候买的(当时正是内存闪存疯涨的时候),三星sm961 256GB,三星2D MLC(512GB及以上的sm961才是48L 3D NAND)搭配Polaris主控,性能还算满意,而且这个盘并没有SLC Cache,全程MLC只写,不用担心写入降速的问题。就是当初买的时候实在是太贵了,价格近700元(OEM盘还没有联保,真正的960Pro价格更贵)。但是MLC用起来真的很爽,所以有条件的真的买一块970Pro吧,过了这村就没这店了。现在写入量约7TB(一直当系统盘,写入量不算大,就是几次重装系统的时候消耗了不少),寿命还有98%。

第4块盘是我的英睿达BX300 240GB,2018年6月购买(369元),用来装视频素材和工程文件。没错,还是MLC,而且是美光32L 3D MLC,虽然寿命上不用担心,但是看广大用户的反馈,这盘有爱掉盘的毛病,而且和英特尔平台的兼容性很差,英特尔驱动下这个盘的写入曲线就像心电图一样,但是MLC还是MLC,哪怕是240GB也能基本跑满SATA3的带宽。虽然MLC在寿命上不虚,但是2年多过去了我只写了2TB,闪存擦除计数(S.M.A.R.T.的AD项)也就20,也就是说几乎可以用到入土。

第5块是东芝RC500 500GB NVMe,2019年双十一的时候389元买的,我曾经写文评测这个盘(并且还得出了一个“阴谋论”),简单来说就是群联E12C主控+东芝96L 3D TLC,虽然顺序读写跑分连2000MB/s都过不去,但是SLC缓外能达到700MB/s,我也正是看中了这一点。缺点就是温度高,原因不明,感觉八通道的E12S都比四通道的E12C凉快,群联可能是做了手脚。本来我说买来跑虚拟机的,结果……现在装满了Galgame,虚拟机就见鬼去吧(说好的当虚拟机up主呢?)。现在写入约1.7TB,寿命还有99%(东芝的盘就是寿命掉的快,看着比较吓人,实际上等寿命跑完了保修也基本上没有了,但盘还能继续用)。

最后就是我在前几天买的英睿达MX500 1000GB,新版方案(旧方案是sm2258+64L 3D TLC,新方案是sm2259+96L 3D TLC)。我还算是美光的忠实用户,美光和铠侠三星比算是小厂,性价比比较高,口碑也还不错(就是某些型号的掉盘问题……而且没有联保的保修也是问题,所以只推荐京东自营购买)。美光的96L 3D NAND据说在寿命上不如64L,但是也无所谓了,无非是保修写入量差一些,反正也用不完,性能的提升才是实打实的。主控由原来的慧荣sm2258换成了sm2259,我没有查到二者在性能上的差别,只知道sm2259的工作电压更低(或许更省电?)。这款盘的写入是真厉害,全盘写入(HD Tune)几乎是一条直线,现在大容量SATA SSD的TLC直写已经能达到全盘不降速了,还要MLC何用?用了没几天,写入才400多GB,其中100多GB还是用来跑分了。

固态硬盘为什么要认准“原厂”?贴吧网友绝对是原厂的迷信者,原因就是原厂才有绝对稳定的正片来源,而大多数时候正片再差也比黑白片要强(当然白片也不是不能用)。

但是和贴吧网友的推荐截然不同,实际零售的SSD,销量第一的是网友很瞧不起的金士顿,三星都只能勉强算是“准一线”,最离谱的是山寨品牌“三星德乐”(和韩国的那个三星没有半毛钱关系)都能进前十一,网友追捧的原厂SSD只能算是非主流。

非原厂品牌中,只有浦科特能真正做到“出淤泥而不染”,坚持用原厂正片,其他品牌,如和浦科特师出同门的建兴也有偷换白片的黑历史(比如说部分建兴T10,就是群联的白片方案),创见也用过来历不明的闪存,而“金屎蛋”就更不用说了,前段时间比较火的金士顿A2000,开始的时候是美光96L原厂,过了半年闪存就变成金士顿标的白片了。

最后的最后,目前SSD的推荐。

SATA推荐:自从用了MX500 1000GB,我是腰不酸了,腿不疼了,连心脏都懒得跳了。英睿达MX500经过多年的发展,已经成为SATA盘的中坚力量,优点是便宜,比它强的(如860EVO)都比它贵,比它便宜的性能都不如它(前提是SATA盘范围内,毕竟现在廉价的NVMe已经杀到600元档,SATA盘反而没有价格优势了,唯一的优势就是兼容性好)。缺点就是保修一般,写入TBW不是特别多(但是够用),而且没有全国联保,出问题只能找经销商,所以只建议京东自营购买(京东的价格也不贵,而且即使是N线小县城也能享受次日达的快感)。

(我之前在京东买的海韵电源也是只能找经销商保修,这也就是淘宝很少卖海韵的原因。关键是十年保修啊,京东一定要撑过这十年啊!)

然后就是三星860EVO,也是我们的老朋友了,除了500GB版在性能上有些逊色之外没什么大问题,某些参数比MX500要强,当然价格也要贵不少。三星的盘只有到亚马逊海外购才能显示出性价比,可惜的就是黑五早就过去了。

西数蓝盘和闪迪Ultra3D就不推荐了,什么时候西数能把冷数据事件给个交代什么时候再让它们出冷宫。

还有一个非原厂品牌,叫泽石,京东上出现的新品牌,目前这个品牌的SATA盘(包括2.5寸和m.2 SATA)使用的是东芝原厂“企业级”3D TLC搭配马牌88SS1074,价格也是屠夫级别的,512G只要299,256G也只要199。看阵容这个盘很完美,可惜的就是这个牌子在固件上并不上心,即使是512GB也没做到理想的缓外性能。但是这个价格是真香,给老机器升级一下真的很合适,而且还有比较冷门的m.2 SATA(价格和2.5寸版一样)。

还有就是紫光S100,虽然不是原厂但是性能表现在群联S11方案中拔尖(英特尔白片)(但它上天也只是S11),但是价格不到299(480G)就不用考虑了。

铠侠TC10(就是原来的东芝TR200),S11方案,闪存当初是64L和96L摸奖(现在应该都是96L了吧,大概),性能也就那样吧,S11上天它也还是S11。

致钛等诸多厂商的长江存储颗粒的SATA盘,闪存是真不错,可惜的就是清一色的联芸MAS0902A太拖后腿,无外置DRAM缓存方案就是上天了它也摆脱不了弱鸡的命运。

还有就是QLC大家族了,现在我只有3个字——不要买!包括870QVO。

PCIe(NVMe)推荐英睿达P5,据说过热,尽量别买。铠侠RC10(东芝RC500),确实很热,但是真的很便宜(一个NVMe盘比MX500还便宜,1TB的),热一点就热吧,对性能影响不大(反正顺序读写性能也过不去2000),少看Crystal Disk Info,眼不见为净。铠侠RD10(东芝RD500),满血8通道下性能是一流水平,当然价格也不便宜,而且500GB版残血。铠侠RD20,和RD10很像,但是将500GB版的性能提高到满血(可能是闪存优化了性能),当系统盘比较合适。西数SN750/SN550,还是可以推荐的,但是有疑虑的人尽量就别买了,如果连带着对上文中的铠侠信不过的话也别买了。我不说的话大家肯定会忘记英特尔有一款叫760P的盘,但这盘要性能没性能,要价格卖得还死贵,要保修英特尔还无发票拒保,除了凉快之外一无是处,给我爬!三星970EVO PLUS,性能不错,但是我觉得如果你觉得自己脸不黑的话可以试试pm981a。致钛PC005,性能还不错,价格也比较友好,sm2262EN的方案比较理想,如果想支持国产请认准这款。

三星970Pro,买买买,往死里买,MLC过了这村没这店!价格贵?这种无短板的3D MLC买到手就偷着乐吧!想想市面上的3D MLC消费盘,屈指可数,还有BX300这种争议较大的盘。

PCIe4.0专区:三星980Pro,别想太多,TLC,价格死贵,保修TBW退步,性能差强人意,再等等群联的E18方案的盘不好吗?PCIe4.0马上就会有更多的选择。三星pm9A1,保修不行,但是价格比较实惠。西数SN850,性能还行,价格也是贵,一起爬了算了。所有群联E16的盘:非常不推荐,热到爆,性能刚过5000,PCIe4.0之耻!

QLC专区:660P,爬!连同那家喜欢660P的电脑大厂,一起爬。665P,96层,也爬!英睿达P1,爬!

祝大家剁手愉快,装固态一时爽,一直购买一直爽!(写这段的时候我已经30个小时没睡觉了,但是还像打了鸡血一样……但愿自己别再失眠了)

流石雪菜(Sasuga Setsuna)From Mizuiro-Aqua

封面SD画师:こもわた遥華

来自作品:オトメ*ドメイン



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3