硬盘忽然掉电会损坏硬盘和数据吗?
文章发布于:2021-08-16 16:47:05
机械硬盘
机械硬盘内部结构
为了避免磁头和磁盘的接触磨损,现代机械硬盘会有一个磁头复位的装置,机械硬盘不工作时,磁头回到复位位置,磁头复位不是依靠电能的驱动,而是机械力量。
磁头上有个类似弹簧装置,一直试图将磁头拉回复位区,通电时磁头受磁力作用移动至磁盘上方。
如果机械硬盘突然断电,磁力消失,磁头瞬间被拉回,但因磁盘立刻停转,导致盘面形成空气消失,磁头很容易落在盘面,被磁力拉回的瞬间造成磁盘损伤。
机械硬盘的断电保护不是万能的,如果你的数据非常重要,那么UPS不间断电源才是一个最稳妥的办法。
多盘片
在突然断电的时候UPS可以让人提供足够的缓冲时间去解决问题,虽然时间不会太长,不过也足够时间让系统正常关机不至于损坏硬盘。
你还可以在加一层保障,就是让组建磁盘阵列,也就是RAID,常用来保护数据的有RAID 1和RAID 5。
RAID 1
RAID 1是两组以上的N个磁盘相互作镜像,其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。
RAID 5至少需要三块硬盘,RAID 5不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID 5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。
RAID 5具有和RAID 0相近似的数据读取速度,只是因为多了一个奇偶校验信息。当然,对于普通用户来说,如果重要数据较少,多备份一份在其他存储介质上就可以了,没必要使用RAID模式。
固态硬盘SSD
固态硬盘没有机械旋转,应该不会出问题吧。其实没有那么简单,FTL的逻辑块和物理块的转换表必须存储在NAND Flash上,否则会造成混乱;高端企业级硬盘上有大量的DRAM来加速,其中的内容也必须存储下来。
在正常关电的时候,和机械硬盘类似,SATA的STANDBY IMMEDIATE命令和SCSI的Stop指令是合适的存储这些信息的机会。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反应很慢,要一会才会恢复正常。
最后提醒大家,有些朋友觉得固态硬盘断电不会丢失数据,其实并不是这样的。如果固态硬盘断电,可能导致电流紊乱主控,从而使主控宕机。所以使用固态硬盘的用户,也请不要随便断电。虽然固态硬盘从原理上比机械硬盘损坏的可能性小了几个数量级,但仍然扛不住人为故障。