![我可以在多大程度上信任给定的存储设备?](https://linux22.com/image/527416/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%E5%A4%9A%E5%A4%A7%E7%A8%8B%E5%BA%A6%E4%B8%8A%E4%BF%A1%E4%BB%BB%E7%BB%99%E5%AE%9A%E7%9A%84%E5%AD%98%E5%82%A8%E8%AE%BE%E5%A4%87%EF%BC%9F.png)
抱歉,问题太模糊了……
读取和写入存储设备的错误率是多少?我们的文件系统和操作系统是否考虑到了这一点?
我的笔记本电脑 320GB 硬盘多年来一直有坏扇区,而且似乎一直在运行。我保留了所有内容的备份,因为我预计随时都会发生重大故障。
如果硬盘出现坏扇区,会发生什么情况?坏扇区常见吗?操作系统能否绕过坏扇区?
那么偶尔发生的 HDD 读写错误怎么办?这些错误似乎可能会造成灾难性的损害。文件系统是否有检测和纠正这些问题的机制(例如校验和)?
答案1
现在猜猜 RAID 是为了什么而发明的 ;) 认真的说。
当 HDD 有坏扇区时会发生什么情况?
讀取錯誤。
坏道常见吗?
周围有很多。
我的硬盘上大约有十几个,这可以接受吗?操作系统是否可以解决这些问题?
那么,磁盘将不再使用扇区,而是将它们映射到为此保留的备用扇区。操作系统将看不到任何内容。这些扇区上的数据已消失。
阅读有关 RAID 的介绍,它正是用来处理存储设备可靠性问题的。永远不要相信普通存储。如果明天磁盘坏了,你会怎么做?是的,确实会发生。而且很常见。
答案2
读取和写入存储设备的错误率是多少?我们的文件系统和操作系统是否考虑到了这一点?
它变化很大,取决于相关驱动器的制造工艺。有几种不同类型的存储错误可能会影响数据和数据访问:
- 不可恢复的读取错误。这些错误是在尝试从驱动器读取数据时发生的。它们是暂时的,但可能会产生重大影响。如果在重建 RAID5 阵列期间出现错误,则整个阵列很可能会丢失。不好的运气。
- 坏扇区实际上驱动器上有一个坏扇区,就像您遇到的一样。
不可恢复读取错误率是硬盘规格表上显示的内容。它将被列为“每读取 10^14 个扇区中的 1 个扇区”。这将限制您可以使用该类型的驱动器创建的 RAID5 阵列的大小。
至少对于旋转介质来说,坏扇区错误率是无法预测的。它们自然而然地出现。这就是为什么驱动器只有少量的扇区重定位空间。当操作系统试图写入突然坏掉的扇区时,驱动器会将该扇区写入重定位区域,并增加 SMART 数据中的坏块列表。当驱动器用完重定位块时,问题就开始出现,此时操作系统才真正发现它。处理方法因操作系统和文件系统而异。
Linux 上最新的文件系统(btrfs,可能还有 ext4)支持对日志和数据写入进行校验。这样可以捕获遇到的坏扇区,但媒体没有报告坏扇区的情况(例如,重新分配的扇区已完全用完)。就目前情况而言,这是一项成本有点高的操作,但如今速度足够快,对于大多数工作负载来说,这不是什么大问题。
Windows NTFS 不支持日志或数据校验和,并且可能在几年内都不会支持。坏扇区检测是在读取某些扇区或簇的数据失败后进行的。校验和是一个非常新的想法(相对于文件系统开发而言),尚未完全渗透到市场的每个角落。最灵活的操作系统(Linux,可能是 BSD,直到最近的 OpenSolaris ZFS 版本)首先获得它,其余的最终也会获得它。