×
高级产品搜索菜单

SSD在硬盘盒中掉电恢复
日期: 2022.02.09

 

硬盘盒中SSD掉电分两种,一种是正常掉电,另一种是异常掉电。不管是哪种原因导致的掉电,硬盘盒重新接上电后,SSD都需要时间从掉电中恢复过来,继续正常工作。先说正常掉电。在掉电前,硬盘盒主机会通过命令通知SSD,比如SATA中的Idle Immediately,SSD收到该命令后,主要会做以下事情:

 

● 把buffer中缓存的用户数据刷入闪存。


● 把映射表刷入闪存。


●把闪存的块信息写入闪存硬盘盒(比如当前写的是哪个闪存块,以及写到该闪存块的哪个位置,哪些闪存块已经写过,哪些闪存块又是无效的等)。


● 把硬盘盒SSD其他信息写入闪存。

 
 

硬盘盒主机将SSD以上事情处理完后,才会真正停止对SSD的供电。正常掉电不会导致数据的丢失,重新接上电后,SSD只需把掉电前保存的相关信息(比如映射数据,闪存块信息等)重新加载,又能接着掉电前的状态继续工作。 如果硬盘盒中的SSD只存在正常掉电,那么SSD的恢复就会简单很多。可是,突如其来的掉电(异常掉电),对SSD的数据来说,只剩惊吓。

所谓的异常掉电,就是硬盘盒SSD在没有收到主机的掉电通知时就被断电;或者收到主机的掉电通知,但还没有来得及处理上面提到的那些事情,就被断电了。硬盘盒异常掉电可能会导致数据的丢失,比如缓存在SSD中的数据来不及写到闪存,掉电导致这部分数据丢失。还有,根据闪存特性,如果掉电发生在写MLC的Upper page,会导致其对应的Lower Page数据遭到破坏,也就是意味着之前写入闪存的数据也可能由于异常掉电导致丢失。异常掉电恢复的目的一方面是尽可能恢复用户数据,把损失减到最低;另一方面是让硬盘盒SSD经历异常掉电后还能正常工作。事实证明,硬盘盒的可靠性以及RAID镜像显得格外重要。

 
 

本节主要介绍异常硬盘盒掉电处理。

硬盘盒SSD为什么怕异常掉电?它不是用闪存做存储介质吗?它不是数据掉电不丢失吗?没错。不过一个硬盘盒SSD,除了数据掉电不丢失的闪存,还需要有掉电数据丢失的RAM、SRAM或者DRAM。闪存的作用是存储数据,而RAM的作用主要是SSD工作时用以缓存用户数据和存放映射表(Map Table,逻辑地址映射闪存物理地址)。所以一旦掉电,RAM的数据就会丢失。

 

硬盘盒为防止异常掉电导致的数据丢失,一个简单的设计就是在SSD上加电容,硬盘盒SSD一旦检测到掉电,就让电容开始放电,硬盘盒然后把RAM中的数据刷到闪存上面去,从而避免数据丢失。企业级的SSD一般都带有电容。带电容的SSD,还是需要设计异常掉电处理模块,因为电容不能100%保证SSD在掉电前把所有的信息刷入闪存。

硬盘盒还有一个比较前卫的想法,就是把RAM这种Volatile(掉电数据丢失)的东西,用Non-Volatile(掉电数据不丢失)的硬盘盒东西来替代,但要求这种Non-Volatile的东西性能上接近RAM。这样,整个SSD都是Non-Volatile的了。Intel和Micron合作开发的3D XPoint,可作为一个选择。3D XPoint兼有闪存掉电数据不丢失和内存快速访问的特点。 硬盘盒RAM中缓存的用户数据,主机自认为把它们写到SSD了(非FUA命令,数据写到缓存,硬盘盒SSD就返回状态给主机),但SSD只是把它们缓存在RAM中,并没有写到闪存。异常掉电时,如果SSD上没有使用电容,也没有使用其他黑科技,这部分数据便损失无疑。重上电时,主机是再也读不到这些数据了。

硬盘盒掉电还会导致RAM中映射表丢失。映射表数据很重要,对一个逻辑地址,如果硬盘盒SSD查找不到对应的物理地址,它就无法从闪存上读取数据返回给主机。如果映射表中的数据不是最新的,旧的物理地址对应着老的数据,硬盘盒SSD就会错误地把老数据返回给主机,这个问题就严重了。

阿呆原账户上有10元钱,最近存入100万元,但由于异常掉电导致银行没有把100万元写入数据库,下次阿呆到ATM上一看,怎么还是10元钱?阿呆当时就昏死过去!异常掉电害人。

但是,和RAM中用户数据丢失不同,RAM中映射表数据是有办法恢复过来的。SSD的异常掉电恢复主要就是映射表的恢复重建。

 

特色产品
案例展示 ICY测评 视频专区企业级性能硬盘抽取盒 内建RAID硬盘盒
高级产品搜索菜单
提交 清除 取消
找不到合适的产品?提交您的请求HERE
ICY DOCK使用cookies来确保您在我们的网站上为您提供最佳体验。了解更多
我同意