PowerPath for Linux:再起動後にPowerPathが起動せず、手動で開始する必要がある
Summary: PowerPath for 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 for Linux 6.x
ホストの再起動後にPowerPathが自動的に起動しません。
PowerPathは問題なく手動で起動できます
PowerPathサービスの開始時と停止時にboot.logにエラーは記録されません。
システムの再起動後、サービスを開始できなかったため、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の起動時に、実際に起動する前に、最初にいくつかのチェックが行われます。そのうちの1つは、PowerPathが最後に起動された時期を確認することです。これは、マーカー ファイルの経過時間を計算することによって決定されます。起動時に、システム クロックは最初にハードウェア クロックから同期されます。ただし、ホストでNTPクライアントが構成されている場合は、その起動時にシステム クロックがNTPサーバーからアップデートされます。
この問題は、ハードウェアクロックがNTPクロックのクロックと同期していない場合に発生します(通常は、ハードウェアクロックがかなり遅れている場合)。ホストの起動時に、PowerPathはNTPクライアントよりかなり前に起動します。したがって、マーカー ファイルの経過時間を計算しようとするタイミングを判断しようとすると、負の値になり、PowerPathは開始を続行せずにただちに終了します。
Resolution
回避策:
ホストで次のコマンドを使用して、hwclockをシステム クロックに更新します。
hwclock --systohc
これにより、ハードウェア クロックがホスト上の正しい時刻に更新されます。
恒久対策:
この問題は、PowerPath for 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)
------------------------------------------------------------------------------------------
別の方法は、PowerPath起動スクリプトの「-x」フラグを有効にすることです
OEL 7.xの場合、起動スクリプトは次のとおりです。
/usr/lib/PowerPath/PowerPath
/etc/opt/emcpower/EMCpower.LINUX-6.1.0.00.00/enable
Example:
# 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