So I'm attempting to prep a build box for Centos 5.5 and ZFS+ZPL testing.
First off we are going to run the "kernel-ml" or mainline kernel on the system which is part of the fine EPEL repository.
rpm -Uvh http://elrepo.org/elrepo-release-5-2.el5.elrepo.noarch.rpm yum --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel
Reboot and we're in 2.6.37 land. HOLD UP: THAT MAY BE TOO NEW.
Linux localhost.localdomain 2.6.37-0.3.el5.elrepo #1 SMP PREEMPT Mon Feb 7 17:31:48 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
Then we are downloading and installing the development versions from the ZFS site.
Then we build them.
mkdir zfs cd zfs (download from zfs developer version) tar zxvf behlendorf-spl-spl-0.5.2-23-g22ccfaa.tar.gz cd behlendorf-spl-22ccfaa/ ./configure make install modprobe spl
So far so good:
SPL: Loaded Solaris Porting Layer v0.6.0
On to the ZFS module itself.
tar zxvf behlendorf-zfs-zfs-0.5.2-69-g2c395de.tar.gz cd behlendorf-zfs-2c395de/ ./configure
We hit a few issues with missing defines for the zfs build so we hack around it with these defines.
Added to deal with undefined items on line 310 of libzfs_mount.c: #define MNT_FORCE 0x00000001 /* Attempt to forcibily umount */ #define MNT_DETACH 0x00000002 /* Just detach from the tree */ #define MNT_EXPIRE 0x00000004 /* Mark for expiry */
Later in modules/zfs we seem to hit a missing kernel API routine invalidate_inodes. We work around it and vow to do further research ![]()
modprobe zfs ZFS: Loaded ZFS Filesystem v0.6.0
OK, now attaching a disk.
zpool create data01 sdb1 # zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT data01 37G 81K 37.0G 0% 1.00x ONLINE - # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 37690316 2006484 33738364 6% / tmpfs 511360 0 511360 0% /dev/shm data01 38190976 0 38190976 0% /data01 # zpool upgrade -v This system is currently running ZFS pool version 28. The following versions are supported: VER DESCRIPTION --- -------------------------------------------------------- 1 Initial ZFS version 2 Ditto blocks (replicated metadata) 3 Hot spares and double parity RAID-Z 4 zpool history 5 Compression using the gzip algorithm 6 bootfs pool property 7 Separate intent log devices 8 Delegated administration 9 refquota and refreservation properties 10 Cache devices 11 Improved scrub performance 12 Snapshot properties 13 snapused property 14 passthrough-x aclinherit 15 user/group space accounting 16 stmf property support 17 Triple-parity RAID-Z 18 Snapshot user holds 19 Log device removal 20 Compression using zle (zero-length encoding) 21 Deduplication 22 Received properties 23 Slim ZIL 24 System attributes 25 Improved scrub stats 26 Improved snapshot deletion performance 27 Improved snapshot creation performance 28 Multiple vdev replacements #
Time to break some data!