tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Partial port of ZFS
Hi,
Here is a partial port of ZFS. I do not have time to complete it right now.
Most of the initial porting work is done and it's looking for someone to
complete it.
This is not a good project for a novice kernel programmer. It needs a person
who is comfortable working in the kernel and who has some level of knowledge
of file systems and device drivers. Some limited VM system know-how would be
an advantage because ZFS interacts with it.
Tarball:
http://www.netbsd.org/~ad/zfs-20090111.tar.gz
Notes:
- It does not do anything useful yet. There's no point in downloading it
unless you want to work on it.
- It is more complete than the last port that I did, which I distributed
only to a few people.
- In some ways the NetBSD kernel works and looks more like Solaris than
FreeBSD these days, so it's a direct port from OpenSolaris 20081117. Much
of the build glue and compatibility shims are cribbed from the previous
port, meaning some is original work and some comes from the FreeBSD port.
- There are two kernel modules: solaris and zfs. If solaris is made to
compile, then technically there is enough of the zfs code compiling and in
place to use the volume management bit of zfs. I say technically because
that has hooks into the zfs file system layer which mean it also needs to
be ported.
- The main component left with work outstanding is ZPL, the FS layer: vfsops
and vnops. The FreeBSD port provides a good reference point as their VFS
layer looks very like ours.
- Most of the source compiles and links. One of the userland binaries does
not but I can't remember which. The two kernel modules are 'almost'
linking but do need work. See above.
- ztest now works reliably for me but I have to (cd /usr/bin; ./ztest -VVV).
There seems to be a bug in its dealing with getprogname/argv[0] and it
screws up during pathname munging if outside /usr/bin.
- I have tried to avoid modifying the original Sun source. Most changes are
handled with glue headers and preprocessor/Makefile tricks. Where the
source has been modified the changes are isolated, or the file moved out
of dist and maintained as a local copy (more extensive changes).
- It needs the openat() patch I posted to tech-kern earlier.
Andrew
Home |
Main Index |
Thread Index |
Old Index