Booting from ZFS raidz

Anselm Strauss amsibamsi at gmail.com
Wed Jan 6 21:44:47 UTC 2010


On Jan 6, 2010, at 21:37 , krad wrote:

> 2010/1/6 Anselm Strauss <amsibamsi at gmail.com>
> Hi,
> 
> I'm experimenting with a ZFS only system and booting from it in VirtualBox. Thanks to various mails and forum posts from the net I have a working scenario with booting from a ZFS mirror. However, I can't get the thing to work with raidz with the exactly same setup, except that the pool is now raidz instead of mirror and there is one more disk. I feel sure I have all the stuff with partitioning, boot loader installation, etc. right. I tested this with version 8.0-RELEASE on 64bit.
> 
> Now, before I go into detailed explaining, is raidz really supported? I always get the following error after it says "FreeBSD/i386 bootstrap loader, Revision 1.1":
> 
> ZFS: i/o error - all block copies unavailable
> ZFS: can't read MOS object directory
> (repeats a lot)
> Can't find root filesystem - giving up
> can't load 'kernel'
> 
> I think the "MOS" message comes from zfs_mount_root() in /usr/src/sys/boot/zfs/zfsimpl.c. I asume that is the point when /boot/loader has been loaded and now wants to load the kernel into memory. After that error I'm in the loader prompt. When I try to load any file I always get the same error as above.
> 
> Anyone any ideas?
> 
> Thanks,
> Anselm_______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
> 
> Opensolaris doesnt support booting off raidz yet so id be surprised if you managed to, as i doubt all the relevent code is in the loader, and robust enough yet. I have seen a few hacks mentioned in places that might get it to work, bit these are unsupported and might flake out at any time.
> 
> Also why do you need a raidz for the os? It implys you might be mixing data on the pool as well. This isnt best practice, and you are best off having a separate pool for os and data. If you have 3+ drives, gpt it into 3 or 4 chunks dependent on whether you want swap on a zvol. Have and x way mirror for the os and then the last and biggest gpt slice use for your raidz data. Better still have the os and data on separate spindles

I was just out for maximum flexibility and easiness. Having just one pool gives you the most possibilities in resizing data sets. Using partitions always imposes some hard limits that are sometimes different to overcome when you want to re-layout you filesystems. I like the idea of ZFS that the boundaries between filesystems (or data sets) are just quotas and reservations, instead of low-level address borders as with partitions. But then again, as you mentioned, one might want to make multiple pools for best performance. At least I want to have the system data on a redundant volume, but you are right I could just make a separate mirror for that.

By the way, I also tested to boot from a degraded mirror, which worked perfectly well. You just have to make sure that the boot loader stages are installed on all drives.

Thanks,
Anselm



More information about the freebsd-questions mailing list