视窗有一个“弹性文件系统”从 Windows 8 开始。
Linux 是否有类似的弹性文件系统?我对这样的文件系统的期望是坏块不会弄乱文件或日志。我不是 FS 极客,所以请解释一下这种容错功能是否不适合桌面/CPU 密集型/内存密集型/会降低 HDD 的使用寿命/已经在某些 FS(如 Ext4/等)中使用。
Linux 上有类似的东西吗?
答案1
如果您正在为 Linux 世界中的通用计算机寻找高级文件系统,有两个候选者:ZFS和BTRFS。 ZFS 更老、更成熟,但它最初来自 Solaris,并且到 Linux 的移植并不是无缝的。 BTRFS 仍在大力开发中,并非所有功能都已准备好投入使用。
两种文件系统都提供每个文件的校验和,因此您可以知道文件是否已损坏;这更多的是一种安全保护,而不是针对故障硬件的保护,因为故障硬件往往会导致文件不可读,硬件有自己的校验和,因此读取错误数据的可能性极小(如果磁盘读取返回错误数据,并且您确保这不是应用程序错误,归咎于您的 RAM,而不是您的磁盘)。
如果你想要恢复力,到目前为止最好的办法是RAID-1(即镜像)在两个磁盘上。当磁盘开始出现故障时,很少只有少数扇区受到影响;通常,如果磁盘没有完全停止工作,更多的扇区会很快出现。因此,在同一磁盘上复制数据通常没有什么帮助。在两个磁盘上复制数据不需要任何文件系统支持。您可能想要在同一磁盘上复制数据的唯一原因是您的笔记本电脑只能容纳一个磁盘,但即使如此,好处也很小。
请记住,无论您有多少复制,您仍然需要离线备份,以防止大规模硬件故障(电涌、火灾等)和软件级问题(例如意外文件删除或覆盖)。
答案2
BtrFS 可以使用单个 HDD 进行“RAID1”。这意味着它将在磁盘上放置一个文件两次。它还存储每个文件的校验和,如果一个文件损坏,它可以为您提供另一个副本。
看看他们的维基百科。
答案3
默认情况下,ZFS 拥有每个元数据块的多个副本。您可以为数据块启用此功能,然后针对(局部和非大规模)磁盘错误提供一些保护。
http://blogs.oracle.com/bill/entry/ditto_blocks_the_amazing_tape
自动 ZFS 快照也是保护文件免遭意外删除或损坏的一种流行方法。