Posts Tagged ‘ZFS’

ZFS性能

February 4th, 2009

在使用ZFS(OpenSolaris200811)的过程中碰到了一个问题,当在DELL2850+220S(8块做raidz)和DELL2850+本地硬盘(5块做raidz)的时候,性能非常差,我拷贝rhel5.3的ISO文件,大概需要10分钟左右才能拷贝完成。这明显是不正常的,跟磕死老大沟通了一下,基本断定是raid卡的驱动不行导致的,raid卡型号是perc 4e,但是仍然不知道根本原因。

基于我目前的几台NFS服务器,做了一些拷贝测试,如下:

RHEL 4.7(DELL2850)
# time cp rhel-server-5.3-x86_64-dvd.iso /export/scratch_qa/test/

real    1m12.942s
user    0m0.212s
sys     0m16.519s

OpenSolaris 200811(DELL 2950)
# time cp rhel-server-5.3-x86_64-dvd.iso /data/export/test/

real    0m44.246s
user    0m0.067s
sys     0m13.097s

Solaris10 update 6(DELL 2850)
# time cp rhel-server-5.3-x86_64-dvd.iso /data/

real    1m43.993s
user    0m0.007s
sys     0m16.932s

虽然不全面,但是基本上也可以看出ZFS的性能并没有大家想像中的那么差,当然OpenSolaris虽然性能好,但是可能是因为硬件好的缘故,不过在旧硬件上,也不应该表现那么差啊,10分钟才拷贝完!!:|

zfs for munin

December 17th, 2008

在使用ZFS的过程中,我想监控到每一个pool的读写速度的历史数据,但是munin里面并没有这个脚本,因此便自己写了一个,收集指定的pool的读写速度数据,形成图表。

哪位老大需要可以直接下载使用,我在OpenSolairs 200811版中测试没问题。

下载地址:

http://www.chifeng.name/dist/patch/zfs_poolname

ZFS Problem

December 9th, 2008

测试zfs的过程中碰到的问题

1. 创建pool的时候,把一块硬盘分了4个分区,使用如下命令创建成功
root@chifeng:~# zpool create test c3t5d0p1 c3t5d0p2 c3t5d0p3 c3t5d0p4 c3t5d0p0

不是很明白Solaris的分区原理,不过从这儿看的话,p1-p4代表了我的四个分区,而p0则代表了整块硬盘,但是为什么又可以同时使用呢?并且test的大小的确变成了2倍,bug?还是?

2. 删除一个pool的时候挂死了
root@chifeng:~# zpool create test c3t5d0p1
cannot create ‘test’: pool already exists
root@chifeng:~# zpool destroy test

^C^X^C
root@chifeng:/etc# sync

^C^C^C^X^C

我在执行如上两个命令,想重新创建pool的时候,挂死在这儿了,至今还未恢复,在另外一个窗口kill -9也不行,执行sync命令也挂死,看似只有靠reboot了。

3. 可算是懂点format命令了,连蒙带猜的知道Solaris分区的意思了
他预先分配了一些设备号来用,但是如果不在format里面分好,他是不能用的,虽然有这个设备号。
另外到现在我还没弄明白partition和slice的对应关系。Solaris的真是难用啊,唉。。。偶还算有点经验,折腾了1天居然还没把分区这事搞明白。难怪流行性不如Linux/FreeBSD,用户体验太差!

ZFS测试

November 23rd, 2007

ZFS

折腾了一周多时间,粗略的测试了FreeBSD7.0下的ZFS+NFS,几点体会。

0,打开ZFS的时候会报这样一句话:”WARNING: ZFS is considered to be an experimental feature in FreeBSD.” ,我要提醒,多读一遍。:)

1,直接使用下载的FreeBSD7.0 CD安装系统,配置好ZFS+NFS,然后拿3个NFS client和2个local的iozone来跑,会导系统不稳定,异常发生,一段时间后系统panic。抛出这个panic信息后,系统死掉。
“panic: kmem_malloc(114688): kmem_map too small: 417947648 total allocated cpuid=1″

2,重启后,升级src到beta3,然后重新配置kernel,继续像1那样的环境测试,结果也跟1差不多,仍然是不稳定+panic。

3,delphij老大给了一个patch,打上后重新make world&kernel,然后类似1、2那样的环境继续测试,跑了大概1天多点的时间,表现比原来好些,系统没有panic,但是仍然有异常。NFS服务非常不稳定,报如下信息。
nfs server 172.168.1.204:/tank/nfs: not responding
nfs server 172.168.1.204:/tank/nfs: not responding
nfs server 172.168.1.204:/tank/nfs: not responding
nfs server 172.168.1.204:/tank/nfs: is alive again
nfs server 172.168.1.204:/tank/nfs: not responding
nfs server 172.168.1.204:/tank/nfs: is alive again
nfs server 172.168.1.204:/tank/nfs: not responding

4,ZFS打开压缩和不打开压缩,性能相差非常明显,不过我这儿的前提是CPU性能足够好。压缩推荐使用lzjb,效果比较好。建议一定要打开压缩。

5,IO表现不行,或者是因为我的硬盘少的原因(只有3块,做的raidz1),zpool iostat看到的最大IO是124M,应该已经很高了,多数时候只10-20M左右,磕死老大跟我说的是能到100M左右。

6,网卡流量没跑起来,最高跑到几十兆,就不提了。看看我另外一台生产服务器(FreeBSD6.2)上的流量,就知道偶为啥不提了,:D。
if_bce0-day.png

结论: 鉴于稳定性和性能上的考虑,暂时不考虑在生产服务器上采用ZFS,等到7.0 Release出来之后再测试测试再说。