On Wed, Jul 2, 2008 at 17:15, Bill Nottingham <notting@xxxxxxxxxx> wrote: > When using udev to automatically assemble MD devices (using mdadm --incremental), > we've come across the following conundrum: > > - If you just pass --incremental to mdadm, devices will only be started when all > members are present; you can never start a degraded device) > > - If you pass --run (to solve this), devices will be started when the minimum > # of devices is present. This causes the array to always start in degraded > mode, causing unnecessary resyncs. > > There doesn't seem to be a good happy medium that allows for degraded assembly > when needed, but normal assembly in most cases. One potential way to do this > would be to queue events such as these RAID-handling events as 'idle', or > 'end of queue', such that they are always run at the end of queue after other > events have run. Is that sort of thing possible? What would be a "queue"? How would you define one? Can't you run a "all I need is there" - check with every matching device, and make sure, you serialize/lock things properly, and only the last device/event would have all needed requirements and trigger the action, all earlier would just need to give up. The s390 stuff does things like that with the "collect" extra, Ubuntu has a "watershed" extra, which may do something like you need. Thanks, Kay -- To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html