PowerEdge: PCI Passthrough "Помилка ввімкнення модуля 'DevicePowerOn'" під час використання графічних процесорів з віртуальними машинами на vSphere
Summary: Віртуальна машина не вмикається після налаштування проходження PCI Device на хості 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 ГБ. Дотримуйтесь інструкцій VMware KB 1010789 опублікованих, щоб увімкнути прохідні пристрої під vSphere. Як правило, карти, які вимагають більше 16 ГБ відображення пам'яті, відносяться до карт високого класу. Ви повинні дотримуватися інструкцій у цій статті, щоб увімкнути їх для використання в режимі проходу у віртуальній машині.
BIOS хоста
BIOS хоста має бути налаштований на підтримку великих областей пам'яті, необхідних для цих високоякісних пристроїв PCI. Щоб увімкнути це, знайдіть налаштування BIOS хоста для «підключений до пам'яті ввід/вивід понад 4 ГБ» і ввімкніть його.

Примітка: Ця опція недоступна на 16G, але за замовчуванням вона активована, і ви можете виділити 48 ГБ графічного процесора для прохідної роботи на віртуальну машину.
Гостьова ОС
Щоб отримати доступ до цих великих відображень пам'яті, підключіться до сайту VMware Гостьова ОС повинна завантажитися з EFI
Редагування доступності пристрою PCI на хост-сервері
Встановлений PCI-сумісний апаратний пристрій GPU спочатку розпізнається гіпервізором vSphere під час завантаження сервера без наявності будь-яких конкретних драйверів, встановлених у гіпервізор
.Таким чином vSphere розпізнає всі пристрої PCI. Ви можете переглянути список пристроїв PCI, які можна знайти в інструменті vSphere Client, вибравши конкретний хост-сервер, на якому ви працюєте, і дотримуючись вибору меню: Настроїти >Устаткування >Пристрої > PCI Відредагуйте, щоб побачити список, як видно з прикладу на рисунку 2 нижче.
Якщо конкретний пристрій графічного процесора раніше не було ввімкнено для вводу/виводу DirectPath, ви можете перевести пристрій графічного процесора в режим прямого вводу/виводу (passthrough), натиснувши прапорець у записі пристрою, як показано в прикладі пристрою NVIDIA.

Увімкнення пристроїв високого класу у файлі віртуальної машини
Відповідно до вищезазначених вимог, до файлу VMX віртуальної машини необхідно додати два записи, або шляхом безпосередньої зміни файлу, або за допомогою клієнта vSphere для додавання цих можливостей. Перший запис:
pciPassthru.use64bitMMIO="TRUE"
Вказівка другого запису вимагає простого обчислення. Підсумуйте розміри пам'яті графічного процесора всіх пристроїв графічного процесора (*), які ви збираєтеся передати у віртуальну машину, а потім округліть до наступного степеня два. Наприклад, для використання Passthrough із 4 пристроями A2 по 16 ГБ значення буде таким: 32 + 32 = 64, округлені в більшу сторону до наступного степеня двійки, щоб отримати 128. Використовуйте це значення у другому записі:
pciPassthru.64bitMMIOSizeGB="128"
З цими двома змінами у файлі VMX дотримуйтесь стандартних інструкцій VMware KB 1010789 vSphere для ввімкнення прохідних пристроїв на рівні хоста та для вказання, які пристрої слід передати у вашу віртуальну машину. Тепер віртуальна машина повинна правильно завантажуватися з вашим пристроєм у режимі passthrough.
Увімкнення пристроїв високого класу в інтерфейсі користувача
У Клієнті vSphere знову вибираємо віртуальну машину і користуємося опціями: Редагувати налаштування>Опції віртуальної> машиниПередовий>Параметри> конфігурації Відредагуйте конфігурацію, щоб перейти до списку опцій, пов'язаних з PCI, наведеного нижче.

Ми обчислюємо значення параметра "64bitMMIOSizeGB" за допомогою простого підходу. Порахуйте кількість високоякісних графічних процесорів PCI, які ви збираєтеся передати в цю віртуальну машину. Це може бути один або кілька графічних процесорів. Помножте це число на 16 і округліть його до наступного степеня двійки.
Наприклад, щоб використовувати режим передачі з двома пристроями графічного процесора в одній віртуальній машині, значення буде таким: 4 * 16 = 64, округлені в більшу сторону до наступного степеня двійки, щоб отримати 128.
Призначення пристрою графічного процесора віртуальній машині
У цьому розділі описано призначення пристрою графічного процесора віртуальній машині. Вимкніть живлення віртуальної машини, перш ніж призначити їй пристрій графічного процесора.
Щоб увімкнути доступ віртуальної машини до пристрою PCI, у клієнті vSphere виберіть віртуальну машину, скористайтеся опцією «Редагувати налаштування» та прокрутіть униз до списку пристроїв PCI. Якщо вашого пристрою ще немає в списку, скористайтеся кнопкою «Додати новий пристрій», щоб додати його до списку. Після додавання налаштування вашої віртуальної машини повинні виглядати так само, як показано на малюнку 7. У цьому прикладі відповідним записом є PCI Device 0.

Резервування пам'яті
Коли пристрій PCI призначається віртуальній машині, віртуальна машина повинна мати резервування пам'яті для повністю налаштованого розміру пам'яті для віртуальної машини. Робиться це в клієнті vSphere шляхом вибору віртуальної машини, використовуючи віртуальну>апаратну пам'ятьEdit Settings> для доступу та зміни значення в області Reservation.
Нарешті, увімкніть віртуальну машину. Після включення віртуальної машини увійдіть в Guest OS і перевірте наявність карти GPU за допомогою команд:
- На віртуальній машині 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
Вказує на те, що ви неправильно ввімкнули відображення понад 4 ГБ у BIOS хоста, як описано в розділі «BIOS хоста » вище, або неправильно вказали записи VMX.
Не можна використовувати пристрій:
Якщо ви дотримувалися всіх вищевказаних інструкцій і ваша віртуальна машина завантажилася правильно, але під час запуску ви бачите повідомлення, схоже на наступне, nvidia-smi утиліта у вашій гостьовій ОС:
1 Unable to determine the device handle for GPU 0000:13:00.0: Unknown Error
Ми рекомендуємо звернутися безпосередньо до NVIDIA або виконати пошук в Інтернеті за допомогою цього рядка, щоб знайти додаткову інформацію, яка може бути корисною.