Hi. On 23.06.2011 20:53, Gavin Atkinson wrote:
While debugging a problem that looks like it was unrelated to geom_raid, I realised that it tastes all providers, including each partition and slice on raid devices it itself created.Given that geom_raid is purely a replacement for ataraid, the only place that the metadata can be valid is on the raw disk itself. Therefore, I'm proposing this patch: Index: sys/geom/raid/g_raid.c =================================================================== --- sys/geom/raid/g_raid.c (revision 223446) +++ sys/geom/raid/g_raid.c (working copy) @@ -1993,6 +1993,12 @@ g_trace(G_T_TOPOLOGY, "%s(%s, %s)", __func__, mp->name, pp->name); G_RAID_DEBUG(2, "Tasting provider %s.", pp->name); + if (pp->geom->rank> 1) { + G_RAID_DEBUG(2, "Rank of provider %s is %d, skipping.", + pp->name, pp->geom->rank); + return (NULL); + } + gp = g_new_geomf(mp, "mirror:taste"); /* * This orphan function should be never called. This will only allow the probing to happen on providers of rank 1, i.e. the disks themselves. I can't see any reason to probe any other providers. Any objection to this?
In general case nothing prevents from using graid on partitions (instead of gmirror/gstripe/...) if BIOS support is not needed. I think this check at least should be moved to specific metadata modules in case if we later add support for abstract gxxx metadata formats.
Also, should geom_raid be in GENERIC? ataraid was, and it's one less "gotcha" for upgrades. Given the lack of ar0 -> raid/r0 aliases, the upgrade is painful enough for users already, putting it in GENERIC may at least help slightly...
Aggressive tasting for each metadata format was actually the reason why I haven't added it. If we load all GEOM modules, then some floppy tasting will take ages.
-- Alexander Motin _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-geom To unsubscribe, send any mail to "[email protected]"
