FreeBSD的ZFS

ZFS是sun跟随opensolaris项目一并开源的存储解决方案。具体的优势可以参考这里 。 本文不做累述。总之,使用ZFS可以将所有系统的裸存储设备都利用起来——小到磁盘,大到盘柜,都不需要考虑具体的容量分配。相对来说是低成本的存储解决方案。

Freebsd近期也引入了ZFS这一存储格式,作为存储服务器,个人觉得用Solaris远没有Freebsd成本来的低。具体操作如下:

首先,照例的更新版本库,升级内核

#cvsup -h cvsup.cn.freebsd.org /usr/share/examples/cvsup/stable-supfile  //漫长的等待

#cd /usr/src

#make buildkernel ; make installkernel //更加漫长的等待

#halt

关机后为系统安装磁盘,这边由于是测试环境,采用了一个磁盘的两个分区为例。如果是生产环境,建议采用至少2块以上的硬盘作为ZFS的物理设备。

#echo "zfs_enable=YES" >> /etc/rc.conf

# /etc/rc.d/zfs start //启用ZFS服务

# echo ”daily_status_zfs_enable="YES"” >> /etc/periodic.conf //自动更新

开始设置ZFS库

#zpool zpool create zfs raidz ad7s1 ad7s2

这里要注意的是raidz参数可以用mirror、raidz1(raidz默认)、raidz2来代替,分别相当于传统上的Raid 1 Raid5和Raid6

# zpool status zfs
  pool: zfs
 state: ONLINE
 scrub: scrub completed with 0 errors on Wed Nov 19 05:11:29 2008
config:

    NAME        STATE     READ WRITE CKSUM
    zfs         ONLINE       0     0     0
      raidz1    ONLINE       0     0     0
        ad7s1   ONLINE       0     0     0
        ad7s2   ONLINE       0     0     0

errors: No known data errors
 

恭喜,ZSF pool已经成功!

然后是创建文件系统:

# zfs create zfs/www

如果成功,系统将会出现/zfs/www目录

# mount
/dev/ad4s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad4s1g on /data (ufs, local, soft-updates)
/dev/ad4s1e on /tmp (ufs, local, soft-updates)
/dev/ad4s1f on /usr (ufs, local, soft-updates)
/dev/ad4s1d on /var (ufs, local, soft-updates)
zfs on /zfs (zfs, local)
zfs/www on /zfs/www (zfs, local)

设置文件系统参数:

#zfs set compression=gzip zfs/www //设置自动做gzip

设置NFS共享:

#zfs share zfs/www

搞定!

具体命令解释可以参考SUN的官方文档

题外话:

总觉的ZFS的思想有些超前,128位的文件系统倒可以先不谈。光是自动设置gzip这一项,可真是考验机器的设置。4核的Xeon搞个500M左右的文件竟然花费了n久,何况几年前?SUN的技术始终是这么的接近于”实现的边缘“也难怪SUN这些日子可不是那么好过。

“FreeBSD的ZFS”的一个回复

  1. 经过一段时间的测试,发现在FreeBSD7.2上的ZFS存在稳定性问题。
    启用zfs的gzip后,系统经常在uptime 100days 左右的时候无故自动重起,并且没有任何征兆和dmesg。请各位xdjm上生产系统的时候务必三思。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请补全下列算式: *

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据