在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编写的,因此自定义它非常容易,例如,如果要提供按需快照。与文件系统快照相比,主要缺点是速度和磁盘空间-每个更改的文件都会在快照中生成新副本,而文件系统快照仅在文件中复制新块。
sync
创建快照之前,正在对分区上的文件系统(大多数是现代文件系统)进行编辑。要从快照中恢复一些数据,必须将其装入。但是请注意,任何快照都具有大小。该空间用于存储快照状态和当前状态之间的差异,因此将快照存储为备份不是一个好主意。