Posted
by
samzenpuson Friday March 29, 2013 @12:10PM
from the brand-new dept.

sfcrazy writes "ZFS on Linux has reached what Brian Behlendorf calls an important milestone with the official 0.6.1 release. Version 0.6.1 not only brings the usual bug fixes but also introduces a new property called 'snapdev.' Brian explains, 'The snapdev property was introduced to control the visibility of zvol snapshot devices and may be set to either visible or hidden. When set to hidden, which is the default, zvol snapshot devices will not be created under /dev/. To gain access to these devices the property must be set to visible. This behavior is analogous to the existing snapdir property.'"

It does, with a few caveats: namely, you need to have one of about 3 disk controllers to make it stable. That's the biggest one. And preferably, run it from something which has been specifically designed for ZFS, like FreeNAS instead of as 'freebsd' itself, since that's just a moving target...

I agree. I tried ZFS on linux with disappointing results (got hammered by half a dozen users at once and slowed to a crawl) and I'm geting vastly better performance on the same hardware with freeBSD for now (takes the same load and more without slowing to a crawl - even while doing a scrub at the same time), but I'm sure it will catch up with a bit of work. I've still got one linux box with ZFS which gets a job done (offsite redundant storage) - it's slow in comparison but does appear to be stable.

How long ago did you try it? I had similar problems very briefly when I tried it at around 0. 5.8 I believe. Performance is much better now.

Personally, I've got 3 ZoL systems here at home: a Phenom II x3 with 16GB of RAM (which is my main VM host), an AMD Bobcat with 8GB (storage/backup mainly), and an AMD XP 3200+ with 8GB of RAM (secondary/failover VM host) - all run virtualization extensions, and of the half dozen VMs which are getting used regularly (and another 8 which are always on serving various net

In December with whatever was current then I had the system that just could not cope under linux with ZFS and then I reinstalled it as freebsd. I've got a another linux ZFS system that is running OK but it never gets to work hard. It fine so long as there are not a lot of things going on, but with only half a dozen users trying to read things off the same filesystem at once it slowed down to almost nothing. Maybe it would have been OK with more than 4GB (however the current on

I've had 6 production ZFS servers under heavy load for over a year (FreeBSD 9.0-RC -> 9.1-RELEASE) without any problems. I've started building all of my new servers with root-on-zfs to start taking advantage of beadm (boot environments, lets you do a clone of your root file system, do an upgrade in a jail, then try booting off it, and then decide if you want to keep it, or roll back)

I started giving it a go last year on an old 32 bit server with 24 IDE disk bays and just threw whatever random IDE drives that happened to be lying around into it. It copes very well with hardware failures, and if you group the disks by age/size/model it performs well even if some of the disks are very slow and old. After I threw out all the dead and dying disks the thing was actually useful as a second holding area for data while reinstalling and reformatting a production system. "zfs send" is an aweso

Oh dear, as if the different combinations of the kernels, DEs, libraries weren't enough, now we'll have version numbers of file systems? Fantastic. Now, one more variable, as in ZFS 0.5.8 doesn't work w/ Linux 3.4, or has a bug when GTK 3.6 is used w/ it, or something along those lines.

Version 5000 is used for community ZFS implementations that have feature flags (Illumos, BSD, and Linux).

If you're talking about Solaris, the current version is 34; any version past 28 comes after Oracle closed off Solaris. Note that beyond version 28, the community and Oracle ZFS pools are not interoperable.

Sort of, but it's different than you are thinking. Linux is licensed under the GPL 2, while ZFS is licensed under CDDL. Those two licenses are not compatible. Since the GPL is a distribution license, not a use license, there is nothing stopping you from using ZFS on Linux. However, you can't ship the two combined as you would then be violating the license. The practical effect is that you won't ever see a kernel implementation of ZFS ship with a Distro unless oracle relicenses ZFS. You'll have to download,

Sort of, but it's different than you are thinking. Linux is licensed under the GPL 2, while ZFS is licensed under CDDL. Those two licenses are not compatible. Since the GPL is a distribution license, not a use license, there is nothing stopping you from using ZFS on Linux. However, you can't ship the two combined as you would then be violating the license. The practical effect is that you won't ever see a kernel implementation of ZFS ship with a Distro unless oracle relicenses ZFS. You'll have to download, compile, and install ZFS yourself for the Linux-based computers that you want to use it on. And that's perfectly legal within the scope of the licenses.

That is only an issue with monolithic kernels. Sabayon Linux and Gentoo Linux are currently shipping ZFS binary modules on their live media.

It's also worth noting that the primary platform for ZFSonLinux is Ubuntu, where DKMS is used to dynamically compile the kernel module. I believe the same is true for most other distros that aren't source-based.

Translation: you add the repository and install the "zfs" package and it does everything for you. So installing ZFS is no more difficult than installing any other package, and the licensing issues are completely irrelevant to users.

I wouldn't want to bet on that. Compiling and linking CDDL module source against the kernel's GPL source almost certainly creates a derived work (it's complicated but, in short: depends on whether it just uses header information or actually links in kernel code).

Distributing a CDDL source-code plus scripts package (e.g. a zfs-dkms package) which compiles the zfs kernel modules on the user's own machine as a result of the user's explicit action (i.e. to inst

While I am not a lawyer, I have actually done reading on this topic and I am certain that almost everything you wrote is wrong

that's nice for you. I'm certain you don't have a clue what you're talking about.

you certainly don't know enough to be encouraging anyone to bet against an expensive lawsuit - which doesn't actually have to win in order to succeed, it just has to bankrupt you (in which case, it wins by default because you don't afford lawyers to defend yourself any more)

The practical effect is that you won't ever see a kernel implementation of ZFS ship with a Distro unless oracle relicenses ZFS. You'll have to download, compile, and install ZFS yourself for the Linux-based computers that you want to use it on. And that's perfectly legal within the scope of the licenses.

A zfs-dkms module package is also possible, which automates the compile and install of the kernel module.

There are un-official packages for ubuntu and debian already which do this (spl-dkms and zfs-dkms fo

Snapshots, volumes, checksums, easy expansion, better drive management, shorter recovery time when the system crashes, etc etc etc. ZFS is so far ahead of ext4 they are in completely different fields. ZFS works well on low resource machines too. I use it on a small home server with 512MB of RAM and it's been running great for over a year.

Better data integrity? Checksums on all blocks means the OS can tell if data is corrupt, and the data can be seamlessly recovered from redundancy (typically parity from raidz or raidz2, which also doesn't have the raid5 write hole because ZFS is copy-on-write).

Easier to use? zfs management happens through the "zfs" and "zpool" commands which are generally much easier to work with than obscure necromancy commands required for traditional types of systems that make me care about cylinders and partitions.

More flexible? The storage pool method, where you build a pool of capacity and allocate filesystems out of it, gives you a great deal of flexibility and simplicity. I just keep adding more storage to my pool as required, either by adding more RAID arrays or increasing the size of disks in those arrays, and then I've got my primary filesystem for storage, I've got a deduplicated one I use for backups, and I've got a compressed one I use for long-term archives. And creating a new one like that takes about five seconds without having to repartition or reformat anything. Creating/deleting filesystems is about as much effort as creating/deleting files.

Easier snapshots? Snapshots are instant on copy-on-write filesystems. Any modification of data causes the block to be copied anyhow, so all a snapshot has to do is not delete older blocks.

ZFS is one of a handful of next-gen filesystems (along with BTRFS and HAMMER) that are so far beyond traditional filesystems that it's a really eye-opening experience using them. That's not to say ZFS is perfect, or that the ZFSonLinux implementation is perfect, but it's in a reasonable state of stability at this point, and the advantages that these new filesystems offer is substantial.

I do wish that ZFS had asynchronous deduplication like HAMMER, though. ZFS deduplication requires atrocious amounts of RAM (estimates go from 5 to 20 gigabytes of RAM per terabyte of deduplicated data), while HAMMER has effectively no extra memory required at runtime for dedupe, because it just scans the disk afterwards and does the deduplication after the fact, so it doesn't need to hold the full block table in memory at all times.

Async dedup is a trade off I guess. It means you need a window to run your dedup in where performance will no doubt suffer. If you are doing it inline you pay the memory or SSD cost to hold the dedup table, but don't need to worry about scheduling a maintenance window.

I can't speak for Linux, but on FreeBSD it's no extra hassle. First, you don't need to think about partitioning, you just create a big zpool. You can restrict the size of filesystems within it, but they're not hard limits, so it's very easy to expand them. On the other hand, you do get the benefits of having different partitions (i.e. you can optimise them for different use cases, e.g. turning on compression and deduplication on a volume that you don't access much and turning them off in filesystems that

Huge - but mostly it's about the difference between LVM and ZFS in a multi-disk situation.Snapshotting and portability is the biggest difference I can think of with ext4, everything else is pretty well comparing a LVM+ext4 bundle with zfs.

If you have a low-memory machine and not a lot of storage, does it buy you anything

I'd say not, ZFS is not something I'd run on a machine with less than 2GB.

That's LVM of course. Typo... A major difference is that the file system is aware of the underlying backing store and can use that to its advantage, due to the "layering violation" stuff that some Linux developers decided was inherently bad and unacceptable.

I'd say not, ZFS is not something I'd run on a machine with less than 2GB.

It depends a lot on the size of the disk. The general rule of thumb for good performance with ZFS is 1GB of RAM for each TB of storage (more if you're doing dedup). I stuck ZFS (PC-BSD) on an old laptop I gave to my tango group to play music. It only had 1GB of RAM, but it only had 20GB of disk space, so it was completely fine, and it means that if they unplug it (the battery is dead) by accident without shutting down then they still have a consistent filesystem, and I could snapshot it in a known-good s

Consider that all three major ZFS platforms (Linux/FreeBSD/Illumos) are working on a common core that they all share, and that the lions share of ZFS development is coming from the Linux community. Perhaps the Linux ZFS community should not be dismissed so readily.

FreeBSD is a fantastic platform for ZFS, but considering that both FreeBSD and ZoL are pulling down new work all the time, it's not automatically more stable.