我正在开展一个教年轻人使用 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
刚刚发现这维基百科页面上,有一个快照功能列 - 只是希望人们将来能够意识到这一点。