Как устранить ошибку подключения к серверу 503 Недоступно на VMware ESXi?
У меня есть сервер VMware ESXi, который работает почти 200 дней. Последние несколько дней, когда я пытаюсь подключиться к нему с помощью клиента VMware vSphere, я не могу подключиться. После ввода моего имени пользователя и пароля я вижу маленькое вращающееся колесо и строку состояния с надписью "Соединение...", а затем "Загрузка инвентаря...", и затем я получаю сообщение об ошибке:
Сервер "my.host.name" не может интерпретировать запрос клиента. (Удаленный сервер возвратил ошибку: (503) Сервер недоступен
Вызвать "ServiceInstance.RetrieveContent" для объекта "ServiceInstance" на сервере "my.host.name" не удалось.
Я могу подключиться к серверу VMware ESXi по SSH. Все виртуальные машины работают нормально, поэтому я хочу заранее узнать, нужно ли их отключать для технического обслуживания!!! Если методы, предложенные в вашем ответе, будут мешать работе виртуальных машин, пожалуйста, четко укажите это, чтобы я знал, как подготовиться к простоям. Спасибо!
Как я могу устранить эту ошибку на VMware ESXi?
(Я бы опубликовал номер версии, но я не знаю, как получить его без консоли vSphere!)
РЕДАКТИРОВАТЬ: Примерно через месяц после того, как я задал этот вопрос, сервер необъяснимым образом перезагрузил себя. Я не знаю, запаниковало ли это или что случилось... но после перезагрузки эта проблема исчезла. Поэтому я не могу проверить / подтвердить какой-либо ответ, пока проблема не появится снова (а я надеюсь, что нет!)
9 ответов
Вам необходимо перезапустить службы управления VMware. К счастью, это легко (поскольку у вас есть доступ по SSH) и не влияет на виртуальные машины.
В двух словах, SSH к рамке esx как root
и затем выполните одну из двух следующих команд (в зависимости от того, является ли это esx/i):
Для ESX:
service mgmt-vmware restart
Для ESXi:
/sbin/services.sh restart
Я решил проблему, удалив WideCap ServiceInstance.RetrieveContent Ошибка
На моем устройстве vCenter 6.5 vpxd
Сервисное ядро сбрасывает и пропускает эту ошибку.
Пока только обходной путь / решение: блокируйте доступ к хосту ESX, пока все службы vCenter не будут запущены.
Теперь модуль сценария оболочки / systemd в vCenter создает правила брандмауэра iptables / правила фильтрации пакетов при загрузке. Когда службы vCenter запущены и средняя загрузка падает ниже 0,5, скрипт удаляет правила iptables. Только теперь vCenter может "видеть" хосты ESX и на некоторое время счастлив. Если проблема появляется снова, я перезапускаю vCenter.
Сценарий оболочки:
#!/bin/bash
# /usr/local/bin/block-esx-access-on-boot.sh
export ESX_HOSTS="ESX1-IP,ESX2-DNS,ESX3-IP"
export LOAD_THRESHOLD="0.5"
sleep 5
LOAD="$(cut -d' ' -f1 /proc/loadavg)"
echo "Waiting for 1min loadavg ${LOAD} > ${LOAD_THRESHOLD} ..."
while [ "$(echo "${LOAD} > ${LOAD_THRESHOLD}" | bc)" == "0" ] ; do
echo "Waiting for 1min loadavg ${LOAD} > ${LOAD_THRESHOLD} ..."
sleep 3
LOAD="$(cut -d' ' -f1 /proc/loadavg)"
done
echo "Blocking outgoing transfers to ${ESX_HOSTS}"
iptables -A OUTPUT -d ${ESX_HOSTS} -j DROP
iptables -L OUTPUT
while [ "$(echo "${LOAD} < ${LOAD_THRESHOLD}" | bc)" == "0" ] ; do
echo "Waiting for 1min loadavg ${LOAD} < ${LOAD_THRESHOLD} ..."
sleep 60
LOAD="$(cut -d' ' -f1 /proc/loadavg)"
done
echo "Allowing outgoing transfers to ${ESX_HOSTS}"
iptables -D OUTPUT -d ${ESX_HOSTS} -j DROP
iptables -L OUTPUT
Системный блок:
# /etc/systemd/system/block-esx-access-on-boot.service
[Unit]
Description=Block ESX Access on Boot
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/block-esx-access-on-boot.sh
[Install]
WantedBy=multi-user.target
https://gist.github.com/quatauta/a1ac390633006996fbc547da9bd01ef9
У нас возникла похожая проблема, и это привело к отказу SAN LUN, которые были напрямую подключены через адаптеры Fibre Channel. по-видимому, у одного из двух файловых файлов было событие аварийного переключения, но оно не было полностью перенесено, поэтому хост ESXi не мог объявить эти пути неработоспособными и имел прилив проблем с блоком уровня LUN, когда команды HBA занятости, шины заняты, прерывания были засорены в vmkernel. журнал.
Поддержка VMware смогла помочь нам разобраться в проблемах после того, как кластеры заголовков файлов SAN были восстановлены в активное / активное состояние (NetApp). В шестнадцатеричных ошибках "cat /var/log/vmkernel.log | grep sense | less" обнаружены многочисленные проблемы с уровнем LUN (D:0x2), занятость шины (H:0x2), занят HBA (D:0x8), команды сброса (H:0x5) из тайм-аутов, который указывает на то, что файл-файл SAN не был должным образом восстановлен при сбое и все еще сообщает о себе как доступный
После восстановления файла SAN для путей /LUN мы выполнили команду " /sbin/services.sh restart", которая завершилась, и мы снова смогли vClient подключиться к хосту, сети и присоединиться к существующему кластеру, чтобы очистить " сиротские "неназванные" виртуальные машины, которые были остаточными остатками.
Мы столкнулись с той же проблемой. Служба поддержки VMWare заявляет, что vCenter не синхронизирован с системой единого входа (SSO). Простые перезагрузки сервера единого входа при отключенном сервере vCenter должны решить проблему:
Вот последовательность:
выключите сервер vCenter.
затем перезагрузите окно единого входа и подождите, пока все службы VMWare вернутся на этот ящик
включить сервер vCenter
перезапустил службы сервера vcenter в правильной последовательности (каталог, kdc, служба сертификатов, idm, sts, служба inv и затем служба vc
Я получил эту ошибку сразу после успешного обновления vcenter 5.0 до 5.1. Я заметил несколько предупреждений (в разделе СОБЫТИЯ (задачи и события)) внутри vcenter от учетных записей служб, которые я настраивал в прошлом для различных элементов (учетных записей kaspersky vsheild и orion syslog svc), которые отображали отказ в доступе. Я добавил эти учетные записи в группу локальных администраторов на vcenter, и мои проблемы исчезли.
Однако прежде чем я обнаружил это, чтобы обеспечить себя обходным путем, я просто перезапустил службу сервера vmware, а затем смог без проблем войти в систему и получить доступ к консолям vm. Примерно через 5 минут консоли станут черными, и я больше не смог получить к ним доступ. Если я выйду из системы и попытаюсь вернуться в vcenter, я получу эту ошибку:
Вызвать "ServiceInstance.RetrieveContent" для объекта "ServiceInstance" на сервере "my.host.name" не удалось.
Так что правило таково: если вы можете войти в vcenter, то проверьте журналы EVENT и посмотрите, есть ли какие-либо предупреждения об отказе в доступе. Если есть, добавьте эти учетные записи в локальную группу администраторов на vCenter.
Перезагрузка нашего сервера vCenter помогла решить эту проблему для нас.
мы не могли vMotion или создавать шаблоны без получения ошибки 503. Я также видел это в прошлом, когда перезагрузка vCenter не помогает, и нам нужно было перезагрузить хост. что означает, что виртуальные машины на этом хосте тоже отключились.
Я получил это после изменения IP-адреса vCenter
Я использовал # 6 https://rlevchenko.com/2016/03/24/vcenter-503-service-unavailable/ для включения оболочки.
SSH на сервер Vcenter
Команда> оболочка
vi / etc / hosts сменили там IP
сервис-контроль
сервис-контроль --start --all
Ошибка 503 Service Unavailable - это код состояния HTTP-ответа, который указывает, что сервер временно не может обработать ваш запрос. Эта проблема может возникнуть по многим причинам.
Чтобы решить эту проблему, следуйте базе знаний VMware, в которой объясняется, что служба 503 недоступна.