首页 > 其他分享 >#科普 #硬件 #硬盘 硬盘忽然掉电会损坏硬盘和数据吗?硬盘断电后还在干什么?

#科普 #硬件 #硬盘 硬盘忽然掉电会损坏硬盘和数据吗?硬盘断电后还在干什么?

时间:2022-12-26 09:23:00浏览次数:35  
标签:电容 掉电 断电 磁头 SSD 硬盘

目录

1.前言 

2.机械硬盘 

3.固态硬盘SSD 

4.结论

5.后记 


 1.前言 

        每个人的无数个过去的瞬间定义了现在的自己。那些欢乐悲伤的瞬间也许对别人无关痛痒,对自己来说却是弥足珍贵。硬盘里的照片和文档承载着过去美好的瞬间和知识的积累,对大家来说是十分宝贵的,远远不是硬盘的那几百一千的价格所能衡量。

        现在的个人电脑早就不是原来娇贵的高科技产品,不可中断电源也不复存在,谁没有过在一次忽然断电后,忧心硬盘损坏的的经历。在重新开启电源的瞬间,心中默念,如果这次没问题,下次我一定做好备份!可是当看见操作正常启动,除了当时编辑的资料有很小部分丢失而其他完好无缺后,却又忘记的自己的承诺,继续裸奔,直到下一个循环。

       我们知道操作系统为了效率的考虑,在文件系统驱动中都有缓存。Word等软件会创建临时文件,不停地刷新该文件的缓存来尽可能避免数据的损失。而最新的NTFS等现代的日志型文件系统也比传统的FAT对意外掉电的鲁棒性提高很多。

       这是软件的角度,而如果硬件上没有保证的话,这些都是扬汤止沸之举。那么如果我们从硬件的角度来了解一下,硬件工程师们为我们的数据安全都做了哪些努力。我们来分别看看硬盘的两种典型的形态:机械硬盘和固态硬盘SSD,它们都是怎么处理掉电(Power Failure/Loss)的。

2.机械硬盘 

          典型的温切斯特硬盘结构如下:

温切斯特硬盘结构
温切斯特硬盘结构
编辑

 

         一般操作情况下,盘片(2)在转子(1)的带动下,以每分钟数千转的速度飞速旋转。转臂(5)在程序指令下,带着磁头(4)来到指定位置开始读取/写入数据。

        磁头是依靠空气动力的原理悬浮在磁盘表面,高度比头发丝还细。这样它既可以迅速准确的读取/写入内容,又不会和盘面接触(想象一下数千转的速度旋转的磁盘和磁头接触时会发生什么)。这时如果没有电了,磁盘不转了,空气浮力也不复存在,磁头就会慢慢降落,进而碰到盘片,引发物理损伤。那怎么避免这种情况呢?

       正常断电的时候,硬盘控制芯片会收到SATA控制器传来的STANDBY IMMEDIATE命令;而SAS和SCSI硬盘会收到stop命令。这时控制器会把磁头归位到一个叫做Parking Zone的地方:

Parking Zone
Parking Zone
编辑

        磁头完美地停在停车区,避免了和磁盘接触。而在停好之前,关机时序并不能够结束,保证了整个过程的完整性。似乎很完美,但是意外断电的时候,并不会收到各种命令,也没有时间从容的停车,那该怎么办呢?

       心细的网友也许注意到我在介绍硬盘构造的图片中没有介绍3的位置。其实这里别有玄机,这里叫做Landing Zone。这里并没有磁道,表面介质也不同:

Landing Zone
Landing Zone
编辑

       在意外断电的情况下,磁盘控制器会利用空气动力和一些电容的余电,将磁头移到Landing Zone里面降落,从而保证不会划伤盘片。Landing Zone也是硬盘没事干时,磁头的休息区。还有些硬盘厂商采用load/unload技术来做类似的事情,这里就不详细介绍了。 

3.固态硬盘SSD 

        固态硬盘没有机械旋转,应该不会出问题吧。其实没有那么简单,熟悉固态硬盘的读者应该都知道FTL的存在。FTL的逻辑块和物理块的转换表必须存储在NAND Flash上,否则会造成混乱;高端企业级硬盘上有大量的DRAM来加速,其中的内容也必须存储下来。

        在正常关电的时候,和机械硬盘类似,SATA的STANDBY IMMEDIATE命令和SCSI的Stop指令是合适的存储这些信息的机会。SSD控制器可以从容的将这些信息写在合适的地方。

        在意外掉电的情况下,情况就复杂不少。不知道大家注意过没有,现在M.2的SSD上面有很多很小的电容:

M.2的SSD上面有很多很小的电容:
M.2的SSD上面有很多很小的电容
编辑

 

        在Vcc没电的时候,这些电容的gate就会打开,会为主控争取1ms左右的时间。主控会立刻放弃现在所有没有存储的数据,而立刻开始存储FTL表,保证不会出大问题。

编辑

        在企业级的SSD中,有的DRAM大小将近1GB,而企业SSD的数据完整性要求极高,不容有失,不但FTL表要存好,DRAM中没有存储过的,也必须全部存下来。这就需要很大的电容,来争取更多的时间,如果我们拆开企业SSD,就会发现很多大黄方块:

会发现很多大黄方块
会发现很多大黄方块
编辑

        这个Micron的SSD有3块,而Intel的部分SSD,因为DRAM很大,大电容达到8块!

       有些SSD,没有电容,或者在长时间使用后电容能力下降。在掉电后,FTL表并没有存下来。而是采取在下一次上电的时候重建FTL表,这是用户就会发现SSD反应很慢,要一会才会恢复正常。

4.结论

        古老的机械硬盘没有各种保护功能,掉电的确会造成物理上的损伤,带来数据丢失。现在的无论机械硬盘和固态硬盘,一般来说忽然断电都不会损坏硬盘,丢失的数据也仅限于Cache里面没有存下来的,风险不大。

        那么我就要提个邪恶的问题

标签:电容,掉电,断电,磁头,SSD,硬盘
From: https://www.cnblogs.com/pyublog/p/17004967.html

相关文章

  • vmware ubuntu 虚拟机硬盘扩容过程记录
    简介:起因:以前尝试过跟着网上搜到的教程扩容虚拟机,但是很不幸翻车了,由于有些教程用的是带桌面的系统,然后VMware在创建虚拟机的时候又有两种不同的方式选择,如图:所以......
  • 基于随机森林算法进行硬盘故障预测
    摘要:本案例将带大家使用一份开源的S.M.A.R.T.数据集和机器学习中的随机森林算法,来训练一个硬盘故障预测模型,并测试效果。本文分享自华为云社区《​​基于随机森林算法进行硬......
  • 基于随机森林算法进行硬盘故障预测
    摘要:本案例将带大家使用一份开源的S.M.A.R.T.数据集和机器学习中的随机森林算法,来训练一个硬盘故障预测模型,并测试效果。本文分享自华为云社区《基于随机森林算法进行硬盘......
  • Ubuntu扩充硬盘空间
    UseYourDefaultFreeSpaceAsyoucanseeabove:theUbuntuinstaller(bydefault) leftalmosthalfofmydiskspaceunusablebytherootfilesystem! I’ve......
  • windows平台下 c++获取 系统版本 网卡 内存 CPU 硬盘 显卡信息
    GetsysInfo.h:#ifndef_H_GETSYSINFO#define_H_GETSYSINFO#pragmaonce#include<afxtempl.h>classGetSysInfo{public:GetSysIn......
  • 【服务器数据恢复】Storwize系列存储设备raid5多块硬盘离线导致Mdisk失效,通用卷无法使
    服务器故障:某品牌Storwize系列存储中raid5阵列有一块硬盘出现故障离线,热备盘启用替换离线盘,开始同步数据。这时与离线盘同一组Mdisk中的另一块磁盘故障离线,热备盘同步失败,......
  • 硬盘故障提示“已损毁”怎么办?
    群晖NAS在使用过程中会遇到硬盘提示”已损毁“的报错,导致存储空间降级,影响使用。但此故障并非一定为硬件故障,也有可能是软件导致。首先判断是硬盘故障还是软件故障,方法如下......
  • 利联科技:恢复率99%手动解决硬盘数据损坏
      ​​利联科技​​——恢复率99%手动解决硬盘数据损坏   在数据的储存方面,硬破可谓是接触的较多的了吧,不管是电脑上使用的硬盘还是移动硬盘,其中不乏重要的数据资......
  • 如何给Ubuntu新增一个新硬盘
    1、虚拟机添加一个新硬盘:      2、命令行下输入fdisk/dev/sdb,然后依次输入n,p,1,之后根据提示输入默认值。 3、格式化分区mkfs.ext4/dev/sdb。......
  • 机械硬盘,IDE接口相关
    cyls:柱面        head:磁头         sector:扇区当有两个主分区时,第二个主分区是Patition2老式电脑一个IDE通道接两个设备,不能都设成Cable......