Summer of code results: NetBSD zfs port

October 26, 2009 posted by Adam Hamsik


This summer I worked on a port of ZFS file system to NetBSD and was mentored by Andrew Doran. This entry details the results of my Summer of Code project and future plans.


During this year summer of code I have worked on a port of a ZFS file system to the NetBSD. Before midterm we wanted to have loadable zfs and solaris modules with eventually working zvol. After midterm we wanted to look at zfs file system itself and try to port solaris VFS and vnode operations to NetBSD. Porting zfs snapshots and zal (zfs acl management) was set as a optional taks.


I was able to succesfuly complete all set midterm and end term tasks. After GSOC we was able to succesfuly mount and compile new kernel on a zfs file system. Our work was merged to the NetBSD base system to the HEAD branch befpre the end of GSOC. It is build by default for amd64 and i386 architectures however only i386 is functional now. There are still problems with integration and zfs can deadlock during vnode reclaim, fsync very easily.

I'm willing to continue in my work after the import. More details about usage of zfs under the NetBSD can be found at ZFS TODO. There are many open issues with zfs still.

  • Fix amd64 panic during zvol creation
  • Fix vnode lifecycle related deadlocks in zfs
  • Fix problems with file permissions on a zfs filesystem
  • Add native getpages and putpages routines for zfs
  • Port zfs snopshots layer
  • Update zfs code to newer version
  • Add support for exporting zfs volumes as iSCSi target



It's funny how apple drops ZFS and we're picking it up. Maybe it'll find its way to MacOS that way, which would be a great ad for NetBSD. [Although I doubt that a) NBSD and OSXXIII are compatible enough and b) technical issues were the reason for Apple not wanting ZFS support] Aside of that, please s|befpre|before|;s|It is build|It is built|;s|compile new kernel|compile a new kernel| (or s|compile new kernel|do a kernel compile|) and finally: Great work!

Posted by Martin S. Weber on October 27, 2009 at 01:44 AM UTC #

Thanks for doing this work. I think adding filesystems is a wonderful thing to do. Please do continue to work on it and fix things.

Posted by George Michaelson on October 27, 2009 at 07:27 AM UTC #

I am really looking forward to using ZFS on NetBSD but I have to have amd64. how close are you to figuring out the last remaning amd64 showstopper?

Posted by Sam Fourman Jr. on October 27, 2009 at 08:05 PM UTC #

Sam: I really want to fix this bug but I haven't had too much time to look at it yet. I'm trying to find a fix for a vnode related deadlocks so we will have at least i386 functioning and after that I want to look at this amd64 problem.

Posted by haad on October 27, 2009 at 11:27 PM UTC #

Good stuff. ZFS will make NetBSD much more compelling for embedded NAS/SAN building blocks.

Posted by Kevin Bowling on December 13, 2009 at 03:47 AM UTC #

Post a Comment:
Comments are closed for this entry.