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.
[...]
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.
Eventually this will make its way into -current, then -stable. Yay!