OpenSolaris

Discussions Communities Projects Download Source Browser

Home » OpenSolaris Forums » zfs » discuss

Thread: Porting ZFS file system to FreeBSD.

Welcome, Guest Help
Login Login
Guest Settings Guest Settings
Reply to this Thread Reply to this Thread Search Forum Search Forum Back to Thread List Back to Thread List

Permlink Replies: 10 - Last Post: Oct 27, 2006 10:16 AM by: perrin
Guest
Porting ZFS file system to FreeBSD.
Posted: Aug 22, 2006 4:22 AM

  Click to reply to this thread Reply

[No Body]

number9

Posts: 262
From: Cardiff, Wales, United Kingdom

Registered: 5/2/06
Re: Porting ZFS file system to FreeBSD.
Posted: Aug 22, 2006 4:22 AM   in response to: Guest

  Click to reply to this thread Reply

This is fantastic work!

How long have you been at it?
You seem a lot further on than the ZFS-Fuse project.

On 22/08/06, Pawel Jakub Dawidek <pjd at freebsd dot org> wrote:
> Hi.
>
> I started porting the ZFS file system to the FreeBSD operating system.
>
> There is a lot to do, but I'm making good progress, I think.
>
> I'm doing my work in those directories:
>
> contrib/opensolaris/ - userland files taken directly from
> OpenSolaris (libzfs, zpool, zfs and others)
>
> sys/contrib/opensolaris/ - kernel files taken directly from
> OpenSolaris (zfs, taskq, callb and others)
>
> compat/opensolaris/ - compatibility userland layer, so I can
> reduce diffs against vendor files
>
> sys/compat/opensolaris/ - compatibility kernel layer, so I can
> reduce diffs against vendor files (kmem based on
> malloc(9) and uma(9), mutexes based on our sx(9) locks,
> condvars based on sx(9) locks and more)
>
> cddl/ - FreeBSD specific makefiles for userland bits
>
> sys/modules/zfs/ - FreeBSD specific makefile for the kernel
> module
>
> You can find all those on FreeBSD perforce server:
>
> http://perforce.freebsd.org/depotTreeBrowser.cgi?FSPC=//depot/user/pjd/zfs&HIDEDEL=NO
>
> Ok, so where am I?
>
> I ported the userland bits (libzfs, zfs and zpool). I had ztest and
> libzpool compiling and working as well, but I left them behind for now
> to focus on kernel bits.
>
> I'm building in all (except 2) files into zfs.ko (kernel module).
>
> I created new VDEV - vdev_geom, which fits to FreeBSD's GEOM
> infrastructure, so basically you can use any GEOM provider to build your
> ZFS pool. VDEV_GEOM is implemented as consumers-only GEOM class.
>
> I reimplemented ZVOL to also export storage as GEOM provider. This time
> it is providers-only GEOM class.
>
> This way one can create for example RAID-Z on top of GELI encrypted
> disks or encrypt ZFS volume. The order is free.
> Basically you can put UFS on ZFS volumes already and it behaves really
> stable even under heavy load.
>
> Currently I'm working on file system bits (ZPL), which is the most hard
> part of the entire ZFS port, because it talks to one of the most complex
> part of the FreeBSD kernel - VFS.
>
> I can already mount ZFS-created file systems (with 'zfs create'
> command), create files/directories, change permissions/owner/etc., list
> directories content, and perform few other minor operation.
>
> Some "screenshots":
>
> lcf:root:~# uname -a
> FreeBSD lcf 7.0-CURRENT FreeBSD 7.0-CURRENT #74: Tue Aug 22 03:04:01 UTC 2006 root@lcf:/usr/obj/zoo/pjd/lcf/sys/LCF i386
>
> lcf:root:~# zpool create tank raidz /dev/ad4a /dev/ad6a /dev/ad5a
>
> lcf:root:~# zpool list
> NAME SIZE USED AVAIL CAP HEALTH ALTROOT
> tank 35,8G 11,7M 35,7G 0% ONLINE -
>
> lcf:root:~# zpool status
> pool: tank
> state: ONLINE
> scrub: none requested
> config:
>
> NAME STATE READ WRITE CKSUM
> tank ONLINE 0 0 0
> raidz1 ONLINE 0 0 0
> ad4a ONLINE 0 0 0
> ad6a ONLINE 0 0 0
> ad5a ONLINE 0 0 0
>
> errors: No known data errors
>
> lcf:root:# zfs create -V 10g tank/vol
> lcf:root:# newfs /dev/zvol/tank/vol
> lcf:root:# mount /dev/zvol/tank/vol /mnt/test
>
> lcf:root:# zfs create tank/fs
>
> lcf:root:~# mount -t zfs,ufs
> tank on /tank (zfs, local)
> tank/fs on /tank/fs (zfs, local)
> /dev/zvol/tank/vol on /mnt/test (ufs, local)
>
> lcf:root:~# df -ht zfs,ufs
> Filesystem Size Used Avail Capacity Mounted on
> tank 13G 34K 13G 0% /tank
> tank/fs 13G 33K 13G 0% /tank/fs
> /dev/zvol/tank/vol 9.7G 4.0K 8.9G 0% /mnt/test
>
> lcf:root:~# mkdir /tank/fs/foo
> lcf:root:~# touch /tank/fs/foo/bar
> lcf:root:~# chown root:operator /tank/fs/foo /tank/fs/foo/bar
> lcf:root:~# chmod 500 /tank/fs/foo
> lcf:root:~# ls -ld /tank/fs/foo /tank/fs/foo/bar
> dr-x------ 2 root operator 3 22 sie 05:41 /tank/fs/foo
> -rw-r--r-- 1 root operator 0 22 sie 05:42 /tank/fs/foo/bar
>
> The most important missing pieces:
> - Most of the ZPL layer.
> - Autoconfiguration. I need implement vdev discovery based on GEOM's taste
> mechanism.
> - .zfs/ control directory (entirely commented out for now).
> And many more, but hey, this is after 10 days of work.
>
> PS. Please contact me privately if your company would like to donate to the
> ZFS effort. Even without sponsorship the work will be finished, but
> your contributions will allow me to spend more time working on ZFS.
>
> --
> Pawel Jakub Dawidek http://www.wheel.pl
> pjd at FreeBSD dot org http://www.FreeBSD.org
> FreeBSD committer Am I Evil? Yes, I Am!
>
>
> _______________________________________________
> zfs-discuss mailing list
> zfs-discuss at opensolaris dot org
> http://mail.opensolaris.org/mailman/listinfo/zfs-discuss
>
>
>
>


--
Rasputin :: Jack of All Trades - Master of Nuns
http://number9.hellooperator.net/
_______________________________________________
zfs-discuss mailing list
zfs-discuss at opensolaris dot org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss



Pawel Jakub Daw...
pjd@FreeBSD.org
Re: Porting ZFS file system to FreeBSD.
Posted: Aug 22, 2006 5:25 AM   in response to: number9

  Click to reply to this thread Reply

On Tue, Aug 22, 2006 at 12:22:44PM +0100, **** Davies wrote:
> This is fantastic work!
>
> How long have you been at it?

As I said, 10 days, but this is really far from beeing finished.

--
Pawel Jakub Dawidek http://www.wheel.pl
pjd at FreeBSD dot org http://www.FreeBSD.org
FreeBSD committer Am I Evil? Yes, I Am!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.4 (FreeBSD)

iD8DBQFE6vfhForvXbEpPzQRAkXdAJ9XpbH60lq4CeTdzrTTdjKNd1pazACcDVAk
2+SBrQBtUiDWY+za2DghRXk=
=uG3/
-----END PGP SIGNATURE-----
_______________________________________________
zfs-discuss mailing list
zfs-discuss at opensolaris dot org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss


raj2569

Posts: 6
From:

Registered: 12/7/05
Re: Porting ZFS file system to FreeBSD.
Posted: Aug 22, 2006 5:17 AM   in response to: Guest

  Click to reply to this thread Reply

On 8/22/06, Pawel Jakub Dawidek <pjd at freebsd dot org> wrote:
> I started porting the ZFS file system to the FreeBSD operating system.

Mighty cool!! Please keep us posted!!

raj
_______________________________________________
zfs-discuss mailing list
zfs-discuss at opensolaris dot org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss



Ricardo Correia
zfs-opensolaris@wizy...
Re: Porting ZFS file system to FreeBSD.
Posted: Aug 22, 2006 10:30 AM   in response to: Guest

  Click to reply to this thread Reply

Wow, congratulations, nice work!

I'm the one porting ZFS to FUSE and seeing you doing such progress so fast is
very very encouraging :)
_______________________________________________
zfs-discuss mailing list
zfs-discuss at opensolaris dot org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss



Luke Scharf
lscharf@vt.edu
Re: Porting ZFS file system to FreeBSD.
Posted: Aug 23, 2006 7:07 AM   in response to: Ricardo Correia

  Click to reply to this thread Reply

Ricardo Correia wrote:
> Wow, congratulations, nice work!
>
> I'm the one porting ZFS to FUSE and seeing you doing such progress so fast is
> very very encouraging :)
>
I'd like to throw a "me too" into the pile of thank-you messages!

I spent part of the weekend expanding and manipulating a set of LVM
volumes on a pair of RHEL4-ish Linux servers... And I kept grumbling to
myself "if this were ZFS, I could be done by now!" Not only that, but I
could have matched the configuration to the needs of the users more
closely. [0]

I look forward to ZFS on both Linux and FreeBSD. It will be a powerful
addition to both platforms!

Thanks,
-Luke

[0] Changing a production server from an RHEL4 clone to Solaris isn't
something that I'm likely to just-do in a couple of hours over the
weekend on a cross-platform domain where I'm just assisting. If I were
the sysadmin there, though, it would be practical.
_______________________________________________
zfs-discuss mailing list
zfs-discuss at opensolaris dot org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss


Pawel Jakub Daw...
pjd@FreeBSD.org
Re: Porting ZFS file system to FreeBSD.
Posted: Sep 5, 2006 1:48 AM   in response to: Guest

  Click to reply to this thread Reply

On Tue, Aug 22, 2006 at 12:45:16PM +0200, Pawel Jakub Dawidek wrote:
> Hi.
>
> I started porting the ZFS file system to the FreeBSD operating system.
[...]

Just a quick note about progress in my work. I needed slow down a bit,
but:

All file system operations seems to work. The only exception are
operations needed for mmap(2) to work. Bascially file system works quite
stable even under heavy load. I've problem with two assertions I'm
hitting when running some heavy regression tests.

I've spend a couple of days fighting with snapshots. To be able to
implement them I needed to port GFS from Solaris (Generic
pseudo-filesystem). Now, snapshots (and clones) seems to work just fine.

Some other minor bits like zpool import/export, etc. now also work.

File system is not yet marked as MPSAFE (it still operates under the
Giant lock).

--
Pawel Jakub Dawidek http://www.wheel.pl
pjd at FreeBSD dot org http://www.FreeBSD.org
FreeBSD committer Am I Evil? Yes, I Am!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.4 (FreeBSD)

iD8DBQFE/ToHForvXbEpPzQRAiu6AJ4ubslBraCORT7V0r4Zl++vlVTdRwCfSmEF
kI10byCU4W1bdf6/vrMeSvA=
=EPK0
-----END PGP SIGNATURE-----
_______________________________________________
zfs-discuss mailing list
zfs-discuss at opensolaris dot org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss


Pawel Jakub Daw...
pjd@FreeBSD.org
Re: Porting ZFS file system to FreeBSD.
Posted: Sep 5, 2006 1:53 AM   in response to: Pawel Jakub Daw...

  Click to reply to this thread Reply

On Tue, Sep 05, 2006 at 10:49:11AM +0200, Pawel Jakub Dawidek wrote:
> On Tue, Aug 22, 2006 at 12:45:16PM +0200, Pawel Jakub Dawidek wrote:
> > Hi.
> >
> > I started porting the ZFS file system to the FreeBSD operating system.
> [...]
>
> Just a quick note about progress in my work. I needed slow down a bit,
> but:
>
> All file system operations seems to work. The only exception are
> operations needed for mmap(2) to work. Bascially file system works quite
> stable even under heavy load. I've problem with two assertions I'm
> hitting when running some heavy regression tests.
>
> I've spend a couple of days fighting with snapshots. To be able to
> implement them I needed to port GFS from Solaris (Generic
> pseudo-filesystem). Now, snapshots (and clones) seems to work just fine.
>
> Some other minor bits like zpool import/export, etc. now also work.
>
> File system is not yet marked as MPSAFE (it still operates under the
> Giant lock).

And one more very important thing! The code is not yet ready for testing
by others, so please don't ask for patches. When the code will be ready
I'll publish them.

--
Pawel Jakub Dawidek http://www.wheel.pl
pjd at FreeBSD dot org http://www.FreeBSD.org
FreeBSD committer Am I Evil? Yes, I Am!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.4 (FreeBSD)

iD8DBQFE/TtYForvXbEpPzQRAp2OAJ0YY7+OGO/U+XghrJbZhk8YRSUOpACgt/NZ
GIfKyuQacaRfBhg3cg6B3XU=
=3Crx
-----END PGP SIGNATURE-----
_______________________________________________
zfs-discuss mailing list
zfs-discuss at opensolaris dot org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss


Pawel Jakub Daw...
pjd@FreeBSD.org
Re: Porting ZFS file system to FreeBSD.
Posted: Oct 26, 2006 8:41 PM   in response to: Pawel Jakub Daw...

  Click to reply to this thread Reply

On Tue, Sep 05, 2006 at 10:49:11AM +0200, Pawel Jakub Dawidek wrote:
> On Tue, Aug 22, 2006 at 12:45:16PM +0200, Pawel Jakub Dawidek wrote:
> > Hi.
> >
> > I started porting the ZFS file system to the FreeBSD operating system.
> [...]
>
> Just a quick note about progress in my work. I needed slow down a bit,
> but:

Here is another update:

After way too much time spend on fighting the buffer cache I finally
made mmap(2)ed reads/writes to work and (which is also very important)
keep regular reads/writes working.

Now I'm able to build FreeBSD's kernel and userland with both sources
and objects placed on ZFS file system.

I also tried to crash it with fsx, fsstress and postmark, but no luck,
it works stable.

On the other hand I'm quite sure there are many problems in ZPL still,
but fixing mmap(2) allows me to move forward.

As a said note - ZVOL seems to be full functional.

I need to find a way to test ZIL, so if you guys at SUN have some ZIL
tests like uncleanly stopped file system, which at mount time will
exercise entire ZIL functionality where we can verify that my FS was
fixed properly that would be great.

PS. There is still a lot to do, so please, don't ask me for patches yet.

--
Pawel Jakub Dawidek http://www.wheel.pl
pjd at FreeBSD dot org http://www.FreeBSD.org
FreeBSD committer Am I Evil? Yes, I Am!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.4 (FreeBSD)

iD8DBQFFQX/8ForvXbEpPzQRApwXAKDAOromyth2vlXnoCgzqv+0qEeTuQCeLTc1
ijpBwUTvUxdDijdoQADoXOQ=
=tu+o
-----END PGP SIGNATURE-----
_______________________________________________
zfs-discuss mailing list
zfs-discuss at opensolaris dot org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss


eschrock

Posts: 804
From: Menlo Park, CA

Registered: 3/9/05
Re: Re: Porting ZFS file system to FreeBSD.
Posted: Oct 27, 2006 9:18 AM   in response to: Pawel Jakub Daw...

  Click to reply to this thread Reply

Congrats, Pawel. This is truly an impressive piece of work. As you're
probably aware, Noel integrated the patches your provided us into build
51. Hopefully that got rid of some spurious differences between the
code bases.

We do have a program called 'ziltest' that Neil can probably provide for
you that does a good job stressing the ZIL. We also have a complete
test suite (functional and stress), but it would be non-trivial to port,
and I don't know what the current status is for open sourcing the test
suites in general.

Let us know if there's anything else we can help with.

- Eric

On Fri, Oct 27, 2006 at 05:41:49AM +0200, Pawel Jakub Dawidek wrote:
>
> Here is another update:
>
> After way too much time spend on fighting the buffer cache I finally
> made mmap(2)ed reads/writes to work and (which is also very important)
> keep regular reads/writes working.
>
> Now I'm able to build FreeBSD's kernel and userland with both sources
> and objects placed on ZFS file system.
>
> I also tried to crash it with fsx, fsstress and postmark, but no luck,
> it works stable.
>
> On the other hand I'm quite sure there are many problems in ZPL still,
> but fixing mmap(2) allows me to move forward.
>
> As a said note - ZVOL seems to be full functional.
>
> I need to find a way to test ZIL, so if you guys at SUN have some ZIL
> tests like uncleanly stopped file system, which at mount time will
> exercise entire ZIL functionality where we can verify that my FS was
> fixed properly that would be great.
>
> PS. There is still a lot to do, so please, don't ask me for patches yet.
>
> --
> Pawel Jakub Dawidek http://www.wheel.pl
> pjd at FreeBSD dot org http://www.FreeBSD.org
> FreeBSD committer Am I Evil? Yes, I Am!

--
Eric Schrock, Solaris Kernel Development http://blogs.sun.com/eschrock
_______________________________________________
zfs-discuss mailing list
zfs-discuss at opensolaris dot org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss



perrin

Posts: 228
From: US

Registered: 3/9/05
Re: Re: Porting ZFS file system to FreeBSD.
Posted: Oct 27, 2006 10:16 AM   in response to: eschrock

  Click to reply to this thread Reply

Pawel,

I second that praise. Well done!

Attached is a copy of ziltest. You will have to adapt this a bit
to your environment. In particular it uses bringover to pull a subtree
of our source and then builds and later runs it. This tends to create
a fair number of transactions with various dependencies.
You'll obviously have to update the paths and tools.
However, at least initially, I'd recommend you simplify things by
perhaps jhaving the only test as a creation of a file.

The basic flow behind ziltest is:
1. Create an empty file system FS1
2. Freeze FS1
3. Perform various user commands that create files, directories, etc
4. Copy FS1 to FS2
5. Unmount and unfreeze FS1
6. Remount FS1 (resulting in replay of log)
7. Compare FS1 & FS2 and complain if not equal

Hope this helps and good luck: Neil.

Eric Schrock wrote On 10/27/06 10:18,:
> Congrats, Pawel. This is truly an impressive piece of work. As you're
> probably aware, Noel integrated the patches your provided us into build
> 51. Hopefully that got rid of some spurious differences between the
> code bases.
>
> We do have a program called 'ziltest' that Neil can probably provide for
> you that does a good job stressing the ZIL. We also have a complete
> test suite (functional and stress), but it would be non-trivial to port,
> and I don't know what the current status is for open sourcing the test
> suites in general.
>
> Let us know if there's anything else we can help with.
>
> - Eric
>
> On Fri, Oct 27, 2006 at 05:41:49AM +0200, Pawel Jakub Dawidek wrote:
>
>>Here is another update:
>>
>>After way too much time spend on fighting the buffer cache I finally
>>made mmap(2)ed reads/writes to work and (which is also very important)
>>keep regular reads/writes working.
>>
>>Now I'm able to build FreeBSD's kernel and userland with both sources
>>and objects placed on ZFS file system.
>>
>>I also tried to crash it with fsx, fsstress and postmark, but no luck,
>>it works stable.
>>
>>On the other hand I'm quite sure there are many problems in ZPL still,
>>but fixing mmap(2) allows me to move forward.
>>
>>As a said note - ZVOL seems to be full functional.
>>
>>I need to find a way to test ZIL, so if you guys at SUN have some ZIL
>>tests like uncleanly stopped file system, which at mount time will
>>exercise entire ZIL functionality where we can verify that my FS was
>>fixed properly that would be great.
>>
>>PS. There is still a lot to do, so please, don't ask me for patches yet.
>>
>>--
>>Pawel Jakub Dawidek http://www.wheel.pl
>>pjd at FreeBSD dot org http://www.FreeBSD.org
>>FreeBSD committer Am I Evil? Yes, I Am!
>
>
> --
> Eric Schrock, Solaris Kernel Development http://blogs.sun.com/eschrock
> _______________________________________________
> zfs-discuss mailing list
> zfs-discuss at opensolaris dot org
> http://mail.opensolaris.org/mailman/listinfo/zfs-discuss
#!/bin/ksh -x
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (the "License"). You may not use this file except in compliance
# with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# ident "@(#)ziltest 1.2 06/01/30 SMI"
#
# - creates a 150MB pool in /tmp
# - Should take about a minute (depends on access to the gate for bringover).
# - You can change the gate to local by setting and exporting ZILTEST_GATE
#

PATH=/usr/bin
PATH=$PATH:/usr/sbin
PATH=$PATH:/usr/ccs/bin
#PATH=$PATH:/net/slug.eng/opt/export/`uname -p`/opt/SUNWspro/SOS8/bin
#PATH=$PATH:/net/anthrax.central/export/tools/onnv-tools/SUNWspro/SOS8/bin
PATH=$PATH:/net/haulass.central/export/tools/onnv-tools/SUNWspro/SOS8/bin
#PATH=$PATH:/net/slug.eng/opt/onbld/bin
PATH=$PATH:/opt/onbld/bin
export PATH

#
# SETUP
#
ZILTEST_GATE=${ZILTEST_GATE-/net/haulass.central/export/clones/onnv}
CMD=`basename $0`
POOL=ziltestpool.$$
DEVSIZE=${DEVSIZE-150m}
POOLDIR=/tmp
POOLFILE=$POOLDIR/ziltest_poolfile.$$
FS=$POOL/fs
ROOT=/$FS
COPY=/tmp/${POOL}
KEEP=no

cleanup() {
zfs destroy $FS
zpool iostat $POOL
print
zpool status $POOL
zpool destroy $POOL
rm -rf $COPY
rm $POOLFILE
}

bail() {
test $KEEP = no && cleanup
print $1
exit 1
}

test $# -eq 0 || bail "usage: $CMD"

mkfile $DEVSIZE $POOLFILE || bail "can't make $POOLFILE"
zpool create $POOL $POOLFILE || bail "can't create pool $POOL"
zfs set compression=on $POOL || bail "can't enable compression on $POOL"
zfs create $FS || bail "can't create $FS"
mkdir -p $COPY || bail "can't create $COPY"
touch $ROOT/touched
lockfs -f $ROOT
zpool freeze $POOL || bail "can't freeze $POOL"

# ====================================================================
# TESTS
# Put tests below.
# Use $ROOT for all file name prefixes
# ====================================================================

touch $ROOT/a
mv $ROOT/a $ROOT/b

touch $ROOT/c
ln -s $ROOT/c $ROOT/d

touch $ROOT/e
ln $ROOT/e $ROOT/f

mkdir $ROOT/dir_to_delete
rmdir $ROOT/dir_to_delete

bringover -p $ZILTEST_GATE -w $ROOT/tws usr/src/cmd/date >/dev/null
ws $ROOT/tws >/dev/null << EOF
cd usr/s $ROOT/date & sleep 1; rm $ROOT/date; wait

#Large file
dd if=/usr/share/lib/termcap of=/ROOT/large bs=128

#
# Write zeroes, which compresss to holes, in the middle of a file
#
dd if=$POOLFILE of=$ROOT/holes.1 bs=128k count=8
dd if=/dev/zero of=$ROOT/holes.1 bs=128k count=2

dd if=$POOLFILE of=$ROOT/holes.2 bs=128k count=8
dd if=/dev/zero of=$ROOT/holes.2 bs=128k count=2 oseek=2

dd if=$POOLFILE of=$ROOT/holes.3 bs=128k count=8
dd if=/dev/zero of=$ROOT/holes.3 bs=128k count=2 oseek=2 conv=notrunc

#
# Test extended attributes
#
mkdir $ROOT/xattr.dir
runat $ROOT/xattr.dir mkfile 1k fileattr
runat $ROOT/xattr.dir mkfile 1k tmpattr
runat $ROOT/xattr.dir rm tmpattr

touch $ROOT/xattr.file
runat $ROOT/xattr.file mkfile 1k fileattr
runat $ROOT/xattr.file mkfile 1k tmpattr
runat $ROOT/xattr.file rm tmpattr
rm $ROOT/xattr.file

# ====================================================================
# CLEANUP
# ====================================================================

KEEP=yes # keep stuff around if we fail, so we can look at it

cd $ROOT
find . | cpio -pdmuv $COPY
cd /

zfs unmount $FS || bail "can't unmount $FS"

print $CMD: transactions to replay:
zdb -ivv $FS || bail "can't run zdb on $POOL"

#
# Export and reimport the pool to unfreeze it and claim log blocks.
# It has to be import -f because we can't write a frozen pool's labels!
#
zpool export $POOL || bail "can't export $POOL"
zpool import -f -d $POOLDIR $POOL || bail "can't import $POOL"

# ====================================================================
# PLAYBACK
#
# Exit here if you want to peruse the log before playback.
# ====================================================================

print $CMD: current block usage:
zdb -bcv $POOL || bail "blocks were leaked!"

runat $ROOT/xattr.dir ls -la || bail "can't list xattr directory"

diff -r $ROOT $COPY > /dev/null || diff -r $ROOT $COPY || bail "replay diffs!"

$ROOT/tws/usr/src/cmd/date/date || bail "can't run the date(1) binary we built"

cleanup

exit 0
_______________________________________________
zfs-discuss mailing list
zfs-discuss at opensolaris dot org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss





Terms of Use | Privacy | Trademarks | Copyright Policy | Site Guidelines
Your use of this web site or any of its content or software indicates your agreement to be bound by these Terms of Use.
© 2010, Oracle Corporation and/or its affiliates

Oracle