zoukankan      html  css  js  c++  java
  • 掉电恢复

    掉电恢复

    参考资料:《深入浅出SSD》

    掉电分为两种,正常掉电和异常掉电,但是不管哪种掉电,在SSD上电认盘后,都要能正常工作

    1.正常掉电

    概念

    在掉电前,SSD会收到主机的掉电通知,SSD收到通知后会做些操作,等SSD完成这些操作后,主机才会真正对SSD进行断电,

    一般来说,正常掉电不会导致数据的丢失,重新上电认盘后,只需把掉电前保存的相关信息(映射数据,闪存块信息等)重新加载即可继续工作。

    案例

    主机发送standby命令通知SATA SSD,SSD收到命令后主要会做以下事情,然后才停止对SSD的供电

    1)把buffer中缓存的数据刷入闪存

    2)把映射表刷入闪存

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

    4)把SSD其他信息写入闪存

    2.异常掉电

    概念

    1)SSD在没有收到主机掉电通知时就被断电,或者收到主机的掉电通知,但是没有来得及处理上面要处理的事情就被断电了,

    2)异常掉电可能会导致数据的丢失,比如缓存在SSD的数据来不及写到闪存,掉电会导致这部分数据丢失,还有根据闪存特性,

          如果掉电发生在写MLC的Upper page,会导致其对应的Lower Page数据遭到破坏,也就意味着之前写入闪存的数据也可能由于异常掉电而丢失

    3)异常掉电恢复的目的,一方面是尽可能的恢复用户数据,把损失降到最低,另一个方面是让SSD经历异常掉电后还能正常工作

  • 相关阅读:
    动态修改类注解(赋值)
    Javassist字节码增强示例
    修改原有的方法名称(字节码增强)
    mock测试之powermock
    SpringMVC防止表单重复提交
    Node.js中的异步I/O是如何进行的?
    移动端三个视口
    javascript 正则(将数字转化为三位分隔的样式)
    Struts2中数据封装方式
    Struts2配置文件
  • 原文地址:https://www.cnblogs.com/marton/p/12694708.html
Copyright © 2011-2022 走看看