[Linux]DataKeeper for Linux利用時にquickCheckプロセスが滞留する事象について

  • 事象概要
    • DataKeeper for Linuxを利用している環境で、quickCheckプロセスが積みあがり、多数のプロセスが滞留する場合があります。
    • この状態を放置した場合には、最終的にスイッチオーバーやフェイルオーバーができなくなったり、サービスの継続に影響が生じる可能性があります。
  • 事象詳細
    • quickCheckプロセスが積みあがり、そのまま滞留する場合があります。
      • /opt/LifeKeeper/config/.lcm_pipeが多数オープンされた状態になります。
      • その結果、lcmプロセスが高負荷になります。
  • 影響を受ける環境
    • DataKeeper for Linuxを使用している環境
  • 原因
    • LifeKeeper for Linux は32bit 版向けにコンパイルされたバージョンと64bit 版向けにコンパイルされたバージョンの2 種類があります。32bit 版向けはLifeKeeper for Linux v8.2.0 未満のバージョンが該当します。64bit 版向けはLifeKeeper for Linux v8.2.0 以降のバージョンが該当します。お客様が利用している環境が32bit 版向けと64bit 版向けのどちらかの区分に属するか確認のうえ、以降の内容をご参照ください。
      • 64bit 版向けLifeKeeper for Linux が該当する原因
        • LCM 通信の内部処理において、Serial Number を管理する変数が、unsigned long型(32bit 版では4byte だが64bit 版では8byte となる)で定義されているところがあり、変数の値が32bit の上限値(4,294,967,295)を超えると、それを利用した処理において不整合が生じる。
      • 32bit、64bit 版向けLifeKeeper for Linux の両方が該当する原因
        • LCM 通信でレスポンスが既定時間内に戻ってこない場合に、同一の再送処理が複数回重なり、.lcm_pipe の積みあがりを誘発する。
  • 考察
    • 弊社でのコード調査の結果、DataKeeper for Linux を使用しない環境でも潜在的に問題が発生する可能性があるとの判断に至りました。連続稼働環境下で
      かつLifeKeeperコマンドを定期的に実行する運用を行っている場合、LifeKeeper for Linuxの環境でも同様の原因で本不具合が発生する可能性があります。
  • 対策
    • 修正1. 64bit 版向けLifeKeeper for Linux に対する対策
      • 該当変数および関連する箇所の型定義を修正します。unsigned long (64bit 版では8byte)をuint32_t (64bit 版でも4byte)に変更します。
    • 修正2. 32bit、64bit 版向けLifeKeeper for Linux の両方に対する対策
      • LCM 通信でレスポンスが規定時間内に戻ってこない場合のリクエストの再送処理で同一のレスポンスを一度でも受け取ったら、他の同じ内容のリクエストを破棄するように修正します。
      • 事象 事象が発生するバージョン 原因 対策 発生頻度
        quickCheckプロセスの滞留 64bit版/LifeKeeper for Linux v8.2.0以降 LCM通信内の変数のデータ型の問題 修正1
        LCM通信内の再送処理の問題 修正2
        32bit版/LifeKeeper for Linux v8.2.0未満 LCM通信内の再送処理の問題 修正2
    •  
  • パッチを提供させて頂くバージョン
    • 64bit版向けLifeKeeper for Linux
      • v8.2.0/v8.2.1/v8.3.0共通のパッチ
    • 32bi版向けLifeKeeper for Linux
      • v7.5専用のパッチ
      • v8.1.2専用のパッチ
  • パッチ及び修正が適用される製品提供に向けた対応状況
    • リリース済み
      • 64bit 版向けLifeKeeper for Linux(v8.2.0/v8.2.1/v8.3.0)に対して修正1,2 を含むパッチ。
      • 32bit 版向けLifeKeeper for Linux(v7.5/v8.1.2)に対する修正パッチ。32bit 版向けLifeKeeper for Linux には、修正2 が含まれます(修正1 は含まれません)。
      • パッチリリース後、修正1,2 を含むLifeKeeper for Linux v8.3.1 を2014 年10 月1日にリリースしました。
  • パッチの申請方法
    • 円滑な製品サポートをご提供するため、パッチのご提供先は弊社にて管理させていただいております。パッチをご希望の際は、以下の情報とともにサポートまで申請をお願いいたします。
        パッチ導入に際しての作業ご担当者様の以下の情報

        •  PSC No. 
        • 会社名
        • 氏名
        •  メールアドレス
        •  ご連絡先電話番号
        • 導入先エンドユーザ名
  • 事象発生時の対応方法

      詳しくはこちらをご確認下さい。

       


      改定履歴

      [公開日:2014年6月20日]
      [更新日:2014年9月3日]
      パッチの情報について追加しました。
      [更新日:2014年9月26日]
      パッチのリリース状況について更新しました。
      [更新日:2016年2月19日]

return top