Quoting John Nielsen <[EMAIL PROTECTED]>:

Quoting "Chris H." <[EMAIL PROTECTED]>:

Quoting John Nielsen <[EMAIL PROTECTED]>:

I'm not sure I remember everything from earlier in this thread so I
---8<---snip---8<---
to be sure.

Are you sure?
---8<---snip---8<---
volume.

Yes, I'm sure. In order to bootstrap the system, the BIOS needs to know how to read the operating system from the disk. FreeBSD's own loader also relies on BIOS calls for disk reads until the kernel is loaded and executed. When using a hardware RAID controller its own BIOS runs before the OS boot so it can handle disk I/O from the RAID volumes it knows about. When using purely software RAID such as gstripe, the computer knows nothing about any volumes, it just knows about the individual disks. If you tell it to boot from disk 1, it will try to boot from disk one and then choke since it will only get at most 1 stripe's worth of contiguous useful data (the next stripe being stored on a different disk). For gmirror this doesn't matter, since an individual disk can be used to load the kernel without any knowledge of RAID volumes. Nothing needs can write to the disk until init mounts the root partition read-write (presumably using gmirror) so the volume integrity is not affected.

The simplest (IMO, although knowledge of fdisk, bsdlabel, newfs and what boot blocks go where may be required, along with using dump/restore on occasion) approach is to make / its own small partition on a gmirror volume and then create gstripe (or whatever) volumes from the remainder of the disks for the rest of the mountpoints. That means you'll be handing slices or partitions to gmirror, gstripe and friends rather than whole raw disks, but that's okay.

It is possible to have only /boot on the actual boot device/partition (with the rest of / elsewhere) but in this scenario that just adds complexity. Most of the few hundred MB that / typically requires are in /boot anyway.

If you want specific advice for a specific scenario you can probably get it, but you'll have to supply some additional details. For instance I'm still not sure if this is a new install or an upgrade
Both:
I was wondering why gmirror wasn't an option during sysinstall (the
creation, and installation to).
Which begged the question - now that it's installed...
(even after re-reading the entire thread), or if da3 is the same size as da0-2. Doing what you describe below will blow away the existing contents of da3 and the other disks, and/or won't be allowed if anything on da3 is currently mounted/running. Also you should stop saying mirror if you mean stripe or JBOD. :)

Quite right. Again, my bad. I'm sorry this became so convoluted. It seemed
so clear at first. But as it started a question about gmirror, and my
almost immediate discovery that gmirror doesn't do RAID0, as I required.
Turned it into gstripe. I thought I had managed to make the transition
smoothly. But as you effectively indicated, no dice. Sorry. :(
Thank you *very* much for your informative, and thoughtful replies -
and patience. :)

OK, in the final analysis I've decided (now that it's (7B4) installed...)
I'll just keep /boot, /root (and presumably /dev) on the already available
and running install disk (da3).
Then perform:

# gstripe label -v -s 131072 bigstripe \
/dev/da0 /dev/da1 /dev/da2

# newfs -U /dev/stripe/bigstripe

# mkdir /bigstripe

# mount /dev/stripe/bigstripe /bigstripe

# echo 'geom_stripe_load="YES"' >> /boot/loader.conf

# echo '/dev/stripe/bigstripe /bigstripe ufs rw 2 2' >> /etc/fstab

# cd /var

# tar cf - . | (cd /bigstripe; tar xvf -

and repeating the above two lines for

/bin, /compat, /dist, /entropy, /etc, /lib, /libexec,
/media, /mnt, /proc, /rescue, /sbin, /sys, /tmp, and /usr

moving and remaking /home. Then deleting and re-creating
the above (/bin, /compat, etc...). Then modify /etc/fstab
to read /dev/stripe/bigstripe / ufs rw 2 2

unmount /bigstripe

mount /

Done. Yes?

Maybe I'm overestimating the FreeBSD file system. But this
seems plausible.

Thanks to everyones time, consideration (and patience).

Chris


JN

For the record, FSTAB (on da3):

/dev/da3s1b
none (swap)

/dev/da3s1a
/

/dev/da3s1d
/var

Thanks for your response.

Chris

A *little* history, perhaps helps context...
---8<---snip---8<---
OK, my mistake...
Seems for my application (RAID0), *gstripe* is what I should
be using.
Q: But RAID0 provides 0 redundancy. How will you cope with data loss?
A: Complete backups occur twice daily and I (we) use IP RAID0 -
eg; 2 different servers have/provide the same data, and the DNS provides
"round-robin". Thereby spreading the requests roughly equal across
both servers.
So, given my new found knowledge. I felt I should probably ask before
potentially clobbering (breaking) the server I'll be attempting this on.
Will the following accomplish my goal?
Current setup:
/dev indicates the following:
da0, da0c, da0cs1, da0s1, da0s1c
da1, da1c, da1cs1, da1s1, da1s1c
da2, da2c, da2cs1, da2s1, da2s1c
...and the following, which FreeBSD is installed on:
da3, da3s1, da3s1a, da3s1b, da3s1c, da3s1d
All drives are of same size/make/model.

Given the above, I intend to issue the following:

# gstripe label -v -s 131072 bigstripe \
/dev/da0 /dev/da1 /dev/da2 /dev/da3

# newfs -U /dev/stripe/bigstripe

# mount /dev/stripe/bigstripe /bigstripe

# echo 'geom_stripe_load="YES"' >> /boot/loader.conf

# echo '/dev/stripe/bigstripe /bigstripe ufs rw 2 2' >> /etc/fstab

Yes, this should be fine (though you may need to do a "gstripe load" near the beginning).

Or do/should I issue:

# gconcat label -v extradisks /dev/da0 /dev/da1 /dev/da2

# gstripe label -v bigstripe /dev/da3 /dev/concat/extradisks

# bsdlabel -wB /dev/stripe/bigstripe

# newfs -U /dev/stripe/bigstripe

# mount /dev/stripe/bigstripe /bigstripe

No, assuming the disks are (roughly) the same size there's no reason to use gconcat, and in this case doing so will likely hurt performance in addition to adding complexity. gconcat is generally just for JBOD-type scenarios and it sounds like you're after RAID0 which is what gstripe is for.

JN



_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to