BIOS вашого хоста має бути правильно налаштований, щоб увімкнути графічний процесор Nvidia для передачі, а віртуальна машина, призначена для виконання цих прискорених робочих навантажень, повинна відповідати певним вимогам. У цьому розділі описані всі ці вимоги.
Ця стаття актуальна лише в тому випадку, якщо ваш пристрій PCI відображає області пам'яті, загальні розміри яких перевищують 16 ГБ. Дотримуйтесь інструкцій VMware KB 1010789 опублікованих, щоб увімкнути прохідні пристрої під vSphere. Як правило, карти, які вимагають більше 16 ГБ відображення пам'яті, є картами високого класу. Вам слід слідувати інструкціям у цій статті, щоб увімкнути їх для використання в режимі передачі у віртуальній машині.
BIOS вашого хоста має бути налаштований на підтримку великих областей пам'яті, необхідних для цих високоякісних пристроїв PCI. Щоб увімкнути це, знайдіть налаштування BIOS хоста для «ввід/вивід із відображенням пам'яті понад 4 ГБ» і увімкніть його.
Примітка: Ці настройки потрібні тільки в тому випадку, якщо у вас в режимі завантаження BIOS встановлено UEFI, якщо це режим Legacy або BIOS ви можете проігнорувати нижченаведені.
Щоб отримати доступ до цих великих відображень пам'яті, підключіться до сайту VMware Гостьова ОС повинна завантажитися з EFI. Тобто ви повинні включити EFI у віртуальній машині, а потім виконати EFI-інсталяцію гостьової ОС.
Встановлений PCI-сумісний апаратний пристрій GPU спочатку розпізнається гіпервізором vSphere під час завантаження сервера без наявності будь-яких конкретних драйверів, встановлених у гіпервізор.
Таким чином vSphere розпізнає всі пристрої PCI. Ви можете переглянути список пристроїв PCI, які можна знайти в інструменті vSphere Client, вибравши конкретний хост-сервер, на якому ви працюєте, і дотримуючись вибору меню.
Налаштуйте" > "Апаратне забезпечення" > "Пристрої PCI" > "Редагувати", щоб побачити список, як видно в прикладі на рисунку 2 нижче.
Якщо конкретний пристрій графічного процесора раніше не було ввімкнено для вводу/виводу DirectPath, ви можете перевести пристрій графічного процесора в режим прямого вводу/виводу (passthrough), натиснувши прапорець на вході пристрою, як показано в прикладі пристрою NVIDIA.
Відповідно до вищезазначених вимог, до файлу VMX віртуальної машини необхідно додати два записи, або шляхом безпосередньої зміни файлу, або за допомогою клієнта vSphere для додавання цих можливостей. Перший запис:
pciPassthru.use64bitMMIO="ПРАВДА"
|
Вказівка другого запису вимагає простого обчислення. Підсумуйте розміри пам'яті графічного процесора всіх пристроїв графічного процесора (*), які ви збираєтеся передати у віртуальну машину, а потім округліть до наступного степеня два. Наприклад, для використання passthrough із 4 пристроями A2 по 16 ГБ значення буде таким: 32 + 32 = 64, округлені в більшу сторону до наступного степеня двійки, щоб отримати 128. Використовуйте це значення у другому записі:
pciPassthru.64bitMMIOSizeGB="128" |
З цими двома змінами у файлі VMX дотримуйтесь стандартних інструкцій VMware KB 1010789 vSphere щодо ввімкнення прохідних пристроїв на рівні хоста та вказання, які пристрої слід передати у вашу віртуальну машину. Тепер віртуальна машина повинна правильно завантажуватися з вашим пристроєм у режимі passthrough.
У клієнті vSphere знову виберіть віртуальну машину та скористайтеся опціями.
Edit Settings VM > Options Advanced >> Configuration Parameter > Edit Configuration Configuration (Редагувати конфігурацію), щоб перейти до списку параметрів, пов'язаних з PCI, наведеного нижче.
Ми обчислюємо значення параметра "64bitMMIOSizeGB" за допомогою простого підходу. Порахуйте кількість високоякісних графічних процесорів PCI, які ви збираєтеся передати в цю віртуальну машину. Це може бути один або кілька графічних процесорів. Помножте це число на 16 і округліть його до наступного степеня двійки.
Наприклад, щоб використовувати режим передачі даних із двома пристроями графічного процесора в одній віртуальній машині, значення буде таким: 4 * 16 = 64, округлені в більшу сторону до наступного степеня двійки, щоб отримати 128.
У цьому розділі описано призначення пристрою графічного процесора віртуальній машині. Вимкніть віртуальну машину, перш ніж призначити їй пристрій графічного процесора.
Щоб увімкнути доступ віртуальної машини до пристрою PCI, у клієнті vSphere виберіть віртуальну машину, скористайтеся опцією «Редагувати налаштування» та прокрутіть униз до списку пристроїв PCI. Якщо вашого пристрою там ще немає, скористайтеся кнопкою «Додати новий пристрій», щоб додати його до списку. Після додавання налаштування вашої віртуальної машини повинні виглядати аналогічно тим, що показані на малюнку 7. У цьому прикладі відповідним записом є «Пристрій PCI 0».
Коли пристрій PCI призначається віртуальній машині, віртуальна машина повинна мати резервування пам'яті для повністю налаштованого розміру пам'яті для віртуальної машини. Робиться це в клієнті vSphere шляхом вибору віртуальної машини, за допомогою "Edit Settings > Virtual Hardware > Memory" для доступу та зміни значення в області резервування.
Нарешті, увімкніть віртуальну машину. Після включення віртуальної машини увійдіть в гостьову ОС і перевірте наявність карти GPU при використанні.
"lspci | grep nvidia"
Або
Тепер графічний процесор готовий до використання в режимі передачі.
Якщо ви дотримувалися наведених вище інструкцій, а ваша віртуальна машина все ще неправильно завантажується з увімкненими пристроями, матеріал цього розділу може бути корисним. Якщо ви скористалися наведеними нижче пропозиціями, але все ще виникають проблеми, зв'яжіться з нами, і ми зможемо вам допомогти.
Проблема картографування:
Якщо у файлі vmware.log віртуальної машини з'являється помилка, подібна до наведеної нижче:
1 | І120: PCIPassthru: 0000:82:00.0 : Device BAR 0 запитував 64-розрядну адресу пам'яті, яка перевищувала тип MPN (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| І120: PCIPassthru: загальна кількість необхідних сторінок (2097186) перевищує ліміт (917504), помилка |
Вказує на те, що ви неправильно включили відображення «вище 4 ГБ» у BIOS вашого хоста, як описано в розділі «BIOS хоста» вище, або неправильно вказали записи VMX.
Не можна використовувати пристрій:
Якщо ви виконали всі вищезазначені інструкції і ваша віртуальна машина завантажилася правильно, але під час запуску утиліти nvidia-smi у гостьовій ОС ви бачите повідомлення, подібне до наступного:
1 | Не вдається визначити ручку пристрою для графічного процесора 0000:13:00.0: Невідома помилка |
Ми рекомендуємо звернутися безпосередньо до Nvidia або виконати пошук в Інтернеті за допомогою цього рядка, щоб знайти додаткову інформацію, яка може бути корисною.