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


8

我正在做一个将向年轻人传授linux的项目。知道他们有删除或破坏其主目录中项目的趋势,我们正在寻找一个不错的快照选项。我们将无法使用主要存储供应商提供的高级工具,并希望在文件系统级别找到解决方案。

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

从概念上讲,该解决方案允许用户在24至48小时的时间内按需自行还原备份。我们将为系统提供另一个备份过程,并进行更多全局备份。但是我们不希望那些犯了“错误”的学生使用此过程。


LVM创建块设备快照。在sync创建快照之前,正在对分区上的文件系统(大多数是现代文件系统)进行编辑。要从快照中恢复一些数据,必须将其装入。但是请注意,任何快照都具有大小。该空间用于存储快照状态和当前状态之间的差异,因此将快照存储为备份不是一个好主意。
HUB

@Hub感谢您的反馈。也许“备份”是错误的词。因为这将不是备份或存储的主要形式。我们认识到,差异或文件系统/卷管理器使用的任何机制都将需要空间。但是,目标是提供一个临时快照,以便犯错的学生可以快速还原和检索以前的信息。尽管经过了我们的培训,他们仍将不做在进行更改之前保存自己的备份的最佳实践,因此希望帮助他们克服这一问题。
灰色种族比赛

1
我没有这种经验,但是我认为您需要这样的东西:en.wikipedia.org/wiki/Versioning_file_system LVM不适合,因为您将必须挂载和复制每个文件(或跟踪更改的文件)恢复。LVM没有内部“还原”。
HUB

Answers:


6

在Linux上,btrfs是文件系统中快照的主要选择,但它确实具有一些fsck和修复工具,但仍不稳定。

ZFS是Solaris中的另一个选项。虽然您可以在理论上在Linux下使用它,但它大多仅在用户区实现(尽管在基于内核的实现上有一些工作),而在标准Linux发行版中则没有。

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

对于您的“用户数据快速快照”应用程序,我认为LVM并不是一个很好的解决方案,并且btrfs / ZFS尚不适用[截至2011年]。

相反,您可能需要查看rsnapshot,这是一个用户空间工具,可以使用任何文件系统有效地创建快照,而无需使用LVM。因为它使用rsync并将快照存储在连续目录下,所以如果文件没有更改,则使用不同快照之间的硬链接,即使在相当大的文件集上,它也可以惊人地快速运行。它用于备份很多,但也可以用于此类用户数据快照要求,只需稍加设置即可使任何人都可以通过使用只读NFS或Samba来还原其快照文件-请参阅此HOWTO部分恢复文件。可以使用标准的Linux工具还原文件,因为rsnapshot将源目录镜像到每个快照目录中。

rsnapshot使用其标准功能非常灵活,并且由于它是用Perl编写的,因此自定义它非常容易,例如,如果要提供按需快照。与文件系统快照相比,主要缺点是速度和磁盘空间-每个更改的文件都会在快照中生成新副本,而文件系统快照仅在文件中复制新块。


非常感谢您的跟进。我将在周一仔细查看rsnapshot。
格雷种族赛

2

刚刚在Wikipedia上发现了页面,就有一个快照功能专栏-只是希望人们以后知道这一点。


1

您不应为此目的使用LVM快照,因为它们会带来很大的性能损失(尤其是如果您同时具有多个活动的“滚动”快照)。不幸的是,Linux根本就没有支持快照的成熟文件系统。

因此,我建议在文件服务器上使用FreeBSD。默认的UFS2文件系统格式支持快照。FreeBSD还包括适当的ZFS实现(不同于Linux中发现的丑陋的实现),快照和许多其他非常高级的功能。当用一个简单的工具,加上如是相当类似于高端存储厂商,如NetApp的要约。

如果您有一台专门用作文件服务器的服务器,那么您可能需要研究一下FreeNAS,它可以将FreeBSD和ZFS很好地打包到类似设备的系统中。


1
好点,显然UFS2或ZFS在FreeBSD上可用,而在Linux上则不可用(ZFS)。但是,最初的问题提到“向年轻人传授Linux”,因此将需要单独的FreeBSD NAS。另外,我不知道snapshot链接的FreeBSD 命令是否可以由非root用户使用。由于学生将学习Linux,因此最好由非root用户创建和使用快照。rsnapshot这使得这相当简单明了,并且通过一些设置工作,每个用户都可以拥有自己的快照树。
RichVel 2011年

我假设年轻人没有访问文件服务器的权限,但是它装有NFS或类似于他们学习Linux的Linux工作站的文件。他们不需要了解文件服务器的体系结构。链接的snapshot实用程序具有允许用户使用快照的功能,几乎与NetApp上的功能相同。rsnapshot当您可以使用更好的OS(用于此目的)在文件系统代码中实现快照时,无需运行手动创建快照模仿的操作。正确的快照是原子的。
捕捉

这是一个可行的选择。我担心NFS的文件系统和网络开销。作为“学习linux”的一部分,学生将编译代码,运行数据库和其他I / O密集型过程。他们将在其主目录中完成所有这些工作。如果这是通过NFS进行网络连接,我会担心性能下降。这在自制系统中尤为重要,因为我们的生产NAS由于各种政治原因而无法使用。快照功能是基本性能的第二要务,因为我们拥有全局备份系统,但需要自助快照。
Gray Race

NFS上的数据库听起来有点毛茸茸,尽管显然如果负载不是太高并且您使用的是最新的DBMS版本,则它可以正常工作:serverfault.com/questions/30525/mysql-5-1-34-on-nfs-w- netapp。您还必须在实验室中同时运行FreeBSD和Linux,如果您有能力更强的学生帮助(这是新学习的东西),那么这可能是个好习惯,而如果您自己动手并且时间又很短,那么这可能会很不好。
RichVel

关于“在Linux中发现丑陋的丑陋”的说法,我认为这是指zfs-fuse.net(确实听起来是实现它的次佳方式)。但是请注意,ZFS也可以在“常规”实现zfsonlinux.org中使用(尽管由于许可问题未直接包含在内核中)。
hlovdal14年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.