On Sat, Nov 05 2016, Marc Smith wrote: > Hi, > > It may be that I've never noticed this before, so maybe its not a > problem... after using '--stop' to deactivate/stop an MD array, there > are remnants of it lingering, namely an entry in /sys/block (eg, > /sys/block/md127) and the device node in /dev remains (eg, > /dev/md127). > > Is this normal? Like I said, it probably is, and I've just never > noticed it before. I assume its not going to hurt anything, but is > there a way to clean it up, without rebooting? Obviously I could > remove the /dev entry, but what about /sys/block? > You can remove them both by running mdadm -S /dev/md127 but they'll probably just reappear again. This seems to be an on-going battle between md and udev. I've "fixed" it at least once, but it keeps coming back. When md removes the md127 device, a message is sent to udev. As part of its response to this message, udev tries to open /dev/md127. Because of the rather unusual way that md devices are created (it made sense nearly 20 years ago when it was designed), opening /dev/md127 causes md to create device md127 again. You could mv /dev/md127 /dev/md127X mdadm -S /dev/md127X rm /dev/md127X that stop udev from opening /dev/md127. It seems to work reliably. md used to generate a CHANGE event before the REMOVE event, and only the CHANGE event caused udev to open the device file. I removed that and the problem went away. Apparently some change has happened to udev and now it opens the file in response to REMOVE as well. So to "fix" it again, you need to figure out what udev is doing and fix that. Alternately... place "create names=yes" in your mdadm.conf and always use names, not numbers, to work with md arrays. e.g. /dev/md/home /dev/md/root /dev/md/scratch etc. When will trigger the use of an alternate scheme for creating md devices (using minor numbers >= 512) which udev cannot break so easily. When it tries to open /dev/md_home, that will fail. NeilBrown
Attachment:
signature.asc
Description: PGP signature