BSDCan2007 - Confirmed Schedule

BSDCan 2007
The Technical BSD Conference

Pawel Dawidek
Day 4
Room SITE B0138
Start time 11:30
Duration 01:00
ID 43
Event type Lecture
Track Filesystems
Language English

Porting the ZFS file system to FreeBSD

A much anticipated FS

There will be 3 parts to this presentation. - a short introduction to ZFS and its great features - discussion of porting work, enumerate differences between the FreeBSD port and Solaris ZFS, and show some performance numbers. - demonstrate how ZFS works on a FreeBSD machine

I would like to present the work I did on porting ZFS file system from the OpenSolaris to the FreeBSD. ZFS is one of the most wanted file system these days, it offers a huge number of interesting features and some unique ones, like:

  • storage pool model,
  • copy-on-write model (no fsck, no journaling),
  • end-to-end data integrity,
  • integrated volume manager, which provides for example single and double
parity RAID-Z, RAID-1, dynamic stripping, hot-spare support, etc.
  • cheap snapshots,
  • snapshots rollback,
  • clones (writtable snapshots),
  • simplified administration (no newfs(8), bsdlabel(8), fdisk(8), growfs(8),
  • no limits,
  • fast native backup and restore,
  • data compression,
  • adaptive endianess,
  • data encryption (WIP).
One part of my talk and paper will provide more detailed introduction to ZFS and its features. I started working on ZFS port in the middle of August 2006. At this point (January 2007) my port is almost complete. 95% of the entire functionality is already implemented and works. Performance optimization process is in progress as well, file system is already marked as MPSAFE and works stable. The main part of the paper will describe porting work I did. ZFS consists userland applications and libraries, but it's heart is a kernel module. I'll try to show how well ZFS fits into FreeBSD because of integration with the GEOM infrastructure. I'd also like to describe methods I used to speed up the whole porting process and keep vendor source mostly unmodified, which will allow for easy vendor's changes tracking. I'll also like to use my port as an excuse to compare OpenSolaris' and FreeBSD's kernels, mostly VFS and disk I/O subsystems. While doing presentation I'd like to demonstrate working ZFS on FreeBSD, which may be interesting for those who attend the conference. At the end of the paper, I'll show some performance comparsion between UFS2 and ZFS (although ZFS on FreeBSD is not yet well optimized). I'd also enumerate future goals and directions on my work as ZFS opens many doors, ie. ZFS integration with jails, iSCSI, NFS, etc. We also need to port NFSv4 ACLs, which are natively used in ZFS.