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.
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)