ZFS时代FreeBSD系统的数据冗余策略
作者 佚名技术
来源 操作系统
浏览
发布时间 2012-06-28
部分划成RAID-0卷,另一部分划成RAID-5卷。不过,这个做法并不完美,因为你并不能动态调整这两个卷的尺寸。如果之前规划的卷尺寸不合适,那只有停机、导出数据、重划RAID,导入数据,并祈祷下次发现不合适的时间越晚越好。 当然,这是一个极端的例子。对于个人用户来说,他们往往并不会在意 RAID-0 所带来的那一点点性能改善,而数据的可靠性才是他们更关注的事情。 个人系统中的数据冗余 虽然 RAID 是廉价磁盘冗余阵列,但是事实上它并不是那么的廉价。更重要的是,许多便携式系统,如笔记本计算机,并不具备安装多块硬盘的条件(无论是体积还是重量)。这类用户可能只有一块硬盘,但是仍然希望尽量提高他们系统中数据的可靠性。这个时候,就需要做一些存储规划了。 以我个人的笔记本计算机为例,它安装的是双系统,Windows和FreeBSD。平时工作的时候主要使用的是 FreeBSD,工作内容包括代码编写和调试、远程登录和撰写文档等等。 我们可以简单地把这个系统中的数据分成下面几类: 操作系统。 第三方软件(如 X11 视窗系统、Eclipse、OpenOffice办公系统等) 下载的数据(例如 ports、其 distfiles等等),其特点是来自互联网,只要带宽够,既不需要备份,也不担心丢失。 用户数据 (完全不希望丢失的数据) 我使用 ZFS 作为 / 分区(注意:这种做法有好处也有缺点,我们将在最后讨论),由于只有一块硬盘,因此除了用于引导的 UFS 之外,其余部分全部划给同一个 zpool。 针对不同类型数据的备份和冗余需要,在这个 zpool 上面建立了 4 个 ZFS: / - 即 zpool 本身的 ZFS,用于存放操作系统 /.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左右),除非此后又翻回头来狂砍/狂改文件。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 五月六日,北京,OpenSolaris初体验下一篇: 学习solaris下安装qt
关于ZFS时代FreeBSD系统的数据冗余策略的所有评论