On Fri, Jan 27 2017, Andrei Borzenkov wrote: > 26.01.2017 21:02, Luke Pyzowski пишет: >> Hello, >> I have a large RAID6 device with 24 local drives on CentOS7.3. Randomly (around 50% of the time) systemd will unmount my RAID device thinking it is degraded after the mdadm-last-resort@.timer expires, however the device is working normally by all accounts, and I can immediately mount it manually upon boot completion. In the logs below /share is the RAID device. I can increase the timer in /usr/lib/systemd/system/mdadm-last-resort@.timer from 30 to 60 seconds, but this problem can randomly still occur. >> >> systemd[1]: Created slice system-mdadm\x2dlast\x2dresort.slice. >> systemd[1]: Starting system-mdadm\x2dlast\x2dresort.slice. >> systemd[1]: Starting Activate md array even though degraded... >> systemd[1]: Stopped target Local File Systems. >> systemd[1]: Stopping Local File Systems. >> systemd[1]: Unmounting /share... >> systemd[1]: Stopped (with error) /dev/md0. This line perplexes me. The last-resort.service (and .timer) files have a Conflict= directive against sys-devices-virtual-block-md$DEV.device Normally a Conflicts= directive means that if this service starts, that one is stopped, and if that one starts, this is stopped. However .device units cannot be stopped: $ systemctl show sys-devices-virtual-block-md0.device | grep Can CanStart=no CanStop=no CanReload=no CanIsolate=no so presumable the attempt to stop the device fails, so the Conflict= dependency cannot be met, so the last-resort service (or timer) doesn't get started. At least, that is what I see happening in my tests. But your log doesn't mention sys-devices-virtual-block-md0, it mentions /dev/md0. How does systemd know about /dev/md0, or the connection it has with sys-devices-virtual-block-md0 ?? Does systemctl list-dependencies sys-devices-virtual-block-md0.device report anything interesting? I get sys-devices-virtual-block-md0.device ● └─mdmonitor.service NeilBrown
Attachment:
signature.asc
Description: PGP signature