В среде VMware vSphere ресурсы, выделенные для провиженирования, могут быть недостаточными для достижения требуемого уровня производительности, когда на виртуальной машине выполняется мощное приложение. В этом случае оптимальным решением будет добавление дополнительных процессорных и памятных ресурсов к виртуальной машине.
Когда на виртуальной машине выполняются критические приложения, нельзя позволить себе выключить ее и столкнуться с простоем. В таком сценарии приходит на помощь функция Hot Add из VMware vSphere. Благодаря гибкости, обеспечиваемой виртуализацией от VMware, можно добавлять виртуальное оборудование – процессоры и оперативную память – на работающей виртуальной машине. Здесь мы расскажем, как включить функцию VMware Hot Add, представим примеры использования, настроим ее и рассмотрим ограничения этой функции.
Что такое VMware Hot Add?
VMware Hot Add – это функция, которая позволяет добавлять виртуальные устройства к виртуальной машине, когда она находится в рабочем состоянии. По умолчанию вы можете добавлять виртуальные устройства, такие как виртуальный жесткий диск (за исключением IDE), сетевые адаптеры и USB-устройства, когда виртуальная машина включена. Функция VMware Hot Add позволяет добавлять виртуальные процессоры (ЦП) и оперативную память (ОЗУ) “на лету”. При включенной функции VMware Hot Add нет необходимости выключать виртуальную машину для добавления виртуальных устройств.
VMware Hot Add против Hot Plug
Вы можете заметить, что функция Hot Add процессора иногда называется горячим подключением процессора. То же самое относится к добавлению оперативной памяти “на лету”. Эти два термина относятся к одному и тому же и взаимозаменяемы.
Примечание: Не путайте динамическую память VMware и горячее добавление памяти VMware, потому что эти функции различны. Динамическая память VMware – это методика эффективного управления памятью VMware для виртуальных машин. Это неофициальное название этой функции, но пользователи упоминают ее как передовой аналог динамической памяти Hyper-V. Техники управления памятью VMware включают прозрачное совместное использование страниц, баллонирование памяти, сжатие памяти и обмен памятью.
Требования и ограничения
Есть требования и ограничения для добавления виртуальных ЦП VMware (виртуальных центральных процессоров) и памяти в работающие ВМ:
- Гостевая операционная система (ОС) должна поддерживать горячее добавление устройств.
- Совместимость оборудования виртуальной машины (версия виртуального оборудования) должна быть 7 или выше.
- Инструменты VMware должны быть установлены на гостевой ОС.
- Функция Fault Tolerance не должна быть включена для ВМ.
- Виртуальная машина должна быть выключена для включения функции Горячего Добавления.
- A VMware vSphere Advanced, Enterprise, or Enterprise Plus license must be used. VMware vSphere Enterprise Plus supports both CPU hot add and memory hot add. Refer to the VMware licensing guide to check available functionality for other editions and guest OSs.
Учитывайте ограничения лицензирования гостевой ОС и установленных приложений на ВМ перед добавлением виртуальных ЦП. Вам может потребоваться дополнительная лицензия для запуска программного обеспечения на большем количестве процессоров.
Гостевые операционные системы, поддерживающие Hot Add, – Windows Server 2003 и новее, и Linux с ядром 3.8 и выше. Ведущие редакции Windows Server поддерживают как добавление CPU, так и памяти. Некоторые более низкие редакции Windows Server поддерживают только добавление памяти.
Гостевая ОС | Лицензия/Издание | Горячее добавление памяти | Горячее подключение процессора |
Windows Server 2003 32-бит/64-бит | Стандартное, Предприятие | Да | Нет |
Windows Server 2008 32-бит | Стандартное, Предприятие, Центр обработки данных | Да | Нет |
Windows Server 2008 64-бит | Стандартное, Предприятие | Да | Нет |
Windows Server 2008 64-бит | Центр обработки данных | Да | Да |
Windows Server 2008 R2 | Стандартное, Предприятие | Да | Нет |
Windows Server 2008 R2 | Центр обработки данных | Да | Да |
Windows Server 2012 | Стандартное, Центр обработки данных | Да | Да |
Windows Server 2012 R2 | Стандартное, Центр обработки данных | Да | Да |
Windows Server 2016 | Стандартное, Центр обработки данных | Да | Да |
Windows Server 2019 | Стандартное, Центр обработки данных | Да | Да |
Плюсы и минусы горячего добавления VMware
VMware Hot Add – это полезная функция во многих случаях. Однако стоит заметить, что использование этой функции может привести к недостаткам, если горячее добавление на самом деле не требуется. VMware Hot Add по умолчанию отключен по разным причинам. Давайте выясним, почему.
VMware vCPU Hot Add и vNUMA
Когда вы включаете VMware Hot Add, vNUMA автоматически отключается для ВМ. По умолчанию vNUMA включен для всех ВМ, которые имеют 8 vCPU или больше для улучшения производительности. Давайте более подробно рассмотрим концепцию NUMA и vNUMA.
Что такое NUMA?
NUMA (система с неоднородным доступом к памяти) – это архитектура для многопроцессорных систем, которая позволяет процессорам обмениваться памятью локально. Время доступа к памяти процессором зависит от расположения памяти на материнской плате. Каждый процессор имеет приоритет использовать “свою” локальную память, а не использовать память, установленную в слоты рядом с другим процессором. Другими словами, NUMA – это метод, который определяет, как один процессор взаимодействует с модулями памяти другого процессора. Системы NUMA – это платформы с более чем одной системной шиной, где каждый процессор может получить доступ ко всей памяти на материнской плате. Процессор с памятью, установленной в слоты рядом с этим процессором, называется узлом NUMA.
Если NUMA отключен или, например, у вас два процессора, и память установлена только в слоты одного из этих процессоров, вы можете столкнуться с ухудшением производительности и другими проблемами оборудования. Если у вас недостаточно модулей памяти, чтобы заполнить все слоты на материнской плате с двумя процессорами, попробуйте распределить модули памяти по слотам первого и второго процессоров.
NUMA помогает системным процессам, работающим в операционной системе, осознающей NUMA, распределяться рационально. Это позволяет каждому процессу получать доступ к областям памяти, которые находятся ближе к процессорам, используемым этими процессами.
Что такое vNUMA?
Виртуальная NUMA (vNUMA) – это метод оптимизации в VMware vSphere. Он обеспечивает оптимальную производительность крупных ВМ, учитывая топологию NUMA и избегая узких мест по пропускной способности памяти. Физическая топология NUMA предоставляется гостевой операционной системе с помощью vNUMA. В результате виртуальная топология NUMA основана на топологии NUMA базового физического оборудования, используемого хостом ESXi. Виртуальные ЦП ВМ могут планировать доступ к памяти, расположенной на тех же узлах NUMA.
vNUMA доступен для виртуальных машин, использующих виртуальное оборудование 8 или выше. При создании виртуальной машины можно выбрать количество процессоров и количество ядер процессора. Количество сокетов ЦП рассчитывается автоматически. Если количество vCPUs, используемых ВМ, превышает количество ядер на каждом узле NUMA, то топология vNUMA изменяется и оптимизируется для использования гостевой ОС. В этом случае гостевая ОС может использовать несколько узлов NUMA. Такая ВМ называется широкой или крупной виртуальной машиной.
Что происходит, когда vNUMA отключен?
Когда включена функция Hot Add и отключена vNUMA, виртуальная машина не осведомлена о базовых узлах NUMA на хосте ESXi и увеличивает доступ к памяти на удаленных узлах NUMA. Планирование процессора/памяти гостевой ОС не является оптимальным. В результате производительность виртуальной машины ухудшается. Заметное снижение производительности наблюдается на широких виртуальных машинах с увеличением потоков приложения. Например, если включить Hot Add на виртуальной машине, гостевая ОС которой использует два узла NUMA, после этого эта гостевая ОС сможет обнаружить только один узел NUMA, потому что оптимизированная топология vNUMA не создается.
Включайте функцию Hot Add VMware только в случае необходимости ее использования во время работы виртуальной машины. В противном случае рекомендуется отключить Hot Add для виртуальных машин, охватывающих более одного узла NUMA. Если вы не уверены, что вам нужно добавлять процессоры и память “на лету”, лучше сразу выделить больше ресурсов процессора и памяти для виртуальной машины.
Ограничения функции Hot Add VMware
Невозможно выполнять удаление “на лету”
Когда включена функция Hot Add/Hot Plug, невозможно удаление процессоров и памяти “на лету”. После добавления “на лету” виртуальным машинам виртуальных процессоров и памяти, приложения используют эти добавленные ресурсы. Именно поэтому приложения не поддерживают опции, такие как извлечение памяти и процессорной мощности, которые уже используются. Поэтому единственным возможным способом уменьшения ресурсов процессора и памяти для виртуальной машины является вы��лючение виртуальной машины и изменение настроек выключенной виртуальной машины.
Ограничения масштабируемости памяти
Максимальное количество добавляемой “на лету” памяти составляет 16 раз больше начального выделенного объема памяти для виртуальной машины. Например, если у виртуальной машины 4 ГБ оперативной памяти, этот объем можно увеличить до 64 ГБ.
У вас также есть ограничение на виртуальные машины, которые имеют 3 ГБ оперативной памяти (точно 3072 МБ) или меньше. Вы можете получить ошибку, или гостевая ОС (64-разрядная Linux и 32-разрядная Windows) не сможет определить добавленную память. Решение заключается в том, чтобы выключить виртуальную машину, увеличить объем памяти более 3072 МБ. Затем вы можете включить виртуальную машину и использовать функцию Hot Add памяти в VMware.
Как настроить Hot Add в VMware
Существует несколько способов включить функции Hot Add для vCPUs и памяти в VMware. Вы можете использовать графический интерфейс пользователя или командную строку.
Включение функции Hot Add в vCenter
Для включения функции Hot Add в VMware с помощью vCenter выполните следующие действия:
- Перейдите в раздел Хосты и кластеры.
- Выберите нужную виртуальную машину в панели навигации. Виртуальная машина должна быть выключена.
- Нажмите на значок Изменить настройки. В качестве альтернативы, вы можете щелкнуть правой кнопкой мыши на названии виртуальной машины и в открывшемся меню выбрать Изменить настройки.
Для включения функции Hot Add для процессора выполните следующие действия:
- В окне Изменить настройки разверните настройки процессора.
- В строке Hot Plug процессора выберите флажок Включить Hot Add процессора.
Для включения функции Hot Add для памяти выполните следующие действия:
- В окне Изменить настройки разверните настройки памяти.
- В строке Подключаемый модуль памяти выберите флажок Включить.
- Нажмите ОК, чтобы сохранить настройки ВМ и закрыть окно.
Теперь вы можете запустить ВМ и добавить процессоры VMware и память в ВМ в режиме активной работы.
Включение функции Hot Add VMware в PowerCLI
VMware PowerCLI – мощный инструмент командной строки для управления VMware vSphere. Давайте рассмотрим, как включить функцию Hot Add VMware в PowerCLI.
- Подключитесь к вашему vCenter или хосту ESXi, используя следующую команду и введите соответствующий IP-адрес (192.168.101.205 в данном примере) или имя хоста:
Connect-VIServer 192.168.101.205
- Введите учетные данные, когда будет запрошено.
- Перечислите ВМ на хосте ESXi, к которому вы подключились.
Get-VM
- Убедитесь, что ВМ, для которой вы хотите включить Hot Add, выключена.
- Запустите эти команды для включения добавления памяти и добавления CPU для выбранной виртуальной машины.
$VM = Get-VM Windows-VM
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.memoryHotAddEnabled = $true
$spec.cpuHotAddEnabled = $true
$VM.ExtensionData.ReconfigVM_Task($spec)Где:
Windows-VM – имя необходимой виртуальной машины
$spec.memoryHotAddEnabled = $true – команда для включения добавления памяти
$spec.cpuHotAddEnabled = $true – команда для включения добавления CPU - Проверьте, включены ли функции горячего добавления процессора и горячего добавления памяти на виртуальных машинах:
Get-VM | Get-View | Select Name, `
@{N=”CpuHotAddEnabled”;E={$_.Config.CpuHotAddEnabled}}, `
@{N=”CpuHotRemoveEnabled”;E={$_.Config.CpuHotRemoveEnabled}}, `
@{N=”MemoryHotAddEnabled”;E={$_.Config.MemoryHotAddEnabled}}
Включение горячего добавления в файле конфигурации виртуальной машины
Другой метод для включения VMware Hot Add – использование интерфейса командной строки ESXi и редактирование файла конфигурации VMX виртуальной машины. Откройте оболочку ESXi или подключитесь к хосту ESXi через SSH. Затем выполните следующие команды в командной строке, чтобы включить Hot Add:
- Перейдите в каталог VM:
cd /vmfs/volumes/datastore10a/Windows-VM/
- Убедитесь, что ВМ выключена.
- Откройте файл конфигурации виртуальной машины VMX в текстовом редакторе:
vi Windows-VM.vmx - Добавьте эту строку в файл конфигурации для включения Hot Add vCPU:
vcpu.hotadd = “TRUE” - Добавьте эту строку в файл конфигурации для включения Hot Add памяти:
mem.hotadd = “TRUE” - Сохраните файл конфигурации VMX и закройте текстовый редактор.
Вы можете отключить возможности горячего подключения в ВМ для устройств, таких как сетевые адаптеры, дисковые контроллеры и т. д. (которые включены по умолчанию).
devices.hotplug = “false”
Эта настройка не влияет на конфигурацию VMware для горячего подключения и добавления памяти в ВМ.
Редактирование конфигурации VMX в клиенте VMware vSphere
Вы также можете отредактировать конфигурацию VMX в клиенте VMware vSphere:
- Выберите нужную ВМ в клиенте VMware vSphere.
- Выключите ВМ, если она работает.
- Нажмите Изменить настройки.
- Выберите вкладку Параметры ВМ в окне Настроек ВМ.
- Нажмите Дополнительно, чтобы развернуть параметры, и нажмите Изменить конфигурацию.
- Нажмите Добавить параметры конфигурации в окне Параметры конфигурации.
- В разделе Добавить новые параметры конфигурации введите значения для включения горячего добавления памяти VMware и горячих добавлений vCPUs VMware соответственно.
Имя: mem.hotadd Значение: TRUE
Имя: vcpu.hotadd Значение: TRUE - Нажмите ОК, чтобы сохранить настройки и закрыть окно.
Заключение
Активируйте добавление в горячем режиме в VMware только тогда, когда вы планируете использовать эту функцию для добавления виртуальных процессоров и памяти в работающую виртуальную машину. Если вы активируете добавление в горячем режиме в VMware, но не используете эту функцию, производительность может ухудшиться для больших виртуальных машин, так как топология с несколькими NUMA-узлами не будет использоваться. Используйте мониторинг виртуальных машин VMware для отслеживания производительности и использования ресурсов в vSphere. Этот подход поможет вам определить, нужно ли включать функцию добавления в горячем режиме для виртуальной машины.
Source:
https://www.nakivo.com/blog/vmware-vsphere-resources-hotadd-hotplug-explained/