gmirror on 7B4
John Nielsen
lists at jnielsen.net
Wed Jan 2 11:47:19 PST 2008
Quoting "Chris H." <chris#@1command.com>:
> Quoting John Nielsen <lists at jnielsen.net>:
>
>> I'm not sure I remember everything from earlier in this thread so I
>> don't know if it's relevant, BUT you can't boot from a gstripe
>> volume (or from a gconcat one AFAIK). Inferring from your fstab
>> example below it doesn't sound like you intend to but I just wanted
>> to be sure.
>
> Are you sure? I read that using gmirror requires /kernel to be located
> in the /boot slice and everything else (all other slices) can be mirrored
> safely. But in all my reading (man pages, FBSD handbook, asstd articles)
> I haven't seen anything indicating booting wasn't possible from a gstripe
> 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 (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. :)
JN
> For the record, FSTAB (on da3):
>
> /dev/da3s1b
> none (swap)
>
> /dev/da3s1a
> /
>
> /dev/da3s1d
> /var
>
> Thanks for your response.
>
> Chris
>
>>
>> Quoting John Nielsen <john at jnielsen.net>:
>>
>>> Quoting "Chris H." <chris#@1command.com>:
>>>
>>>> Quoting "Chris H." <chris#@1command.com>:
>>>>
>>>>> Hello,
>>>>> I seem to remember a similar question being asked in the past. But never
>>>> ---8<---snip---8<---
>>>>> I had originally intended to create a raid mirror on the whole
>>>>> lot of HD's
>>>>> during the install process. But I wasn't presented, nor could I find that
>>>>> option during install. So, due to lack of time, pushed it off till later,
>>>>> and simply installed onto the one HD. Now to my question(s)...
>>>>>
>>>>> Where is the option to create, and install to a gMIRRORED drive-set?
>>>> ---8<---snip---8<---
>>>>> 2) In my cases above, I'm interested in RAID-0 (mirroring for /volume/
>>>>> not redundancy).
>>>>>
>>>>
>>>> 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
>>>
>>>> Thank you for all your time and consideration.
>>>>
>>>> Chris
>>>>
>>>> P.S. I know this is a bit noisy. I intend to keep it brief.
>>>> Thank you for your understanding. :)
>>>>
>>>>> --
>>>>> panic: kernel trap (ignored)
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> freebsd-stable at freebsd.org mailing list
>>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
>>>>> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
>>>>>
>>>>
>>>> --
>>>> panic: kernel trap (ignored)
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> freebsd-stable at freebsd.org mailing list
>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
>>>> To unsubscribe, send any mail to "freebsd-stable-unsubscribe at freebsd.org"
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
>
> --
> panic: kernel trap (ignored)
>
>
>
>
More information about the freebsd-stable
mailing list