PowerPath for Linux: PowerPath nie uruchamia się po ponownym uruchomieniu i musi zostać uruchomiony ręcznie
Summary: PowerPath for Linux: PowerPath nie uruchamia się po ponownym uruchomieniu i należy uruchomić ręcznie.
Symptoms
System operacyjny: Red Hat Enterprise Linux 7.x, OEL 7.x i SLES 12
Nie dotyczy to wersji systemów Red Hat Enterprise Linux 5.x, 6.x i SLES 11.
Oprogramowanie EMC: PowerPath dla systemu Linux 6.x
PowerPath nie uruchamia się automatycznie po ponownym uruchomieniu hosta.
PowerPath można uruchomić ręcznie bez żadnych problemów.
Podczas uruchamiania i zatrzymywania usługi PowerPath nie są rejestr boot.log owane żadne błędy.
Po ponownym uruchomieniu systemu zobaczysz, że PowerPath kończy się niepowodzeniem z błędem inicjalizacji, ponieważ usługa nie mogła się uruchomić:
# 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
Podczas uruchamiania PowerPath ma początkowo kilka testów przed faktycznym uruchomieniem. Jednym z nich jest sprawdzenie, kiedy PowerPath był ostatnio uruchamiany, co jest określane przez obliczenie wieku pliku znacznika. Podczas rozruchu zegar systemowy jest początkowo synchronizowany z zegarem sprzętowym. Jeśli jednak na hoście skonfigurowano klienta NTP, to po uruchomieniu zegar systemowy jest aktualizowany z serwera NTP.
Problem pojawia się, jeśli zegar sprzętowy jest zbyt niezsynchronizowany z zegarem NTP, zwykle gdy jest znacznie opóźniony. Podczas rozruchu hosta PowerPath uruchamia się znacznie wcześniej niż klient NTP. W związku z tym, gdy próbuje określić, kiedy próbuje obliczyć wiek pliku znacznika, jest to wartość ujemna i PowerPath natychmiast kończy pracę bez kontynuowania uruchamiania.
Resolution
Obejście problemu:
Zaktualizuj hwclock do zegara systemowego za pomocą następującego polecenia na hoście:
hwclock --systohc
Spowoduje to zaktualizowanie zegara sprzętowego do prawidłowego czasu na hoście.
Trwałe rozwiązanie:
Problem zostanie rozwiązany w PowerPath dla systemu Linux 6.3.
Additional Information
Możesz uruchomić poniższe polecenie, aby sprawdzić czas ostatniego uruchomienia PowerPath:
systemctl status PowerPath.service
Zazwyczaj widać, że ostatni raz, kiedy PowerPath był aktywny, ma ogromną różnicę czasu:
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)
------------------------------------------------------------------------------------------
Innym sposobem na znalezienie jest włączenie opcji "-x" w skrypcie startowym PowerPath.
W przypadku OEL 7.x skrypty startowe są następujące:
/usr/lib/PowerPath/PowerPath
/etc/opt/emcpower/EMCpower.LINUX-6.1.0.00.00/enable
Przykład:
# head -5 /usr/lib/PowerPath/PowerPath #!/bin/sh -x
Po ponownym uruchomieniu hosta dzienniki zostaną przechwycone w boot.log. Uruchom również poniższe polecenie last_boot w którym będzie dostępny fragment tego samego:
journalctl -b 0 > last_boot
W poniższych pełnych dziennikach, które zostały zebrane powyżej, widzimy opóźnienie czasowe -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