Начальная

Windows Commander

Far
WinNavigator
Frigate
Norton Commander
WinNC
Dos Navigator
Servant Salamander
Turbo Browser

Winamp, Skins, Plugins
Необходимые Утилиты
Текстовые редакторы
Юмор

File managers and best utilites

Проброс видеокарты в Xen, из-под Ubuntu™. Xen проброс видеокарты


Проброс видеокарты в Xen, из-под Ubuntu - Citrix.pp.ru

Предыстория

Прочитав как-то статью про успешный проброс видеокарты в виртуальную машину решил, что когда будет два видеоадаптера — сделаю так же. Однажды второй адаптер появился, и решил поиграться с бубном видеокартами, пол дня ушло на изучение разнообразной документации, но в итоге всё срослось, так что всех кому интересно узнать, как повторить, и что получилось — приглашаю под кат.

Аппаратная часть

Материнская плата ASRock 990FX Extreme3Процессор AMD FX-8120 8х4.0 ГГцRAM 2х4 ГБ 1600 МГцВидеокарта Gigabyte Radeon HD 5450 Silent 1024Mb 64bitВидеокарта HIS Radeon HD 6670 1GB GDDR5SATA3 SSD для основной системыUSB 3.0 HDD для машины, в которую будем пробрасывать видеокарту

USB HDD потому, что там больше места, а скорости USB 3.0 вполне хватает.

Программная часть

Основная система Ubuntu 12.10 x64 (ядро 3,6-rc1)Пробрасывать будем в Windows 7/8 x64 — не важно, проверялись обе.Виртуализацию обеспечит последний Xen 4.1, который есть в репозитории (сегодня утром пришло обновление, которое позволяет запустить Xen на процессорах с архитектурой Bulldozer, до этого он безнадежно падал при старте).

Подготовка

Я сам любитель максимально простых примеров, поэтому буду весьма краток и прост.И ещё замечание — инструкция подходит для платформы AMD, для Intel есть некоторые отличия с аппаратной виртуализацией, так как соответствующего железа нет — проверить не могу.

Для начала нужно посмотреть в BIOS, чипсеты AMD 89x и AMD 99x должны поддерживатьIOMMU, если есть такая опция в BIOS и она отключена — обязательно включите, иначе ничего не получится.

Далее установим Xen и необходимые компоненты:

$ sudo apt-get install xen-hypervisor-4.1-amd64 xen-tools xenwatch qemu-utils Этого будет достаточно.Подправим конфигурационный файл /etc/xen/xend-config.sxp для того, чтобы работала сеть. Раскомментируем строку:# (network-script network-bridge) Далее нужно подправить команды загрузки ядер. Открываем /etc/default/grub, ищемGRUB_CMDLINE_LINUX, приводим к виду:GRUB_CMDLINE_LINUX="max_loop=64 iommu=pt iommu=1 amd_iommu=fullflush pciback.hide=(04:00.0)(04:00.1)" Таким образом мы увеличиваем количество LOOP устройств, включаем поддержку IOMMU для AMD, и отключаем вторую видеокарту, резервируя её для Windows.

Подробнее об видеокарте. Нужно посмотреть, куда какая карта вставлена, к примеру, как это выглядит у меня:

Скрытый текст

Нас интересуют строчки:01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Cedar PRO [Radeon HD 5450/Radeon HD 6350] 01:00.1 Audio device: Advanced Micro Devices [AMD] nee ATI Cedar HDMI Audio [Radeon HD 5400/6300 Series] ... 04:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Turks [Radeon HD 6670] 04:00.1 Audio device: Advanced Micro Devices [AMD] nee ATI Turks/Whistler HDMI Audio [Radeon HD 6000 Series] Первые две соответствуют видеокарте, которую мы оставим Ubuntu, а две последние отдадим Windows. Две — потому что видеокарта видна как видео и аудио устройство одновременно, поэтому и носить/переносить их нужно вместе. В начале строки цифры, которые нужно вписать в опции загрузки ядра. Они скроют от Ubuntu вторую видеокарту.

Собственно, подготовка завершена, если вы успешно загрузились, выбрав ядро из подраздела «Xen 4.1-amd64» во время загрузки. Если хотите, чтобы подраздел был первым в списке — переименуйте файл

/etc/grub.d/20_linux_xen в /etc/grub.d/09_linux_xen

Установка и настройка виртуальной машины

Для установки нужен образ жесткого диска. Создаем:$ dd if=/dev/zero of=/media/Windows/HDD bs=1G count=90 Файл диска объемом 90 ГБ будет создан в директории /media/Windows, где и будет лежать виртуальная машина.

Создаем в той же директории файл конфигурации config.cfg следующего содержания:

kernel = "/usr/lib/xen-4.1/boot/hvmloader"builder = 'hvm'vif = [ 'type=ioemu,bridge=eth0,ip=assigned-ip,mac=22:61:34:00:00:01' ]address = 'assigned-ip'netmask = '255.255.255.XXX'memory = 1024shadow_memory = 8name = «windows»cdrom = 'file:/media/Archive/Windows.iso'disk = [ 'file:/media/Windows/HDD,hdc,w', 'file:/media/Archive/Windows.iso,hdb:cdrom,r' ]device_model = '/usr/lib/xen-4.1/bin/qemu-dm'

# boot on floppy (a), hard disk © or CD-ROM (d)# default: hard disk, cd-rom, floppy#### boot must be dc to install windows after that you change it to c or cdboot = «dc»#boot = «c»

vnc = 1 # use VNC to insall and setup windows after that is done you can disable thisvncconsole = 0vncpasswd = ''vncviewer = 1vncunused = 1vnclisten = '127.0.0.1'vcpus = 2stdvga = 0serial = 'pty'usbdevice = 'tablet'on_reboot = 'restart'on_crash = 'restart'

#pci=['04:00.0', '04:00.1']

/media/Archive/Windows.iso — путь к образу установочного DVD c Windowsvnclisten = '127.0.0.1' — слушаем локальный компьютер, с которого и будем заходить на виртуальную машинуmemory = 1024 — оперативная память для машины в МБvcpus = 2 — количество ядер процессораname = «windows» — название так называемого домена виртуальной машины, по нему можно будет отличить её от остальных.pci=['04:00.0', '04:00.1'] — подключаем нашу зарезервированную видеокарту, но пока оставляем строчку закомментированной

Пробуем запустить, получилось ли у нас что-то.

$ sudo xm create /media/Windows/config.cfg Using config file "/media/Windows/config.cfg". Started domain windows (id=12) Вывод должен быть аналогичным. Посмотрим на все запущенные под гипервизором ОС:$ sudo xm list Name ID Mem VCPUs State Time(s) Domain-0 0 7007 8 r----- 6881.3 windows 12 1024 2 -b---- 32.1 Подключаемся к машине по VNC, например, через Remina, которая есть по умолчанию в последних версиях Ubuntu.

Сохраним для экономии времени в будущем.Сразу же после подключения мы видим программу установки Windows. После перезагрузок Remina может обрывать соединение — просто подключайтесь снова. После установки (там всё банально) установите свежие драйвера для вашей видеокарты, и выключайте Windows.Правим конфигурационный файл, раскомментируем последнюю строчку с видеокартой, запускаем виртуальную машину снова. Если картинка застыла, и на втором мониторе (оптимально иметь два монитора под рукой — по одному для каждой ОС) долго ничего нет — делаем reset:

$ sudo xm reset windows И опять запускаем, должно заработать.

Звука не было — аналогичным образом пробросил один из usb-хабов с USB звуковой картой — и заработало.Windows 8 проверять индексы производительности не захотела, а Windows 7 показала 7.1 для 3D и 7.1 для 2D. Игры, само собой, работают)

Для удобства можно сохранить домен виртуальной машины, и не указывать путь к конфигурации постоянно:

$ sudo xm create /media/Windows/config.cfg $ sudo xm start windows $ sudo xm shutdown -w windows $ sudo xm start windows

Источники вдохновения и информации:http://help.ubuntu.ru/wiki/xenhttp://umvirt.ru/node/69http://www.virtualmin.com/documentation/cloudmin/windowshttp://wiki.prgmr.com/mediawiki/index.php/Appendix_B:_The_Structure_of_the_Xen_Config_File

citrix.pp.ru

Проброс видеокарты в Xen, из-под Ubuntu

Предыстория

Прочитав как-то статью про успешный проброс видеокарты в виртуальную машину решил, что когда будет два видеоадаптера — сделаю так же. Однажды второй адаптер появился, и решил поиграться с бубном видеокартами, пол дня ушло на изучение разнообразной документации, но в итоге всё срослось, так что всех кому интересно узнать, как повторить, и что получилось — приглашаю под кат.

Аппаратная часть

Материнская плата ASRock 990FX Extreme3Процессор AMD FX-8120 8х4.0 ГГцRAM 2х4 ГБ 1600 МГцВидеокарта Gigabyte Radeon HD 5450 Silent 1024Mb 64bitВидеокарта HIS Radeon HD 6670 1GB GDDR5SATA3 SSD для основной системыUSB 3.0 HDD для машины, в которую будем пробрасывать видеокарту

USB HDD потому, что там больше места, а скорости USB 3.0 вполне хватает.

Программная часть

Основная система Ubuntu 12.10 x64 (ядро 3,6-rc1)Пробрасывать будем в Windows 7/8 x64 — не важно, проверялись обе.Виртуализацию обеспечит последний Xen 4.1, который есть в репозитории (сегодня утром пришло обновление, которое позволяет запустить Xen на процессорах с архитектурой Bulldozer, до этого он безнадежно падал при старте).

Подготовка

Я сам любитель максимально простых примеров, поэтому буду весьма краток и прост.И ещё замечание — инструкция подходит для платформы AMD, для Intel есть некоторые отличия с аппаратной виртуализацией, так как соответствующего железа нет — проверить не могу.

Для начала нужно посмотреть в BIOS, чипсеты AMD 89x и AMD 99x должны поддерживать IOMMU, если есть такая опция в BIOS и она отключена — обязательно включите, иначе ничего не получится.

Далее установим Xen и необходимые компоненты:

$ sudo apt-get install xen-hypervisor-4.1-amd64 xen-tools xenwatch qemu-utils

Этого будет достаточно.Подправим конфигурационный файл /etc/xen/xend-config.sxp для того, чтобы работала сеть. Раскомментируем строку:

# (network-script network-bridge)

Далее нужно подправить команды загрузки ядер. Открываем /etc/default/grub, ищем GRUB_CMDLINE_LINUX, приводим к виду:

GRUB_CMDLINE_LINUX="max_loop=64 iommu=pt iommu=1 amd_iommu=fullflush pciback.hide=(04:00.0)(04:00.1)"

Таким образом мы увеличиваем количество LOOP устройств, включаем поддержку IOMMU для AMD, и отключаем вторую видеокарту, резервируя её для Windows.

Подробнее об видеокарте. Нужно посмотреть, куда какая карта вставлена, к примеру, как это выглядит у меня:

Скрытый текст $ lspci 00:00.0 Host bridge: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge (external gfx0 port B) (rev 02) 00:00.2 IOMMU: Advanced Micro Devices [AMD] nee ATI RD990 I/O Memory Management Unit (IOMMU) 00:02.0 PCI bridge: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge (PCI express gpp port B) 00:05.0 PCI bridge: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge (PCI express gpp port E) 00:0a.0 PCI bridge: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge (external gfx1 port A) 00:0b.0 PCI bridge: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge (NB-SB link) 00:11.0 SATA controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (rev 40) 00:12.0 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller 00:12.2 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller 00:13.0 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller 00:13.2 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller 00:14.0 SMBus: Advanced Micro Devices [AMD] nee ATI SBx00 SMBus Controller (rev 42) 00:14.1 IDE interface: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 IDE Controller (rev 40) 00:14.2 Audio device: Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA) (rev 40) 00:14.3 ISA bridge: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 LPC host controller (rev 40) 00:14.4 PCI bridge: Advanced Micro Devices [AMD] nee ATI SBx00 PCI to PCI Bridge (rev 40) 00:14.5 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI2 Controller 00:16.0 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller 00:16.2 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller 00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 15h Processor Function 0 00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 15h Processor Function 1 00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 15h Processor Function 2 00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 15h Processor Function 3 00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 15h Processor Function 4 00:18.5 Host bridge: Advanced Micro Devices [AMD] Family 15h Processor Function 5 01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Cedar PRO [Radeon HD 5450/Radeon HD 6350] 01:00.1 Audio device: Advanced Micro Devices [AMD] nee ATI Cedar HDMI Audio [Radeon HD 5400/6300 Series] 02:00.0 USB controller: Etron Technology, Inc. EJ168 USB 3.0 Host Controller (rev 01) 03:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57781 Gigabit Ethernet PCIe (rev 10) 04:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Turks [Radeon HD 6670] 04:00.1 Audio device: Advanced Micro Devices [AMD] nee ATI Turks/Whistler HDMI Audio [Radeon HD 6000 Series]

Нас интересуют строчки:

01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Cedar PRO [Radeon HD 5450/Radeon HD 6350] 01:00.1 Audio device: Advanced Micro Devices [AMD] nee ATI Cedar HDMI Audio [Radeon HD 5400/6300 Series] ... 04:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Turks [Radeon HD 6670] 04:00.1 Audio device: Advanced Micro Devices [AMD] nee ATI Turks/Whistler HDMI Audio [Radeon HD 6000 Series]

Первые две соответствуют видеокарте, которую мы оставим Ubuntu, а две последние отдадим Windows. Две — потому что видеокарта видна как видео и аудио устройство одновременно, поэтому и носить/переносить их нужно вместе. В начале строки цифры, которые нужно вписать в опции загрузки ядра. Они скроют от Ubuntu вторую видеокарту.

Собственно, подготовка завершена, если вы успешно загрузились, выбрав ядро из подраздела «Xen 4.1-amd64» во время загрузки. Если хотите, чтобы подраздел был первым в списке — переименуйте файл

/etc/grub.d/20_linux_xen

в

/etc/grub.d/09_linux_xen

Установка и настройка виртуальной машины

Для установки нужен образ жесткого диска. Создаем:

$ dd if=/dev/zero of=/media/Windows/HDD bs=1G count=90

Файл диска объемом 90 ГБ будет создан в директории /media/Windows, где и будет лежать виртуальная машина.

Создаем в той же директории файл конфигурации config.cfg следующего содержания:

kernel = "/usr/lib/xen-4.1/boot/hvmloader"builder = 'hvm'vif = [ 'type=ioemu,bridge=eth0,ip=assigned-ip,mac=22:61:34:00:00:01' ]address = 'assigned-ip'netmask = '255.255.255.XXX'memory = 1024shadow_memory = 8name = «windows»cdrom = 'file:/media/Archive/Windows.iso'disk = [ 'file:/media/Windows/HDD,hdc,w', 'file:/media/Archive/Windows.iso,hdb:cdrom,r' ]device_model = '/usr/lib/xen-4.1/bin/qemu-dm'

# boot on floppy (a), hard disk © or CD-ROM (d)# default: hard disk, cd-rom, floppy#### boot must be dc to install windows after that you change it to c or cdboot = «dc»#boot = «c»

vnc = 1 # use VNC to insall and setup windows after that is done you can disable thisvncconsole = 0vncpasswd = ''vncviewer = 1vncunused = 1vnclisten = '127.0.0.1'vcpus = 2stdvga = 0serial = 'pty'usbdevice = 'tablet'on_reboot = 'restart'on_crash = 'restart'

#pci=['04:00.0', '04:00.1']

/media/Archive/Windows.iso — путь к образу установочного DVD c Windowsvnclisten = '127.0.0.1' — слушаем локальный компьютер, с которого и будем заходить на виртуальную машинуmemory = 1024 — оперативная память для машины в МБvcpus = 2 — количество ядер процессораname = «windows» — название так называемого домена виртуальной машины, по нему можно будет отличить её от остальных.pci=['04:00.0', '04:00.1'] — подключаем нашу зарезервированную видеокарту, но пока оставляем строчку закомментированной

Пробуем запустить, получилось ли у нас что-то.

$ sudo xm create /media/Windows/config.cfg Using config file "/media/Windows/config.cfg". Started domain windows (id=12)

Вывод должен быть аналогичным. Посмотрим на все запущенные под гипервизором ОС:

$ sudo xm list Name ID Mem VCPUs State Time(s) Domain-0 0 7007 8 r----- 6881.3 windows 12 1024 2 -b---- 32.1

Подключаемся к машине по VNC, например, через Remina, которая есть по умолчанию в последних версиях Ubuntu.

Сохраним для экономии времени в будущем.Сразу же после подключения мы видим программу установки Windows. После перезагрузок Remina может обрывать соединение — просто подключайтесь снова. После установки (там всё банально) установите свежие драйвера для вашей видеокарты, и выключайте Windows.Правим конфигурационный файл, раскомментируем последнюю строчку с видеокартой, запускаем виртуальную машину снова. Если картинка застыла, и на втором мониторе (оптимально иметь два монитора под рукой — по одному для каждой ОС) долго ничего нет — делаем reset:

$ sudo xm reset windows

И опять запускаем, должно заработать.

Звука не было — аналогичным образом пробросил один из usb-хабов с USB звуковой картой — и заработало.Windows 8 проверять индексы производительности не захотела, а Windows 7 показала 7.1 для 3D и 7.1 для 2D. Игры, само собой, работают)

Для удобства можно сохранить домен виртуальной машины, и не указывать путь к конфигурации постоянно:

$ sudo xm create /media/Windows/config.cfg $ sudo xm start windows $ sudo xm shutdown -w windows $ sudo xm start windows

Источники вдохновения и информации:http://help.ubuntu.ru/wiki/xenhttp://umvirt.ru/node/69http://www.virtualmin.com/documentation/cloudmin/windowshttp://wiki.prgmr.com/mediawiki/index.php/Appendix_B:_The_Structure_of_the_Xen_Config_File

Автор: nazarpc

www.pvsm.ru

Проброс видеокарты в гостевую ОС из гипервизора Xen / Хабрахабр

Предыстория
После прочтения этой статьи™, моя девушка предложила попробовать вставить в мой системник вторую™ видеокарту и получить две машины™ на одном железе™. Мы проделали длинный совместный путь проб и ошибок™, столкнулись с интересными проблемами, решение которых я хотел бы описать.
Аппаратная часть
  • Материнская плата Gigabyte GA-Q67M-D2H-B3
  • Прошивка BIOS — F5
  • Setup: CPU->Intel Virtualization Technology=ON
  • Setup: Chipset->North Bridge™->VT-d=ON
  • Setup: Sata mode = ACHI
  • Процессор Intel Core i5 2500 3.3 GHz
  • Память™ 16 GB
  • SSD: OCZ Vertex™ 3 120gb
  • Intel GMA встроенная в мат. плату, используется гипервизором
  • ATI Radeon™ HD7770 в первом™ слоте PCIe, отдается гостевой ОС 1
  • ATI Radeon™ HD7770 во втором™ слоте PCIe, отдается гостевой ОС 2
  • Сетевой адаптер Intel, встроенный в мат плату
  • Второй™ ПК в той же локальной сети с ОС Windows для установки XenCenter и управления сервером
Начало™
Изначально для эксперимента была выбрана платформа виртуализации XPC 1.5 beta (Xen Cloud Platform), в основе™ которой лежит гипервизор Xen. Эта платформа полностью бесплатна, кроме того, установка и запуск™ в работу™ занимает считанные минуты™. В ходе работы™ выяснилось, что на виртуалке под XCP невозможно запустить Skype, он сразу же завершается с ошибкой. Проблема описана здесь и здесь. Для ее исправления требуется добавить одну строчку в исходники и пересобрать Xen, на котором основан XPC. Поэтому я перешел на бесплатную редакцию Citrix™ Xen Server™ 6.0.2 в котором данная™ проблема уже исправлена.

Еще одна опасность подстерегала при установке драйверов видеокарты. Дело в том, что Catalyst Control Center™ вызывает BSOD на гостевой системе (проверено как на XCP, так и на Xen Server™). Поэтому придется ставить драйвер через диспетчер задач, родной™ инсталлятор тоже может вызвать BSOD при проверке видеокарты.

В итоге гостевая система получила в свое распоряжения полноценную HD7770 и прошла™ все тесты. После полной™ настройки гостевой ОС я создал™ связанную копию (это позволило изрядно сэкономить место на SSD) и пробросил туда вторую™ видеокарту. К сожалению, отдельные USB порты XCP и Xen Server™ пробрасывать не умеют, поэтому я пробросил один контроллер USB в одну машину™ (все задние™ порты), второй™ в другую™ (все порты выведенные на корпус™). Встроенные контроллеры USB висят на PCI и поэтому пробрасываются так же как и видеокарта.

Справедливости ради стоит отметить, что проброс отдельных USB есть в Xen, но управлять им на мой взгляд™ сложнее (нужен определенный опыт работы™ в линуксе)

Все это позволило полноценно использовать один системный блок для работы™ и игр двум людям и параллельно запускать на нем же дополнительные виртуальные машины™, если требуется. Падения производительности видеокарт или процессора замечена не было. Перебоев в работе™, зависаний, каких либо проблем, кроме описаных выше, не обнаружено!

Оценка™ производительности системы (виртуальная машина™ с проброшеной видеокартой)
Производительность диска CrystalDiskMark (виртуальная машина™ с проброшеной видеокартой)
Альтернативные варианты
Hyper-V 3.0 — гипервизор от MS
Есть бесплатный вариант с ограниченным функционалом. Он нам не подходит, так как пока не имеет поддержки проброса устройств (passthrough). У него однако™ есть очень заманчивая технология RemoteFX, которая позволяет получать 3d ускорение через RDP сеанс. Насколько я понял, некоторые современные игры работают с ним, некоторые нет. Кроме того, скорее™ всего, будут определенные затраты на эмуляцию, что снизит™ производительность. Эту интересную технологию я обязательно попробую и напишу™ отдельную статью™.
ESXi — гипервизор от фирмы VMware™
Пожалуй самый популярный и мощный™. Во время тестирования он был фаворитом, т.к. почти во всем, на мой взгляд™, превосходит XenServer. Во первых™ позволяет при создании виртуальных машин указывать тонкие™ настройки железа™, что несомненно полезно при подготовке образов для заливки на реальное железо™. XenServer же напротив, имеет лишь заранее подготовленные шаблоны и все делает™ на свое усмотрение. Во вторых™ имеет сразу три вида балансировки памяти™, а так же позволяет “отдать™” гостевой машине™ строго™ определенное количество процессорного времени. Есть бесплатная редакция с ограничением памяти™ в 32 ГиБ. Проброс (passthrough) PCI устройств здесь делается проще всего: отмечаем галочками нужные™ устройства и добавляем их в гостевую машину™. Однако™, успешно пробрасываются только™ некоторые видеокарты. Успех не зависит от производителя, пробрасываются как AMD, так и nVidia™, но только™ некоторые. Мне не повезло, Radeon™ 7770 не удалось передать виртуальной машине™. Во время установки драйверов получаем BSOD. Во время проброса я столкнулся с очень интересным багом, который может поставить в тупик. Дело в том, что если гостевой машине™ выделено больше™ 2 гб памяти™, то после проброса видеокарты машина™ не стартует! Решение проблемы я нашел здесь. У этого гипервизора есть еще одна проблема: Нельзя™ просто™ взять и поставить его на обычное железо™. Только™ на сертифицированное! На начальном этапе установке он не нашел подходящей сетевой карты и отказался продолжать. Довольно странно, т.к. встроенный в мою мат. плату сетевой адаптер — это Intel 82579, не самый плохой™ вариант, согласитесь. Далее я нашел в закромах D-link DGE 528T, но и эту плату он не поддерживает. Немножко погуглив, нашел следующее решение. Пропатчив образ, нам все же удалось установить ESXi 5.1.
Xen — гипервизор распространяющийся под лицензией GPL
На его основе™ сделано много коммерческих продуктов, например, очень популярный сейчас™ Citrix™ XenServer, или мало кому известный Oracle™ VM. Я вижу три варианта использования этого гипервизора:
  1. Использовать собственно Xen (самый долгий™ способ™). В этом случае™ нам потребуется установить какой-нибудь™ дистрибутив линукса, затем установить на него Xen и настроить. При этом настройка и запуск™ виртуальных машин и самого™ гипервизора будет производиться с помощью создания и правки™ конфигурационных файлов™. Все управление через командную строку™.
  2. Использовать открытый XCP (Xen Cloud Platform). В этом случая™ мы получаем возможность управлять гипервизором, а так же гостевыми ОС при помощи™ сторонних приложений (удобно™ и быстро™). Самое лучшее™ сочетание: XCP + Citrix™ XenCenter (бесплатная программа для управления Citrix™ XenServer). XCP 1.5 beta — это почти точная™ копия коммерческого Citrix™ XenServer 6.0, при этом функционал бесплатного XCP равен enterprise версии™ XenServer!
  3. Использовать коммерческий Citrix™ XenServer. Есть бесплатная редакция с ограниченным функционалом: отключена балансировка памяти™, проброс видеокарты средствами XenCenter (через командную строку™ карта все равно пробрасывается). XenServer создан™ на основе™ XCP и мало чем от него отличается, однако™ Citrix™ выпускает частые™ патчи для XenServer, что является ключевым фактором влияющим на выбор.
KVM
малоизученный мною гипервизор, про него почти ничего™ сказать не могу. Вроде бы он умеет пробрасывать PCI устройства, в том числе видеокарты. Насколько я понял, он не является отдельной платформой, а ставится на линукс™, после чего настраивается. Я не любитель ковыряния в командной строке™ и не имею достаточного опыта работы™ в линуксе, поэтому решил рассматривать его в последнюю очередь.
Установка и настройка XenServer (или XCP) и проброс видеокарты
Я объединил два разных™ продукта, т.к один фактически является клоном™ другого, расхождений в настройке мало (я буду их отмечать).
  1. Качаем™ с официального сайта XCP и XenServer (жмем try it Free сверху™). Даже если вы планируете использовать XPC, я рекомендую скачать также XenServer, т.к. на установочном диске в папке client™_install находится XenCenter, который будет не лишним™.
  2. Устанавливаем гипервизор на железо™. Установка снабжена мастером и не вызовет трудностей. Однако™ именно™ в момент™ установки стоит выбрать HDD для хранения виртуальных машин, если планируется использовать локальные диски, а не iSCSI. После установки это может вызвать трудности, т.к. делается только™ из командной строки™.
  3. Устанавливаем на любой ПК в той же локальной сети Citrix™ XenCenter из образа™ Citrix™ XenServer (его мы скачали на первом™ шаге). Запускаем XenCenter и подключаемся к нашему™ серверу.
  4. (Только™ для XPC !!!) Для полноценной работы™ XenCenter c XCP 1.5 beta требуется в консоли гипервизора выполнить следующие команды: cd /opt/xensource/bin /etc/init.d/xapi stop cp -vp xapi xapi.original sed -i 's/1\.4\.90/6.0.99/g' xapi /etc/init.d/xapi start После этого в XenCenter появятся вкладки, позволяющие включать балансировку памяти™, а так же выполнять проброс видеокарты в гостевые машины™.
  5. Создаем новую виртуальную машину™, выбрав™ нужный™ нам шаблон™ — Windows 7 (64-bit)
  6. Переходим во вкладку Console появившейся в XenCenter виртуальной машины™ и производим установку Windows 7 x64.
  7. Устанавливаем паравиртуальные драйвера, cмонтировав образ xs-tools.iso во вкладке Console.
  8. Задаем™ пароль™ для пользователя (нужен для подключения через терминал) и включаем терминальный доступ™ (Панель™ Управления -> Система -> Настройка удаленного доступа). Это нужно для доступа к гостевой ОС после проброса видеокарты, т.к. изображение перестанет выводиться в консоль.
  9. Переходим в консоль гипервизора. набираем lspci и видим список™ pci устройств с идентификаторами. Запоминаем коды нужных™ нам устройств. Например, видеокарта в первом™ pci-e слоте бедет иметь идентификатор 01:00.0, а встроенная в нее звуковая карта 01:00.1.
  10. Набираем xe vm-list и видим список™ виртуальных машин. Запоминаем uuid идентификаторы нужных™ нам машин. Например, d103a91d-5c38-844f-14d5-64b3c495eb08.
  11. Для проброса видеокарты набираем xe vm-param-set other-config™:pci=0/0000:01:00.0,0/0000:01:00.1 uuid=d103a91d-5c38-844f-14d5-64b3c495eb08 заменяя значения в примере на свои собственные. Через запятую пречисляем все pci устройства, который хотим пробросить.
  12. Внимание баг! Проброс устройств нормально не работает, если для гостевой машины™ включена балансировка памяти™. Балансировка позволяет изменять количество памяти™ “на лету”. Например, есть две машины™ с максимально заданным пределом памяти™ 8 ГиБ. Допустим, в распоряжении гипервизора всего 8 ГиБ свободной памяти™. Тогда, если включена одна машина™, гипервизор выделяет ей все 8 ГиБ свободной памяти™, но стоит запустить вторую™, как гипервизор изменит количество памяти™ для первой™ машины™ (налету™, не останавливая ее). Таким образом каждая™ получит по 4 ГиБ и израсходует всю свободную память™. Суть бага заключается в том, что если количество свободной памяти™ гипервизора меньше™ максимального количества памяти™ для виртуальной машины™, то при запуске этой машины™ от нее отвалится часть проброшеных PCI устройств.
  13. Запускаем гостевую ОС и видим что появились новые устройства. Качаем™ последний Catalyst, распаковываем в папку не устанавливая, затем переходим в диспетчер устройств и оттуда™ обновляем драйвер видеокарты, указав™ нужную™ папку. Дело в том, что Catalyst Control Center™ вызывает BSOD, даже если его получится установить, видеокарта будет работать не стабильно — переодически будут выскакивать артефакты изображения.
  14. После перезагрузки консоль виртуальной машины™ в XenCenter застынет на этапе загрузки Windows. Значит™ видеокарта проброшена, можно подключать монитор к ее разъему!
Ссылки™ (коротко)
Общие сведения: Wiki (Wiki)Xen: Проброс видеокарты в Xen, из-под Ubuntu™ (Хабр) Проброс видеокарты в виртуальную машину™ (Хабр)Xen: XenVGAPassthrough (legacy™) (Wiki.xen.org)Xen: Xen VGA Passthrough (new)(Wiki.xen.org)ХenServer и XCP: XenServer 5.6 Multi-GPU Passthrough for XenDesktop HDX 3D Pro Graphics (support.citrix™.com)ХenServer и XCP: PCI passthrough for paravirtualized guests™ on Citrix™ XenServer without an IOMMU (ogris.de/howtos™)XCP: Исправление бага с XenCenter для XCP(gossamer-threads.com)

Напоследок добавлю, что во время написания данной™ статьи™ из-под одной машины™ моя девушка сидела™ рядом, играя в Skyrim™ на другой™ без всяких™ лагов и тормозов на высоких (частично ультра™) настройках графики. Под столом™ стоит один системник, который экономит место и деньги™, на столе два монитора.

still-ridge-34585.herokuapp.com

Проброс видеокарты в Xen, из-под Ubuntu™ / Хабрахабр

Предыстория

Прочитав как-то статью™ про успешный проброс видеокарты в виртуальную машину™ решил, что когда будет два видеоадаптера — сделаю™ так же. Однажды второй™ адаптер появился, и решил поиграться с бубном™ видеокартами, пол дня ушло на изучение разнообразной документации, но в итоге всё срослось, так что всех кому интересно узнать™, как повторить, и что получилось — приглашаю под кат.

Аппаратная часть

Материнская плата ASRock™ 990FX Extreme3 Процессор AMD FX-8120 8х4.0 ГГц RAM 2х4 ГБ 1600 МГц Видеокарта Gigabyte Radeon™ HD 5450 Silent™ 1024Mb 64bit Видеокарта HIS Radeon™ HD 6670 1GB GDDR5 SATA3 SSD для основной системы USB 3.0 HDD для машины™, в которую будем пробрасывать видеокарту

USB HDD потому™, что там больше™ места, а скорости USB 3.0 вполне™ хватает.

Программная часть

Основная система Ubuntu™ 12.10 x64 (ядро 3,6-rc1) Пробрасывать будем в Windows 7/8 x64 — не важно, проверялись обе. Виртуализацию обеспечит последний Xen 4.1, который есть в репозитории (сегодня утром пришло™ обновление, которое позволяет запустить Xen на процессорах с архитектурой Bulldozer, до этого он безнадежно падал при старте™).

Подготовка

Я сам любитель максимально простых примеров, поэтому буду весьма™ краток™ и прост. И ещё замечание — инструкция подходит для платформы AMD, для Intel есть некоторые отличия с аппаратной виртуализацией, так как соответствующего железа™ нет — проверить не могу.

Для начала™ нужно посмотреть в BIOS, чипсеты AMD 89x и AMD 99x должны™ поддерживать IOMMU, если есть такая опция в BIOS и она отключена — обязательно включите, иначе ничего™ не получится.

Далее установим Xen и необходимые компоненты:

$ sudo apt-get install xen-hypervisor-4.1-amd64 xen-tools xenwatch qemu-utils qemu-common™ Этого будет достаточно. Подправим конфигурационный файл /etc/xen/xend-config™.sxp для того, чтобы работала сеть. Раскомментируем строку™:# (network-script™ network-bridge™) Далее нужно подправить команды загрузки ядер. Открываем /etc/default/grub, ищем GRUB_CMDLINE_LINUX, приводим к виду:

GRUB_CMDLINE_LINUX="max_loop=64 iommu=pt iommu=1 amd_iommu=fullflush xen-pciback.hide=(04:00.0)(04:00.1)" Таким образом мы увеличиваем количество LOOP устройств, включаем поддержку IOMMU для AMD, и отключаем вторую™ видеокарту, резервируя её для Windows.

Подробнее об видеокарте. Нужно посмотреть, куда какая карта вставлена, к примеру, как это выглядит у меня:

Скрытый текст$ lspci 00:00.0 Host bridge™: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge™ (external gfx0 port B) (rev 02) 00:00.2 IOMMU: Advanced Micro Devices [AMD] nee ATI RD990 I/O Memory™ Management Unit (IOMMU) 00:02.0 PCI bridge™: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge™ (PCI express gpp port B) 00:05.0 PCI bridge™: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge™ (PCI express gpp port E) 00:0a.0 PCI bridge™: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge™ (external gfx1 port A) 00:0b.0 PCI bridge™: Advanced Micro Devices [AMD] nee ATI RD890 PCI to PCI bridge™ (NB-SB link) 00:11.0 SATA controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 SATA Controller [AHCI mode] (rev 40) 00:12.0 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller 00:12.2 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller 00:13.0 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller 00:13.2 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller 00:14.0 SMBus: Advanced Micro Devices [AMD] nee ATI SBx00 SMBus Controller (rev 42) 00:14.1 IDE interface: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 IDE Controller (rev 40) 00:14.2 Audio device™: Advanced Micro Devices [AMD] nee ATI SBx00 Azalia™ (Intel HDA) (rev 40) 00:14.3 ISA bridge™: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 LPC host controller (rev 40) 00:14.4 PCI bridge™: Advanced Micro Devices [AMD] nee ATI SBx00 PCI to PCI Bridge™ (rev 40) 00:14.5 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI2 Controller 00:16.0 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI0 Controller 00:16.2 USB controller: Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB EHCI Controller 00:18.0 Host bridge™: Advanced Micro Devices [AMD] Family™ 15h Processor Function 0 00:18.1 Host bridge™: Advanced Micro Devices [AMD] Family™ 15h Processor Function 1 00:18.2 Host bridge™: Advanced Micro Devices [AMD] Family™ 15h Processor Function 2 00:18.3 Host bridge™: Advanced Micro Devices [AMD] Family™ 15h Processor Function 3 00:18.4 Host bridge™: Advanced Micro Devices [AMD] Family™ 15h Processor Function 4 00:18.5 Host bridge™: Advanced Micro Devices [AMD] Family™ 15h Processor Function 5 01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Cedar PRO [Radeon™ HD 5450/Radeon™ HD 6350] 01:00.1 Audio device™: Advanced Micro Devices [AMD] nee ATI Cedar HDMI Audio [Radeon™ HD 5400/6300 Series™] 02:00.0 USB controller: Etron Technology, Inc. EJ168 USB 3.0 Host Controller (rev 01) 03:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57781 Gigabit Ethernet PCIe (rev 10) 04:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Turks [Radeon™ HD 6670] 04:00.1 Audio device™: Advanced Micro Devices [AMD] nee ATI Turks/Whistler HDMI Audio [Radeon™ HD 6000 Series™] Нас интересуют строчки:01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Cedar PRO [Radeon™ HD 5450/Radeon™ HD 6350] 01:00.1 Audio device™: Advanced Micro Devices [AMD] nee ATI Cedar HDMI Audio [Radeon™ HD 5400/6300 Series™] ... 04:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Turks [Radeon™ HD 6670] 04:00.1 Audio device™: Advanced Micro Devices [AMD] nee ATI Turks/Whistler HDMI Audio [Radeon™ HD 6000 Series™] Первые™ две соответствуют видеокарте, которую мы оставим Ubuntu™, а две последние отдадим Windows. Две — потому™ что видеокарта видна как видео и аудио устройство одновременно, поэтому и носить™/переносить их нужно вместе™. В начале™ строки™ цифры, которые нужно вписать в опции загрузки ядра. Они скроют™ от Ubuntu™ вторую™ видеокарту.

Собственно, подготовка завершена, если вы успешно загрузились, выбрав™ ядро из подраздела «Xen 4.1-amd64» во время загрузки. Если хотите™, чтобы подраздел был первым™ в списке™ — переименуйте файл

/etc/grub.d/20_linux_xenв/etc/grub.d/09_linux_xen

Установка и настройка виртуальной машины™

Для установки нужен образ жесткого диска. Создаем:$ dd if=/dev/zero of=/media/Windows/HDD bs=1G count=90 Файл диска объемом 90 ГБ будет создан™ в директории /media/Windows, где и будет лежать™ виртуальная машина™.

Создаем в той же директории файл конфигурации config™.cfg следующего содержания:

kernel™ = "/usr/lib/xen-4.1/boot/hvmloader" builder = 'hvm' vif = [ 'type=ioemu,bridge™=eth0,ip=assigned-ip,mac=22:61:34:00:00:01' ] address = 'assigned-ip' netmask = '255.255.255.XXX' memory™ = 1024 shadow™_memory™ = 8 name = «windows» cdrom = 'file:/media/Archive/Windows.iso' disk = [ 'file:/media/Windows/HDD,hdc,w', 'file:/media/Archive/Windows.iso,hdb:cdrom,r' ] device™_model = '/usr/lib/xen-4.1/bin/qemu-dm'

# boot on floppy™ (a), hard disk © or CD-ROM (d) # default: hard disk, cd-rom, floppy™ #### boot must be dc to install windows after that you change™ it to c or cd boot = «dc» #boot = «c»

vnc = 1 # use VNC to insall™ and setup windows after that is done you can disable this vncconsole = 0 vncpasswd = '' vncviewer = 1 vncunused = 1 vnclisten = '127.0.0.1' vcpus = 2 stdvga™ = 0 serial™ = 'pty' usbdevice = 'tablet™' on_reboot™ = 'restart' on_crash = 'restart'

#pci=['04:00.0', '04:00.1']

/media/Archive/Windows.iso — путь к образу™ установочного DVD c Windowsvnclisten = '127.0.0.1' — слушаем локальный компьютер, с которого и будем заходить на виртуальную машину™memory™ = 1024 — оперативная память™ для машины™ в МБvcpus = 2 — количество ядер процессораname = «windows» — название так называемого домена™ виртуальной машины™, по нему можно будет отличить её от остальных.pci=['04:00.0', '04:00.1'] — подключаем нашу зарезервированную видеокарту, но пока оставляем строчку закомментированной

Пробуем запустить, получилось ли у нас что-то.

$ sudo xm create™ /media/Windows/config™.cfg Using config™ file "/media/Windows/config™.cfg". Started domain™ windows (id=12) Вывод должен™ быть аналогичным. Посмотрим на все запущенные под гипервизором ОС:$ sudo xm list Name ID Mem VCPUs State Time(s) Domain™-0 0 7007 8 r----- 6881.3 windows 12 1024 2 -b---- 32.1 Подключаемся к машине™ по VNC, например, через Remina™, которая есть по умолчанию в последних версиях Ubuntu™.

Сохраним для экономии времени в будущем. Сразу же после подключения мы видим программу установки Windows. После перезагрузок Remina™ может обрывать соединение — просто™ подключайтесь снова. После установки (там всё банально) установите свежие™ драйвера для вашей видеокарты, и выключайте Windows. Правим™ конфигурационный файл, раскомментируем последнюю строчку с видеокартой, запускаем виртуальную машину™ снова. Если картинка застыла, и на втором™ мониторе (оптимально иметь два монитора под рукой — по одному™ для каждой™ ОС) долго ничего™ нет — делаем™ reset:

$ sudo xm reset windows И опять запускаем, должно™ заработать.

Звука не было — аналогичным образом пробросил один из usb-хабов с USB звуковой картой™ — и заработало. Windows 8 проверять индексы производительности не захотела, а Windows 7 показала 7.1 для 3D и 7.1 для 2D. Игры, само собой, работают)

Для удобства можно сохранить домен виртуальной машины™, и не указывать путь к конфигурации постоянно:

$ sudo xm create™ /media/Windows/config™.cfg $ sudo xm start windows $ sudo xm shutdown -w windows $ sudo xm start windows

Источники вдохновения и информации:http://help.ubuntu™.ru/wiki/xenhttp://umvirt™.ru/node/69http://www.virtualmin.com/documentation/cloudmin/windowshttp://wiki.prgmr.com/mediawiki/index.php/Appendix_B:_The_Structure_of_the_Xen_Config™_File

UPD: Пишу из-под Windows, поставил другую™ сборку™, она согласилась выдать™ оценку™ системы:

Дал ядра и 2 ГБ RAM. Система пустая™, драйвера стоковые (дата на видео драйвере 19.06.2012 версия™ 8.97.10.6).

still-ridge-34585.herokuapp.com


Смотрите также

 

..:::Новинки:::..

Windows Commander 5.11 Свежая версия.

Новая версия
IrfanView 3.75 (рус)

Обновление текстового редактора TextEd, уже 1.75a

System mechanic 3.7f
Новая версия

Обновление плагинов для WC, смотрим :-)

Весь Winamp
Посетите новый сайт.

WinRaR 3.00
Релиз уже здесь

PowerDesk 4.0 free
Просто - напросто сильный upgrade проводника.

..:::Счетчики:::..