ZFS for Linux

Welcome to the home of the ZFS-FUSE project – a port of the ZFS file system from Sun, the most advanced file system in the world.

Current release: ZFS for Linux 0.7.0

Get the full experience With Lativ Trackerâ„¢

ZFS is the most advanced file system ever invented.  This project makes it possible to create, mount, use and manage ZFS file systems under Linux, bringing the uncontested reliability and large feature set of ZFS to the Linux world.

Test-drive it now, come talk to us, and keep yourself updated with the latest news of our project!

What ZFS offers to you

ZFS has many features for all kinds of users – from the simple end-user to the biggest enterprise systems: 

Provable integrity – it checksums all data (and meta-data), which makes it possible to detect hardware errors (hard disk corruption, flaky IDE cables..). Read how ZFS helped to detect a faulty power supply after only two hours of usage, which was previously silently corrupting data for almost a year!

Atomic updates – means that the on-disk state is consistent at all times, there’s no need to perform a lengthy filesystem check after forced reboots/power failures.

Instantaneous snapshots and clones – it makes it possible to have hourly, daily and weekly backups efficiently, as well as experiment with new system configurations without any risks.

Built-in (optional) compression

High scalability

Pooled storage model – creating filesystems is as easy as creating a new directory. You can efficiently have thousands of filesystems, each with it’s own quotas and reservations, and different properties (compression algorithm, checksum algorithm, etc..).

Built-in stripes (RAID-0), mirrors (RAID-1) and RAID-Z (it’s like software RAID-5, but more efficient due to ZFS’s copy-on-write transactional model).

Among others (variable sector sizes, adaptive endianness, …)

How to try ZFS

We encourage you to try ZFS on your computer.  Here are several options for you to install ZFS and get it running quickly.

From ready-made installable packages

Several distribution managers include installable packages of ZFS-FUSE in their distributions.

  •  You can follow the Fedora/EPEL updates at https://admin.fedoraproject.org/updates/zfs-fuse
  • Fedora
    yum install zfs-fuse
  • RHEL 6, CentOS 6, ScientificLinux 6
    rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/i386/epel-release-6-5.noarch.rpm yum install zfs-fuse
  • RHEL 5 and CentOS 5
    rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm yum install zfs-fuse

From source (compiled by you)

  1. Install the required dependencies (libaio, libattr, libacl, libz, SCons, the FUSE libraries, and all development packages associated to these libraries).
    1. On Debian or Ubuntu:
      sudo apt-get install libaio-dev libattr1-dev libacl1-dev libz-dev libz-dev libfuse-dev libfuse2 scons libssl-dev
    2. On RPM-based distributions  (see also wiki/building-installing-tips):su -c “yum install -y fuse-devel libattr-devel libaio-devel libacl-devel zlib-devel fuse-devel scons openssl-devel”
  2. Download the latest stable source release from this page.
  3. Compile by uncompressing the source release, and running the command scons in the directory where the uncompressed files reside.

From the absolutely latest code (compiled by you, potentially dangerous)

To check out and compile the code from the official repository, first install Git, then follow these instructions:

# this is the official repository link
git clone http://git.zfs-fuse.net/official
# go into the source directory
cd official/src
# compile
scons debug=2
# there is also an installation target that you can use to install the compiled programs

From other, more bleeding-edge alternative repositories

The community of ZFS-FUSE developers is highly active, and at any point several developers have their own public repositories you can try — instead of the official one — which are generally more up-to-date than the official one.  Here are the links to the respective Git repositories:

  • Emmanuel Anne: http://rainemu.swishparty.co.uk/cgi-bin/gitweb.cgi?p=zfs

On debian you will need the kernel nfs server to use the recently added support for sharenfs:

apt-get install nfs-kernel-server
  • Lenz Grimmer: http://gitorious.org/zfs-fuse

Every once in a while, we merge the product of this work in the official repository, and when we get a release that we all consider good enough, this gets released as a stable release for distribution packaging.

How to get involved

Of course, we need your help!If you want to discuss ZFS or ask questions, join us in the mailing list at Google Groups.If you want to report bugs, use our bug tracker database to figure out whether a bug has already been reported, and report it (with as much detail as possible) if it isn’t.If you want to add documentation or news to this site, please ask to get the appropriate permissions to do so.

More resources

  • Ricardo’s blog on ZFS at Blogspot
  • vvatashki’s resync work
    Already incorporated in my tree, along with Emmanuel’s work
    It had a grave bug that causes your datasets to vanish if any of them have local properties.
    We (mostly Emmanuel) have fixed it in this project.
  • Files, patches, benchmark results at Google Groups
  • Turning caches on and off
  • Benchmark automation / analysis and results of benchmarks
    Git repository, you will have to clone it locally to see any files.
  • ZFS manual pages (also included in the code)
  • Official ZFS documentation
  • ZFS stress test
  • On-disk format
  • ZFS Q&A + Regression Testing
    • ztest – ZFS standard test tool (Part of the zfs-fuse source, but currently broken – fixed version in Emmanuel Anne`s GIT repository)
    • ZFS test suite (only runs on solaris for now, needs porting effort to run with zfs-fuse)
    • POSIX conformace testing by the NTFS-3G project (needs Perl::Test::Harness)
      • Instructions on how to run the tests

Self-Certification

[X] Internationalized

[X] Unit tests

[ ] End-user documentation

[ ] Internal documentation (documentation, interfaces, etc.)

[X] Existed and maintained for at least 6 months

[X] Installs and uninstalls cleanly

[X] Code structure follows best practice