Tabriz's Weblog

« ZFS Boot | Main | Are You Ready to... »

http://blogs.sun.com/tabriz/date/20051209 Friday December 09, 2005

ZFS On-Disk Format

One of the more interesting things that I have done while on the ZFS project was to write the on-disk format document. When my product manager approached me about writing it, I figured "ya, sure, I'll do it, no biggie". Little did I know. Two months, 55 pages, and 32 revisions later, the on-disk format document is finally ready to be posted.

Please check out On-Disk Specification and post any comments to zfs-discuss@sun.com

Comments:

How about überblock using an umlaut? The missing dots hurt my eyes... :-)
<sub>Or at least a footnote about it.</sub>

Posted by 84.73.54.46 on December 10, 2005 at 01:12 PM PST #

Just out of curiosity, where the value of ub_magic (0x00bab10c) came from? It does look Russian slang word "bablo" meaning "money", "bucks". I wonder whether Kolbasov was involved.

Posted by nikita on December 11, 2005 at 10:04 AM PST #

The uberblock magic number (like many of our magic numbers) uses hex to spell. When pronouced, 0x00bab10c sounds like (oo-ba-bloc) which is about as close as we could get to uberblock. =)

Posted by 192.18.43.5 on December 11, 2005 at 06:22 PM PST #

Nice clear document. I just noticed a bug in section 6.2 in the description of the zp_node field of znode_phys_t, which says:
<em>The lower 8 bits of the mode contain the access mode bits, for example 755.</em>
However 9 bits are required to store the access mode bits (eg 755 is 111101101).

Posted by Luke on December 23, 2005 at 08:34 PM PST #

The example pointed out by Luke should be changed to 0755, with a prefixed zero, to make it clear that the example value is in octal, not decimal.

Posted by Jason on March 23, 2006 at 10:51 AM PST #

Just going through the spec, it's very interesting, but I've got a couple of questions:

First, everywhere I've seen says that ZFS is endian-neutral. However, in the spec it says that the uberblocks are stored in the platform's endian format. So if I move a pool from Sparc to x86, how does it deal with the Uberblocks in the wrong endian format?

Second, looking at the vdev_tree structure, it describes "id" as being "the index of this vdev in its parent's children array". However, the example right above shows children with array values of 0 and 1 that have id values of 2 and 3, respectively. Am I missing something here? Shouldn't the id values also be 0 and 1?

Posted by Graeme on March 29, 2006 at 07:36 AM PST #

tnx

Posted by order levitra on August 07, 2008 at 11:56 AM PDT #

tnx

Posted by order viagra on August 07, 2008 at 11:57 AM PDT #

tnx

Posted by order cialis on August 07, 2008 at 11:57 AM PDT #

http://www.bebo.com/Profile.jsp?MemberId=7807562117

Posted by order viagra on September 18, 2008 at 02:39 PM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed

Valid HTML! Valid CSS!

This is a personal weblog, I do not speak for my employer.