/.portspace - 保存第三方软件(为什么分开放将在后面解释)
/.download - 保存下载的数据,例如 CVS 代码库、ports本身及其distfiles等
/.data - 保存用户数据,包括 /home,/usr/src,自己工作用的代码库等等。这部分数据采取的保存策略是压缩,同时设置 copIEs = 2。
之后,做下列调整:
使用符号链接将 /usr/local 和 /var/db/pkg 放到 /.portspace 上。这样做的好处是,在进行 port 升级的时候(例如恐怖的OpenOffice、xorg之类的升级),你可以做下面的操作:
zfs snapshot tank/.portspace@preclean
rm -fr /usr/local/* /var/db/pkg/*
或者,如果出现问题,可以用zfs的rollback功能回到快照版本,更变态的用法甚至可以跑branch出来。
关于快照
ZFS可以在文件系统中建立大量的快照。通过脚本可以将快照操作自动化。sysutils/FreeBSD-snapshot提供了一组易于配置的snapshot工具,我的配置中,对 / 和 /.portspace 每天中午的时候做一次snapshot,保留3份;对 /.download 每逢6的整数倍点做一次snapshot,保留2份;对/.data每小时做一次snapshot,保留25份。
成果
在本次硬盘坏损中,使用recoverdisk恢复了3天,最后有大约3.4MB(IBM记法;最初的结果是有大约2GB数据存在问题,占磁盘总容量的5%)数据未能恢复。
使用zpool scrub共发现650处坏损数据,共导致出现了132个无法恢复的数据块,这些数据块分属于20个文件,/.data 中完全没有丢失数据。
其他一些问题:
A。是否应使用 ZFS 作为 /?
答:取决于具体情况。ZFS作为/对于安装、故障恢复都会带来一些困难,并且其基于快照的revert能力也不能直接使用,只能通过复制或rsync的方法来恢复快照中的内容。
B。磁盘出现故障,通过recoverdisk恢复之后,ZFS说卷degraded,如何恢复?
答:首先zfs export,然后再重新zfs import(可能需要-f参数)。注意此时/boot/zfs必须可写。
C。ZFS的快照占多少空间?
答:取决于修改的文件数量和数据块数量。通常快照占用的空间可忽略不计(120K左右),除非此后又翻回头来狂砍/狂改文件。
标签: