Теория и практика Multi-NIC vMotion

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

95% нагрузок перемещаются без каких-либо последствий, но 5% могут иметь занимательные проблемы – я бы назвал это похмельным синдромом перемещения.

В чём он выражается? Во время миграции вы ощущаете лёгкое отупление как от употребления алкоголя в чуть повышенной дозе, а потом жесточайшие тормоза, длящиеся от пары до пары десятков минут.

vMotion имеет длительную историю, но для меня ключевыми вехами стали версии 5 и 7 (новый функционал релизнули в 7u1). Например, в 5-ке появился целый набор технологий – Mirror [Copy] Driver, Stun During Page Send и Multi-NIC vMotion.

Лучшее доступное описание по архитектуре и настройке читайте в блоге Frank Denneman:

Part 1 – Designing your vMotion network
Part 2 – Multi-NIC vMotion failover order configuration
Part 3 – Multi-NIC vMotion and NetIOC
Part 4 – Choose link aggregation over Multi-NIC vMotion?
Part 5 – 3 reasons why I use a distributed switch for vMotion networks

В 7-ке разработчики озадачились миграцией виртуальных машин с большой нагрузкой и выкатили Monster VM vMotion, о чём подробно можно почитать в документе:

vMotion Innovations in VMware vSphere7.0 U1 .

Теперь вернёмся к причине похмельного синдрома после перемещения – приведу короткую цитату из Sensitive Virtual Machines become impacted by vMotion stun time:

some highly sensitive applications like Database or Banking applications have been known to encounter crash’s or persistent performance impact due to the stun or suspend resume time they experienced as part of the vMotion.

Что же вредного делает этот stun? А он при перемещении ВМ понижает частоту виртуальных процессоров до уровня, когда миграция начинает успевать передавать изменённые страницы памяти с хоста на хост и чем интенсивнее приложение меняет содержимое памяти, тем сильнее приходится прижимать ресурсы процессора. В итоге, мы видим резкий рост очередей на процессор. Пример проблемы на графике: на 20 процессоров две очереди во время миграции составляют по 600 сессий, а потом ~15 минут в районе 300 сессий из-за накопительного эффекта + наложилась борьба за 101% памяти на хосте.

Как сократить время миграции и нивелировать действия stun? Я выбрал старый метод – расширить канал с использованием Multi-NIC vMotion!

У меня есть два сегмента с проблемной миграцией – обычные машины плохо едут по 1 Гбит/с, тяжёлые машины плохо едут по 10 Гбит/с.

Открываем вышеуказанные ссылки плюс статью Multiple-NIC vMotion in vSphere и настраиваем отдельные VMkernel-интерфейсы с сетевыми картами в режиме Active-Standby первый, в режиме Standby-Active второй в политике Teaming and Failover.

У меня ситуация с 10-ками получилась не очень – сетевухи уже 25 Гбит/с, а свитчи всё ещё 10 Гбит/с. Но тяжелые ВМ-ки у меня в 2-узловом кластере, соответственно, интерфейсы под vMotion переключаем на DAC и получаем 2 по 25 Гбит/с.

Результаты

Примечание. Тюнинг vMotion не использовался. Конфигурация железа разная в vSphere 6.7 и в 8.0.

Переход с 6.7 на 7.0 – один канал vMotion на 10 Гбит/с, проверяем улучшения в 7-ке. Миграция ВМ с работающей под высокой нагрузкой системой управления базами данных Oracle DB (20 виртуальных процессоров и 242 гигабайта оперативной памяти) была перемещена за 3 минуты 47 секунд по сравнению с 4 минутами 8 секундами в версии 6.7 – ускорение составило порядка 10%.

Меняем 7-ку на 8-ку, постепенно изменяем конфигурацию сети vMotion:

ВМ СУБД Oracle DB, низкая нагрузка (64 ГБ, 4 vCPU)
Скорость сети, Гбит/с Время миграции, сек Пиковая скорость
10 51 1,2 ГБ/с
25 23 1,8 ГБ/с
2*25 14 2,7 ГБ/с
ВМ СУБД Oracle DB, низкая нагрузка (320 ГБ, 20 vCPU)
Скорость сети, Гбит/с Время миграции, сек Пиковая скорость
2*25 76 5,3ГБ/с
ВМ СУБД Oracle DB, высокая нагрузка (320 ГБ, 20 vCPU)
Скорость сети, Гбит/с Время миграции, сек Пиковая скорость
10 ~51 минута ~1,2 ГБ/с
2*25 61 6,2 ГБ/с

В результате тестов стало ясно, что скорость vMotion растёт практически линейно, если есть что перемещать, – мы получили ускорение до 5 раз при переходе с 10 на 2*25. Для не слишком тяжёлых виртуальных машин не хватает разгона, так как основное время занимают сервисные операции. Если широкого канала хватает для покрытия скорости изменения памяти, то stun не используется и не влияет на время миграции, также мы не видим каких-то особо выраженных пиков по очередям процессора во время начала и конца миграции, да и похмелья у ВМ-ки нет.

Релиз RVTools 4.6.1

Rob de Veij выпустил обновление своей отличной утилиты инвентаризации VMware vSphere — RVTools версии 4.4.1.

В этой версии исправлено:

  • Проблема, требующая, чтобы рабочий каталог был установлен в каталог установки RVTools при использовании сценариев командной строки.
  • Проблема, возникающая, когда при копировании/вставке имени хоста или имени пользователя включался ведущий или завершающий пробел.
  • Проблема, при которой фоновые ошибки не позволяли успешно завершить работу RVTools в неинтерактивном режиме в качестве запланированного задания.
  • Протоколирование ошибок теперь включено по умолчанию для ускорения поиска неисправностей. Ручное переключение на уровень отладки теперь будет запрашиваться только в ситуациях, требующих более подробной информации об устранении неполадок. ПРИМЕЧАНИЕ: Расположение файлов журнала по умолчанию было перенесено в папку AppData/Local/RVTools пользователя.
  • Устранена проблема с повреждением csv-файлов при использовании значений, содержащих двойные кавычки.

Добавлено:

  • Дополнительная программа улучшения продукта для сбора минимальных анонимных телеметрических данных для использования в целях оптимизации пользовательского интерфейса и эффективности RVTools. Дополнительную информацию смотрите на странице “О RVTools”. *При установке можно отказаться.
  • На странице вкладки vHost появились новые столбцы: Compliance Check State, Domain List, Memory Tiering Type.
  • На странице вкладки vHost появились новые столбцы Certificate: Certificate Issuer, Certificate Start, Certificate Expiry, Certificate Status, Certificate Subject.
  • На странице вкладки vInfo новые столбцы: Suspended To Memory, Suspend Interval.
  • На странице vInfo новые столбцы: Overall Cpu Readiness, Active Memory, Fixed Passthru Hot Plug, Op Notification Timeout, VM Failover In Progress.
  • На странице вкладки vInfo новый столбец Customization Info.
  • На странице vInfo новый столбец Guest Detailed Data, который включает – architecture, bitness, buildNumber, cpeString, distroName, distroVersion, familyName, kernelVersion, prettyName.
  • На странице вкладки vHealth: Добавлено предупреждение “Срок действия сертификата истекает через XX дней или уже истек” (настраиваемые XX дней).
  • Свойства Health: Новый флажок для включения/выключения предупреждения об истечении срока действия сертификата и настройки желаемых временных рамок (по умолчанию = 90 дней).

Борьба с VMware vSphere ESX Agent Manager

В очередной раз схватили две странные проблемы, казалось бы несвязанные между собой:

  1. Перестал работать DRS по причине невозможности создать виртуальные машины vCLS.
  2. Перестало работать обновление хостов с ошибкой “Failed to login to vCenter as extension, Cannot complete login due to an incorrect user name or password”.

Изучение БЗ VMware навело на две заметки:

  1. EAM is unable to deploy vCLS VMs when vpxd-extension certificate has incorrect extended key usage values (85742)
  2. “Failed to login to vCenter as extension, Cannot complete login due to an incorrect user name or password”, ESX Agent Manager (com.vmware.vim.eam) solution user fails to log in after replacing the vCenter Server certificates in vCenter Server 6.x/7.x (2112577)

Что-то подсказывало, что корень у причины один!

Подали советуемые команды, которые починили сертификат расширения:

Релиз RVTools 4.4.1

Rob de Veij выпустил обновление своей отличной утилиты инвентаризации VMware vSphere — RVTools версии 4.4.1.

В этой версии используются свежие версии фреймворков, а также есть другие исправления:

  • Теперь для разработки используется Visual Studio 2022, VMware vSphere Management SDK 8.0
  • Log4net обновлен до версии 2.0.15
  • RVToolsPasswordEncryption теперь использует mac-адрес вместо фиксированной строки для шифрования пароля
  • На странице вкладки vInfo появились новые колонки: Total Disk capacity MiB, Folder ID, FT role, Reboot powerOff, EFI Secure boot option и SMBIOS UUID.
  • На вкладке vCPU новый столбец: “Numa Hotadd Exposed” – раскрывается ли виртуальная топология NUMA при включенном горячем добавлении процессора.
  • На странице вкладки vDisk новые колонки: Disk UUID, Sharing mode
  • На всех связанных страницах вкладок VM столбцы тегов перемещены непосредственно перед столбцом “Datacenter”
  • На всех страницах вкладок, связанных с ВМ: Изменен текст всплывающей подсказки VM UUID на “VirtualCenter-specific 128-bit UUID of a virtual machine”
  • На странице вкладки vSource добавлены новые столбцы: Version, Patch level и VI SDK Server
  • На странице вкладки vHealth: /storage/archive исключен для проверки “free disk capacity”, так как раздел /storage/archive может быть заполнен by design 
  • Исправление ошибки на странице вкладки vInfo: колонка “Primary IP Address” не показывала правильное значение
  • Исправление ошибки на странице вкладки vNetwork: определение того, является ли ip-адрес ipv4 или ipv6, не всегда проходило успешно

Релиз Код Безопасности vGate 4.6

Код безопасности выпустил свежую версию своего продукта для защиты виртуальных сред vGate 4.6. Ключевое отличие обновленной версии продукта – реализация защиты KVM-виртуализации.

В vGate 4.6 добавлена поддержка следующих операционных системам семейства Linux:

  • Ubuntu 18.04.6 LTS, 20.04.3 LTS;
  • Astra Linux Common Edition «Орел» 2.12.22;
  • Альт Сервер Виртуализации 10;
  • Альт Сервер 8 СП;
  • Скала-Р Управление 1.80; 1.92; 1.93.

Полный список новых функций:

  1. Выполнен перенос функции управления фильтрацией трафика vCenter из консоли управления vGate в веб-консоль.
  2. Выполнен перенос функций управления виртуальными сетями, виртуальными машинами, сетевыми адаптерами, хранилищами данных и организациями сервера Cloud Director из консоли управления vGate в веб-консоль.
  3. Выполнен перенос функции объединения объектов виртуальной инфраструктуры в группы из консоли управления vGate в веб-консоль.
  4. Реализована поддержка политик шаблона “CIS for ESXi 7.0”.
  5. Реализовано ограничение числа одновременных сеансов АВИ.
  6. Добавлены новые виджеты мониторинга: “Тепловая карта событий аудита”, “Объекты и учетные записи по категориям конфиденциальности”, “Объекты и учетные записи по уровням конфиденциальности”.
  7. Реализована поддержка токенов Рутокен при аутентификации пользователей через вебинтерфейс vGate.
  8. Реализована возможность добавления пользовательских уровней конфиденциальности.
  9. Реализована поддержка контейнеров VMware, включая контроль целостности образов контейнеров, хранящихся во встроенном реестре Harbor, и контроль доступа к vSphere Pods.
  10. Реализована возможность создания разрешающих правил фильтрации, по которым осуществляется однонаправленная передача трафика.
  11. Реализована поддержка KVM-серверов и защита виртуальных машин KVM.
  12.  Добавлена возможность использования символов кириллицы в именах пользователей и групп Active Directory.

Подробная документация:
Continue reading “Релиз Код Безопасности vGate 4.6”

Релиз RVTools 4.3.2

Rob de Veij выпустил обновление своей отличной утилиты инвентаризации VMware vSphere — RVTools версии 4.3.2.

В этой версии используются свежие версии фреймворков, а также есть другие исправления:

  • используется .NET Framework версии 4.6.2 вместо 4.6.1.
  • используется Newtonsoft.Json версии 13.0.1 вместо 12.0.3.
  • исправлена ошибка: таймаут соединения для огромных сред vSphere.
  • исправлена ошибка: изменена целевая платформа для RVToolsMergeExcelFiles на “Any CPU”, что позволило использовать платформу X64 и избежать исключения System.OutOfMemoryException для огромных сред vSphere.
  • исправлена ошибка: удаленные выходные строки для отладки из RVToolsMergeExcelFiles.

VMware vSphere 6.x End Of Support

С 15 октября 2022 года прекращается поддержка линейки vSphere 6.5 и 6.7, включая ESXi, vCenter и VSAN.

Уходит эпоха стабильных релизов, кастомных Linux-драйверов для левого оборудования, мажорных релизов не в виде update…

Для тех, кто ещё остаётся преданным делу 6-ки VMware выпустила прощальные патчи:

Раздувание таблиц 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”

Релиз Код Безопасности vGate 4.5 SP1

Код безопасности выпустил свежую версию своего продукта для защиты виртуальных сред vGate 4.5 (сразу с первым сервис-паком) для vSphere.

В данной версии реализованы новые функции:

  1. Реализован контроль операций Cloud Director и управление организациями.
  2. В веб-консоли реализован контроль состояния соединений (SPI — Stateful packet inspection).
  3.  В веб-консоли реализован анализатор трафика (DPI — Deep packet inspection).
  4. В веб-консоли реализован контроль прикладных протоколов с помощью правил фильтрации компонента “Сегментирование”.
  5. Реализован безагентный контроль операций vCSA.
  6. Реализована возможность доступа администратора виртуальной инфраструктуры к защищаемым серверам через веб-интерфейс vGate (без агента аутентификации).
  7. Реализована поддержка политик шаблона “VMware vSphere 7 Security Configuration Guide”.
  8. Выполнен перенос функции управления правилами доступа из консоли управления vGate в вебконсоль. Добавлено управление настройками регистрации событий правил доступа.
  9. Выполнен перенос функций управления политиками безопасности, механизмом полномочного управления доступом, а также контролем целостности защищаемых серверов из консоли управления vGate в веб-консоль.
  10. Выполнен перенос функции управления защищаемыми серверами из консоли управления vGate в веб-консоль.
  11. В веб-консоли реализовано отображение последних операций с ESXi-серверами и виртуальными машинами.
  12. В агенте аутентификации и в веб-консоли обеспечена возможность настройки уровня логирования NDIS-драйвера.
  13. В агенте аутентификации реализована проверка сетевой доступности сервера авторизации.
  14. В веб-консоли и в агенте аутентификации реализовано оповещение пользователя о времени его последнего входа.
    • Подробная документация:

Continue reading “Релиз Код Безопасности vGate 4.5 SP1”

Утилита самообслуживания 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”