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