Seeing that the development of the ext3 file system successor has started, and that Andrew Morton has released mm patch containing ext4 file system, I decided to run some simple benchmarks, even in this early stage of development.
Because the mm patch also contains Hans Reiser's reiser4 file system, I decided to run benchmarks against it, too, for a good measure. Let me once again remind that both ext4 and reiser4 are still in development, while ext3 has been in production for many years, so take all the results below with a grain of salt.
ZFS has many features which can benefit all kinds of users - from the simple end-user to the biggest enterprise systems:
- Provable integrity - it checksums all data (and metadata), which makes it possible to detect hardware errors (hard disk corruption, flaky IDE cables, etc...)
- 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 or 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
- Highly scalable
- 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).
- Many others (variable sector sizes, adaptive endianness, ...)
sshfs is a very slick way to access your remote filesystems, securely and transparently. It is based on the great FUSE (Filesystem in Userspace) framework, which has been integrated in the linux kernel since version 2.6.14. While sshfs may not be as fast and featureful as other full-blown network filesystems such as NFS or Samba, it still has some great features:
- very easy to use, on the server side there's nothing to do, on the client side mounting the filesystem is as easy as logging into the server with ssh
- provides secure (encrypted) access to remote files
- has decent performance (multithreaded, caching directory contents and allowing large reads)
- should work well even over slow and/or unstable links (think dialup), knows how to reconnect to the server when the connection is broken