спросил дипсик
Ошибка `Service crashed while starting` при входе в vCenter указывает на то, что одна или несколько критических служб (`vpxd`, `hvc`, `vpxd-svcs`) не могут запуститься. Ниже приведены наиболее вероятные причины этой проблемы и способы их решения, основанные на официальной документации VMware.
### 1. Основная причина: истекшие сертификаты
Наиболее частая причина ошибок `Invalid credentials` или `Service crashed while starting` — это истекшие сертификаты решения (Solution User certificates) или Machine SSL сертификат vCenter .
Как проверить:
1. Подключитесь к vCenter Server Appliance (VCSA) по SSH.
2. Выполните команду для проверки сроков действия всех сертификатов:
Обратите внимание на записи, где дата `Not After` уже прошла .
Решение:
Для замены истекших сертификатов используйте официальный скрипт **vCert** (рекомендованный VMware вместо старого `certificate-manager`) .
1. Скачайте vCert (см. базу знаний VMware KB#385107).
2. Загрузите его на VCSA и распакуйте.
3. Запустите скрипт для массового обновления сертификатов:
python vCert.py --run config/manage_cert/vmca/op_replace-vmca-cert-and-reset-all.yaml
4. Введите пароль администратора SSO (`
administrator@vsphere.local`).
5. На вопрос `Restart VMware services [N]:` ответьте `Y` (yes), чтобы перезапустить службы .
### 2. Другие возможные причины и их диагностика
Если проблема не в сертификатах, проверьте следующие сценарии.
#### А. Проблема с правами на файл журнала (vpxd-svcs timeout)
Иногда служба `vpxd-svcs` не может запуститься из-за неправильных прав на файл `/var/log/vmware/vtsdb/postgresql.log` .
**Признак:** В логе `/var/log/vmware/vmon/vmon.log` есть строки `Service start operation timed out` для `vpxd-svcs`, а в файле `/var/log/vmware/vtsdb/vtsdb-runtime.log.stderr` — `Permission denied`.
**Решение:**
bash
chmod 600 /var/log/vmware/vtsdb/postgresql.log
После этого перезапустите службы vCenter.
#### Б. Конфликт файлов и директорий (VSM service)
В vCenter 8.x служба `vsm` может аварийно завершаться, если на месте ожидаемой директории находится обычный файл .
**Признак:** В логе `/var/log/vmware/vsm/vsm.log` есть ошибка `java.lang.UnsatisfiedLinkError: Not a directory` для пути `/var/log/vmware/vsm/.cache/JNA/temp`.
**Решение:**
Удалите конфликтующий файл:
rm /var/log/vmware/vsm/.cache/JNA/temp
Затем перезапустите службы.
#### В. Высокая нагрузка при инициализации (Large-Scale Environment)
В крупных средах (более 500 хостов) с включенным шифрованием (Encrypted VMs/vTPM) служба `vpxd` может не укладываться в таймаут запуска .
**Решение (временное):**
Отключите все хосты в базе данных, чтобы vCenter пропустил их проверки при старте:
После успешного запуска vCenter необходимо заново подключить хосты (например, с помощью PowerCLI скрипта из KB).
#### Г. Проблемы после сбоя смены домена
Если операция `domain repoint` была прервана, могут отсутствовать записи о сервисах в Lookup Service .
Проверьте и восстановите регистрацию сервисов с помощью утилиты `lsdoctor`:
/usr/lib/vmware-lookupsvc/tools/lstool.py list --url https://localhost/lookupservice/sdk --no-check-cert | grep -i "Service Type:" | sort | uniq -c
python /usr/lib/vmware-lsdoctor/lsdoctor.py -r
### 3. Пошаговый план действий
Для быстрого восстановления рекомендую следующий порядок действий:
1. **Сделайте снапшот** VCSA перед любыми действиями.
2. **Проверьте сертификаты** с помощью команды из пункта 1. Если они истекли — примените **vCert** (пункт 1 решения).
3. **Проверьте права** на файл `postgresql.log` (пункт 2А) и наличие конфликта `temp` (пункт 2Б).
4. **Проверьте лог `vmon.log`** для уточнения причины:
grep -B 20 'Service crashed while starting' /var/log/vmware/vmon/vmon.log
Ищите конкретные ошибки (например, `Permission denied`, `Not a directory`, `CertificateExpired`).
Если ни один из советов не помог, предоставьте, пожалуйста, фрагмент лога `/var/log/vmware/vmon/vmon.log` за время последней попытки запуска — это поможет точнее диагностировать проблему.