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.
Програмне забезпечення для електромагнітної сумісності: 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