[systemd-devel] Need help with a systemd/mdadm interaction.

Andrey Borzenkov arvidjaar at gmail.com
Tue Nov 12 07:01:49 PST 2013


В Tue, 12 Nov 2013 21:17:19 +1100
NeilBrown <neilb at suse.de> пишет:

> On Tue, 12 Nov 2013 18:16:24 +0900 Greg KH <gregkh at linuxfoundation.org> wrote:
> 
> > On Tue, Nov 12, 2013 at 07:54:42PM +1100, NeilBrown wrote:
> > > On Tue, 12 Nov 2013 00:10:28 -0800 Greg KH <gregkh at linuxfoundation.org> wrote:
> > > 
> > > > On Tue, Nov 12, 2013 at 11:31:45AM +1100, NeilBrown wrote:
> > > > > Alternately, is there some "all devices have been probed, nothing new will
> > > > > appear unless it is hot-plugged" event.  That would be equally useful (and
> > > > > probably mirrors what hardware-RAID cards do).
> > > > 
> > > > No, there's no way to ever know this in a hotplug world, sorry.
> > > > Especially with USB devices, they show up when they show up, there's no
> > > > "oh look, the bus is all scanned now and all devices currently plugged
> > > > in are found" type knowledge at all.
> > > > 
> > > > Then there are hotplug PCI systems where people slam in PCI cards
> > > > whenever they feel like it (remember, thunderbolt is PCI express...)
> > > > 
> > > > Sorry,
> > > > 
> > > > greg k-h
> > > 
> > > Surely something must be possible.
> > 
> > For USB, nope, there isn't, sorry.
> > 
> > > Clearly a physical hot-plug event will cause more devices to appear, but
> > > there must come a point at which no more (non-virtual) devices will appear
> > > unless a physical event happens?
> > 
> > Not for USB, sorry.
> > 
> > The USB bus just announces devices when it finds them, there is no "all
> > is quiet" type signal or detection.
> > 
> > Same for PCI hotplug, devices can show up at any point in time, you
> > never know when, and you don't know when all devices are "found".
> > 
> > sorry,
> > 
> > greg k-h
> 
> 
> Hmmm... OK.  USB doesn't bother me a lot, but PCI is important.
> 
> I guess I'll just have to settle for a timeout much like the current
> device-discovery timeout that systemd has.
> Still hoping someone can tell me how to plug into that though...
> 

If information about array name or other identification is available in
udev rule (I see reference to device node only) what you can do is to
start timer with "now+5second" (pick your timeout) that simply fires off
mdadm -IRs for specific array. Something like

mdadm-last-resort at .timer

[Timer]
OnCalendar=+5s

mdadm-last-resort at .service

[Service]
Type=oneshot
ExecStart=/sbin/mdadm -IRs %n

udev rule

... SYSTEMD_WANTS=mdadm-last-resort@$ENV{SOMETHING_UNIQUE}.timer

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20131112/62431ebb/attachment.pgp>


More information about the systemd-devel mailing list