У минулій статті " проброс відеокарти "Було розказано про пристроях що підтримують кидок і про їх роботі в віртуальному оточенні. В даній статті розглянемо процес проброса відеокарти Sapphire AMD HD6770 в Ubuntu 12.04 (LinuxMint Maya). Як тестовий стенд використовується вузол UmVirt.
В KVM кидок правильної відеокарти здійснюється аналогічним чином як і кидок іншого обладнання. Ніяких зусиль, як описують деякі автори кидок пристроїв в XEN , У вигляді написання та накладення патчів не потрібно.
Перш ніж приступати до прокинув відеокарти необхідно перевірити, що функція проброса взагалі працює на обладнанні. Для цього можна здійснити кидок менш складного пристрою в віртуальну машину, наприклад контролера USB або вбудованої звукової карти. Тільки якщо кидок менш складного пристрою здійснено успішно, можна переходити на кидок відеокарти, в іншому випадку виявити помилку в настройках буде досить складно. Процес проброса PCI-пристрої описаний в статті " Перший тестовий кидок пристроїв на ASUS M5A97PRO ".
Відеокарта Sapphire AMD HD6770 (вендор принципового значення не має, головне чіп) була обрана з тієї причини що вона має порівняно невисокою ціною і з тієї причини що вже мімеются приклади її проброса в KVM в Fedora ( http://tavi-tech.blogspot.com/ ).
Особливості
1. Аварійність
В даний час кидок обраної відеокарти працює не стабільно. Повторний запуск виключеною віртуальної машини з пробошенной відкритий може привести до зависання хоста з усіма паралельно запущеними програмами і віртуальними машинами, що природно призводить до втрати всіх не збережених даних. На працюючому вузлі віртуалізації експерименти краще не робити.
Можливо проблема криється у звільненні апаратних ресурсів, використовуваних відкритий в віртуальному оточенні. Було перевірено безліч ядер, у всіх випадках спостерігається зависання при повторному запуску.
До того ж у віртуальній машині драйвера працює не скрізь і не відразу так як віртуальне оточення всетаки трохи відрізняється від реального.
Можливе використання офіційно підтримуваних, дорогих відеокарт на інших платних рішеннях або гіппервізорах з платної підпискою буде більш успішним, але з фінансових і ідеалогіческім причин зупинимося на поточній реалізації.
2. Екран
Після проброса відеокарти, для виведення зображення використовуються її виходи, висновок віртуальної відеокарти не використовується. Що б отримати віддалений доступ до екрану після проброса слід скористатися протоколом віддаленого доступу VNC.
Існують альтернативні клієнти видаленого доступу дозволяють переглядати відео і 3D-графіку наприклад Citrix GoToMyPC і TeamViewer . Дані клієнти закриті і передають трафік через свої сервера що негативно позначається на швидкості і конфіденційності.
Як варіант можна розглядати і апаратні рішення. компанія Terradici предагает PCI-карти віддаленого доступу (Host card), які можуть забезпечувати апаратне кодування відео і передавати його по мережі по закритому протоколу PCoIP.
Налаштування хоста
У тестовому стенді відеокарта встановлена в якості основної. Робота з вузлом віртуалізації здійснюється по мережі через протоколи SSH і SPICE. Віддалений доступ по протоколу SPICE забезпечує віртуальний відеоадаптер QXL.
В / etc / default / grub встановлюємо параметри завантаження AMD IOMMU (якщо у вас Intel VT-d то синтаксис буде інший):
GRUB_CMDLINE_LINUX = "iommu = pt iommu = 1"
Налаштовуємо Libvirt. Устанавіла наступні параметри в файл /etc/libvirt/qemu.conf для забезпечення ппрівелігірованной роботи з залізом:
user = "root"
group = "root"
clear_emulator_capabilities = 0
Для того щоб дозволили не безпечні переривання в папці /etc/modprobe.d/ створюємо файл kvm_iommu_map_guest.conf і додаємо в нього рядок:
options kvm allow_unsafe_assigned_interrupts = 1
Хост готовий до роботи. Тепер можна створити віртуальну машину наприклад на базі PartedMagic і здійснити перегляд пристроїв віртуальної машини. Після перевірки проброса в тестовій віртуальній машині, можна приступати до прокинув в віртуальну машину під керуванням Microsoft Windows.
Налаштування віртуальної машини Windows
Розглянемо віртуальну машину під керуванням Microsoft Windows 7. Після проброса в списку пристроїв повинен з'явитися відеоадаптер.
Перш ніж приступити до установки драйверів відеокарти необхідно встановити VNC-сервер наприклад TightVNC і перевірити його роботу.
Потім встановлюємо драйвери з диска, що постачається з відеокартою. Під час установки вибираємо призначений для користувача режим і встановлюємо тільки драйвера без CCC (Catalyst Control Center). Після установки драйверів потрібно перезавантаження.
Після перезавантаження висновок починає здійснюватися через проброшенную відеокарту. У вікні SPICE клієнта екран не відображається, але не дивлячись на це висновок звуку, клавіатура, миша і USB-кидок працюють нормально.
Здійснимо віддалений доступ до екрану через VNC, здійснимо перевірку продуктивності і переглянемо відео. Як можна помітити VNC значно поступається SPICE і не підходить для воспрозведенія відео, але тим не менш дозволяє здійснювати запуск додатків, які потребують наявність апаратного прискорення.
Як можна побачити Windows автоматично включає оформлення Aero в разі якщо оцінка продуктивності проходить успішно.
висновок
В даний час кидок відеокарти в віртуальну машину KVM - поки ще не стабільна технологія і не може використовуватися в повсякденному житті, але може використовуватися для проведення різних експериментів і досліджень.
Таким чином використовувати віртуалізацію за допомогою KVM для створення робочих місць з базовим функціоналом можна вже сьогодні і безкоштовно, але якщо буде потрібно робота з 3D графікою то доведеться пробувати використовувати кидок інший відеокарти, що має офіційну підтримку, або ж переходити на платне рішення.