PowerPath для Linux. PowerPath не запускается после перезагрузки, и его необходимо запускать вручную
Summary: PowerPath для Linux. PowerPath не запускается после перезагрузки, и его необходимо запускать вручную.
Symptoms
Операционная система: Red Hat Enterprise Linux 7.x, OEL 7.x и SLES 12
Это не относится к версиям Red Hat Enterprise Linux 5.x, 6.x и SLES 11.
Программное обеспечение EMC: PowerPath для Linux 6.x
PowerPath не запускается автоматически после перезагрузки хоста.
PowerPath можно запустить вручную без каких-либо проблем.
Ошибки не регистрируются boot.log при запуске и остановке службы PowerPath.
После перезагрузки системы вы увидите сбой PowerPath с ошибкой инициализации, поскольку службе не удалось запустить:
# 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
При запуске PowerPath сначала выполняет несколько проверок, прежде чем перейти к фактическому запуску. Одна из них заключается в том, чтобы проверить, когда PowerPath был запущен в последний раз. Это определяется путем вычисления возраста файла маркера. При загрузке системные часы первоначально синхронизируются с аппаратными часами. Однако если на хосте настроен клиент NTP, то при его запуске системные часы обновляются с сервера NTP.
Проблема возникает, если аппаратные часы слишком сильно отстают от синхронизации часов NTP, обычно когда они сильно отстают. При загрузке хоста PowerPath запускается задолго до клиента NTP. Следовательно, когда он пытается определить, когда он пытается вычислить возраст файла маркера, это отрицательное значение, и PowerPath немедленно завершает работу, не продолжая запуск.
Resolution
Временное решение.
Обновите hwclock на системные часы с помощью следующей команды на хосте:
hwclock --systohc
При этом на аппаратных часах хоста будет установлено правильное время.
Окончательное решение
Проблема будет устранена в PowerPath для Linux 6.3.
Additional Information
Можно выполнить следующую команду, чтобы проверить время последнего запуска PowerPath:
systemctl status PowerPath.service
Обычно можно увидеть, что время последнего использования PowerPath было активным, с огромной разницей во времени:
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)
------------------------------------------------------------------------------------------Еще
один способ найти — включить флаг «-x» в сценарии запуска PowerPath.
Для OEL 7.x используются следующие сценарии запуска:
/usr/lib/PowerPath/PowerPath
/etc/opt/emcpower/EMCpower.LINUX-6.1.0.00.00/enable
Пример:
# head -5 /usr/lib/PowerPath/PowerPath #!/bin/sh -x
После перезагрузки хоста журналы будут записаны в boot.log. Также выполните следующую команду, где last_boot получите ее извлечение:
journalctl -b 0 > last_boot
В приведенных ниже подробных журналах, собранных выше, мы видим временную задержку -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