在突发掉电的时候,盘内旧数据可能会出错造成SSD无法访问,所以需要进行保护。
当出现突发掉电,SSD一般会出现以下3种数据丢失甚至坏盘的问题:(掉电保护的到底是什么?)
1)丢失用户数据:这个情况大多是因为用户数据还在写缓冲区里的关系,写缓冲区是为了提高峰值性能用的。在这个情况下,当SSD主控制器掉电后,写缓冲区里的数据还没有被写入到NAND里,这样就会造成了数据丢失。
2)丢失映射表信息(LBA元数据错误):所有的SSD主控制器都是通过映射表信息来操作相对应的文件系统逻辑地址和闪存物理地址的。当SSD内的数据需要读取时,必须有相对应的之前生成的并且更新维护过的正确映射表信息,而当数据写入之前写入过的文件系统逻辑地址时,映射表信息必须被更新。如果正确的映射表信息因为掉电而丢失了,那么SSD就可能无法访问了。
3)低位Page出错:2bit MLC的闪存因为在每个物理Page里存放了2个逻辑Page的数据,如果在写入时候忽然掉电,就会影响到之前写入的旧用户数据。通俗点说就是写入新文件的时候忽然掉电,可能把老文件也弄坏了。
东芝Q Pro系列SSD异常掉电管理PFM(Power fail Management)和盘内数据损坏保护
东芝Q Pro系列SSD的PCB上并没有掉电保护的电容,但是东芝却能做了上面提到的第二和第三点的保护,这是如何做到的?
内部映射表保护:
1. 每张映射表都有一个完整的备份在闪存里。
2. 更新映射表的时候是2张表交替进行的。
3. 当突发掉电导致一张表损坏时,下次上电时候可以从另张表恢复之前的状态。
用户数据保护:
1. 当主机发送Flush_Cache指令后,所有在缓冲区内的数据都会立即写入闪存内。
2. SSD每闲置2秒(主机没发送新指令),缓冲区内的数据会立即写入闪存内。
3. 新写入的用户数据永远会写入到新的闪存Page上,即使它们的逻辑地址相同。
4. 每一笔最后的数据写入操作会将它之前的数据状态保存到另个闪存Page内。
5. 当突发掉电导致最后一笔写入的数据出错或者丢失的时候,在下次上电时过去的数据状态能够从之前备份的闪存Page里恢复出来。
东芝内部验证测试的时候是进行了30000次突发掉电,这个做法会造成一定的性能损失,但是却能在没掉电保护电容的情况下保证SSD数据安全,我一直强调,SSD跑分高低无所谓,稳定安全是铁律,这点上我要给东芝点赞。对于普通家用SSD来说,只要保证SSD不变成无法访问的状态丢失全部数据就行了,其实最后一笔写入的数据真丢了也不是什么大事。
欢迎光临 PCEVA,PC绝对领域,探寻真正的电脑知识 (https://bbs.pceva.com.cn/) | Powered by Discuz! X3.2 |