ZFS, the Last Word in File Systems? 564
guigouz writes "Sun is carrying a feature story about its new ZFS File System - ZFS, the dynamic new file system in Sun's Solaris 10 Operating System (Solaris OS), will make you forget everything you thought you knew about file systems. ZFS will be available on all Solaris 10 OS-supported platforms, and all existing applications will run with it. Moreover, ZFS complements Sun's storage management portfolio, including the Sun StorEdge QFS software, which is ideal for sharing business data."
Open source (Score:4, Informative)
And it looks like it's going to be opensourced along with most of Solaris 10!
Presumably a 32 bit machine will be able to handle a 128 bit file system, in the same way as Solaris 10 is currently destined for (at most) 64 bits.
Re:Hmf. (Score:5, Informative)
Getting rid of file/drive size limitations for the foreseeable future?
What is their disk allocation scheme? (Score:4, Informative)
Frequently accessed data needs to be spread out on all the disks for the fastest access, so does that mean Sun has FS files/tables that track usage and repositions data based on that?
There already is a ZFS. (Score:5, Informative)
Re:billion billion? (Score:5, Informative)
Re:Oh wow! (Score:2, Informative)
Sounds really nice (Score:5, Informative)
Some highllights, for those that don't (or won't) RTA:
* Data integrity. Apparently it uses file checksums to error-correct files, so files will never be corrupted. About time someone did this.
* Snapshots, like netapp?
* Transactional nature/copy-on-write
* Auto-striping
* Really, Really Large volume support
All of this leads to speed and reliability. There's a lot of other stuff (varying blocks sizes, write queueing, stride stuff which I haven't heard about in years), but all of it leads to above.
Oh, and they simplified their admin too.
It's hard to make a filesystem look exciting. Most of the time it just works, until it fails. The data checksum stuff looks interesting, in that they built error correction into the FS (like CDs and RAID but better hopefully).
It might also do away with the idea of "space free on a volume," since the marketing implies that each FS grows/shrinks dynamically, pulling storage out of the pool as needed.
Any users want to chime in?
Re:What I really want to see in a file system... (Score:2, Informative)
With UFS2/SU we have snapshots [freebsd.org] which is a compromise; it does require any changes in the original UNIX API, and all current apps therefor work. On the other hand, it either requires a daemon or a competent user.
So, either you have UNIX or you have something else. Plan9 has many advantages, still, we use BSD, Solaris or whatever.
64 bits is awfully big already (Score:5, Informative)
It would take over 500 years to fill a 64 bit filesystem written at 1GB/sec (and of course 500 years to read it back again). 64 bits is already an impossibly large figure. There's absolutely nothing special or clever whatsoever about doubling the size of your pointers aside from using up more disk space for all the metadata.
64 bits is enough for today's filesystems in much the same way that 256 bit AES is enough for today's encryption - there are far bigger things that will require complete system changes than that so called "limit". I suspect a better filesystem will come along well before those 500 years are up... I agree with grandparent:
-1, Marketing Hype.
Re:Out of letters. (Score:5, Informative)
To those who dont know.. [ comes after Z in ASCII and unicode-latin
Re:What I really want to see in a file system... (Score:5, Informative)
http://www.namesys.com/benchmarks.html
"V4 is a fully atomic filesystem, keep in mind that these performance numbers are with every FS operation performed as a fully atomic transaction. We are the first to make that performance effective to do. Look for a user space transactions interface to come out soon....
Finally, remember that reiser4 is more space efficient than V3, the df measurements are there for looking at....;-) "
Some snippets from the article (Score:3, Informative)
* Dynamic striping across all devices to maximize throughput
* Copy-on-write design makes most disk writes sequential
* Multiple block sizes, automatically chosen to match workload
* Explicit I/O priority with deadline scheduling
* Globally optimal I/O sorting and aggregation
* Multiple independent prefetch streams with automatic length and stride detection
* Unlimited, instantaneous read/write snapshots
* Parallel, constant-time directory operations
ZFS has some similarities to NetApp's WAFL in that it uses "copy on write".
One of the fun things with ZFS is that it automatically stripes across all the storage in your pool. Disk size doesn't matter - it's all used. This even works across SCSI and IDE.
One of the important things is that volume management isn't a seperate feature. Effectively, all the current limitations of volume managers are blown away:
Just as it dramatically eases the suffering of system administrators, ZFS offers relief for your company's bottom line. Because ZFS is built on top of virtual storage pools (unlike traditional file systems that require a separate volume manager), creating and deleting file systems is much less complex. Not only does this eliminate the need to pay for volume manager licenses and allow for single support contracts, it lowers administration costs and increases storage utilization.
ZFS appears to applications as a standard POSIX file system--no porting is required. But to administrators, it presents a pooled storage model that eliminates the antique concept of volumes, as well as all of the related partition management, provisioning, and file system sizing problems. Thousands--even millions--of file systems can all draw from ZFS' common storage pool, each one consuming only as much space as it needs. The combined I/O bandwidth of all of the devices in that storage pool is always available to each file system.
This is also part of the stuff making admin and configuration far far simpler. The thing I like is that it should be far harder to go wrong with ZFS (not available in Solaris Express yet so I haven't seen this for myself).
The very high degree of reliability as standard is very welcome too:
Data can be corrupted in a number of ways, such as a system error or an unexpected power outage, but ZFS removes this fear of the unknown. ZFS prevents data corruption by keeping data self-consistent at all times. All operations are transactional. This not only maintains consistency but also removes almost all of the constraints on I/O order and allows changes to succeed or fail as a whole.
All operations are also copy-on-write. Live data is never overwritten. ZFS writes data to a new block before changing the data pointers and committing the write. Copy-on-write provides several benefits:
* Always-valid on-disk state
* Consistent, reliable backups
* Data rollback to known point in time
"We validate the entire I/O stack, start to finish, no guesswork involved. It's all provable data integrity," says Bonwick.
Administrators will never again have to run laborious recovery procedures, such as fsck, even if the system is shut down in an unclean fashion. In fact, Solaris Kernel engineers Bill Moore and Matt Ahrens have subjected ZFS to more than a million forced, violent crashes in the course of their testing. Not once has ZFS lost data integrity or leaked a single block.
For more technical info see Matt Ahrens's [sun.com] and Val Henson's [sun.com] blogs - since they're among the engineers who worked on it.
Re:Unlimited scalability (Score:2, Informative)
Infinity is relative.
Actually, Novell already made ZFS... (Score:3, Informative)
Novell now Novell Storage System (I think it used to be NetWare Storage System).
Apart from the obvious fact that SUN didnt manage to be very original in naming their filesystem, its noteworthy that Novell is porting their ZFS - now NSS - to Linux. It'll be part of Novell Open Enterprise Server - on both Linux and NetWare kernels.
From the top of my mind, here are some features of NSS that SUN needs to exceed to qualify for a new "final word..":
- Background compression
- Fast on-demand decompression
- Transactions
- Pluggable Name spaces
- Pluggable protocols (ie. http, nfs, etc)
- Advanced Access control model with inheritance, rights filters, etc. integrated with directory service (duh!)
- Quotas on user, group, directory level
- 64-bit (ok, SUN obviously got that one)
- mini-volumes
- journaled
- etc.
oh well, I wont bother continuing, but its worth looking out for NSS. Hopefully Novell will open source it and not make it exclusive to their distros.
There are a lot of cluster file systems (Score:5, Informative)
Right now there are a lot of file systems that do somehing not all that different than what Sun is proposing. The project [nersc.gov] I am on is evaluating them as we speak for a center wide filesystem. I've had the fun (no sarcasm, honestly) of setting up a number of different onces and helping to run benchmarks and tests against each. All of them have strengths. Every single one of them has some nasty weaknesses.
If you are looking for an open source based cluster file system, Lustre [lustre.org] is what you want. It's supported by LLNL, PNNL, and the main writers at ClusterFS Inc [clusterfs.com]. It's a network based cluster FS. We've been using it over GigE. However, we've found that there needs to be a ratio of 3:1 for data server:clients for a ratio. Wehave only used one metadata server. Failover isn't the greatest. Quotas don't exist. it also makes kernel mods (some good and bad) to do a mild fork of the linux kernel (they put them into the newer kernels every so often). It only runs on Linux. Getting it to run on anything else looks...scary.
GPFS [ibm.com] runs on AIX and Linux. Even sharing the same storage. It runs and is pretty stable. it has the option to run in a SAN mode or network based FS. In the latter form, it even does local discovery of disks via labels so that if a client can see the disks locally it will read and write to them via FC rather than to the server. It, however, is a balkanized mess. It requires a lot more work to bring up and run: there is an awful lot of software to configure to get it to run (re: RSCT. If you haven't had the joys of HATS and HAGS, count yourself very, very lucky).
ADIC's StorNext [adic.com] software is another option. This one is good if you are interested in ease of installation, maintanence, and very, very fast speeds (damn near line speed on Fibre channel). I have set this one up for sharing disks in less than two hours from first install to getting numerous assorted nodes of different OS's to play together (Solaris, AIX, Linux). It freakin on virtually everything from Crays to Linux to Windows. It's issues seem to be scaling (right now doesn't go past 256 clients) and it has some nontrivial locking issues (righting to the same block from multiple clients, and parallel I/O to the same file from multiple clients if you change the file size).
There are some others that are not as mature. Among them are Ibrix [ibrix.com], Panasas [panasas.com], GFS [redhat.com], and IBM's SANFS [ibm.com]. All of them are interesting or promising. Only SANF looks like it runs on more than Linux though at this point. Our requirements for the project I am on are to share the same FS and storage instance among disparate client OSes simultaneously. This might not be the same for others though and these might be worth a look. Lustre dodges this because its open source and they're interested in porting.
Re:Just better than the old stuff from Sun (Score:3, Informative)
Both have more interesting and pretty ways of playing with volumes. Disksuite is a free, add on package, and Veritas charges an arm and a leg for their Volume Manager.
In addition to the other cool features, ZFS is just a way to deepen the abstraction away from physical volumes.
As to it's inherent coolness, or lack there of, I'll let y'all know when I've actually been able to play with it.
[1]Had Sun been wise years ago, they would have just bought Veritas, and the world would be very different. Now however, Veritas is one of the largest software companies in the world.
The proof is in the pudding (Score:4, Informative)
The proof is in the pudding. Let Sun release it and administrators use it for a year or two, then we'll see if it's good enough. Right now I'm having doubts it's as good as they want you to believe.
Re:Just better than the old stuff from Sun (Score:3, Informative)
ZFS (Score:2, Informative)
"Patent burdened"
Re:Just better than the old stuff from Sun (Score:3, Informative)
Re:Oh wow! (Score:3, Informative)
Also, I'm tired running a volume manager simply to mirror root, and a separate, expensive volume manager (with a different level of support from a different vendor) simply to manage my data volumes, and I'm distressed that this is the "standard" way to do it in Solaris.
Hopefully, this changes things significantly.
- A.P.
White Papers (Score:2, Informative)
Re:Another quote to cherish (Score:5, Informative)
Re:What is their disk allocation scheme? (Score:3, Informative)
Re:64 bits is awfully big already (Score:2, Informative)
Re:Why don't they just describe the capacity in (Score:4, Informative)
Seriously, I would LOVE to use "Sagan" as a unit of counting "billions" or something.
Re:billion billion? (Score:5, Informative)
Nope. He said he'd never been outside the UK, so I'd be fairly certain he's aware of land outside the US.
Also living in the UK, I can attest that whenever you hear '1 billion', '1000 million' is meant. The UK converted to this for accounting purposes during the 70's.
The same I suspect is true for most of previously Europe-dominated countries (say India for example).
India, in particular, is toally different. They don't rely on millions and billions but 'crore' and 'lakh' which are 10million and 100k respectively.
Re:billion billion? (Score:2, Informative)
Okay!
Lesse, lets define a millimeter as 1000. That means a million is one meter and a billion is one kilometer. I, for one, can visualize a little over half a mile quite easily.
Re:Sounds really nice (Score:2, Informative)
you will rejoice at the ease of zfs.
I have been using it on my main nfs server in my Solaris lab at Sun
for quite a while now and it is great.
I have a 1.6tb disk array that is allocated to a single zpool on the
system. I can add/subtract drives/arrays to this pool at any time to
increade decrease the amount of storage avalable to the pool.
I can then creat, format and mount a zfs filesystem with one single
command to the zpool. the filesystem will only consume as much of the
zpool as it is actually using.
It really is a great system.
Re:billion billion? (Score:3, Informative)
Re:Oh wow! (Score:3, Informative)
You're right, it'd be nice to see some regularization.
Re:There are a lot of cluster file systems (Score:4, Informative)
You also may want to check out the ASM [oracle.com] (Automated Storage Manager). It only works for disks that Oracle manages, but it does some pretty cool automatic load-balancing and RAIDing.
Disclaimer: :-)
Yes, I do work for ORCL.
No, I do not work on either OCFS or ASM (but I have partied with those guys
Re:billion billion? (Score:3, Informative)
Again, what exactly are you planning to film? :)
Re:Patents and other Bad Signs. (Score:2, Informative)
Re:billion billion? (Score:4, Informative)
Hmm.
If you had a filesystem 2^64 bytes wide, and your average porn jpeg was 100kB, then this means that you could store 1x10^14 images on it. That's 100'000'000'000'000 of them.
Assuming you're male and heterosexual, this means that every woman on the planet would have to take 30'000 compromising pictures of herself to fill it up; or about 60'000 assuming you're not into the weird stuff.
You're right, that's a lot of porn.
Re:billion billion? (Score:3, Informative)
More technical information on ZFS (Score:2, Informative)
Disclaimer: I work on ZFS at Sun.
Re:billion billion? (Score:3, Informative)
1 m = 1000 mm, per definition.
1000x1000 = ?