Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2593724
  • 博文数量: 2110
  • 博客积分: 18861
  • 博客等级: 上将
  • 技术积分: 24420
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-05 18:23
文章分类

全部博文(2110)

文章存档

2011年(139)

2010年(1971)

我的朋友

分类: LINUX

2011-02-06 22:19:52

因为版权的问题,使用 GPL 协议的 Linux 内核无法直接使用 CDDL 协议的 ZFS 文件系统,有一个办法可以绕过这个问题,就是先把 ZFS 代码编译成版权为 CDDL 的内核模块,然后 Linux 内核加载一个 CDDL 协议的内核模块,很高兴已经有人这么做了,所以我们终于有了原生的 Linux ZFS 文件系统。在 Linux 上和 ZFS 相似的还有一个 Btrfs 文件系统,被称为 Linux 下一代文件系统,起初是由 Oracle 开发的,有意思的是 Oracle 收购 SUN 后又得到了 ZFS,不过因为 Btrfs 使用的是 GPL 协议,所以不管 Oracle 的态度如何,对 Btrfs 的影响有限。

安装必备软件包:

# yum install kernel-devel rpm-build

下载、编译和安装 SPL 包:

# wget 
# tar zxvf spl-0.5.1.tar.gz
# cd spl-0.5.1
# ./configure
# make rpm

# rpm -Uvh *.x86_64.rpm

加载 splat 模块到内核,并测试:

# /sbin/modprobe splat

# splat -t kmem:all
------------------------------ Running SPLAT Tests ------------------------------
                kmem:kmem_alloc           Pass
                kmem:kmem_zalloc          Pass
                kmem:vmem_alloc           Pass
                kmem:vmem_zalloc          Pass
                kmem:slab_small           Pass
                kmem:slab_large           Pass
                kmem:slab_align           Pass
                kmem:slab_reap            Pass
                kmem:slab_age             Pass
                kmem:slab_lock            Pass
                kmem:slab_overcommit      Pass
                kmem:vmem_size            Pass

下载、编译和安装 ZFS 包:

# wget 
# tar zxvf zfs-0.5.1.tar.gz
# cd zfs-0.5.1
# ./configure
# make pkg

# rpm -Uvh *.x86_64.rpm

加载 zfs 模块到内核,并测试:

# /sbin/modprobe zfs

# /usr/libexec/zfs/zpios-sanity.sh
status    name        id	wr-data	wr-ch	wr-bw	rd-data	rd-ch	rd-bw
-------------------------------------------------------------------------------
PASS:     file-raid0   0	64m	64	112.68m	64m	64	4.81g
PASS:     file-raid10  0	64m	64	10.46m	64m	64	876.71m
PASS:     file-raidz   0	64m	64	12.14m	64m	64	780.49m
PASS:     file-raidz2  0	64m	64	17.68m	64m	64	14.66m
PASS:     lo-raid0     0	64m	64	1.30g	64m	64	876.71m
PASS:     lo-raid10    0	64m	64	666.67m	64m	64	14.65m
PASS:     lo-raidz     0	64m	64	1.10g	64m	64	876.71m
PASS:     lo-raidz2    0	64m	64	492.31m	64m	64	876.71m

如果上述加载内核模块有问题,建议重启系统后重新加载试一下,并检查是否模块加载成功:

# reboot

# /sbin/modprobe splat
# /sbin/modprobe zfs

# lsmod
Module                  Size  Used by
zfs                   866368  0
zcommon                75504  1 zfs
znvpair                82432  2 zfs,zcommon
zavl                   40576  1 zfs
zlib_deflate           52825  1 zfs
zunicode              353664  1 zfs
splat                 160848  0
...
阅读(583) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~