2012: State of ZFS

GWestphal

Golden Member
Jul 22, 2009
1,120
0
76
I'm confused about a few things. So, there are ZFS File System versions and ZFS Pool Versions. What is the difference? Should I try to use FSv5,Pv33 (I think that's the newest one). Why are there so many versions in the first place, shouldn't file systems be relatively static? I mean we've had HFS+ unchanged for a few decades, NTFS for a few decades, Ext3 for a few decades, Ext4 for a few years, but ZFS has gone through like 50 iterations over the course of 2 or 3 years.

Since Oracle changed the policy of handling ZFS do we get the full ZFS source after each Solaris release? As in, can you just copy a zip file and build the zfs kernel module or does significant code porting need to take place first?

ZFS almost feels more like a program than a filesystem to me. Typical I think of a filesystem as something that is relatively transparent once you initialize it.

Maybe someone could make a simple step by step outline of what it takes to run the newest ZFS? (i.e. Step 1: Download ZFS from here. Step 2: Compile Source like this Step 3: Use these ZFS commands)


Is ZFS bootable? Are Linux, BSDs etc? The only way to get ZFS?

Is ZFS able to be put on removable storage (Flash drives, USB Hard drives etc)?

Has the ZFS 4k sector drives thing been worked out yet?

In ZFS, you have physical devices, which are grouped into pools, right? Then you can create a dataset which is like a partition, right?
 
Last edited:

greenhawk

Platinum Member
Feb 23, 2011
2,007
0
71
I'm confused about a few things.

So, there are ZFS File System versions and ZFS Pool Versions. What is the difference?

Why are there so many versions in the first place, shouldn't file systems be relatively static? I mean we've had HFS+ unchanged for a few decades, NTFS for a few decades, Ext3 for a few decades, Ext4 for a few years, but ZFS has gone through like 50 iterations over the course of 2 or 3 years.

Since Oracle changed the policy of handling ZFS do we get the full ZFS source after each Solaris release?

ZFS almost feels more like a program than a filesystem to me.

Maybe someone could make a simple step by step outline of what it takes to run the newest ZFS?

Is ZFS bootable?

Are Linux, BSDs etc? The only way to get ZFS?

Is ZFS able to be put on removable storage (Flash drives, USB Hard drives etc)?

Has the ZFS 4k sector drives thing been worked out yet?

In ZFS, you have physical devices, which are grouped into pools, right? Then you can create a dataset which is like a partition, right?

Not a expert on ZFS, but here is my take on it

1) read the wiki about ZFS yet?
http://en.wikipedia.org/wiki/ZFS

2) The File System is the data level control of information. The Pools is the device level setup of storage areas. (raid level, letter/name assignment ect)

3) You answered your own question. The others have been around for decades, Version 1 for ZFS was late 2005, just over 6 years ago.

4) No idea, but then ZFS needs to be supported not only for the OS, but any application that needs to access it in a non-standard way (ie: not letting the OS handle the file access processes).

5) In a way it is a application as it is self checking, it is not a write once and forget about file system. It's purpose in life is to ensure data is not corrupted and to fix issues as they are found.

6) easiest is to stick to the linux version that has it (limited range IIRC as not all linux support it) Then just use the inbuilt update system of that OS.

7) I would think so as it does take over as much of the storage system as you want it to.

8) Only linux, Microsoft has it's own for windows that is made to address similar issues, but not sure if it is still under development or only available on their high end server OS versions.

9) It should be usable on those drives but I suspect there are some reasons it is advised against doing it. For thumb drives, compatibility with other systems would be high on the list.

10) what 4K issue? The only thing 4K drives cause issues with is OS's that do not create partitions on the 4K limits. Linux is generally flexible to allow the user to manually get around this anyway IIRC.

11) Pools are user created arrangements, much like how RAID is setup (ie: set up the drives how you want it). As to datasets, no idea but they do sound like partitions that most windows people are familiar with.
 

taltamir

Lifer
Mar 21, 2004
13,576
6
76
Should I try to use FSv5,Pv33 (I think that's the newest one).
To use FSv5 Pv33 you need to use the latest solaris version. Other implementations are using older versions.
I see no particular reason not to use them, except for the fact that you cannot move it to another OS. (For example, if you are using Pv15 or older, then you could move the drives to a FreeNAS box and just type
#zpool import -f poolname
But if you tried it on a newer Pv than 15 you would not be able to, since FreeNAS only supports up to version 15 at the moment (on stable release, you could go with a beta or alpha version for higher versions).
Most OS that use solaris are using Pv28 and FSv5. The latest released as open source

Why are there so many versions in the first place, shouldn't file systems be relatively static? I mean we've had HFS+ unchanged for a few decades, NTFS for a few decades, Ext3 for a few decades, Ext4 for a few years, but ZFS has gone through like 50 iterations over the course of 2 or 3 years.
Each and every ZFS upgrade has provided new and impressive features. Things like FS level deduplication, encryption, ZIL, etc... those are things that do not exist in other FS. You can read EXACTLY what was added in each version here http://en.wikipedia.org/wiki/ZFS

Since Oracle changed the policy of handling ZFS do we get the full ZFS source after each Solaris release? As in, can you just copy a zip file and build the zfs kernel module or does significant code porting need to take place first?
Oracle closed up development of future versions. version 29 and above of zpool are limited to solaris only at the moment and most likely will never be released as open source. But that doesn't mean development has to stop, open source implementations could fork it from zpool v28 and ZFS v5.
FreeBSD 9 release uses zpool v28.

ZFS almost feels more like a program than a filesystem to me. Typical I think of a filesystem as something that is relatively transparent once you initialize it.
This is by intent. FS are traditionally tiny tiny simple things with extremly limited capabilities. ZFS is hundreds of megabytes in size and has variety of integrated and powerful tools (programs), this is what allows it to be so superior to other FS.

Maybe someone could make a simple step by step outline of what it takes to run the newest ZFS? (i.e. Step 1: Download ZFS from here. Step 2: Compile Source like this Step 3: Use these ZFS commands)
While ZFS is a set of programs, they are tightly integrated with the OS (typically on kernal level but with linux mostly in FUSE; although there is a kernel level version in work), you do not download and install ZFS nor update it specifically. You simply install and update an OS and ZFS is built into it.
It is the default FS for solaris, FreeBSD, and seveal minor OS.
Check here http://en.wikipedia.org/wiki/ZFS#Platforms
For all the OS that have ZFS built in and which version of ZFS is included with which OS.

Is ZFS bootable?
Yes

Are Linux, BSDs etc? The only way to get ZFS?
If you are asking "can I get ZFS on windows or Mac" then the answer is no, you cannot.
MS is developing their own answer to ZFS which isn't ready yet.
Linux is also developing their own answer to ZFS which isn't ready yet. Simultaneously doing the best they can to port it over (but with issues)
And apple declared they would switch to ZFS and started integrating it (it was available in beta versions) then mysteriously removed it and never mentioned it again. Nobody knows what they are thinking or planning or doing.

Is ZFS able to be put on removable storage (Flash drives, USB Hard drives etc)?
Yes, but it will only work on compatible OS (like every other FS you choose for external storage)

Has the ZFS 4k sector drives thing been worked out yet?
The issue with 4k sector drives is that they stupidly cling to WinXP compatibility with 512e (512b sector emulation) that cannot be turned off. This results in lower performance due to alignment issues. Workarounds exist but are currently iffy. That being said all it would cause is a slowdown, not any data loss.
These issues will disappear when 4k drives will stop lying to the OS and admit to being 4k drives (this is called 4Kn), which will immediately solve said performance issues. Note that we are not talking about a deteriorating performance that gets worse and worse until you cannot use it.
Merely a case of constant performance that is lower then what it could have been otherwise.

I'm confused about a few things. So, there are ZFS File System versions and ZFS Pool Versions. What is the difference?
In ZFS, you have physical devices, which are grouped into pools, right? Then you can create a dataset which is like a partition, right?

ZFS includes several different things that are both at the top and bottom of the stack. For this explanation lets call them "low level ZFS" and "high level ZFS"
It might sound a little frightening at first but its really rather simple. And less complicated then trying to do something similar with a traditional OS like NTFS (which you CAN do... its called spanning and is a whole can of worms)... just, forget about trying to find NTFS equivalents and just understand what ZFS does as ZFS independently.

The way it works is as follows:
In ZFS you have vdevs (virtual devices), a vdev is either a single drive formatted for ZFS, or a raid array (with ZFS custom RAID solutions which solve all known issues with RAID5/6 and its kind). The creation of vdevs is handled by low level ZFS. vdevs are then grouped together into pools at your discretion.
For windows equivalent, think of pools as partitions that span multiple vdevs. And a vdev is EITHER a raid array OR a single drive.

For example, I could use 6 drives in the following manner
Pool 1 (1TB):
-vdev A (single device, 1TB):
--HDD 1 (1TB)

Pool 2 (5TB):
-vdev B (RAID1 array, 1TB):
--HDD 2 (1TB)
--HDD 3 (1TB)
-vdev C (RAID5 array, 4TB)
--HDD 4 (2TB)
--HDD 5 (2TB)
--HDD 6 (2TB)

Now, each pool will then have a single ZFS filesystem that covers the entire pool using high level ZFS. As well as as many sub filesystems as you want (which can be 0 if you want to keep it simple).

For example, pool 1 will have several created by my OS (I installed the OS on it and it boots from it) so lets ignore it.

Pool 2 is your own storage and will contain 2 FS, one for you and one for spouse. Let us call it "tank" and the subpools "yours" and "spouse". So you end up with:
tank
-tank/yours
-tank/spouse

This allocation then works like RAM allocation (advanced and dynamic), not like partitions (primitive and static).
If I have 1TB of junk, and spouse has 2TB, then we end up with
tank (3TB used out of 5TB, 2TB available)
-tank/yours (1TB used out of 5TB, 2TB claimed by other FS, 2TB available)
-tank/spouse (2TB used out of 5TB, 1TB claimed by other FS, 2TB available)

You can set a limit on the max amount an space an FS may claim out of the total pool.

Of course if all the above seems overly complex nothing stops you from having a much simpler implementation. And if you have a reason for it, you could make a more complex one. (for example, you could perform snapshots)
 
Last edited:

murphyc

Senior member
Apr 7, 2012
235
0
0
If you are asking "can I get ZFS on windows or Mac" then the answer is no, you cannot.

Ten's Compliment is offering ZFS on Mac OS X. It's based on v28.

MS is developing their own answer to ZFS which isn't ready yet.

From the MSDN blog on ReFS: Therefore, ReFS is ready to be deployment-tested in a managed environment. Being the first version of a major file system, we do suggest just a bit of caution. We do not characterize ReFS in Windows 8 as a “beta” feature.


It's not released software yet. So is the file system ready when the only host operating system on which it's available is not yet ready? I think upon release of Windows 8 it can be considered ready. And it's probably ready for pre-production qualification for those who are beta testing Windows 8, with caution.

Linux is also developing their own answer to ZFS which isn't ready yet.

Oracle considers Btrfs "production-ready". It's been in the mainline kernel for some time. It is considered experimental still though as there are new features being added still, and there are always bugs to fix (in any filesystem). But it is considered stable on a stable machine. It's been an available root file system on Fedora linux for a couple of years. But is not yet seen as stable enough as the default file system. It depends very much on how one qualifies "ready yet".
 

taltamir

Lifer
Mar 21, 2004
13,576
6
76
Ten's Compliment is offering ZFS on Mac OS X. It's based on v28.
This is a creative solution. MacOS does not support ZFS so they sell people a program that runs on MacOS and does ZFS on an external drive.
An interesting 3rd party solution, although far from ideal. It cannot be a boot drive, has sharing issue, at the moment does not support redundancy of any kind (estimated to be available on spring 2012).
But it would be an option for apple users for their external drives... You aren't booting your macbook off of a ZFS drive with this thing.

And I see no reason to use it when you can just run a FreeNAS on an external box and connect your Mac or Windows PC to it.

From the MSDN blog on ReFS: Therefore, ReFS is ready to be deployment-tested in a managed environment. Being the first version of a major file system, we do suggest just a bit of caution. We do not characterize ReFS in Windows 8 as a “beta” feature.
I will go right to walmart and buy myself a copy of windows 8. Oh wait I can't because its not out yet.
Also this will ONLY be available in server edition at first.

Oracle considers Btrfs "production-ready". It's been in the mainline kernel for some time. It is considered experimental still though as there are new features being added still, and there are always bugs to fix (in any filesystem). But it is considered stable on a stable machine. It's been an available root file system on Fedora linux for a couple of years. But is not yet seen as stable enough as the default file system. It depends very much on how one qualifies "ready yet".
Good for oracle.
Every single linux distro on the market currently has it as "experimental" feature only you can opt into using.
There are plans for both Fedora and Ubuntu to finish all the tools it needs to be considered complete and make it the default FS later this year though.
http://www.phoronix.com/scan.php?page=news_item&px=OTc2OA
 
Last edited:

murphyc

Senior member
Apr 7, 2012
235
0
0
It cannot …. [list of limitations]…

The reason for my original response is that you can get ZFS on a Mac. That this particular offering doesn't meet your particular requirements, is totally beside the point.

It's a new company, with a just release 1st product. The principle is a former Apple engineer who was working on ZFS for Mac OS X.

It's fair to point out that it's ultimately Apple's responsibility to provide a more reliable file system than JHFS+/X, not a 3rd party. A 3rd party solution does invite legitimate concerns.

And I see no reason to use it when you can just run a FreeNAS on an external box…

No reason at all? You're clearly only thinking of raw features. You're not considering user capability or their interest level at all.

ZEVO doesn't require new hardware purchases. FreeNAS would: NAS case for one, and probably new hard drives, unless you expect people to pick up a screw driver and move drive from external enclosures to the NAS. The very idea of picking up a screw driver is a huge limitation of FreeNAS. Also is performance - a single modern disk will saturate 1GigE. I know at least one photographer who bought it for single DAS setup, and it improved performance by 50%, according to him. So there are legitimate reasons people may prefer one or the other means of obtaining ZFS on Mac OS X. Plus the ZEVO UI is very straight forward.

ZEVO does not meet your requirements. Fine. FreeNAS likely does not meet the requirements of ZEVO target market. I don't see a problem with having choice.

I will go right to walmart and buy myself a copy of windows 8. Oh wait I can't because its not out yet.
Also this will ONLY be available in server edition at first.

I already said it's not released software yet.

Good for oracle. Every single linux distro on the market currently has it as "experimental" feature only you can opt into using.

It's the default filesystem on MeeGo.

There are plans for both Fedora and Ubuntu to finish all the tools it needs to be considered complete and make it the default FS later this year though.

The show stopper was btrfsck was not ready by the F17 branch date, not that btrfs itself is considered experimental.