Re: ZFS v28 is ready for wider testing.



On Tuesday 31 August 2010 16:59:15 Pawel Jakub Dawidek wrote:
Hello.

I'd like to give you ZFS v28 for testing. If you are neither brave nor
mad, you can stop here.

The patchset is very experimental. It can eat your cookie and hurt your
teddy bear, so be warned. Don't try it for anything except testing.

This patchset is also a message we, as the FreeBSD project, would like
to send to our users: Eventhough OpenSolaris is dead, the ZFS file
system is going to stay in FreeBSD. At this point we have quite a few
developers involved in ZFS on FreeBSD as well as serveral companies.
We are also looking forward to work with IllumOS.

So, what this new ZFS brings?

- Data deduplication. Read more here:

http://blogs.sun.com/bonwick/entry/zfs_dedup

- Triple parity RAIDZ (RAIDZ3). Read more here:

http://dtrace.org/blogs/ahl/2009/07/21/triple-parity-raid-z/

- zfs diff. Read more here:

http://arc.opensolaris.org/caselog/PSARC/2010/105/20100328_tim.haley

- zpool split. Read more here:

http://arc.opensolaris.org/caselog/PSARC/2009/511/20090924_mark.musante

- Snapshot holds. Read more here:

http://arc.opensolaris.org/caselog/PSARC/2009/297/20090511_chris.kirby

- zpool import -F. Allows to rewind corrupted pool to earlier
transaction group.

- Possibility to import pool in read-only mode.

And much, much more, including plenty of preformance improvements and bug
fixes.

So test whatever you can and report back. Look for regressions, strange
behaviour, missing features, deadlocks, livelocks, preformance
degradation, etc.

The boot code is not updated at all, so booting off of ZFS doesn't
currently work.

The patch is against today's FreeBSD HEAD.

The patch enables (in sys/modules/zfs/Makefile) ZFS internal debugging,
please don't turn it off. Also, compile your kernel with the following
options:

options KDB
options DDB
options INVARIANTS
options INVARIANT_SUPPORT
options WITNESS
options WITNESS_SKIPSPIN
options DEBUG_LOCKS
options DEBUG_VFS_LOCKS

Ignore all the LOR (Lock Order Reversal) reports from WITNESS. There will
be plenty of those, and you'll desperately want to report them, but please
don't.

The best way to report a problem is to answer to this e-mail with as short
as possible procedure of how to reproduce it and debugging info. I'd
prefer textdump if possible. Below you can find quick procedure how to
setup textdumps:

Choose spare/swap disk/partition in your system, let's say it is
/dev/ad0s1b.

Add the following line to /etc/fstab:

/dev/ad0s1b none swap sw 0 0

Add the following line to /etc/rc.conf:

ddb_enable="YES"

Run the following commands:

# /etc/rc.d/swap1 start
# /etc/rc.d/dumpon start
# /etc/rc.d/ddb start

This will setup swap, mark it as dump device and setup some DDB
scripts. Or you can just reboot.

Now when your system panic or deadlock, enter DDB and call the
following command:

ddb> run kdb.enter.panic

It will execute all the commands I need, dump them in text format to
your swap device and reboot machine.

After the reboot, you should find textdump.tar.0 file in /var/crash/
directory. This is the debug info I need.

End of textdumps procedure.

Ok, now that I know you read everything carefully, here is the patch:

http://people.freebsd.org/~pjd/patches/zfs_20100831.patch.bz2

Good luck! >:>

I get the following error from make buildworld after applying the patch. I
checked twice to make sure the patch applied cleanly, which it did.

cc -O2 -pipe -
I/usr/src/cddl/usr.bin/ctfconvert/../../../sys/cddl/compat/opensolaris -
I/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/compat/opensolaris/include -
I/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris -
I/usr/src/cddl/usr.bin/ctfconvert/../../../sys/cddl/contrib/opensolaris -
I/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/head -
I/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/ctf/common
-
I/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/ctf/cvt
-
I/usr/src/cddl/usr.bin/ctfconvert/../../../sys/cddl/contrib/opensolaris/uts/common
-DNEED_SOLARIS_BOOLEAN -g -std=gnu89 -Wno-unknown-pragmas -
I/usr/obj/usr/src/tmp/legacy/usr/include -static -
L/usr/obj/usr/src/tmp/legacy/usr/lib -o ctfconvert alist.o ctf.o ctfconvert.o
dwarf.o fixup_tdescs.o hash.o iidesc.o input.o list.o memory.o merge.o
output.o st_parse.o stabs.o stack.o strtab.o symbol.o tdata.o traverse.o
util.o -lctf -ldwarf -lelf -lz -lpthread -legacy
strtab.o(.text+0x109): In function `strtab_print':
/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/ctf/cvt/strtab.c:249:
undefined reference to `MIN'
strtab.o(.text+0x28d): In function `strtab_insert':
/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/ctf/cvt/strtab.c:119:
undefined reference to `MIN'
strtab.o(.text+0x3a1):/usr/src/cddl/usr.bin/ctfconvert/../../../cddl/contrib/opensolaris/tools/ctf/cvt/strtab.c:145:
undefined reference to `MIN'
*** Error code 1
1 error
*** Error code 2
1 error
*** Error code 2
1 error
*** Error code 2
1 error

# uname -a
FreeBSD head.tcbug.org 9.0-CURRENT FreeBSD 9.0-CURRENT #3: Tue Aug 31 16:30:57
UTC 2010 root@xxxxxxxxxxxxxx:/usr/obj/usr/src/sys/HEAD amd64

--
Thanks,

Josh Paetzel
_______________________________________________
freebsd-current@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@xxxxxxxxxxx"