現象:
システムイベントログに
Vmware Virtual Center Server サービスの接続を待機中にタイムアウト (30000ミリ秒) になりました。
というエラーが発生して、vCenter Serverが起動しないことがありました。
原因:
VirtualCenter Server サービスは次のサービスに依存しています。
・SQL Server サービス
・ADAM サービス (vCenter Server 4.x でリンク モードを使用している場合)
これらのサービスが開始する前に VirtualCenter Server サービスが開始するとこの問題が発生してしまうようです。
VirtualCenter Server サービスの遅延開始は、デフォルト30秒に設定されていますが、それでもタイムアウトしてしまっていることが考えられます。
解決策1:
VirtualCenter サービスの依存関係設定がされているか確認します。
設定されてい場合は下図のようになっています。
(Windows Server 2008 ,MS SQL Server 2008 Expressの例)
依存関係が設定されていない場合は、依存しているサービスが開始した後に VirtualCenter サービスが開始されるように設定します。
但し、この方法は、VirtualCenter サービスが依存しているサービスと同一のサーバに配置されている場合は可能ですが、異なる場合は、解決策2のタイムアウト値を大きくすることが必要です。
サービスの依存関係を設定するには次の手順を実行します。
- [スタート]/[ファイル名を指定して実行]で services.msc と入力して実行し[サービス]を起動
- VirtualCenter Server サービスが依存するサービス名を確認
(サービス名の例)
SQLEXP_VIM
Microsoft SQL Server 2008 Expressの場合のサービス名は、SQL Server (VIM_SQLEXP)
ADAM_VCMSDS - [ファイル名を指定して実行] で regedit と入力して実行し、レジストリエディタを起動
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vpxd へ移動
- [DependOnService] キーに依存しているサービス名を記載しレジストリエディタを保存終了
- [サービス]ウィンドウで VirtualCenter Server サービスを開き[依存関係]タブでに先ほど追加したサービス名があるかを確認
- コンピュータを再起動
解決策2:
Windows 2008 をご使用の場合は、VirtualCenter Server サービスのスタートアップの種類が自動(遅延開始)になっているか確認します。
次に、レジストリに変更を加え、サービス コントロール マネージャのデフォルトのタイムアウト値30000ミリ秒から大きくします。(この設定は遅延開始に設定したサービスすべてに影響すると思われます)
この値を 60000ミリ秒(60 秒)に増やすには、次の手順を実行します。
- [ファイル名を指定して実行] で regedit と入力して実行し、レジストリエディタを起動
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control へ移動
- 右側のウィンドウで、ServicesPipeTimeout エントリを見つけます
(注) ServicesPipeTimeout エントリがない場合は作成。
これを行うには、次の手順を実行します。- [編集] メニューの [新規] をポイントし、[DWORD 値] をクリック
- ServicesPipeTimeout と入力し[Enter]
- [ServicesPipeTimeout] を右クリックし[修正]
- [10 進] をクリックし、60000 と入力し[OK]
この値は、サービスがタイムアウトするまでの時間をミリ秒単位で表現 - コンピュータを再起動
私は、この対処で解決できました。
注意事項:
レジストリを修正する前には必ずバックアップを取り、自己責任で行ってください。
修正履歴:
2013/07/23: 解決策1を加筆し、元の対策は解決策2としました。