# 1. Status of NetBSD zfs port NetBSD zfs port is work in progress and can easily panic your system. **ZFS currently works ony on i386 and amd64!!** --- # 2. Using NetBSD ZFS port ## Instalation Use any -current build from i386 or amd64 architecture. All tools and modules should be built by default, now. There are 2 modules used for ZFS solaris.kmod and zfs.kmod. Solaris module provides solaris like interfaces to zfs on NetBSD. The second module is zfs and provides zfs file system functions. ## Configuration User need to modload solaris modload zfs After loading modules user can create zpool(zfs version of volume manager) and manage zfs file systems on it. zpool create {zpool name} {type} {device} where type is: * mirror * raidz * raidz2 * default is normal linear allocation device is blod device on netbsd /dev/sd0a for example. zpool create tank mirror /dev/sd0a /dev/sd1a creates mirrored zpool between 2 disk partitions. With zpool created we can create zfs filesystems or zvols(zfs logical volume disks) zfs create -V {size} tank/{zvol name} creates zvol with {zvol name} from ZPOOL called tank Logical disk is created in /dev/zvol/rdsk/{zpool name}/{zvol name} /dev/zvol/dsk/{zpool name}/{zvol name} zfs create tank/{zfs name} create zfs filesystem on a zpool called tank ## Administration After creating ZVOLS and filesystem they are saved in a /etc/zfs/zpool.cache file and loaded after nextzfs module load. --- # 3. Known Bugs ## Show stoppers ### amd64 ### i386 ### Both * vnode reclaiming deadlocks Current code is quite a hack but it works until I will find some time to rework vnode reclaiming on NetBSD. http://nxr.netbsd.org/xref/src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vnops.c#4254 * vnode fsync bug I think that we are hitting this bug, too. I have some patches in the tree which fixes deadlod in vnode reclaim but after that I'm getting another deadlock in VOP_FSYNC. * kmem_cache_alloc/ aka pool_cache_get panicsdue to KM_NOSLEEP flag There are some problems in then NEtBSD UVM subsytem when KM_NOSLEEP allocation can fail even if system has enough memory to use. I talked with ad@ about it and he said that there is one problem in uvm where some lock is held, KM_NOSLEEP allocation will fail. ## Functional bugs * Snapshots * Permissions * Old code, we should update NetBSD zfs port to new code * More tasks can be found at # External Documentation links Nice zfs howto written for zfs + mac os x