PowerPath für Linux: PowerPath startet nach einem Neustart nicht und muss manuell gestartet werden
Summary: PowerPath für Linux: PowerPath wird nach einem Neustart nicht gestartet und muss manuell gestartet werden.
Symptoms
Betriebssystem: Red Hat Enterprise Linux 7.x, OEL 7.x und SLES 12
Dies gilt nicht für Versionen von Red Hat Enterprise Linux 5.x, 6.x und SLES 11.
EMC-Software: PowerPath for Linux 6.x
PowerPath wird nach dem Neustart des Hosts nicht automatisch gestartet.
PowerPath kann ohne Probleme manuell gestartet werden.
Es werden keine Fehler in boot.log protokolliert, wenn der PowerPath -Service gestartet und beendet wird.
Nach dem Neustart des Systems wird angezeigt, dass PowerPath mit "Initialization Error" fehlschlägt, da der Service nicht gestartet werden konnte:
# powermt display dev=all ERROR: Cannot open PowerPath. Initialization error
# cat /var/log/boot.log |grep Power Starting PowerPath startup script... [ OK ] Stopped PowerPath startup script. <--- Starting PowerPath Management Daemon... Starting PowerPathPost startup script... [ OK ] Started PowerPathPost startup script. [ OK ] Started PowerPath Management Daemon.
Cause
Beim Start führt PowerPath zunächst einige Prüfungen durch, bevor es mit dem eigentlichen Start fortfährt. Eine dieser Möglichkeiten ist die Prüfung, wann PowerPath zuletzt gestartet wurde. Dies wird durch die Berechnung des Alters einer Markerdatei ermittelt. Beim Hochfahren wird die Systemuhr anfänglich mit der Hardwareuhr synchronisiert. Wenn jedoch ein NTP-Client auf dem Host konfiguriert ist, wird beim Start dieses Vorgangs die Systemuhr von einem NTP-Server aktualisiert.
Das Problem tritt auf, wenn die Hardwareuhr zu sehr von der der NTP-Uhr abweicht, normalerweise dann, wenn sie weit hinterherhinkt. Beim Hochfahren des Hosts startet PowerPath viel vor dem NTP-Client. Wenn er also versucht, das Alter der Markerdatei zu berechnen, ist es ein negativer Wert und PowerPath wird sofort beendet, ohne mit dem Start fortzufahren.
Resolution
Problemumgehung:
Aktualisieren Sie die hwclock auf dem Host mithilfe des folgenden Befehls auf die Systemuhr:
hwclock --systohc
Dadurch wird die Hardwareuhr auf dem Host auf die korrekte Zeit aktualisiert.
Dauerhafte Lösung:
Das Problem wird in PowerPath for Linux 6.3 behoben.
Additional Information
Sie können den folgenden Befehl ausführen, um den Zeitpunkt zu überprüfen, zu dem PowerPath zuletzt gestartet wurde:
systemctl status PowerPath.service
In der Regel stellen Sie fest, dass der letzte Zeitpunkt, an dem PowerPath aktiv war, einen großen Zeitunterschied aufweist:
systemctl status PowerPath.service PowerPath.service - PowerPath startup script Loaded: loaded (/usr/lib/systemd/system/PowerPath.service; enabled; vendor preset: disabled) Active: inactive (dead) since Thu 2017-04-06 12:00:15 GET; 4h 0min ago Process: 2075 ExecStopPost=/usr/lib/PowerPath/PowerPath check_service_stop (code=exited, status=0/SUCCESS) Process: 1807 ExecStartPost=/usr/lib/PowerPath/PowerPath check_service_start (code=killed, signal=TERM) Process: 1665 ExecStart=/usr/lib/PowerPath/PowerPath start (code=exited, status=0/SUCCESS) Main PID: 1665 (code=exited, status=0/SUCCESS)
------------------------------------------------------------------------------------------
Eine weitere Möglichkeit ist die Aktivierung der Markierung "-x" im PowerPath-Startskript.
Für OEL 7.x lauten die Startskripte:
/usr/lib/PowerPath/PowerPath
/etc/opt/emcpower/EMCpower.LINUX-6.1.0.00.00/enable
Beispiel:
# head -5 /usr/lib/PowerPath/PowerPath #!/bin/sh -x
Sobald Sie den Host neu starten, werden die Protokolle in boot.log erfasst. Führen Sie auch den folgenden Befehl aus, bei dem last_boot den Auszug desselben hätten:
journalctl -b 0 > last_boot
In den folgenden ausführlichen Protokollen, die oben gesammelt wurden, sehen wir die Zeitverzögerung von -13991.
Apr 20 10:23:23 revdb1.mfg.ge PowerPath[1751]: + '[' yes == yes -a -f /tmp/.pp_systemctl_check ']'
Apr 20 10:23:23 revdb1.mfg.ge PowerPath[1751]: ++ date +%s
Apr 20 10:23:23 revdb1.mfg.ge PowerPath[1751]: ++ date +%s -r /tmp/.pp_systemctl_check
Apr 20 10:23:23 revdb1.mfg.ge PowerPath[1751]: + '[' -13991 -lt 5 ']'
Apr 20 10:23:23 revdb1.mfg.ge PowerPath[1751]: + rm -f /tmp/.pp_systemctl_check
Apr 20 10:23:23 revdb1.mfg.ge PowerPath[1751]: + /bin/true
Apr 20 10:23:23 revdb1.mfg.ge PowerPath[1751]: + rc_exit
Apr 20 10:23:23 revdb1.mfg.ge PowerPath[1751]: + exit 0