vCenter Server 7.x で service-control コマンドででサービスを起動することができない。
search cancel

vCenter Server 7.x で service-control コマンドででサービスを起動することができない。

book

Article ID: 409884

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

免責事項:これは英文の記事 Unable to start services using service-control on vCenter Server 7.x の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。


Symptoms

  • vCenter Server 7.x で、service-control や vmon-cli を使用してサービスを起動できない。
  • service-control コマンドが次のようなエラーで失敗する。:
    Performing start operation on service analytics...
    Error executing start on service analytics. Details {
        "detail": [
            {
                "id": "install.ciscommon.service.failstart",
                "translatable": "An error occurred while starting service '%(0)s'",
                "args": [
                    "analytics"
                ],
                "localized": "An error occurred while starting service 'analytics'"
            }
        ],
        "componentKey": null,
        "problemId": null,
        "resolution": null
    }
    ...

    : このケースでは analytics サービスの起動に失敗していますが、この記事の事象に該当する場合 analytics サービス以外も起動に失敗することがあります。
  • /var/log/vmware/vmon/vmon.log に "Too many open files." といったログが出力される。
    この例では、service-control --start analytics コマンドを実行した際のログが示されています。
    YYYY-MM-DDTHH:mm:SS.SSSZ| host-1818| I005: Received start request for analytics
    YYYY-MM-DDTHH:mm:SS.SSSZ| host-1818| E002: <analytics-healthcmd> stderr pipe creation failed. Too many open files
  • 次のコマンドのように、vmon プロセスが vMonTelemetry.db に対して大量のファイルディスクリプタを保持している:
    root@vcsa [ ~ ]# lsof -p `pgrep -x vmon` | grep -c vMonTelemetry.db
    1013
    : この例では vmon は vMonTelemetry.db に対して 1013 個のファイルディスクリプタを保持していますが、環境によってファイルディスクリプタの個数は異なります。

Environment

vCenter Server 7.x

Cause

これは vmon サービスでのファイルディスクリプタのリークが原因です。service-controll --restart [SERVICE] を実行するたびに、vMonTelemetry.db のファイルディスクリプタのカウントが 2 増加します。サービスが繰り返し再起動されると、vmon プロセスがファイルディスクリプタの上限に達します。

Resolution

この問題は vCenter Server 7.0 U3c 以降で修正されています。問題が発生した場合、復旧するには vCenter Server の再起動が必要です。