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这些日子可不是那么好过。
| anyShare分享到: | |
| |

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