Памятка.
В моем демостенде в качестве базы для vCenter используется SQL Express.
Бывает такое, что vCenter не запускается, пытаясь стартовать раньше БД – притом выставление зависимости не помогло.
В рамках овладевания PowerShell набросал скриптик для решения проблемы, скачать его:
1: #служба SQL Server
2: $sql = Get-Service -displayname *SQLEXP_VIM*
3:
4: #Служба vCenter Server
5: $vpxd = Get-Service -name vpxd
6:
7: #Служба vCenter ManagementWebServices
8: $vpxWeb = Get-Service -name vctomcat
9:
10: # Шаг 1. ждать 10 секунд => проверить статус службы SQL. Если НЕ запущена, ждать дальше. Если запущена - проверить статус службы vCenter. По хорошему надо еще ограничить число итераций, здесь этого нет.
11: do {
12: echo " "
13: echo "Step 1. wait 10 seconds SQL Service to start"
14: Start-Sleep -Seconds 10
15: }
16: while ($sql.Status -ine "Running" )
17:
18: # Если служба vCenter не запущена то запустить ее
19: if ( $vpxd.Status -ine "Running" )
20: {
21: echo " "
22: echo "Step 2. vCenter Server status =" $vpxd.Status
23: echo " "
24: echo "Starting vCenter Server"
25: Start-Service -Name vpxd
26: echo "Started vCenter Server successfully!"
27: echo " "
28: }
29:
30: # Если служба веб сервера не запущена, то запустить ее.
31: if ( $vpxWeb.Status -ine "Running" )
32: {
33: echo "Step 3. vCenter WebServer status =" $vpxWeb.Status
34: echo " "
35: echo "Starting vCenter WebServer"
36: Start-Service -Name vctomcat
37: echo "Started vCenter WebServer successfully"
38: echo " "
39: }
Помещенный в автозагрузку при помощи штатного планировщика Windows 2008 скрипт, вроде как, отрабатывает как надо. Разрешено выполнение неподписанных скриптов командой
Set-ExecutionPolicy Bypass
Dmitry Gorokhov - В 2008 windows можно поставить вместо зависимости отложенную загрузку службы. С ней отлично стартует через несколько минут после старта ОС :)
Миша, чувствуется системый подход! ;)
ОтветитьУдалитьДва сервиса vcenter ставишь в auto(delayed start).
Да именно через задержку старта решается в 2008.
ОтветитьУдалить--Соболев.
да я писал скрипт не чтобы проблему решить, а чтобы в PS потренироваться.
ОтветитьУдалитьи получил десяток советов про отложенный старт :)
для 2003 сервера:
ОтветитьУдалитьhttp://networkadminkb.com/kb/Knowledge%20Base/VMWare/VirtualCenter%20Server%20will%20not%20start%20after%20server%20reboot.aspx
В Windows 2008R2(в предыдущих версиях точно так же) сделал так:
ОтветитьУдалитьСервис VirtualCenter, в закладке Dependencies добавил зависимость запуска от старта сервиса SQL Server - пока тот не запуститься VirtualCenter не стартует.
Понимаете ли, какая штука...
ОтветитьУдалитьЗависимости и проверка запуска MS SQL в лоб не подходят, равно как и задержка априори.
Для vCenter все равно - стартовал ли MS SQL как сервис, ему важно - доступна ли БД vCenter. А БД может еще долго читать свои логи, делать roll in и т.п.
То есть нужно по ODBC стучаться и говорить select top 1 * from .sys.tables, когда вам что-то приедет в ответ - база доступна и vCenter - ваш выход. Ну или другой метод для проверки именно доступности БД.
1. On the vCenter Server system, select Start > Programs >VMware > VMware Tomcat > Configure Tomcat.
ОтветитьУдалить2. Click the Java tab.
3. Change the maximum memory pool parameter in the configuration utility from 1024 MB to 512 MB.
4. Click OK.
5. Restart the service. For more information, see Stopping, starting, or restarting vCenter services (1003895)