Если вы знакомы с функцией vMotion, то наверняка помните, что рекомендуется использовать одни и те же процессоры на всех серверах ESXi для живой миграции виртуальных машин. Если вы хотите использовать сервера с разными моделями процессоров в кластере, лучше развернуть процессоры одного поколения. Более того, строгое требование состоит в том, чтобы процессоры были произведены одним и тем же производителем, таким как Intel или AMD. В противном случае, вероятно, вы получите ошибку при использовании vMotion.
VMware разработала свое программное обеспечение vSphere с учетом ситуаций, которые могут возникнуть в производственной среде, включая расширение кластера путем добавления новых серверов с разными процессорами. Это обычная ситуация – представьте себе, что у вас есть кластер из 5 узлов ESXi, которые вы купили 3 года назад, и вам нужно добавить еще два узла, чтобы запустить больше виртуальных машин для удовлетворения вашего бизнеса. Процессоры, которые вы купили 3 года назад, в настоящее время не производятся и больше не продаются на рынке; вы можете купить только процессоры новейшего семейства. Нет причин для беспокойства – вы можете использовать кластеры высокой доступности в vSphere, добавить узлы с разными процессорами и использовать vMotion для живой миграции виртуальных машин между хостами с разными процессорами. Это возможно благодаря функции Enhanced vMotion Capability (EVC), которая может быть включена для кластеров в VMware vSphere.
Принцип работы режима VMware EVC
Каждое новое поколение процессоров включает новые наборы инструкций, дополнительно к наборам инструкций, доступным для предыдущего поколения процессоров. Новые функции обычно улучшают производительность или безопасность запущенных приложений. Например, процессоры поколения SkyLake имеют один новый набор инструкций (SGX), в отличие от процессоров поколения Haswell. Давайте рассмотрим наборы инструкций этих двух поколений процессоров и изучим их подробности.
Наборы инструкций Haswell (2013):
x86-64, MMX, AES-NI, CLMUL, FMA3, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, TXT, VT-x, VT-d. Инструкции TSX отключены через микрокод для процессоров Haswell из-за ошибки, за исключением Haswell-EX.
Наборы инструкций SkyLake (2017):
x86-64, MMX, AES-NI, CLMUL, FMA3, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, TXT, TSX, SGX, VT-x, VT-d.
Это означает, что если вы выберете уровень совместимости Haswell в настройках EVC, набор инструкций SGX должен быть отключен (маскирован, более точно говоря) на серверах с процессорами Skylake, и, как результат, все процессоры будут работать с одинаковыми наборами инструкций. Таким образом, у вас будет однородная среда, принятая для миграции виртуальных машин с помощью vMotion. Единая совместимость vMotion обеспечивается путем применения одинаковой базовой инструкции CPUID для всех виртуальных машин, работающих на хостах ESXi без однородных процессоров. CPUID можно рассматривать как API для ЦП.
С одной стороны, преимущества набора команд SGX теряются, когда включен режим EVC Haswell, но с другой стороны, производительность вашего существующего кластера не уменьшается, если вы добавляете хосты с более новыми процессорами в кластер. Если вы добавляете хосты ESXi с более старыми процессорами в существующий кластер, вы можете заметить снижение производительности в определенных случаях.
Примечание: SGX (Software Guard Extensions) позволяет организовать защищенные фрагменты кода и данных (также называемые контейнерами) для обеспечения высокого уровня защиты данных для рабочих приложений от хакерских атак. Разработчики, использующие инструкции SGX для своих приложений, могут защитить приложения от несанкционированного доступа или модификации, даже если у атакующего приложения есть более высокие привилегии.
Примечание: TSX (Transactional Synchronization Extensions) обеспечивает перемещение большинства выполняемых задач для распределения ресурсов между ядрами процессора на аппаратном уровне (самим ЦП). Без поддержки инструкций TSX процессором это распределение выполняется на уровне программного обеспечения операционной системой и приложениями. Если набор команд TSX отключен для вашего процессора Haswell через микрокод, вам может потреб
Обычно для применения измененных настроек режима EVC необходимо остановить и включить в работу запущенные ВМ. Если вы используете vCenter 4.1 или более позднюю версию, ВМ, работающие на хосте ESXi с самым старым процессором, могут оставаться включенными (их можно оставить в состоянии работы). В этом случае режим EVC должен соответствовать поколению этого старейшего процессора. ВМ, работающие на хостах ESXi с процессорами более нового поколения, должны быть выключены перед включением режима EVC во всем кластере. Когда хост ESXi исключается из кластера, он продолжает работать с отключенным режимом EVC.
Версия VMware vSphere / Совместимость процессоров для EVC
Необходимый режим EVC зависит от моделей процессоров и версии сервера vCenter. Режим EVC на последней версии сервера vCenter поддерживает самые новые процессоры. Рассмотрите возможность использования последних версий vCenter, если у вас есть серверы с процессорами новейших поколений. В таблице ниже вы можете увидеть, какие комбинации поколений процессоров Intel и версий vCenter поддерживаются для определения базовой линии кластера EVC для вашей среды.
Самый подходящий режим EVC определяется моделью самого старого процессора сервера ESXi внутри кластера. Технически возможно выбрать более старый (низкий) уровень режима EVC, чем поколение самого старого процессора, но обычно нет причин делать такие настройки. Более старые версии ESXi и vSphere поддерживают новые процессоры, но максимальная базовая линия EVC сохраняется на уровне более старых процессоров, которые были функциональными на момент выпуска этой версии vSphere и считались самыми новыми на тот момент.
При изменении уровня режима EVC необходимо выключить и включить работающие виртуальные машины, чтобы применить настройки к этим ВМ; перезагрузка ВМ недостаточна.
Руководство по совместимости VMware
Вы можете проверить совместимость ваших процессоров и наивысший доступный режим EVC для вашего сервера vCenter на веб-сайте VMware. Чтобы проверить совместимость, откройте страницу Руководства по совместимости VMware, выберите Серии процессоров в выпадающем меню (то есть, что вы ищете), в списке Версии выпуска продукта выберите вашу версию ESXi, в списке Серии процессоров удерживайте кнопку Ctrl и выберите процессоры, установленные на ваших хостах ESXi (щелкните левой кнопкой мыши). Как только вы выберете необходимые параметры, нажмите кнопку Матрица CPU/EVC, чтобы увидеть таблицу доступных режимов EVC для ваших серверов ESXi. В приведенном ниже примере были выбраны ESXi 6.5 (управляемый vCenter 6.5), процессоры Intel Xeon E3-1500-v5, Xeon E5-4600-v3 и Xeon Platinum 8100. Самый высокий уровень режима EVC, поддерживаемый всеми выбранными процессорами, – это Поколение Intel Haswell.
Требования
Для правильной работы функции vMotion после включения режима EVC необходимо выполнить следующие требования:
- Процессоры всех хостов ESXi должны быть только Intel или только AMD.
- Виртуализационные функции процессора, такие как Intel VT-x или AMD-V, должны быть включены в UEFI/BIOS хостов ESXi.
- Хосты ESXi должны управляться тем же сервером vCenter.
- Хосты ESXi должны быть настроены на использование vMotion.
Как включить и настроить EVC
Как включить и настроить EVC
После ознакомления с теорией давайте рассмотрим настройку режима EVC на практике. Вам может потребоваться выключить вашу виртуальную машину на хосте ESXi, уровень EVC которого должен быть понижен. Убедитесь, что в UEFI/BIOS не отключены никакие функции процессора, чтобы избежать возможных проблем.
Откройте веб-клиент VMware vSphere в вашем веб-браузере, введя IP-адрес вашего сервера vCenter в адресной строке браузера. Перейдите в vCenter > Хосты и кластеры и выберите каждый хост ESXi, чтобы проверить конфигурацию ЦП (центрального процессора). В данном примере мы рассматриваем два хоста, работающих под управлением ESXi 5.5, которые добавлены в кластер и управляются сервером vCenter 5.5. Как видно на скриншоте ниже, модель процессора первого хоста ESXi – Intel Xeon E3110, а процессор, установленный на втором хосте ESXi – Intel Xeon X3430.
Если хосты ESXi уже добавлены в кластер, выберите ваш кластер (temp-cluster в нашем примере), перейдите на вкладку Управление, затем откройте вкладку Настройки, выберите Конфигурация > VMware EVC и нажмите кнопку Изменить.
Теперь, прежде чем выбрать режим EVC в vCenter, откройте новую вкладку в своем веб-браузере и откройте Руководство по совместимости VMware, как показано выше в этом блоге. В текущем примере мы должны выбрать ESXi 5.5, Intel Xeon 31xx Series и Intel Xeon 34xx Series. После нажатия кнопки Матрица процессоров/CPU, вы можете увидеть на скриншоте, что в настройках режима EVC должна быть выбрана Поколение Intel Penryn.
Вернитесь к вкладке веб-браузера с vSphere Web Client и откройте настройки режима EVC для кластера. Нажмите Включить EVC для хостов Intel. В выпадающем меню режима VMware EVC мы должны выбрать Поколение Intel Penryn. В нижней части окна вы должны увидеть Проверка прошла успешно в разделе Совместимость. Теперь вы можете нажать OK, чтобы сохранить настройки режима EVC.
После этого в разделе VMware EVC будет отображена информация о том, что VMware EVC включен. Нажмите Текущие сведения о CPUID, чтобы развернуть раздел с подробностями о регистрах и значениях маски.
Режим EVC также можно включить при создании нового кластера; VMware рекомендует использовать эту возможность как рекомендуемую практику. Включение режима EVC при создании нового кластера предотвращает возникновение проблем, связанных с выключением и миграцией ВМ, которые включены в кластере (как вы помните, обычно для применения новых настроек EVC ВМ должна быть выключена и включена).
Маскирование CPUID
В дополнение к глобальному режиму EVC, который применяется ко всем виртуальным машинам и серверам ESXi в кластере, vCenter Server позволяет вручную настроить флаги CPUID для отдельной виртуальной машины. vCenter сравнивает параметры CPUID, установленные для виртуальной машины, с параметрами CPUID, доступными на сервере ESXi назначения. Если эти параметры совпадают, миграция виртуальной машины с помощью vMotion разрешена. Функция маскировки CPUID появилась раньше, чем функция режима EVC.
Чтобы настроить маски CPUID для виртуальной машины, выполните следующие действия:
Выберите необходимую виртуальную машину, щелкните на ней правой кнопкой мыши и выберите Изменить настройки. В открывшемся окне Изменение настроек откройте раздел Виртуальное оборудование > Процессор, выберите Маска CPUID и нажмите кнопку Дополнительно.
В окне Маска идентификации CPU выберите необходимую строку регистра и нажмите на значение, чтобы отредактировать маску на битовом уровне. Нажмите кнопку Legenda, чтобы увидеть значение каждой буквы, используемой для установки маски.
Внимание! Перед редактированием масок ознакомьтесь с базой знаний VMware или инструкциями службы поддержки VMware. Ручное редактирование масок совместимости процессора может привести к неподдерживаемой конфигурации виртуальной машины. Например, на виртуальных машинах Windows может появиться синий экран смерти (BSOD).
Проверка конфигурации режима EVC в PowerCLI
Вы можете проверить конфигурацию режима EVC для всего кластера и для отдельных виртуальных машин в VMware PowerCLI с помощью следующей команды:
Get-VM | Select Name,HardwareVersion
@{Name=’VM_EVC_Mode’;Expression={$_.ExtensionData.Runtime.MinRequiredEVCModeKey}},
@{Name=’Cluster_Name’;Expression={$_.VMHost.Parent}},
@{Name=’Cluster_EVC_Mode’;Expression={$_.VMHost.Parent.EVCMode}} | фт
Вы также можете проверить максимальный поддерживаемый уровень EVC для всех хостов вашего кластера после выполнения команды:
Get-VMHost | Выберите объект Name, ProcessorType, MaxEVCMode
Режим EVC для каждой ВМ
Указанный выше режим EVC является опцией на уровне кластера. VMware vSphere 6.7 предоставляет возможность установить режим EVC для каждой ВМ, что может быть полезно при миграции ВМ между разными кластерами или vCenter Servers и предлагает вам большую гибкость. Режим EVC для каждой ВМ устанавливается как атрибут настроек виртуальной машины и предоставляет больше гибкости при управлении ВМ, которые должны мигрировать с помощью vMotion. Совместимость аппаратных средств ВМ должна быть версии 14 или выше. Конфигурация режима EVC для каждой ВМ сохраняется в файле конфигурации VMX ВМ как строки, содержащие строку featMask.vm.cpuid. При миграции ВМ с настроенным режимом EVC для каждой ВМ его конфигурация E
Если вы включите режим EVC для каждой виртуальной машины в кластере, в котором уже настроен глобальный режим EVC, режим EVC для каждой виртуальной машины может быть равен или ниже режима EVC, установленного для всего кластера. Таким образом, можно настроить как глобальный, так и режим EVC для каждой виртуальной машины одновременно. После клонирования виртуальной машины настройки режима EVC для каждой виртуальной машины клонируются вместе с виртуальной машиной.
Для настройки режима EVC для каждой виртуальной машины откройте клиент VMware vSphere HTML5, перейдите в раздел Хосты и кластеры, затем выберите необходимую виртуальную машину. Откройте вкладку Настроить, выберите Еще > VMware EVC и нажмите Изменить.
Как включить режим EVC в кластере без остановки работы
В некоторых случаях вы можете включить режим EVC во всем кластере без остановки работы виртуальных машин (обычно виртуальные машины должны быть выключены и снова включены, чтобы применить настройки режима EVC кластера). Это возможно, если выполнены следующие требования:
- Запущенные виртуальные машины находятся на хосте ESXi с самым старым процессором
- Режим EVC в кластере настроен на использование наборов инструкций ЦП, соответствующих поколению самого старого процессора
Включение режима EVC для виртуальной машины vCenter
Вы можете столкнуться с следующей ситуацией, которая часто встречается в среде VMware vSphere:
Сервер vCenter работает как виртуальная машина на хосте ESXi, который необходимо добавить в кластер, для которого включен режим EVC.
Проблема заключается в том, что хост ESXi с запущенными ВМ (включая ВМ с запущенным vCenter) нельзя добавить в кластер после включения EVC, пока все ВМ не будут выключены. С другой стороны, ВМ с запущенным vCenter необходима для управления кластером, и нельзя выключить ВМ vCenter, потому что она сейчас используется. Эта проблема особенно остра, когда ВМ vCenter работает на хосте ESXi с более новым процессором.
Примечание: Рекомендуется использовать стандартный vSwitch (а не распределенный vSwitch) для подключения ВМ с запущенным vCenter к сети в этом случае.
A possible solution. Consider the algorithm that can help you to resolve the issue for VMware vSphere 5.5:
- Переместите другой сервер ESXi (не запускающий ВМ vCenter) в кластер, если в кластере еще нет серверов ESXi. ВМ на сервере ESXi, который перемещается в кластер, должны быть выключены.
- Выключите ВМ с запущенным vCenter Server. Подключитесь к хосту ESXi, на котором находится ВМ vCenter, с помощью клиента VMware Host Client, чтобы отменить регистрацию ВМ, или подключитесь с помощью SSH-клиента для копирования файлов. В клиенте VMware Host Client щелкните правой кнопкой мыши на ВМ vCenter и выберите Отменить регистрацию. Вручную скопируйте все файлы ВМ vCenter на хранилище данных, подключенное к серверу ESXi, который вы уже переместили в кластер на шаге 1. Если оба сервера ESXi используют NFS или iSCSI общее хранилище, вам не нужно копировать файлы ВМ в другое местоположение.
Примечание: Вам может потребоваться вручную установить MAC-адрес для виртуального сетевого адаптера ВМ с запущенным vCenter Server перед перемещением ВМ с одного хоста ESXi на другой.
- Зарегистрируйте виртуальную машину vCenter на хосте ESXi, который был перемещен в кластер (подключитесь к хосту ESXi с помощью клиента VMware Host, откройте хранилище данных, найдите файлы виртуальной машины vCenter, выберите файл VMX, щелкните правой кнопкой мыши по файлу и нажмите Зарегистрировать ВМ). Запустите виртуальную машину vCenter на этом хосте ESXi в кластере. Войдите в vCenter с помощью клиента VMware vSphere, чтобы убедиться, что вы можете управлять вашей средой vSphere с помощью vCenter. Вам может потребоваться временно отключить контроль допуска.
- Переместите исходный хост ESXi, на котором изначально работала виртуальная машина vCenter, в кластер. При необходимости выключите другие виртуальные машины на этом хосте ESXi перед перемещением хоста.
Заключение
Расширенная возможность vMotion (EVC) – это полезная функция VMware vSphere, которая обеспечивает масштабируемость вашего кластера и позволяет добавлять узлы с процессорами разных поколений в кластер для выполнения живой миграции виртуальных машин между хостами ESXi с помощью vMotion. Режим EVC маскирует возможности процессоров нового поколения для создания единого базового уровня, соответствующего возможностям процессоров самого старого поколения, используемых хостами ESXi в кластере. В результате у вас есть однородная среда, в которой все процессоры используют одинаковые наборы инструкций, и запущенные виртуальные машины могут мигрировать с помощью vMotion. Большинство клиентов VMware, использующих кластеры, используют режим EVC. Рекомендуется включить режим EVC на этапе создания кластера, чтобы избежать возможных проблем, связанных с добавлением хостов ESXi и миграцией запущенных виртуальных машин, включая виртуальную машину, на которой работает сервер vCenter.
Независимо от того, используете ли вы кластер или нет, не забудьте создать резервную копию виртуальных машин VMware. NAKIVO Backup & Replication – быстрое, надежное и доступное решение для защиты данных, которое может обеспечить защиту ваших виртуальных машин VMware, даже если эти ВМ мигрируют между узлами ESXi в кластерах.
Source:
https://www.nakivo.com/blog/how-vmware-evc-mode-works-overview/