File:  [NetBSD Developer Wiki] / wikisrc / users / haad / porting_zfs.mdwn
Revision 1.14: download - view: text, annotated - select for diffs
Fri Apr 6 11:42:15 2012 UTC (4 years, 1 month ago) by wiki
Branches: MAIN
CVS tags: HEAD
web commit by haad

# 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.
* 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 <>

# External Documentation links
Nice zfs howto written for zfs + mac os x <>

CVSweb for NetBSD wikisrc <> software: FreeBSD-CVSweb