Last summer we delivered the news that a native ZFS file-system implementation for Linux was coming by an Indian company known as KQ Infotech where they leveraged the Lawrence Livermore National Laboratories ZFS Linux code, finished it off in some areas, and took care of the POSIX support. This ZFS Linux module was eventually released to a group of beta testers -- us included -- and we ran some ZFS Linux benchmarks back in November using the latest beta code. Since that point, however, KQ Infotech has made their ZFS Linux port publicly available and earlier this month they declared this work as stable via its general availability release. We have decided to benchmark this latest ZFS Linux code to see where the performance now stands against the EXT4, Btrfs, and XFS file-systems.
KQ Infotech now hosts their source trees for their ZFS work publicly on this GitHub page with the ZFS kernel module, LZFS (the ZFS POSIX layer for Linux), SPL (the Solaris Porting Layer for Linux), and their miscellaneous scripts for building packages. Behind their registration wall on the KQ Infotech web-site you are able to download their official binaries that have compiled packages for Red Hat Enterprise Linux 6, Fedora 14, Ubuntu 10.04 LTS, and Ubuntu 10.10. The 64-bit versions of these Linux distributions are required as well as using specific kernel versions (2.6.32-71.el6, 184.108.40.206-74, and 2.6.35-22-server). Due to license incompatibilities between Oracle's ZFS code and the Linux kernel (as well as KQ Infotech basing this work around providing commercial support for ZFS on Linux), this work will not be integrated into the mainline Linux kernel for the foreseeable future and will just be available as these third-party modules.
For running todays tests, Ubuntu 10.10 was used with its Linux 2.6.35 server kernel as to use KQ Infotech's official ZFS Linux packages. The ZFS Linux performance was then compared to that of EXT4, Btrfs, and XFS using the Linux 2.6.37 kernel to represent the latest stable look at those file-systems' performance. Each file-system was left in an "out of the box" configuration and used the default mount options each time. In this article we also left out benchmarks of ZFS-FUSE, but we have benchmarked that in the past.
While not the hardware that Sun Microsystems had in mind when designing the ZFS file-system, for today's tests these benchmarks are coming from an Intel Atom dual-core netbook with a single HDD. This is due to currently being in Hawaii for a Phoronix Test Suite 3.0-Iveland and OpenBenchmarking.org coding spree and having not wanted to lug around a bunch of hardware, but if there is enough interest, additional tests will be carried out next month on a different class of hardware.
This Intel Atom + NVIDIA ION netbook was the ASUS Eee PC 1201N with the Intel Atom 330 64-bit dual-core CPU plus Hyper Threading, 2GB of system memory, a 250GB Hitachi HTS54502 SATA 5400RPM mobile hard drive, and NVIDIA GeForce 9400M 256MB graphics. Again, Ubuntu 10.10 x86_64 was used for the course of this four-way Linux file-system performance comparison.
Using the latest Phoronix Test Suite 3.0-Iveland development code, the SQLite, Compile Bench, IOzone, Dbench, FS-Mark, Threaded I/O Tester, PostMark, and Unpack-Linux test profiles were used.
When starting with the SQLite database benchmark on this low-power Intel netbook, the KQ ZFS file-system actually came out in front. The ZFS file-system under Linux was 16% faster than EXT4 and nearly 40% faster than Btrfs and XFS. This is quite an improvement from our ZFS benchmarks from this past November using the beta code where the SQLite performance on ZFS was behind that of EXT4 and XFS but still in front of Btrfs, but the hardware is significantly different as well.