为什么固态会掉盘?著名的30分钟大法修复是什么原理?
如果现代的台式机或者笔记本忽然断电(Power Loss),你觉得哪个硬件部分容易损坏?出乎大多数人的意料的是,固态硬盘SSD最脆弱,容易出现掉盘的现象,也就是BIOS和操作系统不认盘的情况。今天我们就一起来Deep Dive一下原理和应对之道,并对有趣的“30分钟大法”的原理和是否正确进行一些分析。
FTL损坏和丢失
我介绍了很多SSD的原理,其中最重要的根本是对FTL的理解。SSD甚至SD卡、手机存贮的很多问题和解决方案都或多或少地和它相关,再怎么强调都不为过。为了理解后面的原理,我们先来简单回顾一下FTL:我们的写(Program)Flash操作只能把bit 1改成0,而不能从0改成1. 即我们可以把11110000改成11000000,但不能改成11111111。即有点像逻辑and操作(我们可以通过NAND这个名字联想记忆一下)。那么如何把0改回1呢?这就要靠擦除操作了,但是别忘了,NAND flash的寿命是由其擦写次数决定的(P/E数 (Program/Erase Count)来衡量的),频繁的擦除慢慢的会产生坏块,如FAT分区的文件分配表(老狼:FAT文件系统与UEFI)等。为了能够做到寿命均衡(Wear Levelling)和对坏块的遮蔽,就需要一个逻辑地址(LBA,logical block addresses )和物理地址(PBA, physical block addresses)的对应表,对外界暴露逻辑块,里面是具体是哪个物理块,固件自己做主,这个对应关系表就是FTL表:
因为LBA大部分实现是基于Page的,也叫做Page Mapping Table (PMT):
FTL看起来挺简单,但它是SSD、NAND等基础逻辑,它的实现多种多样,是各个固件的核心机密。也有些Open Source的方案。
FTL表在哪里呢?作为核心数据结构,它当然也要存储在Flash上。但由于它会被频繁更新,所以每次改动也不能立刻写会Flash,一般会先暂存在内存中,在积累到一定程度,再写回Flash:
什么时间写回,这是SSD固件的核心机密之一。另一方面,随着SSD容量的提高,FTL表的容量也快速上涨。我们以8GB的为例,FTL表不加处理可以达到8MB;以此类推,800G的SSD,FTL表可以有800MB!有些省空间的方案可以大大减小FTL表的大小,但也高达数十MB。这么大,FTL表也就有了部分被换入换出的过程。如何设计,也是很讲究技巧的。
FTL表如此重要,没了它,整个SSD/SD卡就没法工作了。如果在FTL写回Flash之前,还在内存的时候,忽然没电了,内存数据丢失,FTL表也就丢失了。有鉴于此,高端SSD和服务器SSD都加上了电容,来作为应急供电方案,让SSD控制器有时间把内存中的FTL表和一些缓存内容存到Flash上去:
现实中的例子,我们在M.2的SSD上面有很多很小的电容:
在Vcc没电的时候,这些电容的gate就会打开,会为主控争取1ms左右的时间。主控会立刻放弃现在所有没有存储的数据,而立刻开始存储FTL表,保证不会出大问题。
在企业级的SSD中,有的DRAM大小将近1GB,而企业SSD的数据完整性要求极高,不容有失,不但FTL表要存好,DRAM中没有存储过的,也必须全部存下来。这就需要很大的电容,来争取更多的时间,如果我们拆开企业SSD,就会发现很多大黄快:
它们也是为了这个目的。
但是,一些低端消费级的SSD,没有这种措施,忽然掉电,会造成FTL丢失。那么发生这种情况是不是SSD就报废了呢?也不是。
FTL表的重建
在内存中FTL丢失之前,Flash上还有上次的FTL内容,虽然已经过时了,但总比没有好吧!于是可以搜索SSD中的Flash,找到上次的FTL,这样尽管会丢失一些信息,但大部分数据可以保持。于此同时,有些实际块已经被分配使用过了,再次用会发生错误,就需要修正最后的FTL。那么怎么修正呢?
每个Flash的page都有一些额外的空间,这些空间大部分做ECC校验用,但还有些富余,我们拿来做Mapping Flag(MF):
有了这个提示,我们可以逐Page扫描整个Flash,来修正FTL。
看到逐Page,就知道这是个很耗时的工作。现在SSD那么大,需要不少时间,可以高达数分钟乃至数十分钟!
那么什么时间做FTL的重建呢?不少主控都在发现错误后会开始重建,直到成功重建,主控才会响应ATA等命令。这就是为什么忽然断点后,有些SSD会很长时间没有响应,想掉盘一样了!那么为什么有时候断电后又没问题呢?如果当时最新的FTL已经被写回Flash中去,没有错误,当然也就不会出问题了。
30分钟大法是怎么回事?
掉电后各个主控的表现不一,这和它们的FTL存储算法有关。某些主控可以迅速恢复,有些则可能耗时很久,为了给某些主控充足的时间重建FTL表,掉盘后可以这样做:
1.掉电开机后,发现掉盘。如果是系统盘,则启动失败,如果是数据盘,则在操作系统里面发现该盘没有了。
2.不要立即重启,啥也不干,等待30分钟,让SSD主控充分的时间自行修复FTL。
3. 30分钟后,关机。再开机,看能不能找到该SSD。
有些同学还有些额外的步骤,即不插数据线,光插电源线开机30分钟。尽管我现在已经不做Flash相关工作,但我从经验和原理上认为这个步骤不是必须的。另外M.2的SSD也可照此办理。
需要特别提醒的是,比较忌讳在此过程中十分烦躁,不停关机开机和重启,打断主控重建FTL的过程,有可能加剧错误造成彻底不可以用了。
结论
断电会造成FTL表损坏,进而可能出现掉盘的现象。正确利用30分钟大法,可以修正部分问题,关键是给主控充分的时间进行FTL表的重建。其实不光断电,高温也有可能造成掉盘。我在我的笔记本M.2上插了块500GB某厂SSD,在大量拷贝电影时,过热会让该SSD主控忽然停止工作。我的笔记本这时就会没有响应,在过了一会后,要不蓝屏,要不就是发现该盘符没有了。这是我如果直接重启,就会发现在BIOS里面和Windows中,该硬盘都没有了。我这时就会让笔记本凉一会,再重启,硬盘就又出现了。这也是30分钟大法的一个变种。
如果还不能修复,其实还可以进入工程模式进行恢复。但是该过程比较复杂,软件昂贵,还是留给专业人士吧!
我在下一篇文章会介绍为什么有时候micorSD卡(TFlash卡/T卡)会忽然进入类似写保护状态,敬请期待!
三星SSD换成国产忆联SSD?联想小新Pro13的硬盘风波
最近的真香机联想小新Pro13遇到了一点麻烦,因为近期有用户发现,购买的小新Pro13的硬盘不是三星PM981a,而是国产忆联AH530 。这个消息发出后,很多网友表示了不满,而购买了小新Pro13的用户也是马上去检查自己的硬盘型号,如果是三星的就喜笑颜开,如果不是就高呼不满。
联想的解释
当然联想也第一时间出来解释,联想表示重要部件混合物料是业内通用的做法,如iPhone A9处理器就有不同的版本,联想小新Pro 13(所有版本)的SSD均为混合物料,目前包含三个型号,三星PM981a、忆联AH530、西数SSD 。
以上三种SSD均符合NVMe协议,都是采用的PCIe x4技术规格,出厂前也做过相关测试,符合产品的要求,并且在保修政策上没有区别,因此可以放心使用。目前西数SSD还不支持实时在线功能,所以在小新Pro13中未导入。而且联想还给出了忆联AH530的测试结果。
理论测试情况: 从下面的两张图中可以看出三星PM981a持续写入性能是几款产品里面最强的,具有明显的优势,忆联AH530在4K小文件的测试中,表现还是比较出色的,并不逊色于三星PM981a。因此整体来说,忆联AH530的表现其实还可以,虽然有差距,但没有部分网络传言的那么夸张。
图片来自联想小新笔记本官方
图片来自联想小新笔记本官方
忆联AH530实际体验: 根据官方的测试数据,忆联AH530在开机进桌面稍微弱于PM981a,比760p和镁光2200都要快;文件拷贝部分垫底的存在;LOL安装包解压部分,可以说没有什么差异;PS的速度和PM981a很接近,弱于760p优于镁光2200;CS:GO比Intel 760p稍慢,强于PM981a和镁光2200。奥德赛进入游戏速度,看不出什么差异。
图片来自联想小新笔记本官方
SSD的简单原理
SSD相关原理网上资料很多,简单来说其部件就是主控、NAND闪存颗粒和DRAM缓存(这个不是所有的SSD都会配备) 。主控本质上就是嵌入式微芯片,有基于ARM架构的,也有采用RISC架构的,而主控都是有配套的固件的,固件可以认为是这个微系统的操作系统。
随着这些年SSD的发展,在主控上国产的和外国的差距已经不大了,主控已经不是SSD里面的核心影响因素了,真正重要的还是NAND闪存 ,SSD的成本大头也是在NAND闪存上面,目前做的比较好的自然是国外的公司,最大的自然是三星,其次就是东芝了,一般来说采用这两个厂家颗粒的SSD都不会差。
如果买到了忆联AH530的怎么办
如果买到了忆联AH530的怎么办?只要其他地方没有问题,就不要纠结于固态硬盘了,好好用就行了, 既然联想已经确认了SSD是混用的,如果你买到的是忆联AH530的产品,就算换货也不能保证你换到的笔记本,就是采用三星的PM981a,所以换货并不是一个什么好的选择。
其实三星PM981a和忆联AH530的差别没有大家想的那么大,忆联AH530大家可能不熟悉,但是海康威视C2000大家应该熟悉吧,海康威视C2000在近期可是一款比较火的固态硬盘,也没有见人说什么不好的,可是换个马甲就不认识了?都是群联E12主控+南亚DRAM+记忆科技自封东芝芯片。
而且从联想发布的测试结果来看,忆联AH530的表现其实还可以的,反正售后保修政策都是一样的,没有必要去换货,当然如果你觉得你手气好,试一试也不是不可以,不过也不能排除手气不好,换个屏幕有坏点的岂不是更坑?
小结
厂家也是需要考虑风险的,因此在产品生产中,采用混合物料是通用的做法,也是很有必要的做法,毕竟如果只有一家材料提供商的话,抗风险能力会差一些,而大厂在供应链管理上,是需要规避这些风险的。华为也采用同样的策略,譬如华为Mate 30系列手机的屏幕就有3家厂家供货。
忆联AH530采用群联E12主控+南亚DRAM+记忆科技自封东芝芯片的方案, 和三星PM981a一样都是TLC闪存颗粒,从实际表现来看,这款产品的性能还不错,没有出现那种UFS闪存和emmc闪存那样大差距的情况, 因此不能说联想存在虚假宣传之类的问题,因此大家不要担心硬盘差异问题,联想小新13 Pro还是可以放心购买的。
相关问答
为什么三星Pm981固态硬盘官网上买不到了,停产了吗?..981无论京东淘宝都没有真正意义的正品,都是拆机货,但也无非就是插上后就拔下,本质上可以说还是全新。以上分析仅供参考。正面标签上的SN末尾是00000,它是普...
NGFF是什么接口?NGFF接口的SSD固态硬盘哪里能买到? - imooc ...第一,相比mSATA尺寸更小mSATA接口的SSD体积为51mmx30mm,单面厚度就有4.85mm,而NGFF标准的只有42mmx22mm,可双面布置NAND颗粒,单面厚度2.75mm,双面布...
大家知不知道三星NP450R5U X01CN的硬盘接口是SATA2还是SATA3...NAND技术,速度快,容量高。还有超长的质保期。推荐你去看看。有用(0)回复精品应用推荐新浪微博天气通淘宝特价版UC浏览器相关问题联想拯救者R7000_...
手机闪存是什么意思?我们看手机参数时,主要在意的有屏幕、处理器、运行内存、存储空间、摄像头,其中的存储空间(也就是上图的ROM)指地便是手机内的闪存存储器。该存储器的容量有...
固态硬盘现在还有读取写入的寿命问题吗?-ZOL问答仍还还有读写寿命问题,并且随着NAND闪存工艺的提升,NANDFlash的P/E次数反而有...哥,我想问一下,我买的是联想的geekpro5000512g的,现在想加个固态硬盘,想问一...
r9000p2022加装什么固态好?NETGEARR9000P是一款支持MU-MIMO、三频并发的高端路由器,它采用了1.7GHz的双核心处理器,512MBNAND闪存,1GBDDR3存储器。根据其硬件规格,我建议您选择高速...
联想 拯救者y7000p固态硬盘型号-ZOL问答联想拯救者Y7000p笔记本电脑配备了固态硬盘(SSD),具体型号有多种选择。根据不...2.SamsungPM981a:这也是一款M.2NVMe接口的SSD,采用V-NAND闪存技术,并...
thinkpad x240能装固态硬盘吗-ZOL问答是Intel为超极本量身定做的新一代固态硬盘接口标准,其常规尺寸仅为42mm×22mm,单面布置NANDFlash颗粒的厚度为2.75mm,双面颗粒的厚度是3.85mm,对mSATA来说体积...
普通平板电脑要多少钱谁比较清楚_其他问答_系统粉售后貌似不怎么给力,看你个人选择。此外内存和外存是两个概念。要想多装文件,那么选择外存为16G左右的平板应该够用了,比过值得注意的是平...此外...
拯救者Y7000可不可以加装固态硬盘?-ZOL问答联想拯救者y7000能装固态硬盘。Y7000系列18/19款是双DDR4内存槽/m22280PCIE...厂商只需购买NAND颗粒,再配适当的控制芯片,编写主控制器代码,就制造了固态硬盘...