PowerPath for Linux: PowerPath starter ikke etter omstart og må startes manuelt
Summary: PowerPath for Linux: PowerPath starter ikke etter omstart og må startes manuelt.
Symptoms
Operativsystem: Red Hat Enterprise Linux 7.x, OEL 7.x og SLES 12
Dette gjelder ikke for versjoner av Red Hat Enterprise Linux 5.x, 6.x og SLES 11.
EMC-programvare: PowerPath for Linux 6.x
PowerPath starter ikke automatisk etter omstart av verten.
PowerPath kan startes manuelt uten problemer.
Ingen feil logges på boot.log når PowerPath-tjenesten starter og stopper.
Når systemet har startet på nytt, vil du se at PowerPath mislykkes med "Initialization Error", siden tjenesten ikke kunne starte:
# 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
Ved oppstart har PowerPath noen kontroller innledningsvis før den fortsetter med faktisk start. En av disse er å kontrollere når PowerPath sist ble startet, og dette bestemmes ved å beregne alderen på en markørfil. Ved oppstart synkroniseres systemklokken først fra maskinvareklokken. Men hvis en NTP-klient er konfigurert på verten, oppdateres systemklokken fra en NTP-server når den starter.
Problemet oppstår hvis maskinvareklokken er for mye ute av synkronisering med NTP-klokken, vanligvis når den er mye bak. Ved oppstart av vert starter PowerPath mye før NTP-klienten. Når den prøver å finne ut når den prøver å beregne alderen til markørfilen, er det derfor en negativ verdi, og PowerPath avsluttes umiddelbart uten å fortsette med starten.
Resolution
Løsning:
Oppdater klokken til systemklokken ved hjelp av følgende kommando på verten:
hwclock --systohc
Dette oppdaterer maskinvareklokken til riktig tid på verten.
Permanent løsning:
Problemet rettes i PowerPath for Linux 6.3.
Additional Information
Du kan kjøre kommandoen nedenfor for å kontrollere tidspunktet da PowerPath sist ble startet:
systemctl status PowerPath.service
Vanligvis vil du se at forrige gang PowerPath var aktiv, har en enorm tidsforskjell:
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)
------------------------------------------------------------------------------------------
En annen måte å finne det på er å aktivere -x-flagget i oppstartsskriptet for PowerPath.
For OEL 7.x er oppstartsskriptene:
/usr/lib/PowerPath/PowerPath
/etc/opt/emcpower/EMCpower.LINUX-6.1.0.00.00/enable
Eksempel:
# head -5 /usr/lib/PowerPath/PowerPath #!/bin/sh -x
Når du starter verten på nytt, vil loggene bli fanget i boot.log. Kjør også kommandoen nedenfor der last_boot vil ha utpakkingen av det samme:
journalctl -b 0 > last_boot
I de nedenstående verbose loggene som ble samlet inn ovenfor, ser vi tidsforsinkelsen på -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