ZFS: The future for storage networks?
File system has massive capacity, but licensing issues and architectural concerns persist
- By Joab Jackson
- Jun 22, 2007
When Linus Torvalds, leader of the development of the Linux Kernel, considered the headache-inducing task of moving the Linux license to a newer version, he could think of only one reason to do so: To get the Sun Microsystems' Zetabyte file system. Sun was thinking about licensing its Solaris operating system, and components such as ZFS, under the GNU General Public License Version 3. And if Linux was moved to GPLv3 as well, it could use ZFS.
'I think the only really interesting thing they have is ZFS,' Torvalds wrote on the Linux kernel mailing list.
What make ZFS different from every other file system out there? For starters, it's the only file system with 128-bit addressing, said Bill Vass, president of Sun Federal. Most other file systems encode the location pointers of data elements with an address space that is 64 bits long. As a result, ZFS, which was introduced with the release of Solaris 10 and continues to be refined, can store up to 18 million terabytes of data in one namespace. Compare this to XFS, for instance, a 64-bit file system that can store only a paltry million terabytes. Sun is clearly thinking ahead.
'People understand the need for speed, but they are willing to
sacrifice 5 or 10 percent of their CPU cycles'' ' Joel Berman, Red Hat
'Somebody said that if you actually stored the amount of data you could store with ZFS, you could boil the ocean with the amount of heat coming from the disks,' Vass said.
Would anyone need that much space? Maybe not today, but given the exponential growth of disk capacity ' along with the growing trend of building distributed and universal file systems ' larger organizations could be butting up against the hard limits of 64-bit addressing before long. 'We believe you will exceed 64-bit addressability within the lifetime of the file system,' Vass said. Sun released what it called a data server, the Sun Fire X4500 ' aka Thumper ' which is a 48-drive unit capable of storing up to 24T.
In addition to 128-bit addressing, ZFS has other features as well, Vass said. For instance, it watches for disks that are going bad and can move data off those disks before failure occurs. It runs checksums on the disk blocks and compares them against their supposed values. If they are different ' a sign that the disk has been corrupted' that block will not be used. It also does away with the need for volume management. These days, when a database administrator needs more storage space, he or she asks the storage administrator to increases the size of the partition dedicated to that database. The storage system may have multiple partitions for multiple databases, each controlled by the storage administrator.
With ZFS, however, the database can write directly to the file system.
'So you can imagine a database manager doesn't even know the file system exists and just manages the database, because ZFS is integrated in there,' Vass said.
It is worth noting that not everyone sees ZFS' ability to condense these layers of system management as advantageous. Andrew Morton, one of the chiefs behind the Linux kernel, has offhandedly remarked that ZFS is a 'rampant layering violation,' meaning that it blurs the lines between the operating system, file system and physical storage. Sun ZFS developer Jeff Bonwick said on his blog that ZFS is effective precisely because it collapses the space between layers and that it simplifies by eliminating needless connections. 'While designing ZFS, we observed that the standard layering of the storage stack induces a surprising amount of unnecessary complexity and duplicated logic,' he wrote. 'Refactoring' the boundaries between the file system, volume manager and RAID controller 'make the whole thing much simpler.'
For others in the Linux community, however, this increased speed isn't worth the price it exacts. Joel Berman, Red Hat's director of product management for Red Hat Enterprise Linux, said refactoring the layers may give ZFS a tighter integration with applications, but it will be a nightmare for anyone who wants to change the configuration.
'People understand the need for speed, but they are willing to sacrifice 5 or 10 percent of their CPU cycles in order to give them the isolation and abstraction they need,' he said.
Such abstraction allows them to better manage the stack and change out components more easily.
Vass said ZFS still does have some shortcomings ' the overhead occurred by managing such a large namespace can exact a toll on performance. And because it is new, overall, a lot more of the details have to be worked on before it is fully ready for production use. 'It's very elegant, but it's a maturing product,' he said.
Still, early word has been good. On the Linux developers list, developer Bron Gondwana noted he started using a Thumper and has found working with the ZFS-enabled storage server pleasing enough. The administrative tools for ZFS were easy to use and the way ZFS checks that the material has been written correctly is reassuring as well. 'The attitude of checksumming everything on to disk and checking that those checksums match on the way back out presses my 'Do your own safety checking and don't trust the hardware' buttons very much the right way ' especially with that much hardware in there,' he wrote on the mailing list.