PowerEdge. Ошибка транзитного режима PCI «Module "DevicePowerOn" Power On failed» при использовании графических процессоров на виртуальных машинах в vSphere
Summary: Виртуальная машина не включается после настройки транзитного режима устройств PCI на хосте ESXi и добавления устройства в виртуальную машину. Он зависает на 80%, а затем выдает ошибку «общее количество необходимых страниц (4206594) превышает ограничение (917504)». ...
Instructions
2022-04-22T03:04:15.771Z| vmx| | I005: PCIPassthru: total number of pages needed (4206594) exceeds limit (917504), failing 2022-04-22T03:04:15.771Z| vmx| | I005: Module 'DevicePowerOn' power on failed.

Предварительные действия
BIOS хоста необходимо правильно настроить, чтобы обеспечить транзит графического процессора NVIDIA, а виртуальная машина, предназначенная для выполнения этих ускоренных рабочих нагрузок, должна соответствовать определенным требованиям. В этом разделе описаны все эти требования.
Какие устройства?
Данная статья актуальна только в том случае, если ваше устройство PCI сопоставляет области памяти, общий размер которых превышает 16 Гбайт. Следуйте опубликованным инструкциям 1010789 базе знаний VMware, чтобы включить транзитные устройства в vSphere. Как правило, платы, для которых требуется сопоставление более 16 Гбайт памяти, это платы высшего класса. Следуйте инструкциям в этой статье, чтобы включить их для использования в режиме транзитной передачи на виртуальной машине.
BIOS хоста
Для поддержки больших областей памяти, необходимых для этих устройств PCI высшего класса, необходимо настроить BIOS хоста. Чтобы включить эту функцию, найдите параметр BIOS хоста «Memory Mapped I/O above 4 GB» и включите его.

Примечание. Этот параметр недоступен в 16-м поколениях, но по умолчанию он активирован, и вы можете выделить 48 Гбайт графического процессора для виртуальной машины.
Гостевая ОС
Чтобы получить доступ к этим большим сопоставлениям памяти, подключитесь к сайту VMware. Гостевая ОС должна загрузиться с помощью EFI
Редактирование доступности устройств PCI на хост-сервере
Установленный физический графический процессор, совместимый с PCI, первоначально распознается гипервизором vSphere во время загрузки сервера без установки каких-либо определенных драйверов на гипервизоре.
vSphere распознает все устройства PCI таким образом. Список устройств PCI, имеющихся в инструменте vSphere Client, можно просмотреть, выбрав конкретный хост-сервер, с которым вы работаете, и следуя пунктам меню: Настроить >Скобяные изделия >Устройства > PCI Отредактируйте, чтобы увидеть список, как показано в примере на рис. 2 ниже.
Если конкретное устройство графического процессора ранее не было включено для операций ввода-вывода DirectPath, его можно перевести в режим ввода-вывода Direct Path (транзитная), установив флажок в записи устройства, как показано в примере с устройством NVIDIA.

Включение устройств высшего класса в файле виртуальной машины
Если указанные выше требования выполнены, в файл VMX виртуальной машины необходимо добавить две записи, изменив файл напрямую или добавив эти возможности с помощью клиента vSphere. Первая запись:
pciPassthru.use64bitMMIO="TRUE"
Для указания второй записи требуется простой расчет. Суммируйте объем памяти графического процессора для всех графических устройств(*), которые вы собираетесь передать в виртуальную машину, а затем округлите до следующего значения, равного степени числа 2. Например, для использования транзитного подключения с 4 устройствами A2 емкостью 16 Гбайт значение будет: 32 + 32 = 64, округляем до следующего значения степени числа 2, получаем 128. Используйте это значение во второй записи:
pciPassthru.64bitMMIOSizeGB="128"
Внесите эти два изменения в файл VMX и следуйте содержащимся в статье базы знаний VMware 1010789 стандартным инструкциям по vSphere, чтобы включить транзитные устройства на уровне хоста и указать, какие устройства должны быть переданы в виртуальную машину. Теперь виртуальная машина должна правильно загружаться, когда устройство находится в транзитном режиме.
Включение устройств высшего класса в пользовательском интерфейсе
В клиенте vSphere Client снова выберите виртуальную машину и используйте параметры: Изменить настройки>Параметры> ВМПродвинутый>Параметры> конфигурации Отредактируйте конфигурацию, чтобы получить доступ к списку параметров, связанных с PCI, показанному ниже.

Мы рассчитаем значение параметра «64bitMMIOSizeGB», используя простой подход. Подсчитайте количество графических процессоров PCI высшего класса, которые вы собираетесь передать в эту виртуальную машину. Это может быть один или несколько графических процессоров. Умножьте это число на 16 и округлите его до следующего значения, равного степени числа 2.
Например, для использования транзитного режима с двумя графическими процессорами в одной виртуальной машине значение будет следующим: 4 * 16 = 64, округляем до следующего значения степени числа 2, получаем 128.
Назначение графического процессора виртуальной машине
В этом разделе описывается назначение графического процессора виртуальной машине. Выключите виртуальную машину, прежде чем назначать ей графический процессор.
Чтобы включить доступ виртуальной машины к устройству PCI, в клиенте vSphere выберите виртуальную машину, используйте параметр Edit Settings и прокрутите вниз до списка устройств PCI. Если устройство еще не указано в списке, используйте кнопку Добавить новое устройство, чтобы добавить его в список. После добавления настройки виртуальной машины должны выглядеть так, как показано на рис. 7. В этом примере соответствующей записью является устройство PCI Device 0.

Резервирование памяти
Когда устройство PCI назначено виртуальной машине, ей необходимо зарезервировать память до полного настроенного объема памяти для виртуальной машины. Для этого в клиенте vSphere Client выберите виртуальную машину и перейдите в раздел Изменить настройки>виртуальной аппаратной>памяти для доступа и изменения значения в области резервирования.
Наконец, включите виртуальную машину. После включения виртуальной машины выполните вход в гостевую ОС и проверьте наличие платы графического процессора с помощью следующих команд:
- На виртуальной машине Linux используйте команду:
"lspci | grep nvidia"
- В операционной системе Windows для проверки доступных графических процессоров используйте Диспетчер устройств на панели управления
Теперь графический процессор готов к работе в транзитном режиме.
Additional Information
Поиск и устранение неисправностей
Если вы следовали приведенным выше инструкциям и виртуальная машина по-прежнему не загружается должным образом при включенных устройствах, рекомендуется использовать материалы, приведенные в этом разделе. Если вы уже опробовали приведенные ниже предложения и у вас по-прежнему возникают проблемы, свяжитесь с нами, и мы поможем вам.
Проблема сопоставления:
Если в vmware.log файле виртуальной машины отображается ошибка, аналогичная следующей:
1 I120: PCIPassthru: 0000:82:00.0 : Device BAR 0 requested 64-bit memory address that exceeded MPN type (62105227100160)
Настройки BIOS не соответствуют требованиям ESXi для включения транзитного устройства этого типа. Для транзита между ESXi 6.0 p4 и ESXi 6.5 требуется, чтобы объем памяти, привязанный к устройствам PCI, был ниже 16 Тбайт. Эту проблему можно решить, если BIOS поддерживает возможность управления уровнем адресного пространства памяти хоста, в котором сопоставляются области памяти PCI. Некоторые производители, например, SuperMicro, предоставляют параметры BIOS для изменения количества сопоставленной памяти. В системах SuperMicro параметр MMIOHBase можно изменить на более низкое значение, по умолчанию оно равно 56 Тбайт. Системы Sugon также имеют аналогичную (скрытую) настройку BIOS. Обратитесь к поставщику системы, чтобы узнать, поддерживает ли BIOS эту функцию переназначения. Другое решение — обновить ESXi до 6.5 u1 или более поздней версии, где убрано ограничение в 16 Тбайт.
Неправильная конфигурация.
Ошибка следующей формы в файле vmware.log:
1 2016-07-07T09:18:37.624Z| vmx| I120: PCIPassthru: total number of pages needed (2097186) exceeds limit (917504), failing
Указывает на то, что в BIOS хоста неправильно включены сопоставления более 4 Гбайт , как описано в разделе «Host BIOS » выше, или неправильно указаны записи VMX.
Не удается использовать устройство:
Если вы выполнили все приведенные выше инструкции и виртуальная машина загрузилась правильно, но при запуске команды отображается сообщение, подобное следующему nvidia-smi в гостевой ОС:
1 Unable to determine the device handle for GPU 0000:13:00.0: Unknown Error
Мы рекомендуем обратиться непосредственно в NVIDIA или выполнить поиск этой строки в Интернете, чтобы найти дополнительную информацию, которая может быть полезна.