Управляем неуправляемым VMware ESXi

Иногда бывает, что ESXi теряет управление – отваливается от vCenter.

Что с этим делать расписано на русском в статье “Хост VMware ESXi в состоянии Not Responding на сервере vCenter – в чем может быть проблема?”

Опытные админы, обычно, идут в консоль и подают 2-3-4 команды:

либо полный фарш:

Недавно у нас случилась аналогичная ситуация – отвалилось несколько хранилищ (datastore) и ESXi решил прикурить: vCenter отпал, хостовый веб-клиент отпал, вышеупомянутые команды якобы отрабатывали с нулевым результатом. Хорошо хоть виртуальные машины продолжали работать.

В итоге решили перезагрузить хост. Вот только для этого нужно было погасить виртуальные машины – часть выключили штатно изнутри, но некоторым нужно подать команду shutdown снаружи.

Типовые команды для выключения ВМок описаны  в статье “Powering off an unresponsive virtual machine on an ESXi host (1004340)”

Но у нас-то случился клинический случай  и ESXi не отрабатывал команд esxcli. Соответственно, пришлось искать более низкоуровневое решение – localcli.

localcli – это набор команд для работы технической поддержки VMware. Команды localcli эквивалентны командам ESXCLI, но обходят hostd. Команды localcli предназначены только для ситуаций, когда hostd недоступен и не может быть перезапущен.

Предупреждение: Использование LOCALCLI официально не поддерживается. Все действия выполняются на свой страх и риск.
Однако команда очень интересна тем, что при использовании специального внутреннего каталога плагинов появляются некоторые недокументированные пространства имен. Вы можете просмотреть эти пространства имен и открыть для себя некоторые интересные функциональные возможности. Просто войдите в ESXi и используйте команду

результат вывода:

Осталось написать скрипт массового выключения ВМок. Пока думал как написать решил поискать готовые решения и  поисковик выдал примечательную статью о шифровальщиках для VMware vSphere c готовым скриптом New Linux-Based Ransomware Cheerscrypt Targeting ESXi Devices Linked to Leaked Babuk Source Code. В статье косяки с кавычками и апострофами, так что держите верный код:

Ну, а для нашей задачи такой жести не надо, но нужны другая команда и обычное выключение:

Если же перед вами стоят другие задачи, но esxcli не работает, то попробуйте использовать доступные пространства имен для localcli.

Раздувание таблиц vPostgres в VMware VCSA

В СУБД PostgreSQL присутствует эффект раздувания таблиц aka table bloat. Он выражается в падении производительности при интенсивном обновлении данных, например,  при частых UPDATE, INSERT, DELETE. Данное поведение характерно и для СУБД vPostgres в VMware VCSA.

Для диагностики раздувания необходимо выполнить следующие действия:

  1.  Скачать скрипт 51981_check_bloat.sql из БЗ VCSA database storage /storage/db is full or nearly full (51981) (скрипт является копией официального Show database bloat).
  2. Подключиться к БД: /opt/vmware/vpostgres/current/bin/psql -U postgres -d VCDB.
  3. Скопировать и вставить содержимое файла и нажать Enter.
  4. Проанализировать отчёт. Если значение колонок tbloat либо ibloat column больше 25, то запланировать обслуживание БД.

Continue reading “Раздувание таблиц vPostgres в VMware VCSA”

Утилита самообслуживания VMware Lookup Service Doctor

Следующая утилита самообслуживания от VMware – Lookup Service Doctor aka lsdoctor.

В результатах диагностики с помощью Утилита самообслуживания VMware vSphere Diagnostic Tool вы  можете получить ссылку на lsdoctor:

Lookup Service Doctor (lsdoctor) – это скрипт, используемый для решения проблем с данными, хранящимися в базе данных PSC, а также с данными, локальными для vCenter (независимо от того, является ли PSC внешним или встроенным). Данный инструмент можно использовать для обнаружения и устранения проблем, которые могут привести к сбоям при изменении топологии (converge, repoint и т.д.), обновлении или сбоям, возникшим в результате технического обслуживания (например, неправильное применение новых SSL-сертификатов).

Прежде чем использовать lsdoctor для внесения каких-либо изменений, убедитесь, что вы сделали надлежащие снимки вашего домена SSO. Это означает, что вы должны одновременно выключить все VC или PSC, которые находятся в домене SSO, затем сделать снимки и снова включить их. Если вам нужно вернуться к одному из этих снимков, выключите все узлы и верните все узлы к снимку. Невыполнение этих шагов приведет к проблемам репликации между базами данных PSC.

Утилита предназначена для использования с vCenter 6.5 и новее. Скачивается из KB Using the ‘lsdoctor’ Tool (80469), тут же размещены подробные инструкции по использованию. Затем распаковывается и заливается на vCenter, запускается справка из папки lsdoctor-master:

Выведутся ключи программы:

Предназначение ключей программы: Continue reading “Утилита самообслуживания VMware Lookup Service Doctor”

Расширенное управление сертификатами VMware vCenter

Для управления сертификатами в VMware vCenter есть простейший графический интерфейс и более полноценный vSphere Certificate Manager, работающий в командной строке.

Технической поддержке VMware доступна расширенная версия данной утилита, которая недавно утекла в интернет с такими функциями в меню:

  1. Check current certificates status
  2. Check CA certificates in VMDir and VECS
  3. View Certificate Info
  4. Generate certificate report
  5. Check SSL Trust Anchors
  6. Update SSL Trust Anchors
  7. Replace the Machine SSL certificate
  8. Replace the Solution User certificates
  9. Replace the VMCA certificate and re-issue Machine SSL and Solution User certificates
  10. Replace the Authentication Proxy certificate
  11. Replace the Auto Deploy CA certificate
  12. Replace the VMware Directory Service certificate
  13. Replace the SSO STS Signing certificate(s)
  14. Replace all certificates with VMCA-signed certificates
  15. Clear all certificates in the BACKUP_STORE in VECS
  16. Check vCenter Extension thumbprints
  17. Check for SSL Interception
  18. Check STS server certificate configuration
  19. Check Smart Card authentication configuration
  20. Restart reverse proxy service
  21. Restart all VMware services

Копия с исправлениями переноса строк для Linux доступна тут.

Также рекомендую статью от Navion – Продлеваем сертификаты vCenter правильно.

Потеря доступности LUN-ов и VMFS-томов на хранилищах с прямым FC-подключением после обновления до vSphere 7.0 Update 3

После обновления хостов до ESXi 7.0 Update 3f получили замечательную вещь – диски и тома на них, подключенные к системе хранения данных напрямую (Direct-Attached FC) исчезли на серверах напрочь.

Диагностика проблемы выявила, как минимум, две возможных ситуации:

  1. Кривой драйвер в составе дистрибутива –  qlnativefc 4.1.14.0-26vmw.703.0.20.19193900. Пересобрали образ с самой новой версией 5.1.68.0-1OEM.703.0.0.18644231 и проблема у нас ушла.
  2. Начиная с версии vSphere 7.0 Update 3, драйвер brcmnvmefc больше не доступен. Функциональность NVMe over FC, ранее реализованная в  brcmnvmefc, теперь включена в драйвер lpfc.Чтобы включить поддержку только протокола SCSI в драйвере lpfc, установите lpfc_enable_fc4_type=1.
    Чтобы включить поддержку протоколов SCSI и NVMe, установите lpfc_enable_fc4_type=3.

    1. Переведите хост ESX в режим обслуживания
    2. Включите SSH-доступ к хосту ESX и подключитесь к хосту ESXi от имени root.
    3. Используйте следующую команду esxcli, чтобы отключить поддержку FC-NVMe в драйвере lpfc:
      esxcli system module parameters set -m lpfc -p lpfc_enable_fc4_type=1
    4. Перезагрузите хост ESXi для завершения изменений.

VMware vCenter 7.0 Lifecycle Manager не скачивает обновления через прокси

Попали на странные грабли – VMware vCenter 7.0 Lifecycle Manager не скачивает обновления через прокси.

При запуске Sync Update выпадает в ошибку ‘A general system error occurred: Download patch definitions task failed while syncing depots. Error: ‘integrity.fault.NoSignatureSiteConnection’.

Поиск в интернете выдает пару рекомендаций:

  1. vCenter 7.0, Lifecycle Manager fails downloading patches Error: “integrity.fault.NoSignatureSiteConnection”
  2. “A general system error occurred: Download patch definitions task failed while syncing depots. Error: ‘integrity.fault.MetadataDownloadFailure’.” Sync Updates vCenter 7.0.3c

Про второй случай я уже писал – и второй раз сбрасывать базу не собирался.

Обновление VMware vCenter с версии 6.7 до 7.0

А вот первый совет навёл на странную мысль, что в указании https прокси надо вместо https://ip_proxy указать http://ip_proxy. Как ни странно, помогло.

Февральские патчи ESXi 2022 года

Статья прислана читателем бложика.

Занимались аудитом и обслуживанием очередной пары фирм, попутно обновляли VMware  – увидели много интересного.

Первая фирма, обновления 7.0.1 – 7.0 Update 2e build 19290878.

Опять какие-то проблемы с iSCSI. На одном сервере полностью поменялся IQN, причем с изменением даже имени. После этого по возвращении сервер не увидел СХД, пришлось настраивать. На аналогичном втором сервере потерялся target, но IQN остался тот же.

Как оказалось, проблема описана в интернете, НО что-то не находится в VMware release notes: Continue reading “Февральские патчи ESXi 2022 года”

Hyper-V Deep Dive

Недавно зашло обсуждение c друзьями про возможности Hyper-V и собеседник дал ссылку на подробную документацию Верхнеуровневая функциональная спецификация гипервизора:

Hypervisor Top Level Functional Specification Windows Server 2019 v6.0b

Дополнительно рекомендую ознакомиться со статьёй What happens if I don’t upgrade the virtual machine configuration version?

Обновление Microsoft Windows Server с ролью VMware Horizon Connection Server

В связи с выходом новых версий Microsoft Windows Server (MS WS) приходится старые обновлять.

В один прекрасный день дошла очередь до серверов с ролью VMware Horizon Connection Server. С установленной MS WS 2012 R2 решили обновляться до 2016/2019/2022.

Запустили установку в режиме in-place upgrade и стали смотреть на проценты прогресса, а они встали в районе 40-50% и дальше не идут – подождали 3 часа, 6 часов, 12 часов, 20 часов… Поняли, что терпение наше кончилось и мы откатили ОС взад.

Анализ содержимого диска указал, что на сервере созданы профили для всех пользователей VDI – сотни и сотни.

Скачали и запустили любимую у владельцев терминальных ферм утилиту Profile Deletion Utility, исключив служебные и административные профили.

Заново запустили обновление и оно прошло штатно – за 30-40 минут.

Как вкатиться в ИТ и стать Python-кодером

Как делать не стоит 🙂

    1. проучиться в ВУЗе на программиста/математика 5 лет, изучив C, Pascal, Prolog, List (хотя это-то нормальный пункт);
    2. 15 лет проработать Wind0ws-администратором, карабкаясь по профессиональной лестнице от переустановки рабочих станций – до дирижирования виртуальными серверами;
    3. последние лет пять писать постепенно усложняющиеся скрипты на PowerShell;
    4. года три назад начать занятия на курсе https://dlcourse.ai и бросить их из-за сложностей в математике (Back Propagation, например) и программировании (классы в Python ну вообще не зашли);
    5. начать изучение программирования на Coursera курса по Go… И бросить его из-за чрезвычайной сложности для начинающего программиста.
    6. посмотреть вдохновляющие лекции Ивана Бибилова (еще хвалят Хирьянова, но для меня изучение языка программирования по видеолекциям – так себе затея, имхо);
    7. вписаться в бесплатное соревнование для студентов от Яндекса – Тренировку по алгоритмам (вот это было самым крутым);
    8. написать на питоне свой скрипт синхронизации хостов и виртуальных машин из vSphere в Netbox (пока через Pyvmomi).

Как лучше, – спросите вы?

  1. “Поколение Python”: курс для начинающих на Степике. Отлично то, что есть онлайн-IDE (среда разработки) с автотестами: то есть, вы не только учите язык, но и проверяете себя на практике. Альтернативно, вы можете сесть за Python Tutorial, но практики не будет.
  2. Теперь вы знаете основы языка и можете вписаться в любую более сложную движуху. Можете выбрать курс “Поколение Python”: курс для продвинутых на Степике, а можете – тренировки Яндекса по алгоритмам. Кстати, у Яндекса есть программы стажировки по разным направлениям, причем они не ограничиваются только студентами (по крайней мере, так утверждают сотрудники Яндекса 🙂 )
    Но там очень жесткий отбор – например, в школу бэкенд разработки надо было за несколько часов решить 6 задач.
  3. Как вариант, вместо дальнейшей прокачки Python вы можете пойти в Go (ссылку на Курсеру кидал выше) или в Java. Есть мнение, что это более перспективные языки с точки зрения вашей будущей з/п.
  4. Нелишним будет подтянуть хотя бы основы Git. Там есть много полезного даже для сисадминов.

Выводы

Если вы – сисадмин и поступите так, как я написал, то ваша жизнь может заиграть новыми красками. О, сколько новых слов я сказал, когда:

  • узнал, что кабели в Netbox могут соединять как два устройства, так и устройство с “circuit”;
  • цвет кабеля в Netbox можно задать неправильно и это будет ломать API-запросы к нему;
  • узнал, что хост ESXi может не содержать vmnic5, но содержать vmnic7 (vmnic0, 1, 2, 3, 6, 7).

Зато помог коллегам вычистить конфликты серийников у хостов в Netbox.