FreeBSD 提供了一个和 Soft Updates 关联的新功能: 文件系统快照
快照允许用户创建指定文件系统的映像,并把它们当做一个文件来对待。 快照文件必须在文件系统正在使用时创建,一个用户对每个文件系统创建的 快照不能大于20个。活动的快照文件被记录在超级块中,所以它们可以在系统 启动的时候一块进行挂接后摘掉。当一个快照不再需要时,可以使用标准的 rm(1) 使用来使其删除。快照可以以任何顺序进行移除,但所有使用 的快照不可能同时进行移除,因为其它的快照将有可能互相引用一些块。
不可改的 snapshot
文件标志, 是由 mksnap_ffs(8)
在完成创建快照文件时设置的。 unlink(1)
命令是一个特例, 以允许删除快照文件。
快照可以通过 mount(8) 命令创建。 将文件系统 /var 的快照放到 /var/snapshot/snap 可以使用下面的命令:
# mount -u -o snapshot /var/snapshot/snap /var
作为选择,你也可以使用 mksnap_ffs(8) 来创建一个快照:
# mksnap_ffs /var /var/snapshot/snap
可以查找文件系统中的快照文件 (例如 /var), 方法是使用 find(1) 命令:
# find /var -flags snapshot
当快照文件被创建好后,可以用于下面一些目的:
有些管理员用文件快照来进行备份, 因为快照可以被转移到 CD 或磁带上。
文件系统一致性检查程序 fsck(8) 可以用来检查快照文件。 如果文件系统在挂接前是一致的, 则检查结果也一定是一致的 (也就是不会做任何修改)。 实际上这也正是后台 fsck(8) 的操作过程。
在快照上运行 dump(8) 程序。
dump 将返回包含文件系统和快照的时间戳。dump(8)
也能够抓取快照,使用 -L
标志可以首先创建快照, 完成
dump 映像之后再自动删除它。
用 mount(8) 来挂接快照作为文件系统的一个冻结的镜像。 要 mount(8) 快照 /var/snapshot/snap 运行:
# mdconfig -a -t vnode -f /var/snapshot/snap -u 4 # mount -r /dev/md4 /mnt
现在你就可以看到挂接在 /mnt 目录下的 /var 文件系统的快照。 每一样东西都保存的像它创建时的状态一样。 唯一例外的是更早的快照文件将表现为长度为 0 的文件。 用完快照文件之后可以把它卸下,使用:
# umount /mnt # mdconfig -d -u 4
想了解更多关于 softupdates
和
文件系统快照的信息, 包括技术说明, 可以访问 Marshall Kirk McKusick 的 WWW 站点
http://www.mckusick.com/。
本文档和其它文档可从这里下载:ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
如果对于FreeBSD有问题,请先阅读文档,如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.