ZfS & GEOM with many odd drive sizes

Doug Rabson dfr at rabson.org
Wed Jul 25 16:39:33 UTC 2007


On 25 Jul 2007, at 17:20, Mark Powell wrote:

> On Wed, 25 Jul 2007, Doug Rabson wrote:
>
>> On 25 Jul 2007, at 12:17, Mark Powell wrote:
>>> Great work. That will be zfs mirror only right?
>>
>> The code is close to being able to support collections of mirrors.  
>> No raidz or raidz2 for now though.
>
> That's great news.
>   So that would mean, if a raidz vdev was required on a system  
> another pool would have to be created with only a mirror vdev in  
> it, to have / on zfs too?
>   Considering the work involved, is raidz / support really worth  
> it? Of course, it's fantastic if you plan to tackle it, but I don't  
> envy you the task :(

In theory supporting raidz isn't that hard although the layout policy  
is undocumented. I've looked at the code and I could probably borrow  
some code from the 'real' zfs to figure out the layout and support  
non-degraded raidz and raidz2. Supported degraded configurations is  
more effort because of the extra code to re-generate the date from  
the parity.

The biggest problem here is space. The wretched PC platform requires  
us to bootstrap the system starting from a single sector's worth of  
code (512 bytes). That code runs in stone-age 16bit mode and loads  
the second stage from a fixed disk location. To keep my sanity, I'm  
currently trying to limit the code size of the second stage to 16k.  
This second stage has to understand ZFS well enough to load the third  
stage /boot/loader code from the pool. I currently have exactly 171  
bytes of free space in boot2.

I could probably squeeze another 4k into the second stage bootstrap  
by re-writing boot1 again. I will probably have to do that to support  
collections of disks/mirrors anyway. Doing that will mean permanently  
giving up the idea of booting ZFS on systems that don't support LBA  
addressing. Tthis already disabled in my boot1 code but could be  
resurrected after some hair pulling - increasing the size of boot2  
would make supporting legacy (>10hys old) BIOS machines impossible.



More information about the freebsd-fs mailing list