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
Installation
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 the 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 http://nxr.netbsd.org/xref/src/external/cddl/osnet/TODO
External Documentation links
Nice zfs howto written for zfs + mac os x http://code.google.com/p/maczfs/wiki/GettingStarted
![[NetBSD Logo]](http://www.NetBSD.org/images/NetBSD-smaller.png)