Как устранить ошибку подключения к серверу 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 Ошибка

Эта статья VMware KB, кажется, соответствует вашему описанному симптому. Убедитесь, что ваш DNS работает и работает с точки зрения сервера ESXi.

Вариант 2. Можете ли вы проверить, что ваш vCenter Server работает и служба запущена?

На моем устройстве 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 должны решить проблему:

Вот последовательность:

  1. выключите сервер vCenter.

  2. затем перезагрузите окно единого входа и подождите, пока все службы VMWare вернутся на этот ящик

  3. включить сервер vCenter

  4. перезапустил службы сервера 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

  1. Я использовал # 6 https://rlevchenko.com/2016/03/24/vcenter-503-service-unavailable/ для включения оболочки.

  2. SSH на сервер Vcenter

  3. Команда> оболочка

  4. vi / etc / hosts сменили там IP

  5. сервис-контроль

  6. сервис-контроль --start --all

Ошибка 503 Service Unavailable - это код состояния HTTP-ответа, который указывает, что сервер временно не может обработать ваш запрос. Эта проблема может возникнуть по многим причинам.

Чтобы решить эту проблему, следуйте базе знаний VMware, в которой объясняется, что служба 503 недоступна.

Другие вопросы по тегам