geom_raid tasting providers that can't be raw disks
Alexander Motin
mav at FreeBSD.org
Thu Jun 23 18:05:13 UTC 2011
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
More information about the freebsd-geom
mailing list