PowerPath para Linux: O PowerPath não inicia após a reinicialização e deve ser iniciado manualmente
Summary: PowerPath para Linux: O PowerPath não inicia após a reinicialização e deve ser iniciado manualmente.
Symptoms
Sistema operacional: Red Hat Enterprise Linux 7.x, OEL 7.x e SLES 12
Isso não se aplica às versões do Red Hat Enterprise Linux 5.x, 6.x e SLES 11.
Software EMC: PowerPath para Linux 6.x
O PowerPath não é iniciado automaticamente após a reinicialização do host.
O PowerPath pode ser iniciado manualmente sem problemas.
Nenhum erro é registrado boot.log quando o serviço PowerPath é iniciado e interrompido.
Após a reinicialização do sistema, você verá que o PowerPath falha com "Initialization Error", pois o serviço não pôde ser iniciado:
# 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
Na inicialização, o PowerPath faz algumas verificações iniciais antes de prosseguir com a inicialização de fato. Uma delas é verificar quando o PowerPath foi iniciado pela última vez, e isso é determinado calculando a idade de um arquivo de marcador. Na inicialização, o relógio do sistema é inicialmente sincronizado a partir do relógio do hardware. No entanto, se um client NTP estiver configurado no host, quando isso for iniciado, o relógio do sistema será atualizado a partir de um servidor NTP.
O problema surge se o relógio de hardware estiver muito fora de sincronia com o do relógio NTP, geralmente quando está muito atrasado. Na inicialização do host, o PowerPath é iniciado muito antes do client NTP. Portanto, quando ele tenta determinar quando tenta calcular a idade do arquivo de marcador, é um valor negativo e o PowerPath sai imediatamente sem prosseguir com o início.
Resolution
Solução temporária:
Atualize o hwclock para o relógio do sistema usando o seguinte comando no host:
hwclock --systohc
Isso atualiza o relógio do hardware para a hora correta no host.
Correção permanente:
O problema será corrigido no PowerPath para Linux 6.3.
Additional Information
Você pode executar o comando abaixo para verificar a hora em que o PowerPath foi iniciado pela última vez:
systemctl status PowerPath.service
Normalmente, você verá que a última vez em que o PowerPath esteve ativo tem uma enorme diferença de horário:
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)
------------------------------------------------------------------------------------------
Outra maneira de encontrar é o indicador ativado '-x' no script de inicialização do PowerPath.
Para o OEL 7.x, os scripts de inicialização são:
/usr/lib/PowerPath/PowerPath
/etc/opt/emcpower/EMCpower.LINUX-6.1.0.00.00/enable
Exemplo:
# head -5 /usr/lib/PowerPath/PowerPath #!/bin/sh -x
Depois que você reinicializar o host, os registros serão capturados no boot.log. Execute também o comando abaixo, onde last_boot teria a extração do mesmo:
journalctl -b 0 > last_boot
Nos registros detalhados abaixo, que foram coletados acima, vemos o intervalo de tempo de -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