Features of ZFS and RAID-Z look vary promising. Looks like it is a perfect FS for home NAS solutions, poor man's Drobo things and alike.
Are there any drawbacks I should be aware of?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.Sign up to join this community
Snapshotting a filesystem is an amazing feeling, as geeky as that sounds. Knowing you can roll back in an instant is a relieving thought. Snapshots also take only a few seconds. A colleague and I recently deployed an OpenSolaris NAS for a smallish college (200+ students) for virtual machine iSCSI storage for Citrix XenServer, student file storage and administration files. Files are checksummed so you have the guarantee that if there is a bit error at the harddrive level that you'll find out instead of your files corrupting silently.
Having a bit of a budget we got a server with 9 disks, 2 for the OS mirrored using ZFS, 4 for data, 2 parity (using ZFS RAIDZ2) and 1 hot spare. Each was 1TB which brought it down to about 2.5T+ or thereabouts usable (you lose some space for the 1TB to 1TiB conversion and other overhead like filesystem data). Snapshotting the root storage pool took less than 2 seconds. When you go ZFS, you wonder how you'll ever go back, and why this isn't standard.
Snapshots can also be sent to another computer running the same version of ZFS using 'zfs send' which can be done over SSH. These changes are sent incrementally so there's no wastage there.
The only downside is knowing the right commands, although OpenSolaris has a nice scheduling manager for daily snapshots however I haven't used it. Sharing via iSCSI, CIFS/SMB, or NFS is fairly trivial - but in the latest version using the new framework COMSTAR yields some problems. Make sure you're using the right guide for your release if you go down this path. 2009.06 has a few changes since 2008.11 which I recommend. I wouldn't use it as a desktop either - Gnome and X seem a bit in need of attention.
Last thing: you need 512MB to 1G minimum of memory to let ZFS run smoothly. YMMV though, so give it a shot and see what you think.
Have a read through the docs: http://wikis.sun.com/display/BluePrints/Provisioning+with+iSCSI+and+Solaris+ZFS+in+10+Minutes
And maybe Lesser known Solaris Features http://www.c0t0d0s0.org/pages/lksfbook.html
And if you're feeling like testing some stuff http://www.solarisinternals.com/wiki/index.php/ZFS_Evil_Tuning_Guide
Oh and one last bit of information for anyone reading: make sure if you have a RAID card and you want to utilize the features of ZFS that it can serve up the disks in JBOD as opposed to a predetermined RAID configuration as dictated by the card. Enjoy!
ZFS on a home NAS is great. I've have a FreeBSD server running ZFS for years (now upgraded to FreeBSD 8.2 with V15) and the recover aspects are one of the hidden gems.
I have a system that has a pair of 2TB drives in a ZFS mirror that crashed due to environmental reasons, when it came back up, it only took seconds for ZFS to correct the issues with drive. A standard RAID rebuild on 2TB drives takes a long time. I had another die because some of the internal fans died. This system had a 4 drive RAIDZ and it was able to recover all of the data loss in 5 minutes across a 2TB setup.
If you run FreeBSD with Samba and ZFS, you can combine the snapshots from the first answer with Recent Files (found in Vista and Windows 7) and then be able to older file versions using the windows GUI. See http://www.edplese.com/samba-with-zfs.html for details.
It can be worthwhile once you find hardware that works well with Solaris. I ended up using Nexenta for usability - it (mostly) uses familiar GNU command-line and Debian's package manager.
It should be noted that due to licensing issues, the Linux ZFS implementation is somewhat crippled. It runs as a Userspace program, and has dramatically reduced performance, and iirc, a reduced feature set. Solaris and FreeBSD are the recommended OS choices, although Mac OSX has limited support.
Followup - The OSX port of ZFS has since become somewhat deprecated, I wouldn't recommend it for anything other than testing
I've been meaning to try it forever, because running a Raid-Z host with an NFS share sounds like what OpenSolaris was made for. But without having tried it, I can't speak to the advantages or disadvantages yet. Clearly you won't be able to mount it directly on Windows unless you also run Samba, and it might not be able to run both for the same array. If I were to do it, I would not boot out of the same Raid-Z array which I'm sharing, so you'd need a minimum of 4 drives, and I'm thinking of using 6.
I have used Solaris, OpenSolaris and OpenIndiana for quite some time. ZFS is one of the most attractive features in these OSs. I have been very favorably impressed with ZFs and recently installed native ZFS on my new Ubuntu workstation. The licensing requires that the user install it but it worked fine for me using the information found on the ZFS on Linux project.
My new installation is a 64Gb SSD for the OS and my /home and 4 2TB drives configured as raidz. I have ZFS filesets as directories under my home dir to avoid loading up the small SSD with files that I would prefer not be part of any OS upgrades.
So far this seems to be working really well for me. The SSD makes the OS very responsive and the storage space and speed is also quite good. I do intend to benchmark the disk array this weekend.
I am really impressed with ZFS. It was designed and engineered to be the last word in filesystems and in my experience so far it is.
"Looks like it is a perfect FS for home NAS solutions, poor man's Drobo things and alike."
For home and for small, medium and large businesses. You can be confident that there is nothing "poor man" about ZFS.
As an example, Oracle has substantial support for ZFS:
With ZFS, you can re-create Drobo-like functions on your own, with a little research, and at a lower cost.
My first recommendation is that you read up on the different versions of ZFS; it can get a bit complicated with the whole OpenSolaris, OpenIndiana, Oracle Solaris, BSD and Linux differences that rise from various license types. If you are going to have a dedicated ZFS computer, depending on the version you want, you can install the right OS that supports it.
Some of the differences include support for encryption and for booting from ZFS partitions.
I recently configured a home storage box, I chose raid 10 (mirror + strip) over raidz. the drawbacks of raidz are:
if you disks are not of of equal size, you only use the size of the smallest disk per vdev. for example, if you have two 1TB disks and two 1.5TB disks, a raidz pool with all 4 disks will treat the 1.5TB disks as 1TB disks.
raidz are pretty static. if you have a raidz of 4 disks, you can't just add a fifth disk. you need to add a new raidz vdev of 4 disks. this makes raidz setups less flexible than raid10 setups, where you can just drop another pair of disks into the pool at any time.
the drawback of raid10 is that you lose 50% of the storage, but with today's storage prices, it's not such a big deal.
one drawback is that nfs compatibility with Linux is not great. to get it to work, I had to have linux mount using nfs3 protocol over tcp, and I didn't put any soft timeouts (I had timeouts and they caused problems).
as for Windows file sharing, I used samba and not the built in cifs service. for some reason I was not able to get cifs to work correctly.
one nice thing is that you can backup linux boxes to the open solaris box using rsync, and then take a zfs snapshot. I wrote a tool called zync that automates the process: