扯一扯西数冷数据掉速是啷个回事?
最近存储圈有个事,说大不大但是也不能算小,就是西数硬盘的“冷数据”门事件,大痣在11月月底,有网友爆出西数固态硬盘在打开/复制较长时间没有打开的文件速度变慢,甚至只有几十M/S。最初看到的时候因为对于这类产品特性有所了解,所以觉得并不奇怪,不过考虑到不是所有人都能理解这个事,所以就写一篇文章,解释下为啥这样。
首先,最初看到西数“冷数据”的事情,我第一反应就是类似的事情在5年前就已经上演过一次,当时的主角还是三桑,也是存在老旧文件访问速度低,经过几个月多次的固件更新,三星“解决”了这次的问题,而如今换了家厂商,问题还是那个问题。
因为两次事情是相同的原因造成,并且三星已经“解决”问题了,所以这次文章会有一些关于三星的内容,然后是关于原理部分的解释。
要理解这次事情,首先需要了解几个东东。
1.写入放大
图片来源于自用建兴S960 512G固态信息截图
写入放大其实很好解释,就是 主机对硬盘的写入 * 写入放大倍率=实际固态硬盘对NAND写入 ,原理是因为固态硬盘在写入文件之前需要将已有旧数据清除后才可写入(机械硬盘可以直接覆写,你电脑删除的文件只是在系统层面【软件】删除,实际硬盘只是将数据段标记为“删除”,待下次写入或者主控空闲时进行删除作业),而实际擦除的部分是要高于写入部分,请求写入的次数也会增加,最终导致写入数据过多。
而写入放大也并非没有解决方法,代价是会牺牲写入的速度(直说就是表面数据不好看了,不能忽悠消费者了,无视写入放大才能顺应消费主义),例如采用了压缩型主控SF2281的英特尔520,就拥有极佳的写入放大,最佳状态为0.14倍(相当于写入缩小,我之前的520写入放大倍率为0.75,图中的建兴S960写入放大倍率为43,我摸过的固态,最大倍率为143倍)。
关于写入放大部分,MLC时代还比较OK,虽然个别固态能出现上百倍的写入放大,但是仰仗MLC的寿命,基本上问题不大,但是TLC时代,问题会比较严峻(和SLC Cache有关),而TLC时代的大部分固态,因为这部分数据难看主控直接屏蔽了对NAND写入量的检测。
2.SLC Cache
图片来源于自测英特尔傲腾H10 1T测试截图
SLC Cache是目前几乎所有TLC/QLC固态必备(MLC固态选配,企业级TLC选配但最好没有),简单地说:
SLC状态为0和1,一个单元拥有两种电平状态,恢复极快、读写极快;
MLC状态为00、10、01和11,一个单元有四种电平状态,恢复较快,写入较快;
TLC状态为000、100、110、111、011、001、101和010,一个单元有八种电平状态,恢复一般、写入一般;
QLC状态为0000、1000、1100·····和1111,一个单元拥有十六种电平状态,恢复慢、写入慢。
PLC依次类推,越往后电子排布方式越复杂,因而主控在读写数据时需要更长的时间定位数据和准确识别数据,同理需要更长的时间清除数据(并且放大倍率会更大),所以实际写入速度也是依次递减(读取速度影响不太大),SLC>MLC>TLC>QLC,而在进入TLC时代后,SLC Cache的设计被广泛接受了,简单地说就是将TLC颗粒的一个单元以SLC模式运行,既写入时只写入0和1,而非TLC模式的八种电平状态,在写入完成或者超出SLC Cache容量后回归TLC模式,再将SLC Cache容量内的数据再次写回颗粒中。在写入过程中,因为电平状态的关系,实际上SLC Cache会几倍的消耗颗粒寿命,同样也需要几倍的空间才能实现SLC Cache;
MLC颗粒实现1G SLC Cache需要2G以上MLC空间,并且产生2倍以上写入放大;
TLC颗粒实现1G SLC Cache需要3G以上TLC空间,并且产生3倍以上写入放大;
QLC颗粒实现1G SLC Cache需要4G以上QLC空间,并且产生4倍以上写入放大;
SLC Cache产生的写入放大倍率,与本身写入放大倍率并存,SLC Cache容量内文件需要经过多次写入才能被存储。
而SLC Cache的加入,让TLC/QLC固态表面数据变得好看(忽悠人警告!),但是对于主控的算法等又提出了更高的要求,在840EVO旧文件掉速的事件中,就有840EVO第一批老用户表示,第一批并没有出现这么严重的掉速,而新版加入了SLC Cache的840EVO才出现了比较严重掉速/丢文件现象。
目前有一些企业级的TLC固态并没有采用SLC Cache的设计(例如东芝XD-5),主要是为了避免SLC Cache内数据转移至TLC颗粒过程中出现断电等特殊情况,会提高数据丢失的风险,所以没有采用。
对于企业级产品来说,稳定才是重中之重,表面数据是不需要的。
3.LDPC/ECC等纠错校验码
图片来源于知乎专栏,作者为@Trustintreth
这里不解释具体的原理,只说明最终结果,因为这个过程太复杂,我们只需要知道作用就可以了。
综12两点,不论是写入放大还是SLC Cache都会造成过多的写入,而LDPC和ECC等纠错编码的作用就是在写入的同时,去校验数据是否写入正确,以避免重复写入,从而优化寿命,读取时也能够用来校验数据是否正确,有一定的容错率。
一句话来说就是纠错,LDPC目前为主流,纠错能力优秀,编码简单(目前主控基本必备)。
4.西数“冷数据”事件和三星840EVO 旧文件掉速BUG事件
图片来源于:自行拍摄英特尔 傲腾H10 1T和西数SN550 1T
由于NAND闪存特殊结构决定了其用于存储数据的电子会随着时间的变化而产生电子丢失或者界限模糊的情况,换言之是所有的NAND闪存(固态)都存在的现象(傲腾除外)。
这么说可能不太好理解,以电池举例,正常状态下电池会有一个自然放电的过程,只要时间够久,即使你未曾使用,一块电池也会从满电变成亏电,同理在NAND闪存内部也发生着“自然放电”的过程,只是“电池”数量会多得多,放电过程进度不一。
而日常使用中,电池会因为设备的使用而放电和充电,等于定期会刷新电量,所以并不会短期内就“自然放电”至亏电状态,转换到NAND闪存内同样存在,如果定期读写数据,那么这个数据会被校准电压状态,等于完成一次“充电”,刷新了一次,重置了丢失电子的进度条。
而没有定期访问,或者说长时间没有读写的数据,就属于“冷数据”,就处于“自然放电”的过程中,随着“自然放电”的进度加深,读取的速度就会变慢,最终可能出现数据完全丢失的情况。而变慢的原因其实很简单,因为部分数据缺失,需要利用LDPC等纠错码进行纠错,运算后才能得出缺失的部分数据,所以对于冷数据的读取就会变慢。
简单地说就是套公式运算需要时间,在LDPC编码容错率允许的范围内,丢失数据越多则运算时间越长,读取速度越慢。
由于TLC/QLC颗粒复杂的电平状态,所以电子丢失导致数据模糊/数据丢失的情况,在TLC和QLC颗粒中出现的概率和严重程度会高于SLC/MLC颗粒,对于主控算法要求也更高,目前TLC能够维持较高的寿命也是极大的依赖于高超的主控算法,拥有极佳的“国师”才能扶得起那些阿斗,而如今QLC还没有遍地开花,其中一个原因就是主控还没有优化到那个程度。
至于解决方法,其实也简单,在固件中设置固态硬盘定期刷新数据就可以,需要主控定期将冷数据重新写入即可完成一次数据刷新,在下一次电子严重丢失之前再次刷新就可以解决,代价就是会徒增NAND写入量,降低使用寿命,不过也是没有办法的办法,而三星的解决方案大致如此,其实并不能算解决,只算缓兵之计。
实际上由于数据在存储的时候有一定的随机性,存储的文件大小不一,用户访问写入时间不一,再结合“均衡写入”等技术,对于一般固态而言,尽管用户没有进行读写操作,主控本身依旧可能会根据算法去改变数据存储位置,变相也在完成数据刷新。
而对于近期的西数“冷数据”掉速门事件来说,消费者等待西数官方更新固件就可以,或者说无视这个事情就好(所有NAND都存在这个现象,看淡就好),如果实在不放心,在固件更新之前,隔上几个月全盘复制一遍或者重要文件定期复制一次就可以解决问题了。
对于重要数据,重中之重就是多备份,备份才是王道!!!
文章有些部分解释的比较复杂,可能存在错误,欢迎指正~~~
说起来我那个吃灰多年的512G MLC的盘就存在老文件掉速的问题,甚至个别文件已经打不开了~~~
后记
图片来源于:搜狐科技区文章截图
其实冷数据这件事,归根到底我觉得还是消费者对于产品本身并没有多少了解,而消费主义时代,很多东西都没有被解释或者说曲解,当然消费者也未必有兴趣了解,这里也给自己挖个坑,以后有机会写篇文章,看看我觉得什么样的固态算是好固态。
至于上面截图,大家看着乐吧,还记得三星是最先爆出的问题吧?关于这次西数冷数据的问题,某些人就这样说起了三星~~~ 手 动 白 眼
SSD一年不通电 数据会不会丢?
不少读者认为在长时间存储数据的情况下,机械硬盘的安全性是要高于固态硬盘的,因为机械硬盘是通过磁盘来存储数据,断电存放时间可以达到十年甚至更久,而固态硬盘是使用浮栅晶体管和内部电子保存数据,假设固态硬盘在长时间不通电的情况下,内部数据会有很大的几率因浮栅内电子的衰减而彻底丢失,并且无法恢复,那真的是这样吗?
固态硬盘不通电不会丢数据
固态硬盘采用NAND Flash作为存储介质,其能防止SSD在长时间不通电的情况下数据丢失,所以即使SSD在长时间不通电的情况下,一般也不会出现数据丢失的现象。
我们的数据放在SSD里安全吗?
随着闪存成本的不断下降,SSD的应用越来越广泛,其速度相较于机械硬盘可谓是天差地别,但是我们的数据存放在里面真的安全吗,它能有机械硬盘抗造吗?
SSD寿命计算公式
我们知道NAND Flash单元的寿命是由擦写(P/E)次数决定的,而目前大部分的SSD都是由TLC颗粒组成,一般的TLC有1000次左右的擦写寿命,但不是我们向这块SSD写入1000次数据它就报废了,它的寿命是跟主控、容量、OP空间等众多因素相关,根据众多实测证明,SSD的实际承载写入量要远远大于标称写入量,所以我们将数据存放在SSD内是安全的,尽可以放心。
会什么会有数据丢失的现象?
NAND是通过把电子禁锢在Gate里来存储数据,当温度越高时,电子便会越活跃,进而会造成电子丢失的现象,这也就会造成数据丢失。
电子与温度关系图
固态技术协会(JEDEC)也早已经对此做出了相关规定,在30℃不通电保存的情况下,消费级SSD里的数据存放一年是没有问题的,但是如果掉电保存温度过高,丢失数据的风险将会大幅增加。
结论
固态硬盘作为存储使用的情况下,我们不需要担心使用寿命的问题,妥善使用即可,虽然它拥有众多的数据保护机制,但是笔者并不建议长时间掉电放置,毕竟SSD是买来用的。
相关问答
苹果5开机出现 nand 怎么处理-ZOL问答是NAND硬盘错误,多数为FLASH闪存或周边其电路故障,属于主板电路故障。造成的原因:1、手机进水腐蚀:手机进水后应及时断电并对其电路进行全面清洗,待水分烘干...
固态硬盘 数据丢失 ,怎样才能恢复?你好,我来分享一下你的问题首先固态硬盘坏了?那要看坏到什么程序,具体要看是什么现象?如果还能识别到,删了,或者丢失数据,你在没有重启系统的情况下,可...固态...
DRAM芯片与 NAND 芯片有什么区别?NAND是闪存芯片,掉电后数据不会消失。DRAM用于内存,掉电后数据会丢失,速度快。NAND是闪存芯片,掉电后数据不会消失。DRAM用于内存,掉电后数据会丢失,速度快。
19年6月停电造成多大损失?东芝何时恢复四日市 NAND 闪存工厂运营?6月下旬的时候,西数表示本次事故将使其3季度NAND闪存晶圆供应量减少6EB,约占当季供应量的一半左右。东芝方面也证实了晶圆和设备的损坏,但没有给出详细...
手机开机显示NANDdevicenotsupport是什么意思?nanddevicenotsupportNAND:设备不支持如果能正常使用就不要管了我估计是什么文件丢失了吧?或者是你使用的软件不支持。nanddevicenotsupportNAN...
手机里面储存的信息怎么恢复?关于这个问题,要恢复手机里面储存的信息,需要使用专业的数据恢复软件或服务。以下是一些可能可行的方法:1.使用iTunes备份恢复:如果你有使用iTunes备份你的...
NAND Flash和Nor Flash到底有什么区别?1、存储架构不同NORFlash架构提供足够的地址线来映射整个存储器范围。这提供了随机访问和短读取时间的优势,这使其成为代码执行的理想选择。另一个优点是100%...
CHECKINGNVRAM中文是什么意思啊?下面是我在网上找的解释:CHECKING:检查NVRAM:非易失性随机访问存储器(Non-VolatileRandomAccessMemory),是指断电后仍能保持数据的一种RAM。如果...
用了两年的固态,掉速严重,上网卡顿,怎么才能恢复原来的速度?现在有些主板BIOS里面就带有SecureErase功能还有一种SSD用久后掉速的可能,特别是那种用全盘SLCCache方案的,SSD用久后里面数据越来越多,可用空间减少,划...所...
固态硬盘与非固态硬盘有什么区别? - 傅了了 的回答 - 懂得固态硬盘使用闪存做储存介质,没有机械结构,普通硬盘使用一磁性圆盘做存储介质,中间有个马达,有机械结构。1、功耗上的区别固态硬盘的功耗上要低于...