2008年11月19日星期三

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

没有评论:

发表评论

Powered By Blogger