ZFS on NetBSD/amd64 6.0.1

My endeavour with ZFS on NetBSD/amd64 6.0.1 in late February and early March 2013 hasn’t been very positive. The kernel panics every now and then, even during the simplest of operations such as creating a new directory on a ZFS filesystem. The system was installed using UFS for the root filesystem, and the system was rock solid all along until I set up two additional hard drives and a modest mirrored zpool. Maybe the hassle’s due to the fact I use VirtualBox and not real hardware. Besides NetBSD/amd64 seems a bit sluggish when run in VirtualBox, at least compared to FreeBSD/amd64.

I even tried building a new world and kernel from NetBSD stable sources by carefully reading the available instructions, but alas no success.

I admit I’m almost completely new to NetBSD, and I’m surely to blame for my mistakes. I figured I better post these notes just to have something to look at the next time I want to try ZFS on NetBSD or when I simply decide to try NetBSD once again. I guess the moral is to stick to the binary releases or the binary snapshots.

However, I do remember early in this century substituting NetBSD/sparc 1.5.2 for SunOS 4.1.4, aka Solaris 1.1.2, on the five aging Sun SPARCstation IPCs at work. Everything was done through the binary release, not compiling anything from source other than a custom kernel for netbooting the diskless IPCs, and of course compiling the pkgsrc stuff. I remember back in the fall of 2006 how fun it was to see IPv6 addresses being automatically assigned to the le0 interfaces on those old pieces of computer hardware. Logging in by SSH took more than 60 seconds due to the demands of the crypto involved and the low computing power offered by the hardware. Even automatic public key-based SSH authentication ran slowly on those lunch boxes. Sadly the IPCs are all dead either due to hard drive failures, fan failures, and/or running out of juice on their NVRAM batteries. The latter is virtually unmendable thanks to the careless engineering efforts done by Sun. :-/

Enabling DHCP and SLAAC doesn’t resemble FreeBSD at all. These are the lines that need to go in /etc/rc.conf:

# If this is not set to YES, the system will drop into single-user mode.
#
rc_configured=YES

# Add local overrides below
#
ntpd=YES
ntpdate=YES
wscons=YES

hostname=netbsd-601.example.net
flushroutes=YES
dhclient=YES
ip6mode=autohost
rtsol=YES
rtsol_flags=wm0
rtsold=YES
rtsold_flags=wm0
ntpdate_hosts=ntp.example.net

To get ZFS up & running, you must manually load solaris.kmod and zfs.kmod the first time. The kernel modules reside in /stand/amd64/6.0/modules where each module has its own directory. There’s no need to enter an absolute path.

modload solaris
modload zfs

Create the pools you need, and once you get /etc/zfs/zpool.cache going, /etc/rc.d/mountall will take care of loading and unloading solaris.kmod and zfs.kmod automatically.

Published by

Trond Endrestøl

I stopped counting my age years ago. Personal interests besides computers and computer networks include, but are not limited to, astronomy, comics, music, and science (fiction).