19.14. 文件系统快照
上一页 | 第 19 章 存储 | 下一页

## 19.14. 文件系统快照

Contributed by Tom Rhodes.

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/。

上一页 | 上一级 | 下一页
19.13. 网络、内存和 和以及映像文件为介质的虚拟文件系统 | 起始页 | 19.15. 文件系统配额

本文档和其它文档可从这里下载： ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读 文档，如不能解决再联系 <questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.