--- wikisrc/users/haad/Attic/porting_zfs.mdwn 2009/10/22 04:28:54 1.1 +++ wikisrc/users/haad/Attic/porting_zfs.mdwn 2009/12/23 23:37:21 1.9 @@ -1,31 +1,61 @@ # 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 -* amd64 zio_root crash -Investigation -vdev_label_read_config -> zio_root calls zio_wait on a zio_root zio_t. Later zio_execute tries to generate -checksum on zio->zio_data which is NULL for a zio_root. Is this ressurrection of andys zio_null problem ? -because zio_root is basicaly zio_null. - - Solution - What is difference between i386 and amd64 version why it is working on i386 and not on a amd64 that can be - solution. + ### i386 ### Both @@ -45,8 +75,15 @@ because zio_root is basicaly zio_null. zfs umount panic is caused by using FreeBSD approach in zfs_reclaim. +* 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. ## 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