diz вирішив поділитися своїм досвідом проброса відеокарти NVDIA GTX в ESXi 6.0.
Доброго дня любі друзі!
Кажуть, що з 2015-ого року роботодавці стали відразу виганяти з співбесіди ІТ-шників, якщо раптом з'ясовується, що у них немає особистого сервера з розгорнутим приватним хмарою.
Щоб не вибиватися з тренда, я зібрав удома невеликої двопроцесорний сервер на базі материнської плати SUPERMICRO X9DRI-F і пари Xeon E5-2670. Оскільки кілька років свого життя я присвятив, в т.ч. адміністрування інфраструктури VMWare, то в якості гипервизора віртуалізації був обраний саме ESXi.
Приватне хмара-домашня лабораторія - це, звичайно, чудово і здорово, однак, для комфортної повсякденної роботи і StarCraft2 бажано мати доступ до дискретної відеокарти.
Тому, як задружіться "побутову" nVidia GTX і ESXi 6 і присвячується дана стаття - короткий провідник-путівник по граблях.
Перше, що вам захочеться зробити після установки дискретної відеокарти в сервер - переключити пріоритет ініціалізації відеокарти в BIOS на користь зовнішньої, щоб бачити POST прямо на екрані підключеного до неї монітора. Цього робити не варто, тому що в такому випадку ви втратите можливість використовувати iKVM материнської плати.
Отже, приступаємо до прокинув відеокарти в віртуальну машину з MS Windows 10. Побачивши web-інтерфейс ESXi 6 я щиро зрадів тому, що зав'язав з системним адмініструванням чотири роки тому. Відкладаємо цей чудовий інтерфейс в бік, тому що кидок відеокарти через нього ви налаштувати не зможете, при старті віртуальна машина буде лаятися на невідповідність ідентифікатора пристрою PCIe (PCIe passthrough device id invalid) і переключається на старий добрий і товстий клієнт:
Тиснемо "Edit ..": І ставимо галочки тільки навпаки відеокарти і пов'язаного HD AUDIO. Яочень рекомендую спершу добитися її працездатності, а вже потім прокидати мишку-клаву і звук. Потім переходимо до додавання PCIe пристрою в віртуальну машину:
У світі рожевих поні, де nVidia НЕ жлоби, а VMWare тестують свої продукти перед релізом, на цьому все б і закінчилося. У нашому реальному світі граблі тільки починаються. Спершу з'ясовується, що ми видали віртуальній машині> 2 Гб пам'яті і тепер вона не може поділити адресний простір з відеокартою. SUPERMICRO простягає свій FAQ допомоги http://www.supermicro.com/support/faqs/results.cfm?id=34 цитую:
"We need to make sure GPU BARs are memory mapped above 4GB and to enable EFI firmware add the following 3 lines to configuration (.vmx) file of VM:« pciPassthru.use64bitMMIO = «TRUE» «,« firmware = «efi» » and «vmci.msix = FALSE«. "
VMX файл можна відредагувати руками, а можна в налаштуваннях віртуальної машини:
Ще раз зверну увагу, що тип firmware віртуальної машини повинен бути "EFI", до речі, його можна поміняти тільки через web gui, якщо будете намагатися міняти його через товстий клієнт, то він перескочить назад на "BIOS".
Далі наша віртуальна машина повинна успішно запуститися, а драйвер відеокарти порадувати нас такою помилкою: Суть проблеми: nVidia хоче щоб все купували відеокарти серій TESLA і QUADRO і виступає проти того, щоб користувачі займалися виртуализацией відеокарт "побутових" серій. Драйвер детектив запуск у віртуальній машині і не дає відеокарті стартувати. Обходиться за допомогою того ж трюку, який використовується в nested віртуалізації - прописування рядки hypervisor.cpuid.v0 = "FALSE" в vmx файлі віртуальної машини.
Майже все. Тепер при включенні віртуальної машини у нас всього-на-всього наглухо висне гипервизор, навіть не викидаючи PSOD. Просто все завмирає без будь-яких записів в логах. Можна прикинутися розумним і сказати, що цю проблему мені допомогло вирішити читання глави "Problems with Device Assignment Dependencies" документа "Configuration Examples and Troubleshooting for VMDirectPath", доступного за посиланням http://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/vsp-4-vmdirectpath-host-technical-note.pdf , але немає. Форуми в інтернеті забиті питаннями по цих симптомів з криками про те, що при переході з версії 5.0 до більш старшим VMWare зламала passthrough відеокарт (це відноситься як до nVidia, так і до ATI) і тільки одна людина c ніком mvrk знайшов рішення: необхідно відредагувати файл шляхом /etc/vmware/passthru.map хоста віртуалізації і виправити для нашої відеокарти режим проброса з bridge на link:
# NVIDIA 10de ffff link false
Ось тепер можна переходити до прокинув мишки і клавіатури. Тут теж не обійшлося без "особливостей": коли я прокинув обидва USB контролера материнської плати в vm, драйвер відеокарти знову став падати з 43й помилкою. Вирішилося прокинув тільки одного контролера, до портів якого я підключив обидва пристрої.
Дякую за увагу і на все добре!
PS Як здорово, що я більше не адмін.
Cfm?