On 2024-03-17 12.04, B Harder wrote:
On Mar 16, 2024, at 23:16, Greg Oster <oster%netbsd.org@localhost> wrote: RAIDframe doesn't understand NAME=gpt-label. Use /dev/dk<n> , and then set the RAID set to autoconfigure. It'll magically figure out what devices need to be glued together.Hey Greg, can you explain that magic in any level of detail?
Sure... How about a somewhat lower level with a bit of hand-waving :)As the kernel is booting up, rf_autoconfig() (from rf_netbsdkintf.c) is set to run after all devices are initialized.
rf_autoconfig() calls rf_find_raid_components(), which goes through all the devices on the system (first looking at wedges, and then at 'disks'), and identifying any partitions that are of type "RAID" (handwaving occurs here.) The component labels of all those RAID partitions are stuffed into a single list for later processing.
One rf_find_raid_components() is complete, rf_create_auto_sets() is then called. This goes through the list of components created earlier, and sorts them into groups of components based on the component labels. The next step happens in rf_buildroothack(), which takes the set of sets of components. For each set of components, rf_have_enough_components() is called, and that determines whether or not there are sufficient components to bring up that RAID set (possibly in degraded mode). If there are sufficient components, then rf_auto_config_set() is called with that set of components, and if all is still well, then that particular RAID set is configured (to the RAID device on which it was last configured, if that device is available).
So in a nutshell, the component labels (preferably with a different serial number for ease of differentiation) are used to figure out which components belong together. RAIDframe doesn't care if they've moved to a different SCSI or SATA or dk device -- it only cares that the labels are consistent and that it can find enough components to get the RAID set operational.
Hope that's a useful level of detail. :) Later... Greg Oster
One more quuestion: the raidctl man page talks about partitioning the raid<n> device using mbr partitions. Is it possible to use GPT here? Will the resulting wedges show up automatically?You can use GPT instead of mbr. Wedges should show up automatically (I'm pretty sure they do, but since I do NFS exporting of mine, I stuck with MBR so the filesystem ID doesn't change every time the n in dk<n> for the RAID deivce changes :( )It seems so much simpler to use ccd(4) but there's a nasty memory allocation bug which makes it unuseable for now. Thanks in advance!If you're using -current, note that you can now use: raidctl raid0 create mirror /dev/dk0 /dev/dk1 to do a simple RAID config without needing to use the config file... Later... Greg Oster