哪些文件系统为用户提供快照功能以恢复数据?

哪些文件系统为用户提供快照功能以恢复数据?

我正在开展一个教年轻人使用 Linux 的项目。我们知道年轻人可能会删除或损坏主目录中的项目,因此我们正在寻找一个好的快照选项。我们无法使用主要存储供应商提供的花哨工具,并希望在文件系统级别找到解决方案。

我读过很多关于 btrfs 的文章,但经验很少。我对 LVM 有一些经验,但我不熟悉它的快照功能。文件系统或其他文件系统是否可以选择按需或按计划创建快照?然后让这些快照始终可用,而无需 root 权限,就像每个主文件夹中的 .snapshot 文件夹一样?

理想情况下,该解决方案允许用户在 24 到 48 小时内按需自行恢复备份。我们将为系统提供另一个备份流程和更多全局备份。但我们不希望这个流程被那些只会犯“错误”的学生使用。

答案1

(2023 年 9 月更新)

文件系统

在 Linux 上,btrfs 是文件系统中最简单的快照选项。它相当稳定和完整,基于这篇 2021 年的文章,只要您不使用 RAID 功能。它确实有一些fsck 和修复工具

ZFS 是另一个具有良好快照支持的选项,现在适用于 Linux、FreeBSD 等跨平台。它由 OpenZFS 项目积极开发,并且比 btrfs 更完整。

逻辑卷管理器

这个 LVM 答案详细介绍了使用 LVM 快照的优缺点,以及一些 btrfs/ZFS 链接。对于某些文件系统(ext4 和 XFS),LVM 会在拍摄快照之前冻结 FS,但 LVM 快照可能会出现性能问题,并且仍存在一些错误。

我认为 LVM 并不是这种“用户数据快速快照”应用程序的绝佳解决方案 —— 它在 2022 年仍然比 btrfs 或 ZFS 弱。

快照

您可能还想看看快照,这是一个用户空间工具,可以使用任何文件系统创建快照,而无需使用 LVM。

由于 rsnapshot 使用 rsync 并将快照存储在一系列目录下,因此使用硬链接如果文件没有改变,不同的快照之间也可以运行得非常快,即使在相当大的文件集上也是如此。

它经常用于备份,但也可以用于这种用户数据快照要求,只需进行一些设置,任何人都可以使用只读 NFS 或 Samba 恢复其快照文件 - 请参阅此有关恢复文件的操作方法部分. 由于 rsnapshot 将源目录镜像到每个快照目录中,因此可以使用标准 Linux 工具恢复文件。

rsnapshot 使用其标准功能非常灵活,而且由于它是用 Perl 编写的,因此很容易对其进行定制,例如,如果您想提供按需快照。

与文件系统快照相比,主要缺点是速度、磁盘空间以及不是“时间点”快照:

  • 速度 - 必须检查每个文件,即使跳过许多文件
  • 磁盘空间 - 每个文件的更改都会在快照中产生一个新副本,而文件系统快照只会复制文件中的新块
  • 时间点 - 与文件系统快照不同,rsnapshot 不会在某个时间点捕获所有文件。也称为非原子性

答案2

截至 2022 年,btrfs对于非 RAID 设置而言被认为是稳定的,并且它提供了透明且稳定的快照。

最佳答案来自 2011 年,其中提到和 ZFS 都被认为是不稳定的。11 年后, Linux 上的和 ZFSbtrfs不再存在这种情况。btrfs

答案3

刚刚发现维基百科页面上,有一个快照功能列 - 只是希望人们将来能够意识到这一点。

答案4

您不应该将 LVM 快照用于此目的,因为它们会造成很大的性能损失(特别是当您同时有多个“滚动”快照处于活动状态时)。不幸的是,Linux 根本没有任何支持快照的成熟文件系统。

因此,我建议在你的文件服务器上使用 FreeBSD。默认的 UFS2 文件系统格式支持快照。FreeBSD 还包含适当的 ZFS 实现(与 Linux 中丑陋的拼凑物不同),具有快照和许多其他非常高级的功能。当与一个简单的工具(如它与 NetApp 等高端存储供应商提供的产品非常相似。

如果你有一台专用于文件服务器的服务器,你可能需要查看自由网络存储它将 FreeBSD 和 ZFS 很好地打包成一个类似设备的系统。

相关内容