Что делать, если служба vCenter не стартует

Однажды после перезагрузки сервера vCenter, вы вдруг обнаруживаете, что не можете зайти на сервер vCenter при помощи  клиента vSphere. После инспекции открытых портов и запущенных служб вы вдруг замечаете, что служба “VMware VirtualCenter Server” не запущена ( не смотря на то, что тип запуска установлен в автоматический). При попытке запустить ее вручную, служба поднимается и работает нормально, проблема наблюдается только в том что служба не стартует автоматом после перезагрузки сервера.

Event ID 1000 explains in the description, it could not get the configuration from the database:

Event Type: Error

Event Source: VMware VirtualCenter Server

Event ID: 1000

Description:

The description for Event ID ( 1000 ) in Source ( VMware VirtualCenter Server ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the /AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event: Error getting configuration info from the database.


Кроме того, в журналах событий вы можете увидеть следующие события:

Event Type: Error

Event Source: MSSQLSERVER

Event ID: 17187

Description:

SQL Server is not ready to accept new client connections. Wait a few minutes before trying again. If you have access to the error log, look for the informational message that indicates that SQL Server is ready before trying to connect again.

Event Type: Error

Event Source: Service Control Manager

Event ID: 7024

Description:

The VMware VirtualCenter Server service terminated with service-specific error 2 (0x2).

Event Type: Error

Event Source: Service Control Manager

Event ID: 7001

Description:

The VMware VirtualCenter Management Webservices service depends on the VMware VirtualCenter Server service which failed to start because of the following error:

The service has returned a service-specific error code.

Причина кроется в том, что база данных vCenter (SQL Server), работает на том же сервере что и сам vCenter.

После того как сервер начал загружаться – запускается служба SQL Server, однако этот процесс занимает некоторое время. И когда служба vCenter пытается автоматически стартовать, она попытает попытку соединится с базой данных SQL Server (которая еще не готова), и как следствие в журнале появляется событие с кодом 17187. И в результате, служба vCenter  не запускается автоматически.

Это типичный случай так называемого «race condition» (состояние погони). vCenter пытается запуститься до SQL Server, от которого он зависит. В том случае, если ваш SQL Server установлен на другом сервере, то подобная проблема для вас неактуальна.

На вкладке свойств службы vCenter вы можете удостоверится, что не существует зависимости с SQL Server.

В качестве решения можно создать зависимость для службы “VMware VirtualCenter Server” от следующих служб: MSSQLSERVER и ADAM_VMwareVCMSDS

Тем самым мы  обеспечим запуск службы “VMware VirtualCenter Server” только после загрузки всех необходимых для его работы сервисов.

Создаем зависимость службы:

Нажмите кнопку Пуск -> Выполнить.

Наберите “services.msc”, нажмите кнопку ОК.

Найдите имена  служб,  от которых будет зависеть сервер vSphere, в нашем случае это MSSQLSERVER и ADAM_VMwareVCMSDS.

Нажмите кнопку Пуск -> Выполнить. -> «Regedit»

Перейдите в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vpxd.

Найдите и измените ключ “DependOnService”. Добавьте в него строки с именами тех служб, с которыми мы хотим создать зависимости.

Закройте редактор реестра.

На вкладке зависимости службы vCenter удостоверьтесь в том, что появились новые службы.

Теперь после перезагрузки сервера служба VMware VirtualCenter будет ждать старта всех служб, от которых она зависит, и вам не придется вручную стартовать ее.

Опубликовано в VMWare