哪些文件系统可以应对复制过程中的断电?

哪些文件系统可以应对复制过程中的断电?

(这有点像我昨天遇到的问题是由于复制时删除而丢失了数据

我已经知道 NTFS 不能很好地处理意外删除。较新的基于 Unix 的文件系统(如 btrfs、ZFS、ext4 或 nilfs2)在这方面做得更好吗?事后文件恢复的可能性会更高吗?

答案1

切断驱动器电源本身就很危险。无论你选择哪种文件系统,你都很有可能最终导致数据损坏。

有些文件系统比其他文件系统更能处理这个问题。有些文件系统使用日记. 为了最大程度地保证安全,您需要一个可以记录元数据(例如目录条目)的文件系统数据,另外还使用了写屏障。这会带来(有时是相当大的)性能损失。

使用数据日志记录(并适当使用屏障),对文件的任何写入要么成功,要么失败。这为您提供了在复制过程中断电时避免损坏的最佳机会。仍然需要检查文件系统并重播或跳过日志条目,但这应该相当快。显然,这很可能会让您处于仅成功复制部分文件的状态。像同步或者泰拉复制可以帮助您。

在您列出的文件系统中,NTFS 仅记录元数据。ext3 和 ext4 提供选修的除了元数据日志记录之外,还有数据日志记录(以性能为代价)。btrfs 和 zfs 使用不同的方法,即写时复制,它应该提供与数据日志记录类似的好处。nilfs2 是一个连续快照文件系统,但我对它了解不够,无法评论它在这种用例中的可行性。

如果您担心断电期间数据丢失,您可能需要考虑使用 UPS。一些 RAID 卡还允许电池备份,这可能很有用,具体取决于您的具体使用情况。

答案2

ZFS 当然可以应对复制过程中的断电问题。

如果没有提交,要写入的数据将在事件期间丢失,但以前的文件数据和整个文件系统(作为事务性的)不会受到影响并且在设计上保持清洁。

相关内容