Виртуальная машина для игр


Обзор 3-х популярных виртуальных машин для Windows

Чтобы иметь под рукой сразу несколько операционных систем с отдельным рабочим пространством и приложениями, не нужно покупать второй (третий, четвертый и т. д.) компьютер. Потому что всё это уместится в вашем единственном ПК. Как? Благодаря виртуальным машинам (ВМ) — особым программам, которые создают (эмулируют) внутри основной операционной системы воображаемые (виртуальные) компьютеры.

Виртуальный ПК почти как настоящий. У него есть собственный процессор, память, жесткий диск, сетевой адаптер и всё остальное. Конечно, это не физические устройства, но сделаны они так, чтобы операционные системы считали их именно такими — настоящими.

На одном физическом компьютере одновременно может работать несколько виртуальных. Сколько именно — зависит от аппаратных ресурсов: чем шустрее процессор, объемнее оперативка, просторнее накопитель, тем больше. Обычный домашний ПК средней производительности на базе Windows 10 справляется с одновременной работой трех-пяти легковесных ОС (например, Windows XP, Android и Lubuntu + основная система). Или двух-трех относительно тяжеловесных (например, основная Windows 10 + виртуальные Windows 7 и Mac OS X). Как вы уже поняли, приложения-эмуляторы виртуальных компьютеров позволяют устанавливать и запускать на них самые разные ОС.

Для чего используются виртуальные машины

Виртуальные машины общего назначения (в отличие от специализированных — таких, как, например, VM Java), используют:

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

Ну и конечно, виртуальные машины повсеместно используют для распределения рабочих ресурсов серверов.

Сегодня мы не будем касаться промышленного применения ВМ, а рассмотрим только то, что может быть полезно домашним пользователям ОС Windows.

Oracle Virtualbox

Виртуальная машина Oracle Virtualbox, пожалуй, наиболее известна и популярна у домашних пользователей ПК. Она русифицирована, бесплатна, поддерживает все основные операционные системы, включая Android, и довольно проста в применении. Сделать минимально необходимые настройки и установить в нее операционную систему сможет даже слабо подготовленный юзер, если имеет под рукой инструкцию по установке выбранной ОС.

Даже беглого взгляда на рабочую область Virtualbox достаточно, чтобы понять, что здесь к чему и как примерно пользоваться программой. Слева — список всех операционных систем, установленных на платформу Virtualbox (гостевых), справа — окно параметров виртуального компьютера выбранной из списка ОС или окно снимков — сохраненных состояний этой системы (некий аналог точек восстановления). На верхней панели — основные инструменты управления: кнопки мастера создания новой ВМ, перехода в меню настроек и запуска ВМ. Вверху справа — кнопки переключения вкладок левой части окна (на скриншоте показана вкладка настроек).

Освоить основные функции программы — установку и запуск операционной системы, настройку параметров виртуального компьютера, большинству пользователей удается без инструкций. А для самых пытливых умов, стремящихся постичь все секреты Virtualbox, на официальном сайте есть англоязычный учебник.

Рассмотрим процесс создания новой виртуальной машины и начало установки в нее Windows 10.

  • Кликнем в верхней панели кнопку «Создать».

  • В первом окошке мастера создания ВМ укажем имя ОС (оно будет отображаться в списке гостевых систем), ее тип (Windows, Linux и т. д.) и версию. В нашем примере это Windows 10 32 bit (можно поставить и 64 bit, но ей потребуется больше ресурсов). Для перехода к следующему шагу нажмем Next.

  • Дальше укажем размер оперативной памяти ВМ. По умолчанию Windows 10 x86 отводится 1 Гб, но вы можете увеличить этот объем, сдвигая ползунок вправо. Если на вашем ПК не очень много оперативки, не отдавайте ВМ больше 2-3 Гб, иначе основная система будет тормозить из-за нехватки памяти.

  • Следом создаем виртуальный жесткий диск. Если вы ставите систему первый раз, выбирайте вариант «Создать новый».

  • Тип виртуального диска оставим по умолчанию.

  • Формат хранения данных — это область на физическом накопителе вашего компьютера, который отводится ВМ. Она может иметь постоянный или динамически расширяемый объем в тех пределах, которые вы определите дальше. Для экономии места выберем динамический формат.

  • Следом укажем имя тома (виртуального диска С) и его размер. По умолчанию — 32 Гб.

  • После нажатия в последнем окошке кнопки «Создать» в списке появится новая виртуальная машина. Справа в рамке показаны ее параметры.
  • Для перехода к установке Windows кликнем в верхней панели кнопку «Запустить».

  • В окне, которое откроется после этого, появится окошко «Выберите загрузочный диск». Нажмите на иконку папки и укажите путь к дистрибутиву системы. Это может быть образ в формате .iso или физический носитель (DVD, флешка). Выбрав дистрибутив, нажмите «Продолжить».

  • Дальнейший ход инсталляции ОС в виртуальную машину не отличается от установки ее на физический компьютер.

Некоторые настройки ВМ и гостевой системы

Клик в окне виртуальной машины захватывает курсор мыши (т. е. он будет двигаться только в пределах виртуального экрана). Для возврата курсора в основную ОС нажмите комбинацию Ctrl+Alt.

Для доступа ко всему набору функций гостевой ОС нужно установить специальные дополнения. Зайдите в меню «Устройства», щелкните «Подключить образ диска дополнений гостевой ОС» и следуйте дальнейшим инструкциям.

Чтобы подключить к гостевой системе папку для обмена файлами с основной, кликните в меню «Устройства» пункт «Общие папки». Нажмите на значок «папка+» в открывшемся окне и через поле «путь к папке» укажите ее в проводнике (в нем показаны каталоги основной системы).

Если хотите, чтобы настройка работала постоянно, отметьте «Авто-подключение» и «Создать постоянную папку». Общая папка будет доступна из проводника виртуальной машины как сетевая.

Чтобы сохранить текущее состояние гостевой ОС, откройте меню «Машина» и выберите «Сделать снимок состояния».

Чтобы изменить порядок опроса загрузочных устройств (например, для загрузки виртуальной машины с DVD), завершите работу гостевой ОС, откройте ее настройки (в главном окне Virtualbox) и зайдите на первую вкладку раздела «Система». В списке «Порядок загрузки» отметьте нужный носитель и, нажимая кнопки со стрелками, передвиньте его наверх.

VMware Workstation Pro

VMware Workstation pro — не менее функциональный продукт, чем Vrtualbox, но рассчитанный на профессиональное применение и интеграцию с другими сервисами производителя. Не бесплатный и довольно дорогостоящий, однако тоже очень популярный у домашних пользователей Windows.

Бесплатная версия VMware для личного использования тоже существует. Это VMware Workstation Player, но малая функциональность, сильно уступающая даже некоммерческому Vrtualbox, отвернула от него любовь наших сограждан.

Полноценный VMware Workstation Pro, с которым мы будем знакомиться сегодня, как и конкурент, поддерживает массу операционных систем, включая мобильные и Mac OS X (кстати, он совместим с большим количеством редакций OS X, нежели Virtualbox), и эмулирует все основные устройства компьютера. Еще он эмулирует интерфейс BIOS, в отличие от Vrtualbox.

Рассмотрим, как проходит процесс создания виртуальной машины и запуск установки Windows 10 на платформе VMware Workstation Pro.

Дизайн основного окна программы (который, кстати, видоизменяется от версии к версии) не позволит запутаться даже начинающему пользователю.

  • Чтобы создать новую виртуальную машину, нажмем одноименную кнопку на вкладке «Главная».

  • В первом окошке мастера создания ВМ укажем тип конфигурации. Если вам нужен компьютер со стандартными параметрами (которых достаточно в 90% случаев), отметим «Обычный».

  • Следом укажем тип ОС, которую будем устанавливать на эту виртуальную машину. Программа дает возможность запустить установку сразу после создания ВМ, причем без лишних действий с вашей стороны. Если вы согласны на это, укажите путь к файлу образа или носителя с дистрибутивом системы, если нет, отметьте «Я установлю систему позже».

  • Чтобы не вводить ключ продукта, имя пользователя и пароль во время установки Windows, введите это данные в следующее окно. Первый пункт можно пропустить.

  • Дайте новой виртуальной машине имя и укажите будущее расположение папки с операционной системой.

  • Определите размер виртуального диска. По умолчанию VMware отдает Windows 10 целых 60 Гб, но мы можем увеличить или уменьшить этот объем. Следом вам предстоит указать способ сохранения виртуального диска — в одном или нескольких файлах.

  • Ниже показаны параметры только что созданного виртуального компьютера. Если вас что-то не устраивает, например, размер оперативной памяти, нажмите «Настройку оборудования».

  • Измените нужные характеристики, вернитесь в предыдущее окно и кликните «Готово».

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

  • После загрузки рабочего стола программа автоматически установит в новую систему VMware Tools — то же, что и дополнения гостевой ОС в Virtualbox. После этого виртуальная машина готова к работе.

Список всех установленных гостевых операционных систем находится на вкладке «Мой компьютер».

Некоторые опции виртуальной машины VMware

До установки VMware Tools окно гостевой системы, как и в Virtualbox, захватывает курсор мыши. Для возврата его в основную ОС нажмите Ctrl+Alt.

Чтобы попасть в интерфейс BIOS виртуальной машины, выделите ее в списке, откройте меню запуска (кнопка «play» на верхней панели) и кликните «При включении (машины) войти в режим BIOS».

Microsoft Hyper-V

Диспетчер виртуальных машин Hyper-V — это встроенный компонент операционных систем всех редакций Windows 7-10, за исключением начальной и домашних. Если разобраться, он не хуже и не сложнее, чем два рассмотренных выше, просто некоторые пользователи ничего не знают о его существовании и только поэтому предпочитают сторонний софт.

Чтобы активировать диспетчер Hyper-V, зайдите в раздел приложений панели управления Windows, щелкните «Включение и выключение компонентов Виндовс» и в открывшемся окошке отметьте «Hyper-V».

Перезагрузите компьютер, откройте поиск и с его помощью запустите диспетчер Hyper-V.

  • Для создания новой ВМ в панели диспетчера «Действия» нажмите «Создать» — «Виртуальная машина».

  • Дайте новой виртуальной машине имя.

  • Определите ее поколение — 1 (старое, к которому относится Windows XP и все 32-битные системы) или 2 (новое — 64-битные Windows 7, 8.1 или 10).

  • Выделите виртуальной машине оперативную память. Флажок «Динамическая» позволит основной ОС использовать часть памяти, которая не задействована гостевой ОС, для своих нужд. Этой полезной возможности, кстати, нет ни в Virtualbox, ни в VMware.

  • Настройки сети отложим на потом. Оставим по умолчанию «Нет подключения».

  • Далее определим размер, расположение виртуального диска и назначаем ему имя.

  • Последний шаг — параметры установки гостевой ОС. Укажем месторасположение носителя с дистрибутивом или файла образа iso. Либо отложим установку Виндовс на другое время. После нажатия кнопки «Готово» виртуальная машина будет создана, а вслед за этим запустится инсталляция операционной системы. Ее ход тоже ничем не отличается от установки ОС на реальный компьютер.

Список всех виртуальных машин Hyper-V отображается в средней части окна диспетчера. Чтобы запустить любую из них, кликните 2 раза по ее имени. В окошке, которое откроется после этого, нажмите кнопку «Пуск».

Чтобы виртуальные машины Hyper-v могли подключаться к Интернету, запустите через панель «Действия» диспетчер виртуальных коммутаторов. Выберите в показанном ниже списке тип сети «Внешняя» и нажмите «Создать виртуальный коммутатор». Сети «Внутренняя» и «Частная» предназначены для соединения виртуальных компьютеров между собой, и большинству пользователей не нужны.

На следующей странице обычно ничего менять не требуется, кроме, если хотите, имени подключения. В выпадающем списке «Внешняя сеть» должен быть указан сетевой адаптер физического компьютера, который соединен с роутером или кабелем интернет-провайдера. Ниже должен стоять флажок «Разрешить управляющей ОС предоставлять общий доступ к адаптеру» (т. е. к Интернету).

Кстати, Hyper-v поддерживает не только операционные системы семейства Windows, но и некоторых конкурентов, в частности, Linux и FreeBSD. Полный список всех совместимых с ним платформ, а также условия их использования в среде Windows, приведены на сайте MSDN.microsoft.

Некоторые опции виртуальных машин Hyper-V

Чтобы сделать снимок состояния запущенной гостевой ОС, Откройте верхнее меню ее окна «Действие» и щелкните «Контрольная точка». Либо нажмите комбинацию Ctrl+N.

Доступ к настройкам отдельной виртуальной машины открывается из ее контекстного меню в списке главного окна диспетчера и скрывается за кнопкой «Параметры».

Прочие возможности программы тоже весьма незамысловаты и осваиваются без особого труда.

compconfig.ru

Как из домашнего ПК средствами виртуализации сохранить игровую систему / Habr

Благодаря конкуренции и развитию НТП современные ПК позволяют выполнять множество простых и сложных задач одновременно, например играть и воспроизводить видео на ТВ, рендерить графику и читать новости в интернете, раздавая торренты параллельно, и т.д. и т.п. Многие идут дальше и используют несколько ПК для работы и развлечений. Однако при помощи технологий виртуализации можно с одной стороны расширить возможности своего ПК, а с другой сэкономить, т.к. по сути можно запустить несколько операционных систем на одном железе в одно и то же время.
Эта статья будет повещена настройки хоста именно для использования в «быту», т.е. разговор пойдет о GPU PASSTHROUGH.

Введение


Сперва несколько слов про виртуализацию в целом. Согласно Википедии:
Виртуализа́ция — предоставление набора вычислительных ресурсов или их логического объединения, абстрагированное от аппаратной реализации, и обеспечивающее при этом логическую изоляцию друг от друга вычислительных процессов, выполняемых на одном физическом ресурсе.
Достигается как при помощи приложений (например VirtualBox, VMware) так и на уровне систем, поддерживающих аппаратную виртуализацию (например KVM, ESXi, Hyper-V). В последнем случае потери производительности по сравнению с нативными системами минимальна.

Здесь и далее в статье будет описание настроек системы виртуализации с открытым исходным кодом Proxmox потому что она в меру дружелюбна, есть легкий доступ к консоли через веб форму, а так же базируется на связке Debian + kvm, по которым очень много гайдов и описаний в сети, т.е. документации в т.ч. и на русском языке.

Требования к железу


Нам потребуется:

— процессор и материнская плата с поддержкой VT-x, VT-d от Интел или AMD-Vi, IOMMU от АМД. Не поленитесь и уточните поддерживает ли именно Ваш экземпляр данные требования.

Что касается материнских плат. Категорически не рекомендую гнать железо при посредственной разводке на плате питания. По Z270 и Z390 игнорировать оранжевую зону или оставлять работать в стоке.

  • 2 видеокарты, одну игровую (в сети за меньшее количество проблем при пробросах в виртуальную машину хвалят красных, но лично у меня все получилось с видеокартой от зеленых), вторую для хоста. В моем случае это интегрированная в процессор.
  • 1-2 монитора и кабели к ним, для того чтобы
  • пара комплектов клавиатура + мышь, чтобы было удобно работать и настраивать системы
  • второй ПК или планшет подключенный к локальной сети, что бы сделать настройки через вебформу.

Установка и настройки


Мною было использована следующая игровая конфигурация:

— ПК для хоста конфиг был собран на далеко не лучшей материнской плате, но на англоязычных форумах очень часто хвалят эту фирму за то, что ее железо чаще всего подходит для таких вещей:
Процессор — i7 8700k
Мать — ASRock Z390M Pro4
Видеокарта — INNO3D GeForce GTX 1070 iChill X4
— второй ПК (Мини-ПК Morefine-M1s),
— 2 мыши,
— 1 клавиатуру на хосте, на остальных устройствах использовал софтварную,
— 3 подключения к монитору Dell U2713HM (VGA — для интегрированной видеокарты, HDMI — для GTX1070, на DVI находится Мини-ПК. Переключения между видеосигналами осуществлял через меню монитора)

0й этап — На материнской плате включаем VT-d:Enable, Intel Vitrualization Technology:Enable, Primary Graphx adapter:VGA, Above 4G Decoding:Enable. Если есть возможность обязательно выбираем основным графическим адаптером тот, на котором будет работать хост, т.е. более слабую видеокарту и переключаемся на нее.

1й этап — Устанавливаем Proxmox на хост. Для этого:

1.1. Скачиваем образ диска с официального сайта

1.2. Пишем образ на флешку при помощи специальных программ

1.3. Загружаемся с флешки, и производим инсталляцию с указанием на какой жесткий диск ставить, вводим пароль для будущего пользователя root, а так же настройки сети прописываем явно.

2й этап — Подключаемся по сети через веб интерфейс при помощи второго ПК или
планшета (в моем случае это был Мини-ПК) к хосту и настраиваем Proxmox по этому гайду через текстовую консоль.

Есть маленький нюанс, который возможно обходится программно, но я решил что поменять предыдущую материнскую плату будет проще, т.к. плата от Gigabyte этому требованию не соответствовала:

1) Run the «dmesg | grep ecap» command.

2) On the IOMMU lines, the hexadecimal value after «ecap» indicates whether interrupt remapping is supported. If the last character of this value is an 8, 9, a, b, c, d, e, or an f, interrupt remapping is supported. For example, «ecap 1000» indicates there is no interrupt remapping support. «ecap 10207f» indicates interrupt remapping support, as the last character is an «f».

Interrupt remapping will only be enabled if every IOMMU supports it.

Если условие выполняется — продолжаем.

Итак настройки:

Открываем файл командой из консоли (символ двойной решетки вводить не надо, так я буду разделять в тексте команды от того что необходимо внести в файл)

## nano /etc/default/grub

производим замену
GRUB_CMDLINE_LINUX_DEFAULT="quiet"

для процессоров Интел
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

для процессоров АМД
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"

следом даем команду
## update-grub

после чего перезагружаем хост через веб интерфейсФайл grub для ПК в статье
# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="Proxmox Virtual Environment" GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on" GRUB_CMDLINE_LINUX="" # Disable os-prober, it might add menu entries for each guest GRUB_DISABLE_OS_PROBER=true # Uncomment to enable BadRAM filtering, modify to suit your needs # This works with Linux (no patch required) and with any kernel that obtains # the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...) #GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef" # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Disable generation of recovery mode menu entries GRUB_DISABLE_RECOVERY="true" # Uncomment to get a beep at grub start #GRUB_INIT_TUNE="480 440 1" 


Добавляем в файл конфигурации загрузку необходимых драйверов
## nano /etc/modules
# /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. vfio vfio_iommu_type1 vfio_pci vfio_virqfd 

Прописываем в консоли
## lspci

На экран будет выведен список устройств доступных для проброса, находим интересующий нас блок с видеокартой, в моем случае это 2 устройства в группе видеокарта и звук по адрсам 01:00.0 и 01:00.1, поэтому я прописываю сразу группу.
## nano /etc/pve/qemu-server/vmid.conf
hostpci0: 01:00

Прописываем в консоли команду для того что бы определить модель и ее id

## lspci -n -s 01:00
01:00.0 0300: 10de:1b81 (rev a2)
01:00.1 0403: 10de:10f0 (rev a1)

Теперь правим файл под нашу видеокарту (в Вашем случае id будут иные)

## nano /etc/modprobe.d/vfio.conf
options vfio-pci ids=10de:1b81,10de:10f0

Заносим в черный лист драйвера
## nano /etc/modprobe.d/blacklist.conf
blacklist radeon blacklist nouveau blacklist nvidia 

Теперь создаем через веб интерфейс и правим через консоль файл настроек виртуальной машины. Здесь строка «args:» решает, т.к. без нее драйвер видеокарты обнаружит виртуализацию, но путем подмены наименования оборудования, точнее hv_vendor_id=willitwork, мы снимаем проблему с ошибкой 43, которую может выдать видеодрайвер устройства. Здесь есть номер виртуальной машины в proxmox используемый в качестве имени.
## nano /etc/pve/qemu-server/<vmid>.conf
args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=willitwork,kvm=off' ..... bios: ovmf ..... hostpci0: 01:00.0,pcie=1 ..... machine: q35 

Файл настроек виртуальной машины для ПК в статье
args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=willitwork,kvm=off' bios: ovmf boot: dcn bootdisk: sata0 cores: 8 cpu: host hostpci0: 01:00.0,pcie=1 ide2: local:iso/ru-en_windows_10_1803_x86-x64.iso,media$ machine: q35 memory: 16384 net0: e1000=EA:20:FA:6A:D6:A0,bridge=vmbr0 numa: 0 ostype: win10 sata0: local-lvm:vm-100-disk-0,size=120G scsihw: virtio-scsi-pci smbios1: uuid=751edeca-d249-4c0d-9ded-b59d929df0f1 sockets: 1 usb0: host=1-8.4 usb1: host=1-8.3 vmgenid: b75aeb27-3102-458d-8e23-18cd27796dc1 


Теперь перезагружаем хост и запускаем виртуальную машину.

3й этап — Через Удаленную видеоконсоль установим Windows и драйвера. В моем случае Windows распознал сперва видео драйвер proxmox для работы через видеоконсоль, потом нашел драйвер для GTX1070, а после обновления через интернет (принудительный поиск драйверов в сети) скачал и установил нужный мне драйвер для игровой видеокарты.

4й этап — Перезапустим Виртуальную машину, переключаем отображение видеопотока на мониторе на разъем видеокарты и… в моем случае все заработало сразу, никаких ошибок 43… При этом рабочий стол определяется как №2.

я попробовал запустить видео Blue-ray — без проблем, задержек и фризов с видеорядом нет, запустил Warhammer online — он завелся и в PvP играть было комфортно, запустил GTA5 у мя выскочила сюжетка, вполне комфортно пострелял. Визуально потерь в производительности нет.

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

ide0: volume=/dev/sda

или
sata0: volume=/dev/sda

Конкретно какой именно sda/sdb/sdc/и т.п. можно уточнить в веб интерфейсе.

P.S.

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

00:1f.0 ISA bridge: Intel Corporation Device a305 (rev 10)
00:1f.3 Audio device: Intel Corporation Device a348 (rev 10)
00:1f.4 SMBus: Intel Corporation Device a323 (rev 10)
00:1f.5 Serial bus controller [0c80]: Intel Corporation Device a324 (rev 10)
00:1f.6 Ethernet controller: Intel Corporation Device 15bc (rev 10)

Т.е. звук или через видеокабель на монитор или внешняя звуковая карта. Порты USB пробрасываюся без проблем. К сожалению на текущий момент нерешаемо. Есть вариант удаленного подключения с другого ПК к игровому, через RDP или SPICE. В этом случае все будет нормально

Не всегда проброс видеокарты проходит идеально как в моем случае, мешается или ошибка 43 или что-то еще. Здесь описаны и другие настройки, которые могут помочь. В идеале нужно искать в сети удачные сетапы и ориентироваться на них, каким для меня явился этот, кроме того есть еще список железа, позволяющий достичь того же что и я, но он не полный.

UPDATE1:
Несколько замечаний по переферии:
1. Как прокинуть в ВМ клавиатуру с порта PS/2:
сперва вводим комманду в консоли
## dmesg | grep input
Ищем в тексте запись навроде

input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input2

Запоминаем цифру 2 в конце, она может быть и другой. Потом в файл настроек ВМ в строку добавляем:
args: -object 'input-linux,id=kbd,evdev=/dev/input/event2,grab_all=on,repeat=on'
вставляя 2 в конец evdev=/dev/input/event2

Для мыши — аналогично.

2. По USB:
Что касается USB устройств там все проще, устройства прокидываются прямо из веб формы по ID или же целиком можно прокинуть порт. Однако есть нюанс — если Вы по каким-либо причинам не можете как и я прокинуть аудиоустройство в ВМ, т.к. оно содержится в группе с ключевыми контроллерами без которых хост не может полноценно работать, то проброс порта/устройства через USB решает эту проблему, но звук может начать отваливаться через некоторое время работы, шипить/гудеть и прочие… прочее, в то же время на нативной системе все будет замечательно. В этом случае необходимо пробрасывать не порт/устройство, а сам контроллер USB как PCIe устройство по методу указанному в статье. И все резко наладится. Но в то же время через хост после запуска ВМ с такими настройками пробросить другие устройства с этого контроллера больше не получится.

3. Жесткие диски можно пробрасывать как через проброс контроллера как PCIe устройство по методу указанному в статье (не рекомендую пробрасывать контроллер интегрированный в материнскую плату, только подключенные к PCIe), либо напрямую:
заходим в
## cd /dev/disk/by-id
через dir смотрим листинг…
копируем строки вида ata-WDC_WD40EFRX-68WT0N6_WD-WCC4E1АС9SХ9, в которой прописан интерфейс подключения, марка и номер серии жесткого диска. Затем открываем Файл конфигурации ВМ и пишем:
sata1: volume=/dev/disk/by-id/ata-WDC_WD40EFRX-68WT0N6_WD-WCC4E1АС9SХ9
и все работает, при этом учитывайте, что sata0-sata5, т.е. для одной ВМ число подключаемых таким образом дисков, включая виртуальных, не может превышать 6шт.

UPDATE 2
1. На этом видео видно, что для обхода ошибки 43 помогает обманка со следующей строкой в конфигурационном файле ВМ:

cpu: host, hidden=1, flags=+pcid

www.youtube.com/watch?v=fgx3NMk6F54
Однако там проброс ВК организован с использованием rom файла, что отличается от моего варианта.

2. В связи с тем, что была обновлена версия ProxMox с 5й на 6ю, то что бы система работала с UEFI БИОСом, то необходимо добавить в оборудовании ВМ EFI-диск, иначе не взлетит и не заведется, на 5й версии ProxMox'а этой фичи не было.

P.S.
вот так это выглядит вживую (снято на тапок, освещение тоже не очень)
www.youtube.com/watch?v=wjlmWHJiEug

habr.com

Сравнение виртуальных машин — Википедия

Название Создатель Процессор машины-носителя Гостевой процессор ОС машины-носителя Официально поддерживаемые гостевые ОС Поддержка SMP в гостевых ОС Поддержка любой ОС Поддержка драйверов в гостевой ОС Принцип действия Лицензия Типичное применение Скорость работы гостевой ОС в сравнении с ОС носителя
bhyve FreeBSD AMD64 Intel x86, AMD64 FreeBSD, OmniOS , SmartOS FreeBSD, FreeNAS, pfSense, OpenBSD, Linux, Windows Есть Нет N/A Паравиртуализация, Аппаратная виртуализация BSD Изоляция виртуализированных серверов Близка к производительности системы
Bochs Kevin Lawton [1] Intel x86, AMD64, SPARC, PowerPC, Alpha, MIPS, ARM Intel x86, AMD64 Windows, Linux,
OS X, IRIX, AIX, BeOS, Android
DOS, Windows, xBSD, Linux, Есть Есть ? Эмулятор LGPL Увлечение, разработка, безопасное низкоуровневое исследование и отладка, дизассемблирование (в т.ч. операционных систем) Очень низкая
Colinux Dan Aloni и другие [2] Intel x86 Такой же, как и у родительской Linux, Windows NT (NT, 2000, XP, Server 2003) Linux ? Нет Некоторые Портирование GPL version 2 Изоляция Без потерь
AlphaVM-Free EmuVM x86, x86-64 DEC Alphaserver Windows, Linux, FreeBSD OpenVMS, Tru64 Нет Нет ? ? freeware Исследования, увлечение Медленная
AlphaVM-Pro EmuVM x86-64 DEC Alphaserver Windows 7x64, Linux OpenVMS, Tru64 Да Нет ? ? Проприетарная Бизнес, исследования Без потерь
CHARON-AXP Stromasys x86-64 DEC Alphaserver Windows XP/2003/2008 x64 OpenVMS, Tru64 Нет Нет ? ? Проприетарная Исследования, увлечение Медленная
CHARON-VAX Stromasys x86, IA-64 DEC Alphaserver Windows XP/2003/2008 x64 OpenVMS Нет Нет ? ? Проприетарная Исследования, увлечение Медленная
Denali University of Washington Intel x86 Intel x86 Denali Ilwaco, NetBSD Нет Нет ? Паравиртуализация и портирование ? Исследования Медленная
DOSBox Peter Veenstra, Sjoerd и сообщество [3] Intel x86, AMD64, SPARC, PowerPC, Alpha, MIPS Intel x86 Linux, Windows, Mac OS Classic, Mac OS X, BeOS, FreeBSD, OpenBSD, Solaris, QNX, IRIX, Kolibri, Android Внешне эмулирует оболочку DOS Нет Нет Есть Эмуляция с помощью динамической трансляции или интерпретации GPL Исполнение приложений под DOS, в частности, игр Крайне низкая. Скорость работы никак не связана с тем, какое приложение исполняется
DOSEMU DOSEMU Intel x86 Intel x86 Linux DOS Нет Есть Есть Аппаратная виртуализация GPL version 2 Полная поддержка приложений Без потерь
FreeVPS PSoft Intel x86, AMD64 Совместимый Linux Различные дистрибутивы Linux Есть Нет n/a Виртуализация на уровне ОС GPL version 2 Хостинг, разделение сервисов, безопасность Без потерь
GUSS guss-hackers Intel x86 Intel x86 Linux Linux ? ? ? ? GPL ? ?
Icore virtual accounts iCore Software Intel x86 Совместимый Windows Windows есть нет N/A Виртуализация на уровне ОС Проприетарная Безопасность, пробование нового ПО, совместное использование компьютера несколькими людьми. Без потерь
Integrity Virtual Machines Hewlett-Packard Itanium Itanium HP-UX HP-UX (анонсирована поддержка Linux, Windows, OpenVMS) Есть (4-way) Есть Необязательно Виртуализация Проприетарная Консолидация серверов Близка к производительности системы-носителя

(не нужно ставить дополнительные гостевые сервера)

Jail FreeBSD Intel x86, AMDx64 Совместимый FreeBSD FreeBSD Есть Нет N/A Виртуализация на уровне ОС BSD Хостинг, разделение сервисов, безопасность Без потерь
KVM Red Hat Процессор Intel/AMD с поддержкой аппаратной виртуализации Совместимый Linux Linux, HURD, Windows, xBSD, Darwin, QNX, MINIX, Haiku, Amiga Research OS, ReactOS, Plan 9, MS DOS, Free DOS, Solaris[1] Есть Нет N/A Паравиртуализация, Аппаратная виртуализация GPL2 Изоляция виртуализированных серверов Близка к производительности системы
Linux-VServer Linux-VServer Intel x86, AMD64, IA-64, Alpha, PowerPC/64, PA-RISC/64, SPARC/64, ARM, S/390, SH/66, MIPS Совместимый Linux Различные дистрибутивы Linux Есть Нет N/A Виртуализация на уровне ОС GPL version 2 Хостинг, разделение сервисов, безопасность Без потерь
Mac on Linux Mac On Linux PowerPC PowerPC Linux Mac OS X, Mac OS 7.5.2 to 9.2.2, Linux ? ? ? Виртуализация GPL Без потерь
OpenVZ Проект сообщества, поддерживаемый Parallels, Inc. Intel x86, AMD64, IA-64 Intel x86, AMD64, IA-64 Linux Различные дистрибутивы Linux Есть Нет Совместимый Виртуализация на уровне ОС GPL Изоляция виртуализированных серверов Без потерь
Parallels Workstation Parallels, Inc. Intel x86, Intel VT-x Intel x86 Windows, Linux, Mac OS X (Intel version) Windows, Linux, FreeBSD, OS/2, eComStation, MS-DOS, Solaris Нет Есть Есть Виртуализация, легковесный гипервизор Проприетарная Увлечение, разработка, тестирование, рабочая станция Близка к производительности системы-носителя
PearPC Sebastian Biallas и другие [4] x86, AMD64, PowerPC PowerPC Windows, Linux, OS X, NetBSD OS X, Darwin, Linux Нет Есть Есть Эмуляция с помощью динамической трансляции GPL Увлечение, разработка, рабочая станция 10 % производительности системы-носителя
QEMU Fabrice Bellard и другие Intel x86, AMD64, IA-64, PowerPC, Alpha, SPARC 32 and 64, ARM, S/390, M68k Intel x86, AMD64, ARM, SPARC 32 and 64, PowerPC, MIPS Windows, Linux, OS X, FreeBSD, BeOS Список постоянно меняется [5] (недоступная ссылка) Есть Есть ? Динамическая рекомпиляция GPL/LGPL Увлечение, разработка, рабочая станция, сервер От 10 до 20 % скорости системы-носителя [6] (недоступная ссылка)
QEMU с модулем kqemu Fabrice Bellard Intel x86, AMD64 Такой же, как и у системы-носителя Linux, FreeBSD, Windows Список постоянно меняется [7] (недоступная ссылка) Нет Есть ? Виртуализация GPL Увлечение, разработка, рабочая станция, сервер Близка к производительности системы-носителя
QEMU с модулем qvm86 Paul Brook x86 x86 Linux, NetBSD, Windows Список постоянно меняется Нет Есть ? Виртуализация GPL Увлечение, разработка, рабочая станция, сервер Близка к производительности системы-носителя
View-OS Renzo Davoli и другие [8] Intel x86, PowerPC, AMD64 (in progress) Такой же, как и у системы-носителя Linux 2.6+ Исполняемые файлы Linux Есть Нет N/A Частичная виртуализация с помощью перехвата системных вызовов GPL version 2 Безопасность, изоляция, тестирование, мобильность Близка к производительности системы-носителя (лучше с патчем ptrace ядра)
User-mode Linux Jeff Dike и другие Intel x86, PowerPC Такая же, как и у системы-носителя Linux Linux ? Нет ? Портирование GPL version 2 Изоляция Низкая
Virtual PC 2004 Microsoft Intel x86 Intel x86 Windows DOS, Windows, OS/2 Нет Есть Есть Виртуализация (перехват гостевых вызовов) Проприетарная (бесплатная с июля 2006 года) Увлечение, разработка, рабочая станция Практически без потерь, если используются расширения Virtual Machine additions
Virtual PC 2007 Microsoft Intel x86, x64 Intel x86 Windows Vista (Business, Enterprise, Ultimate), XP Pro, XP Tablet PC Edition DOS, Windows, OS/2, Linux (SUSE, Xubuntu), OpenSolaris (Belenix) Нет Есть Есть Виртуализация (перехват гостевых вызовов) Проприетарная (бесплатная с июля 2006 года) Увлечение, разработка, рабочая станция Практически без потерь, если используются расширения Virtual Machine additions
VirtualPC 7 for Mac Microsoft PowerPC Intel x86 OS X Windows, OS/2, Linux Нет Есть Есть Динамическая рекомпиляция (поддерживается перехват гостевых вызовов) Проприетарная Увлечение, разработка, рабочая станция Низкая
VirtualBox Innotek, подразделение Sun Microsystems (в 2010 Sun куплена Oracle) Intel x86, AMD64 Такой же, как и на машине-носителе. ver. 5.0.14 MS Windows, Linux, Solaris, OpenSolaris, Mac OS X, FreeBSD DOS, OS/2, MS Windows, Linux, Solaris, OpenSolaris, OpenBSD, FreeBSD, NetBSD, Netware, QNX, L4, Mac OS X Есть Есть Есть Динамическая рекомпиляция (основана на QEMU) Свободная и проприетарная версии (GPL, PUEL) Увлечение, разработка, тестирование Практически без потерь, если используются расширения
VirtualLogix VLX VirtualLogix ARM, DSP C6000, Intel x86, Intel VT-x и VT-d, PowerPC Такая же, как и у системы-носителя Нет Linux, C5, VxWorks, Nucleus, DSP/BIOS and proprietary OS Есть Есть Есть Паравиртуализация, портирование, аппаратная виртуализация Проприетарная Встроенные системы реального времени: мобильные телефоны, сетевые устройства и т.д. Близка к производительности системы-носителя
Microsoft Virtual Server 2005 R2 Microsoft Intel x86, AMD64 Intel x86 Windows 2003, XP Windows NT, 2000, 2003, 2008, XP, Vista, Linux (Red Hat and SUSE) Нет Есть Есть Virtualization (перехват гостевых вызовов) Проприетарная (Free) Консолидация серверов Близка к производительности системы-носителя при установленных дополнениях для Virtual Machine
Hyper-V Microsoft Intel x86-64 (обязательно Intel VT-x; VT-d требуется лишь в Hyper-V 2012 для использования SR-IOV), AMD64 (обязательно AMD Pacifica) Intel x86, AMD64 Нет (также может работать под Windows Server 2008 (x64)) Windows NT (до Windows 8/Server 2012R2 - с ограничениями), Linux (Red Hat (CentOS), SUSE, Debian). Поколение 2 поддерживает только виртуализацию x86-64. Да (могут быть ограничения) Есть Есть Аппаратная виртуализация Проприетарная (Free) Консолидация серверов, организация непрерывной работы, тестирование Близка к производительности системы-носителя / без потерь.
Virtuozzo Parallels, Inc. Intel x86, IA-64, AMD64 Intel x86, IA-64, AMD64 Linux & Windows Различные дистрибутивы Linux; Windows Есть Нет Совместимый Виртуализация на уровне ОС Проприетарная Консолидация серверов, восстановление после сбоев, сервис-провайдеры Без потерь
VMware ESX Server 2.5.3 VMware Intel x86, AMD64 Intel x86 Нет Windows, RedHat, SuSE, FreeBSD, Netware Есть

(Add-on) (2 way)

Есть Есть Виртуализация x86 Проприетарная Консолидация серверов уровня предприятия, организация непрерывной работы, разработка/тестирование Близка к производительности системы-носителя
VMware ESX Server 3.0 VMware Intel x86, AMD64 Intel x86, AMD64 Нет Windows, RedHat, SuSE, Netware, Solaris Есть

(дополнительно) (до 4-ч)

Есть Есть Виртуализация x86 Проприетарная Консолидация серверов уровня предприятия, организация непрерывной работы, разработка/тестирование Близка к производительности системы-носителя
VMware ESXi 5.5 vSphere ESXi Hypervisor Intel x86, AMD64 Intel x86, AMD64 Нет Windows, RedHat, SuSE, FreeBSD, Netware Есть Есть Есть Аппаратная виртуализация Проприетарная Консолидация серверов уровня предприятия, организация непрерывной работы, разработка/тестирование Близка к производительности системы-носителя
VMware Server VMware Intel x86, AMD64 Intel x86, AMD64 Windows, Linux DOS, Windows, Linux, FreeBSD, Netware, Solaris, Virtual Appliances [9] Есть (с ограничениями) Есть Есть Виртуализация x86 Проприетарная (Free) Консолидация серверов, разработка, тестирование Практически без потерь, если используются расширения
VMware Workstation 15.5.1 VMware Intel x86, AMD64 Intel x86, AMD64 Windows, Linux DOS, Windows, Linux, FreeBSD, Netware, Solaris, Virtual Appliances [10] Есть (с ограничениями) Есть Есть Виртуализация x86 Проприетарная Технические специалисты, разработчики, тестировщики, тренеры Практически без потерь, если используются расширения
VMware Player VMware Intel x86, AMD64 Intel x86, AMD64 Windows, Linux DOS, Windows, Linux, FreeBSD, Netware, Solaris, Virtual Appliances [11] Нет Есть Есть Виртуализация x86 Проприетарная (Free) Технические специалисты, разработчики, тестировщики, тренеры (заранее подготовленная машина) Практически без потерь, если используются расширения
SimNow AMD AMD64 AMD64 Linux (64bit), Windows (64bit) Linux, Windows (32bit и 64bit) Есть Есть Есть Кеширование кода, виртуализация Проприетарная (AMD) Разработка, сервер Почти в 10 раз медленней
Solaris Zones Sun Microsystems OpenSolaris Intel x86, AMD64, UltraSPARC, SPARC64 Совместимая Solaris Solaris, Linux (BrandZ) Есть Нет - Виртуализация на уровне ОС CDDL (Free) бизнес, разработка, консолидация серверов, хостинг, разделение сервисов, безопасность, изоляция Близка к производительности системы-носителя
SVISTA 2004 Serenity Systems International Intel x86 Intel x86 Windows, OS/2, Linux, FreeBSD ? Нет ? ? ? Проприетарная Увлечение, разработка, рабочая станция ?
TRANGO TRANGO Systems, Grenoble, France ARM, XScale, MIPS, PowerPC Paravirtualized ARM, MIPS, PowerPC none: bare metal execution, Linux or Windows as dev. hosts Linux, eCos, µC/OS-II Есть Есть Есть Паравиртуализация, портирование, аппаратная виртуализация Проприетарная Мобильные телефоны, сетевые устройства и т.д. Без потерь
Xen Кембриджский университет, Intel, AMD Intel x86, AMD64, ((ведётся портирование на PowerPC и IA-64)), ARM[2] Такая же, как у системы-носителя FreeBSD, NetBSD, Linux Linux, NetBSD, FreeBSD, OpenBSD, Windows XP & 2003 Server (требует версию не ниже 3.0 и процессор, поддерживающий технологию Vanderpool или Pacifica), Plan 9 Есть Есть Не требуются Паравиртуализация, портирование или аппаратная виртуализация GPL консолидация серверов, хостинг, разделение сервисов, безопасность, изоляция Без потерь
z/VM IBM z/Architecture z/Architecture и предшественники Никакая или такая же. Множество уровней вложенности, например, VM/ESA работает внутри z/VM 4.4, которая работает внутри z/VM 5.2, которая работает внутри z/VM 5.1. Linux on zSeries, z/OS, z/VSE, z/TPF, z/VM, MUSIC/SP и предшественники Есть, реальная и виртуальная (гостевая система может получить больше процессоров, чем есть), динамическое назначение процессоров Есть Есть, но не обязательно Уникальная аппаратная виртуализация Проприетарная Универсальная Обычно работают тысячи виртуальных машин на одной системе, одна или более на каждого пользователя
Название Создатель Процессор машины-носителя Гостевой процессор ОС машины-носителя Официально поддерживаемые гостевые ОС Поддержка SMP в гостевых ОС Поддержка любой ОС Поддержка драйверов в гостевой ОС Принцип действия Лицензия Типичное применение Скорость работы гостевой ОС в сравнении с ОС носителя

ru.wikipedia.org

Некоторые особенности использования виртуальных машин для новичков / Habr

Виртуальные машины, такие как Virtualbox, используются для эмуляции виртуальное оборудование и запуска нескольких операционных систем на компьютере. Чем лучше будет у вас CPU и чем больше будет оперативной памяти, тем быстрее будут выполнятся виртуальные машины на вашем компьютере.
Я предлагаю несколько советов которые помогут вам сэкономить время при начальной настройке виртуальных машин. Это будет полезно для работы с виртуальными машинами VirtualBox, VMware, Parallels, или любой другой.

Обязательно установите дополнения гостевой ОС VirtualBox или VMware Tools

После установки гостевой операционной системы в виртуальной машине, первое, что нужно сделать, это установить программное обеспечение виртуальной машины -«Дополнения гостевой ОС для VirtualBox» или VMware Tools для VMware". Эти пакеты включают в себя специальные драйверы, которые помогут вашей гостевой операционной системе работать быстрее на используя аппаратные средства вашей основной машины.

Установка пакета проста — в VirtualBox, после загрузки гостевой операционной системы, нажмите кнопку меню Устройства и выберите «Install Guest Additions». Если вы используете VMware, выберите «Install VMware Tools» в меню Virtual Machine. Следуйте инструкциям на экране для завершения установки — если вы используете Windows в качестве гостевой операционной системы, то это будет аналогично установке любого другого приложения.

Убедитесь, что вы имеете самую последнюю версию Guest Additions — если вы видите уведомление, что доступно обновление для Guest Additions или VMware Tools, вы должны установить его.

Создание фиксированного размера дисков при первоначальной настройке

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

Например, если вы создаете новую виртуальную машину с динамически выделяемым диском с максимальным размером 30 Гб, это не займет до 30 Гб места на жестком диске сразу.После установки операционной системы и программ, диск может только занять до 10 Гб. По мере добавления файлов на виртуальном диске, он будет расширяться до максимального размера в 30 Гб.

Это может быть удобно — каждая виртуальная машина не будет занимать неоправданно много места на вашем жестком диске. Тем не менее, это медленнее, чем создание фиксированного размера диска (диск с заранее выделенным местом). При создании фиксированного размера диска, все 30 Гб, будет занято немедленно на вашем компьютере.

Здесь есть компромисс — фиксированный размер диска занимает больше места на жестком диске, но работает с виртуальным жестким диском быстрее. Вы также избавитесь от фрагментации файла — место будет занято большим блоком вместо того, чтобы добавлять по всему диску более мелкие куски.

Исключите каталог виртуальных машин в вашем антивирусе

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

Чтобы ускорить процесс, вы можете добавить свой виртуальный каталог машины в список исключений антивирусного автора. Как только он находится в списке, ваш антивирус будет игнорировать все файлы в этом каталоге.

Выделите больше памяти

Виртуальные машины любят много виртуальной памяти. Microsoft рекомендует 2 Гб RAM для 64-битной Windows 7, и эта рекомендация относится и к Windows 7 x32, когда он работает в виртуальной машине. Если вы работаете большими приложениями в виртуальной машине, вы можете выделить более 2 Гб оперативной памяти.

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

Выделите больше процессоров

Если у Вас компьютер с несколькими процессорами или ядрами, вы можете выделить дополнительные процессоры для вашей виртуальной машины из окна настроек VM. VM с двухъядерным (или четырехъядерным) процессором будет более шустро реагировать.

Если вы собираетесь инсталлировать ОС семейства MS-Windows и в будущем чтобы можно было использовать больше ядер при инсталляции указывайте 2 ядра для того чтобы поставился корректный HAL, после инсталляции вы можете выключить машину и поставить 1 ядро по умолчанию для повседневного использования. Но для будущего вы всегда сможете добавить ядра без деинсталляции ОС. Linux VM может динамически определять любое количество ядер при загрузке ОС.

Настройте параметры видео

Тонкая настройка параметров видео и выделение большего объема видеопамяти поможет также улучшить скорость вашей виртуальной машины. Например, включение функции 2D ускорение в VirtualBox улучшает воспроизведение видео в виртуальных машинах, включение 3D-ускорения позволит вам использовать некоторые 3D-приложения.

По большому счету нужно минимизировать использование 3D например ОС Windows 7 — отключив Aero.

Убедитесь, что функции Intel VT-x или AMD-V включены

Intel VT-x и AMD-V являются специальными расширениями процессора, которые улучшают скорость виртуализации. Новые Intel и AMD процессоры обычно включают в себя эти функции. Тем не менее, некоторые компьютеры не включают автоматически VT-x или AMD-V — вам придется включить этот параметр в BIOS вашего компьютера.

Чтобы определить, поддерживает ли Ваш Intel процессор расширение Intel VT, воспользуйтесь утилитами показывающими системную информацию. Если ваш процессор поддерживает эту функцию, но опция недоступна в вашей виртуальной машине, вы должны в BIOS вашего компьютера включить эту функцию. Этот параметр обычно включен по умолчанию в материнских платах с процессорами AMD.

Поместите файлы виртуальной машины на другой диск

Производительность диска может ограничить скорость вашей виртуальной машины. Размещение файлов виртуальной машины на отдельном физическом диске или не на системном диске — может улучшить производительность. Ваша виртуальная машина и система не будут конкурентно читать и писать с одного диска.

Однако, вы не должны запускать виртуальную машину с внешнего диска (USB) — это будет гораздо медленнее.

Еще несколько полезных советов

  1. Выделение дополнительных процессоров редко бывает хорошей идеей. Используйте 1 CPU для настольных ОС.
  2. Постарайтесь не использовать графические гипервизоры для серверных ОС.
  3. Не выделяйте работающим VM Больше ядер чем есть на Вашем компьютере.

habr.com

Легкий способ играть в старые игры с эмуляцией 3dfx / Habr

Внимание: эта статья относится только к людям старше двадцати лет. Если вы младше — смело закрывайте вкладку браузера, такого удовольствия от нее вы не получите.
Также про это мог кто-то знать, но почему-то я не нашел никаких материалов о том, насколько это круто работает. Если кто-то может меня дополнить — милости прошу.
Моя идея в том, чтобы дать счастье играть в старые игры максимально большому кругу лиц, сделать это максимально простым и качественным. По моему я нашел самый лучший способ, без больших усилий, в максимальном качестве играть в классические игры где угодно и когда угодно. Также быстро и просто как установить современную игру и играть.
Если для чего-то нужны очень серьезные знания — не все это оценят. А играть в старые игры становится все сложнее, а для некоторых — почти совсем невозможно.
Но не теперь.

Если вы минусуете — укажите причину, мне это важно.
Если вы хотите сразу узнать что делать — пролистайте до последнего абзаца.

После нового года на меня нахлынула волна ностальгии, такое со мной часто бывает, но в этот раз прижало очень сильно. До этого у меня были несколько попыток оживить моих друзей детства, но по разным причинам они оканчивались без особого успеха. А тут мне еще попался первый, очень редкий пилотный выпуск Twisted Metal, самая первая часть выпущенная партией 5000 экземпляров только для Японии. Да-да, для компьютера, для винды 95! Под 98й тоже обещала работать, тем более 95й у меня не было и с 98й я как-то лучше дружу. Только я собрал себе мой ностальгический комп, поставил некоторые игры, как его окупировала моя девушка, ей видети-ли под 98й виндой последний фотошоп не работает и вообще все не так, «что за фигню ты тут установил, вообще это мой комп, у тебя вон новый стоит».
Счастье было недолгим. На моем рабочем паровозе, разогнанном по самое не балуйся, что самое печальное в мои любимые игры я поиграть не могу, так как с виндой 7 х64 дружат единицы игр, даже со всеми профилями совместимости и фиксами, а новые игры радости так не доставляют. Ок, поставил я ей ХР, на ней с профилями совместимости завелись все игры, даже та редкость, TwistedMetal под 95ю винду! Радость была еще более недолгой, так как моя радость то ли что-то намудрила с драйверами из-за своего фотошопа, то ли установила как обычно фиг знает что фиг знает зачем, но из моей коллекции стали запускаться только пара игр. Хоть стой хоть плачь. Третий компьютер чисто для игр в квартире ставить банально некуда.

Долго эксперементировал с виртуалками, некоторые якобы поддерживали полноценное 3D ускорение, но на деле шли недели бесплотных усилий, всё или не работало, или работало нестабильно. Про удовольствие от игры я практически забыл, просто продолжал копать в этом направлении.

Следующей моей «находкой» стал образ 95й винды под досбокс, с эмуляцией Voodoo!
Нашел я его тут, случайно, в комментариях нашел ссылку на DOSBox от ykhwongа с предустановленной русской Windows 95 OSR2 + DirectX6, и последними дровами для виртуальной Voodoo, нашел провозившись до этого несколько месяцев с другими комбинациями операционок и виртуальных машин:
osvirtual.net/ru/microsoft-windows-95-with-software

Радости было много, но опять не долго музыка играла. Свой CD-ROM туда не пробросить, многие игры требуют диск или не устанавливаются из папки на HDD, а на то чтобы установить туда DaemonTools у меня ушел практически месяц, перепробовал я и другие виртуальные приводы, толку было мало. Не буду говорить что он требовал и что я устанавливал и как, чтобы не сбивать вас моим опытом, скажу только что нужна версия 347, она существует в интернете, с разными размерами файла установки, с разной работоспособностью и по ходу установки требует доустановить еще 3-4 программы. Если кто-то проделает этот путь и получит стабильную систему — я буду очень рад послушать как он это сделал. Также могу рассказать что делал я и дам все материалы что у меня есть.
Так или иначе, довольный, я смог получить работающий образ системы с DT, смог установить несколько игр… И тут меня ждало разочарование. Ни одна игра не играбельна, простите за каламбур. Во многих есть заставки, почти во всех тормозят меню, ни одна не смогла проработать дольше пары секунд, потом или вылет с обращением в не ту память, или тихая смерть. Опыты с настройками досбокса ничего не дали. Опять же, может вам повезет больше и этот образ рабочий, я просто прекратил все попытки найдя тот способ о котором хочу рассказать, он в миллионы раз проще.

Дальше я пытался выжать все что можно из 98й винды, работала чуть стабильнее но опять же 99% неиграбельно или выглядит очень не айс. Виртуалок испробовал много.

Затем вышел новый релиз vmware в котором они хвастались своей поддержкой 3D в виртуальной машине. Как мне показалось, все это проигнорировали, как и я… почти.
Винда 98 ничем опять не порадовала — графический адаптер виртуалки в ней есть, простейшие игры как-то работают, но DirectX 5.0-9.0 упорно говорят что видео адаптера нет, гуляйте.

И тут мне краем глаза попался полный обзор от vmware – они и не обещали поддержку нормального 3D везде! Только начиная с ХР! А большего нам и не надо. Для 99% игр есть файлы совместимости которые позволят им запускаться под ХР. И туда же можно до кучи поставить досбокс чтоб было всё в одном месте. Это решает все проблемы с новыми компьютерами! Плюс эта система теоретически сможет жить вечно. Если не ставить ничего кроме игр, делать ее бэкапы (мой бэкап ХР SP3 + Need For Speed 1-5 в полных версиях весит 1! DVD в архиве и 7.5Гб в рабочем виде образа vmware — что почти незаметно для многотерабайтника винта) — твое счастье будет всегда с тобой.
Все было бы хорошо, но чего-то нехватало. В моем компьютерном зале в детстве стояло много компьютеров, но почему-то только за один из них была очередь длиннее чем сейчас за новыми айфонами… там было мелким шрифтом на стене написано возле каждого компа что у него за железо, вот и у этого было все как у всех, кроме одной строчки — у всех было написано Riva TNT, а у него — Voodoo!
Кто знает о чем я, тот оценит.
Даже если у игры была версия Direct3D наравне с Voodoo, они никогда даже рядом не стояли.
Раньше я не особо заморачивался, играл и играл, но когда впервые увидел КАК отличается мой любимый Need For Speed 3 и Counter-Strike 1.6, как и десятки других игр, я надолго пополнил очередь к этому компьютеру. Это казалось магией — все другие картинки выглядели на его фоне доисторическими и страшными. Видели бы вы это все моими глазами.
Так или иначе, в этой моей находке нашлось место и для Voodoo. Нет, я ее не купил, да она и не заработает сейчас в виртуалке без больших усилий.
Огромное спасибо парням из www.zeus-software.com — они сделали это возможным, быстро отвечают на вопросы и быстро исправляют баги, которых и так почти нет.
Когда я сделал это, я почти плакал. Оргазм глазами, по другому я это не могу назвать, по коже бегут мурашки от кайфа — как будто заглянул в свои воспоминания и там все осталось в точности так же.
Мошки летящие в экран в NFS II, крутейший дождь NFS 3, снег, туман, реальные тени, картинка из далекого прошлого теперь есть у меня, в любое время когда я хочу и никто ее не сможет испортить, даже я.
Здесь вы можете посмотреть галерею скриншотов, сделанных на этой виртуалке с этим врапером: cryforspeed.com/inspiration
А здесь — детальное и пошаговое руководство, хотя думаю оно и не нужно, всё и так просто,
это только всякие может быть неочевидные для некоторых мелочи: cryforspeed.com/classic-need-for-speed

С тех пор как я сделал это прошло несколько месяцев. Не проходит и пары недель чтоб я не запускал эту виртуалку. Грузится она быстрее некоторых приложений на моем айфоне, все игры работают идеально, как будто это 90-98й год и ты сидишь за компьютером с одной из Voodoo. Чистое, ничем не омраченное удовольствие.
Спасибо всем кто дочитал досюда, хочу услышать ваше мнения, дополнения или исправления, может я что-то упустил.
Также хочется услышать ответ на вопрос — играете ли вы в старые игры и как часто?

Если вы просто долистали в поисках решения до конца или прочитали всё, но не поняли что делать — скачиваем vmware player с их сайта (он бесплатный и теперь может создавать виртуалки сам), устанавливаем ХР, устанавливаем nGlide враппер, устанавливаем ваши игры и если надо устанавливаем им профили совместимости для ХР (для 90% проблемных игр профили для ХР есть в интернете, плюс многие есть на сайте производителей nGlide), играем.
Все действия занимают в худшем случае пол часа, что не идет ни в какое сравнение со временем на то чтоб заставить работать тот же NFS 4 на Win7 x64.
Если не помогло и это и всё еще что-то непонятно — по последней ссылке чуть выше есть очень длинное и разжеванное до каждого действия руководоство.
UPDATE: Сегодня специально установил VirtualBox и XP, игры идут только в самом слабом SoftwareMode,
у самого VirtualBox поддержка Direct3D заявлена только экспериментально. При установке 3dfx враппера ни одна игра не работает — черный экран с нормально идущей музыкой, спасает только перезагрузка. Получается мой вариант единственно работающий для игр поддерживающих 3dfx.

habr.com

Виртуальный сервер Windows с видеокартой на борту / VPS.house corporate blog / Habr

Виртуальный сервер уже давно перестал быть чем-то IT-шным и все чаще данной услугой интересуются люди с совершено различными и повседневными рабочими задачами: от размещения бухгалтерских программ до программ по автоматизации рутинных SEO-задач, от игровых серверов до самих игр (самых современных!), от общего файлового сервера небольшой организации до полноценных удалённых рабочих столов крупных компаний.

Вовсе не обязательно играть в игры, чтобы вам потребовалась видеокарта, сейчас ресурсы видеокарт активно используют разработчики популярного программного обеспечения: любой современный браузер будет отрисовывать страницы сайтов значительно быстрее если сможет использовать графический ускоритель, не говоря уже о том, что 3D игры могут быть в самих браузерах, которые работают на платформе WebGL.

Возможность виртуализации ресурсов видеокарт не нова и присутствует во всех популярных средах: Hyper-V, KVM, XEN, VirtualBox и собственная среда от самого популярного производителя чипсетов – NVIDIA GRID.

В данной статье мы будем говорить о RemoteFX – возможностях видеокарт на виртуальных серверах под управлением Hyper-V, именно на этой платформе они работают на VPS.house с видеокартами профессионального уровня NVIDIA Quadro P6000.

В качестве простой демонстрации поведем тест, взяв конфигурацию VPS с 2 ядрами процессора и 2 ГБ оперативной памяти с виртуальной видеокартой 256МБ памяти и без. В обоих случаях мы откроем в браузере Internet Explorer пример на WebGL одной и той же страницы.

Результат на виртуальном сервере, где установлена видеокарта:

Если видеокарту с этого же сервера убрать:

Итак, с видеокартой мы получаем 42 кадра в секунду, без нее – всего 3 кадра, которые отчаянно рендерит процессор.

В качестве гостевой операционной системы использовалась Windows 10 PRO, так как, к сожалению, в серверной версии Windows 2016 браузеры не начинают использовать графический ускоритель, несмотря на то, что он фактически присутствует.

Технология RemoteFX впервые была внедрена в Windows Server 2008 R2 SP1 и включала в себя некоторое базовые возможности:

  • RemoteFX vGPU – позволила распределить ресурсы физической видеокарты на несколько виртуальных экземпляров, таким образом на виртуальных машинах Hyper-V появился настоящий 3D-рендеринг силами графического адаптера.
  • RemoteFX USB Redirection – поддержка перенаправления USB-устройств в виртуальные машины, что позволило использовать различные периферийные устройства, подключенные к «тонким клиентам»
  • RemoteFX Codec – кодек для сжатия и передачи видео и текста высокой четкости, не требующий специального оборудования и использующий ресурсы исключительно процессора

Несмотря на описанные выше возможности, популярности RemoteFX не обрел ввиду крайней ограниченности ресурсов, которые можно было бы назначить виртуальной машине, с выходом Windows Server 2012 появилось множество дополнительных функций:
  • Адаптивная графика RemoteFX – графический коннектор, динамически адаптирующийся к различным условиям работы: тип передаваемого графического контента, доступные вычислительные мощности процессора, скорость интернет-канала между сервером и клиентом, а также скорость рендеринга на стороне клиента.
  • RemoteFX для WAN – серия модификаций на сетевом уровне для поддержки UDP и обеспечения стабильного подключения как в WAN, так и в беспроводных сетях
  • RemoteFX Multi-Touch – позволила использовать тачскрины на тонких клиентах и передавать на сервер до 256 точек одновременного касания
  • RemoteFX Media Redirection API – позволила VoIP-приложениям интегрироваться с RemoteFX, обеспечив рендеринг и передачу видео и аудио контента непосредственно на стороне клиента
  • Выбор GPU – все функции RemoteFX доступны как с использованием графического процессора с программным эмулятором, так и с установленной физической видеокартой внутри сервера, что дает настоящее аппаратное ускорение
  • В RemoteFX vGPU добавлена поддержка DirectX 11

Однако, настоящий прорыв в повсеместном использовании виртуальных видеокарт на серверах под управлением Hyper-V произошел только с выходом Windows Server 2016, позволяющая явно задавать выделяемый объём видеопамяти виртуальному серверу (VPS), а сами объемы значительно выросли (до 1ГБ на каждый экземпляр), обновленный протокол RemoteFX Media Streaming начал работать для всех типов медиаконтента и полностью заменил использующийся ранее протокол MMR (Multi Media Redirection). Помимо этого, появилась поддержка OpenGL 4.4 и OpenCL 1.1 API на виртуальной машине с помощью адаптера RemoteFX.


Тест производительности видеокарты на VPS в популярном бенчмарке FurMark

Подключённая к современному VDS (виртуальному серверу) видеокарта под управлением Windows Server 2016 превращает его в полноценный домашний ПК. Данная операционная система обладает привычным пользовательским интерфейсом, мало отличимым от Windows 10. На таком сервере вы можете свободно запускать практически любое программное обеспечение и решать самые разносторонние задачи.

Без долгих ожиданий запускается самые тяжёлые графические приложения. Пример работы Autodesk 3ds Max 2019 на виртуальном сервере VPS.house:

И конечно же современные игры, в Battlefield 1 видео игры будет таким же плавным, как если бы вы запустили её на своём домашнем ПК (при хорошем интернет-соединении):

habr.com

Автоматизация Для Самых Маленьких. Часть 1.1. Основы виртуализации / Habr

Предыдущая статья рассматривала архитектуру виртуализированной сети, underlay-overlay, путь пакета между VM и прочее.
Роман Горге вдохновился ею и решил написать обзорный выпуск о виртуализации вообще.

В данной статье мы затронем (или попытаемся затронуть) вопросы: а как собственно происходит виртуализация сетевых функций, как реализован backend основных продуктов, обеспечивающих запуск и управление VM, а также как работает виртуальный свитчинг (OVS и Linux bridge).

Тема виртуализации широка и глубока, объяснить все детали работы гипервизора невозможно (да и не нужно). Мы ограничимся минимальным набором знаний необходимым для понимания работы любого виртуализированного решения, не обязательно Telco.


  • Введение и краткая история виртуализации
  • Типы виртуальных ресурсов — compute, storage, network
  • Виртуальная коммутация
  • Инструменты виртуализации — libvirt, virsh и прочее
  • Заключение


История современных технологий виртуализации берет свое начало в 1999 году, когда молодая компания VMware выпустила продукт под названием VMware Workstation. Это был продукт обеспечивающий виртуализацию desktop/client приложений. Виртуализация серверной части пришла несколько позднее в виде продукта ESX Server, который в дальнейшем эволюционировал в ESXi (i означает integrated) — это тот самый продукт, который используется повсеместно как в IT так и в Telco как гипервизор серверных приложений.

На стороне Opensource два основных проекта принесли виртуализацию в Linux:

  • KVM (Kernel-based Virtual Machine) — модуль ядра Linux, который позволяет kernel работать как гипервизор (создает необходимую инфраструктуру для запуска и управления VM). Был добавлен в версии ядра 2.6.20 в 2007 году.
  • QEMU (Quick Emulator) — непосредственно эмулирует железо для виртуальной машины (CPU, Disk, RAM, что угодно включая USB порт) и используется совместно с KVM для достижения почти «native» производительности.
На самом деле на сегодняшний момент вся функциональность KVM доступна в QEMU, но это не принципиально, так как бо́льшая часть пользователей виртуализации на Linux не использует напрямую KVM/QEMU, а обращается к ним как минимум через один уровень абстракции, но об этом позже.

Сегодня VMware ESXi и Linux QEMU/KVM это два основных гипервизора, которые доминируют на рынке. Они же являются представителями двух разных типов гипервизоров:

  • Type 1 — гипервизор запускается непосредственно на железе (bare-metal). Таковым является VMware ESXi, Linux KVM, Hyper-V
  • Type 2 — гипервизор запускается внутри Host OS (операционной системы). Таковым является VMware Workstation или Oracle VirtualBox.

Обсуждение что лучше, а что хуже выходит за рамки данной статьи.

Производители железа также должны были сделать свою часть работы, дабы обеспечить приемлемую производительность.

Пожалуй, наиболее важной и самой широко используемой является технология Intel VT (Virtualization Technology) — набор расширений, разработанных Intel для своих x86 процессоров, которые используются для эффективной работы гипервизора (а в некоторых случаях необходимы, так, например, KVM не заработает без включенного VT-x и без него гипервизор вынужден заниматься чисто софтверной эмуляцией, без аппаратного ускорения).
Наиболее известны два из этих расширений — VT-x и VT-d. Первое важно для улучшения производительности CPU при виртуализации, так как обеспечивает аппаратную поддержку некоторых ее функций (с VT-x 99.9% Guest OS кода выполняется прямо на физическом процессоре, делая выходы для эмуляции только в самых необходимых случаях), второе для подключения физических устройств напрямую в виртуальную машину (для проброса виртуальных функций (VF) SRIOV, например, VT-d должен быть включен).

Следующей важной концепцией является отличие полной виртуализации (full virtualization) от пара-виртуализации (para-virtualization).
Полная виртуализация — это хорошо, это позволяет запускать какую угодно операционную систему на каком угодно процессоре, однако, это крайне неэффективно и абсолютно не подходит для высоконагруженных систем.
Пара-виртуализация, если коротко, это когда Guest OS понимает что она запущена в виртуальной среде и кооперируется с гипервизором для достижения большей эффективности. То есть появляется guest-hypervisor интерфейс.
Подавляющее большинство используемых операционных систем сегодня имеют поддержку пара-виртуализации — в Linux kernel это появилось начиная с ядра версии 2.6.20.

Для работы виртуальной машины нужны не только виртуальный процессор (vCPU) и виртуальная память (RAM), требуется также эмуляция PCI-устройств. То, есть по сути, требуется набор драйверов для управления виртуальными сетевыми интерфейсами, дисками и тд.
В гипервизоре Linux KVM данная задача была решена посредством внедрения virtio — фреймворка для разработки и использования виртуализированных устройств ввода/вывода.
Virtio представляет из себя дополнительный уровень абстракции, который позволяет эмулировать различные I/O устройства в пара-виртуализированном гипервизоре, предоставляя в сторону виртуальной машины единый и стандартизированный интерфейс. Это позволяет переиспользовать код virtio-драйвера для различных по своей сути устройств. Virtio состоит из:

  • Front-end driver — то что находится в виртуальной машине
  • Back-end driver — то что находится в гипервизоре
  • Transport driver — то что связывает backend и frontend

Эта модульность позволяет изменять технологии, применяемые в гипервизоре, не затрагивая драйверы в виртуальной машине (этот момент очень важен для технологий сетевой акселерации и Cloud-решений в целом, но об этом позже).
То есть существует связь guest-hypervisor, когда Guest OS «знает» о том, что запущена в виртуальной среде.
Если вы хоть раз писали вопрос в RFP или отвечали на вопрос в RFP «Поддерживается ли в вашем продукте virtio?» Это как раз было о поддержке front-end virtio драйвера.

Из чего же состоит виртуальная машина?
Выделяют три основных вида виртуальных ресурсов:
  • compute — процессор и оперативная память
  • storage — системный диск виртуальной машины и блочные хранилища
  • network — сетевые карты и устройства ввода/вывода

CPU


Теоретически QEMU способен эмулировать любой тип процессора и соотвествующие ему флаги и функциональность, на практике используют либо host-model и точечно выключают флаги перед передачей в Guest OS либо берут named-model и точечно включают\выключают флаги.

По умолчанию QEMU будет эмулировать процессор, который будет распознан Guest OS как QEMU Virtual CPU. Это не самый оптимальный тип процессора, особенно если приложение, работающее в виртуальной машине, использует CPU-флаги для своей работы. Подробнее о разных моделях CPU в QEMU.

QEMU/KVM также позволяет контролировать топологию процессора, количество тредов, размер кэша, привязывать vCPU к физическому ядру и много чего еще.

Нужно ли это для виртуальной машины или нет, зависит от типа приложения, работающего в Guest OS. Например, известный факт, что для приложений, выполняющих обработку пакетов с высоким PPS, важно делать CPU pinning, то есть не позволять передавать физический процессор другим виртуальным машинам.

Memory


Далее на очереди оперативная память — RAM. С точки зрения Host OS запущенная с помощью QEMU/KVM виртуальная машина ничем не отличается от любого другого процесса, работающего в user-space операционной системы. Соотвественно и процесс выделения памяти виртуальной машине выполняется теми же вызовами в kernel Host OS, как если бы вы запустили, например, Chrome браузер.
Перед тем как продолжить повествование об оперативной памяти в виртуальных машинах, необходимо сделать отступление и объяснить термин NUMA — Non-Uniform Memory Access.
Архитектура современных физических серверов предполагает наличие двух или более процессоров (CPU) и ассоциированной с ней оперативной памятью (RAM). Такая связка процессор + память называется узел или нода (node). Связь между различными NUMA nodes осуществляется посредством специальной шины — QPI (QuickPath Interconnect)

Выделяют локальную NUMA node — когда процесс, запущенный в операционной системе, использует процессор и оперативную память, находящуюся в одной NUMA node, и удаленную NUMA node — когда процесс, запущенный в операционной системе, использует процессор и оперативную память, находящиеся в разных NUMA nodes, то есть для взаимодействия процессора и памяти требуется передача данных через QPI шину.

С точки зрения виртуальной машины память ей уже выделена на момент ее запуска, однако в реальности это не так, и kernel Host OS выделяет процессу QEMU/KVM новые участки памяти по мере того как приложение в Guest OS запрашивает дополнительную память (хотя тут тоже может быть исключение, если прямо указать QEMU/KVM выделить всю память виртуальной машине непосредственно при запуске).

Память выделяется не байт за байтом, а определенным размером — page. Размер page конфигурируем и теоретически может быть любым, но на практике используется размер 4kB (по умолчанию), 2MB и 1GB. Два последних размера называются HugePages и часто используются для выделения памяти для memory intensive виртуальных машин. Причина использования HugePages в процессе поиска соответствия между виртуальным адресом page и физической памятью в Translation Lookaside Buffer (TLB), который в свою очередь ограничен и хранит информацию только о последних использованных pages. Если информации о нужной page в TLB нет, происходит процесс, называемый TLB miss, и требуется задействовать процессор Host OS для поиска ячейки физической памяти, соответствующей нужной page.

Данный процесс неэффективен и медлителен, поэтому и используется меньшее количество pages бо́льшего размера.
QEMU/KVM также позволяет эмулировать различные NUMA-топологии для Guest OS, брать память для виртуальной машины только из определенной NUMA node Host OS и так далее. Наиболее распространенная практика — брать память для виртуальной машины из NUMA node локальной по отношению к процессорам, выделенным для виртуальной машины. Причина — желание избежать лишней нагрузки на QPI шину, соединяющую CPU sockets физического сервера (само собой, это логично если в вашем сервере 2 и более sockets).



Как известно, оперативная память потому и называется оперативной, что ее содержимое исчезает при отключении питания или перезагрузке операционной системы. Чтобы хранить информацию, требуется постоянное запоминающее устройство (ПЗУ) или persistent storage.
Существует два основных вида persistent storage:
  • Block storage (блоковое хранилище) — блок дискового пространства, который может быть использован для установки файловой системы и создания партиций. Если грубо, то можно воспринимать это как обычный диск.
  • Object storage (объектное хранилище) — информация может быть сохранена только в виде объекта (файла), доступного по HTTP/HTTPS. Типичными примерами объектного хранилища являются AWS S3 или Dropbox.

Виртуальная машина нуждается в persistent storage, однако, как это сделать, если виртуальная машина «живет» в оперативной памяти Host OS? Если вкратце, то любое обращение Guest OS к контроллеру виртуального диска перехватывается QEMU/KVM и трансформируется в запись на физический диск Host OS. Этот метод неэффективен, и поэтому здесь так же как и для сетевых устройств используется virtio-драйвер вместо полной эмуляции IDE или iSCSI-устройства. Подробнее об этом можно почитать здесь. Таким образом виртуальная машина обращается к своему виртуальному диску через virtio-драйвер, а далее QEMU/KVM делает так, чтобы переданная информация записалась на физический диск. Важно понимать, что в Host OS дисковый backend может быть реализован в виде CEPH, NFS или iSCSI-полки.

Наиболее простым способом эмулировать persistent storage является использование файла в какой-либо директории Host OS как дискового пространства виртуальной машины. QEMU/KVM поддерживает множество различных форматов такого рода файлов — raw, vdi, vmdk и прочие. Однако наибольшее распространение получил формат qcow2 (QEMU copy-on-write version 2). В общем случае, qcow2 представляет собой определенным образом структурированный файл без какой-либо операционной системы. Большое количество виртуальных машин распространяется именно в виде qcow2-образов (images) и являются копией системного диска виртуальной машины, упакованной в qcow2-формат. Это имеет ряд преимуществ — qcow2-кодирование занимает гораздо меньше места, чем raw копия диска байт в байт, QEMU/KVM умеет изменять размер qcow2-файла (resizing), а значит имеется возможность изменить размер системного диска виртуальной машины, также поддерживается AES шифрование qcow2 (это имеет смысл, так как образ виртуальной машины может содержать интеллектуальную собственность).

Далее, когда происходит запуск виртуальной машины, QEMU/KVM использует qcow2-файл как системный диск (процесс загрузки виртуальной машины я опускаю здесь, хотя это тоже является интересной задачей), а виртуальная машина имеет возможность считать/записать данные в qcow2-файл через virtio-драйвер. Таким образом и работает процесс снятия образов виртуальных машин, поскольку в любой момент времени qcow2-файл содержит полную копию системного диска виртуальной машины, и образ может быть использован для резервного копирования, переноса на другой хост и прочее.

В общем случае этот qcow2-файл будет определяться в Guest OS как /dev/vda-устройство, и Guest OS произведет разбиение дискового пространства на партиции и установку файловой системы. Аналогично, следующие qcow2-файлы, подключенные QEMU/KVM как /dev/vdX устройства, могут быть использованы как block storage в виртуальной машине для хранения информации (именно так и работает компонент Openstack Cinder).



Последним в нашем списке виртуальных ресурсов идут сетевые карты и устройства ввода/вывода. Виртуальная машина, как и физический хост, нуждается в PCI/PCIe-шине для подключения устройств ввода/вывода. QEMU/KVM способен эмулировать разные типы чипсетов — q35 или i440fx (первый поддерживает — PCIe, второй — legacy PCI ), а также различные PCI-топологии, например, создавать отдельные PCI-шины (PCI expander bus) для NUMA nodes Guest OS.

После создания PCI/PCIe шины необходимо подключить к ней устройство ввода/вывода. В общем случае это может быть что угодно — от сетевой карты до физического GPU. И, конечно же, сетевая карта, как полностью виртуализированная (полностью виртуализированный интерфейс e1000, например), так и пара-виртуализированная (virtio, например) или физическая NIC. Последняя опция используется для data-plane виртуальных машин, где требуется получить line-rate скорости передачи пакетов — маршрутизаторов, файрволов и тд.

Здесь существует два основных подхода — PCI passthrough и SR-IOV. Основное отличие между ними — для PCI-PT используется драйвер только внутри Guest OS, а для SRIOV используется драйвер Host OS (для создания VF — Virtual Functions) и драйвер Guest OS для управления SR-IOV VF. Более подробно об PCI-PT и SRIOV отлично написал Juniper.

Для уточнения стоит отметить что, PCI passthrough и SR-IOV это дополняющие друг друга технологии. SR-IOV это нарезка физической функции на виртуальные функции. Это выполняется на уровне Host OS. При этом Host OS видит виртуальные функции как еще одно PCI/PCIe устройство. Что он дальше с ними делает — не важно.

А PCI-PT это механизм проброса любого Host OS PCI устройства в Guest OS, в том числе виртуальной функции, созданной SR-IOV устройством

Таким образом мы рассмотрели основные виды виртуальных ресурсов и следующим шагом необходимо понять как виртуальная машина общается с внешним миром через сеть.


Если есть виртуальная машина, а в ней есть виртуальный интерфейс, то, очевидно, возникает задача передачи пакета из одной VM в другую. В Linux-based гипервизорах (KVM, например) эта задача может решаться с помощью Linux bridge, однако, большое распространение получил проект Open vSwitch (OVS).
Есть несколько основных функциональностей, которые позволили OVS широко распространиться и стать de-facto основным методом коммутации пакетов, который используется во многих платформах облачных вычислений(например, Openstack) и виртуализированных решениях.

  • Передача сетевого состояния — при миграции VM между гипервизорами возникает задача передачи ACL, QoSs, L2/L3 forwarding-таблиц и прочего. И OVS умеет это.
  • Реализация механизма передачи пакетов (datapath) как в kernel, так и в user-space
  • CUPS (Control/User-plane separation) архитектура — позволяет перенести функциональность обработки пакетов на специализированный chipset (Broadcom и Marvell chipset, например, могут такое), управляя им через control-plane OVS.
  • Поддержка методов удаленного управления трафиком — протокол OpenFlow (привет, SDN).

Архитектура OVS на первый взгляд выглядит довольно страшно, но это только на первый взгляд.

Для работы с OVS нужно понимать следующее:

  • Datapath — тут обрабатываются пакеты. Аналогия — switch-fabric железного коммутатора. Datapath включает в себя приём пакетов, обработку заголовков, поиск соответствий по таблице flow, который в Datapath уже запрограммирован. Если OVS работает в kernel, то выполнен в виде модуля ядра. Если OVS работает в user-space, то это процесс в user-space Linux.
  • vswitchd и ovsdb — демоны в user-space, то что реализует непосредственно сам функциональность коммутатора, хранит конфигурацию, устанавливает flow в datapath и программирует его.
  • Набор инструментов для настройки и траблшутинга OVS — ovs-vsctl, ovs-dpctl, ovs-ofctl, ovs-appctl. Все то, что нужно, чтобы прописать в ovsdb конфигурацию портов, прописать какой flow куда должен коммутироваться, собрать статистику и прочее. Добрые люди написали статью по этому поводу.

Каким же образом сетевое устройство виртуальной машины оказывается в OVS?

Для решения данной задачи нам необходимо каким-то образом связать между собой виртуальный интерфейс, находящийся в user-space операционной системы с datapath OVS, находящимся в kernel.

В операционной системе Linux передача пакетов между kernel и user-space-процессами осуществляется посредством двух специальных интерфейсов. Оба интерфейса использует запись/чтение пакета в/из специальный файл для передачи пакетов из user-space-процесса в kernel и обратно — file descriptor (FD) (это одна из причин низкой производительности виртуальной коммутации, если datapath OVS находится в kernel — каждый пакет требуется записать/прочесть через FD)

  • TUN (tunnel) — устройство, работающее в L3 режиме и позволяющее записывать/считывать только IP пакеты в/из FD.
  • TAP (network tap) — то же самое, что и tun интерфейс + умеет производить операции с Ethernet-фреймами, т.е. работать в режиме L2.

Именно поэтому при запущенной виртуальной машине в Host OS можно увидеть созданные TAP-интерфейсы командой ip link или ifconfig — это «ответная» часть virtio, которая «видна» в kernel Host OS. Также стоит обратить внимание, что TAP-интерфейс имеет тот же MAC-адрес что и virtio-интерфейс в виртуальной машине.

TAP-интерфейс может быть добавлен в OVS с помощью команд ovs-vsctl — тогда любой пакет, скоммутированный OVS в TAP-интерфейс, будет передан в виртуальную машину через file descriptor.

Реальный порядок действий при создании виртуальной машины может быть разным, т.е. сначала можно создать OVS bridge, потом указать виртуальной машине создать интерфейс, соединенный с этим OVS, а можно и наоборот.

Теперь, если нам необходимо получить возможность передачи пакетов между двумя и более виртуальными машинами, которые запущены на одном гипервизоре, нам потребуется лишь создать OVS bridge и добавить в него TAP-интерфейсы с помощью команд ovs-vsctl. Какие именно команды для этого нужны легко гуглится.

На гипервизоре может быть несколько OVS bridges, например, так работает Openstack Neutron, или же виртуальные машины могут находиться в разных namespace для реализации multi-tenancy.

А если виртуальные машины находятся в разных OVS bridges?

Для решения данной задачи существует другой инструмент — veth pair. Veth pair может быть представлен как пара сетевых интерфейсов, соединенных кабелем — все то, что «влетает» в один интерфейс, «вылетает» из другого. Veth pair используется для соединения между собой нескольких OVS bridges или Linux bridges. Другой важный момент что части veth pair могут находиться в разных namespace Linux OS, то есть veth pair может быть также использован для связи namespace между собой на сетевом уровне.

В предыдущих главах мы рассматривали теоретические основы виртуализации, в этой главе мы поговорим об инструментах, которые доступны пользователю непосредственно для запуска и изменения виртуальных машин на KVM-гипервизоре.
Остановимся на трех основных компонентах, которые покрывают 90 процентов всевозможных операций с виртуальными машинами:

  • libvirt
  • virsh CLI
  • virt-install
Конечно, существует множество других утилит и CLI-команд, которые позволяют управлять гипервизором, например, можно напрямую пользоваться командами qemu_system_x86_64 или графическим интерфейсом virt manager, но это скорее исключение. К тому же существующие сегодня Cloud-платформы, Openstack, например, используют как раз libvirt.

libvirt


libvirt — это масштабный open-source проект, который занимается разработкой набора инструментов и драйверов для управления гипервизорами. Он поддерживает не только QEMU/KVM, но и ESXi, LXC и много чего еще.
Основная причина его популярности — структурированный и понятный интерфейс взаимодействия через набор XML-файлов плюс возможность автоматизации через API. Стоит оговориться что libvirt не описывает все возможные функции гипервизора, он лишь предоставляет удобный интерфейс использования полезных, с точки зрения участников проекта, функции гипервизора.

И да, libvirt это де-факто стандарт в мире виртуализации сегодня. Только взгляните на список приложений, которые используют libvirt.

Хорошая новость про libvirt — все нужные пакеты уже предустановлены во всех наиболее часто используемых Host OS — Ubuntu, CentOS и RHEL, поэтому, скорее всего, собирать руками нужные пакеты и компилировать libvirt вам не придется. В худшем случае придется воспользоваться соответствующим пакетным инсталлятором (apt, yum и им подобные).

При первоначальной установке и запуске libvirt по умолчанию создает Linux bridge virbr0 и его минимальную конфигурацию.

Именно поэтому при установке Ubuntu Server, например, вы увидите в выводе команды ifconfig Linux bridge virbr0 — это результат запуска демона libvirtd

Этот Linux bridge не будет подключен ни к одному физическому интерфейсу, однако, может быть использован для связи виртуальных машин внутри одного гипервизора. Libvirt безусловно может быть использован вместе с OVS, однако, для этого пользователь должен самостоятельно создать OVS bridges с помощью соответствующих OVS-команд.

Любой виртуальный ресурс, необходимый для создания виртуальной машины (compute, network, storage) представлен в виде объекта в libvirt. За процесс описания и создания этих объектов отвечает набор различных XML-файлов.

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

Сама виртуальная машина со всеми подключенными PCI-устройствами в терминологии libvirt называется domain. Это тоже объект внутри libvirt, который описывается отдельным XML-файлом.

Этот XML-файл и является, строго говоря, виртуальной машиной со всеми виртуальными ресурсами — оперативная память, процессор, сетевые устройства, диски и прочее. Часто данный XML-файл называют libvirt XML или dump XML.
Вряд ли найдется человек, который понимает все параметры libvirt XML, однако, это и не требуется, когда есть документация.

В общем случае, libvirt XML для Ubuntu Desktop Guest OS будет довольно прост — 40-50 строчек. Поскольку вся оптимизация производительности описывается также в libvirt XML (NUMA-топология, CPU-топологии, CPU pinning и прочее), для сетевых функций libvirt XML может быть очень сложен и содержать несколько сот строк. Любой производитель сетевых устройств, который поставляет свое ПО в виде виртуальных машин, имеет рекомендованные примеры libvirt XML.

virsh CLI

Утилита virsh — «родная» командная строка для управления libvirt. Основное ее предназначение — это управление объектами libvirt, описанными в виде XML-файлов. Типичными примерами являются операции start, stop, define, destroy и так далее. То есть жизненный цикл объектов — life-cycle management.

Описание всех команд и флагов virsh также доступно в документации libvirt.

virt-install

Еще одна утилита, которая используется для взаимодействия с libvirt. Одно из основных преимуществ — можно не разбираться с XML-форматом, а обойтись лишь флагами, доступными в virsh-install. Второй важный момент — море примеров и информации в Сети.

Таким образом какой бы утилитой вы ни пользовались, управлять гипервизором в конечном счете будет именно libvirt, поэтому важно понимать архитектуру и принципы его работы.


В данной статье мы рассмотрели минимальный набор теоретических знаний, который необходим для работы с виртуальными машинами. Я намеренно не приводил практических примеров и выводов команд, поскольку таких примеров можно найти сколько угодно в Сети, и я не ставил перед собой задачу написать «step-by-step guide». Если вас заинтересовала какая-то конкретная тема или технология, оставляйте свои комментарии и пишите вопросы.






  • Александру Шалимову — моему коллеге и эксперту в области разработки виртуальных сетей. За комментарии и правки.
  • Евгению Яковлеву — моему коллеге и эксперту в области виртуализации за комментарии и правки.

habr.com

Что такое виртуальные машины и как ими пользоваться

Что такое виртуальные машины?

Это специальное ПО для запуска операционной системы внутри операционной системы. Вторая ОС устанавливается на ПК, но работает в нём как обычная программа. Компьютер в компьютере, если хотите.

Здорово, но зачем?

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

Среди обычных пользователей самый распространённый сценарий — это применение Windows-программ на Mac и Linux.

И как всё это работает?

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

Гостевая ОС считает несуществующее железо реальным. Оно отображается в свойствах системы, а установленные приложения взаимодействуют с ним как с настоящим. При этом сама виртуальная машина полностью изолирована от реального компьютера, хотя и может иметь доступ к его диску и периферийным устройствам.

Постойте. Получается, нужен очень мощный компьютер?

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

Например, если вы собираетесь установить на ПК с Windows 10 гостевую ОС Ubuntu 18.04, то понадобится как минимум 4 ГБ оперативной памяти, двухъядерный процессор, совместимый видеоадаптер и свободное место на диске. Для сложных задач вроде игр или использования профессионального ПО должен быть приличный запас производительности, чтобы обе системы быстро работали.

Хорошо, а какие виртуальные машины есть?

Их очень много, причём как бесплатных, так и коммерческих. Если не брать в расчёт узкоспециализированные системы, которые разработчики используют для тестирования, наиболее популярны три программы.

  • VirtualBox — полностью бесплатный инструмент от Oracle с поддержкой многих гостевых ОС, которые можно запустить на Windows, macOS и Linux.
  • VMware Fusion и Workstation — продвинутые виртуальные машины для всех платформ. Позволяют запускать любые ОС и поддерживают расширенную эмуляцию 3D-графики. Есть бесплатные версии для личного использования и коммерческие — для корпоративного.
  • Parallels Desktop — лучшее коммерческое решение для виртуализации на Mac. Обеспечивает высокую производительность и тесную интеграцию гостевой операционной системы с фирменными функциями macOS.

С чего начать и как это всё настраивается?

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

Как создать виртуальную машину?

Всё предельно просто. Воспользуемся для примера бесплатной машиной VirtualBox. В других программах процесс может немного отличаться, но в целом настройка практически идентична.

  1. Скачайте утилиту по ссылке, выбрав версию для своей ОС.
  2. Откройте инсталляционный файл и с помощью подсказок мастера установите VirtualBox.
  3. Запустите программу и нажмите кнопку «Создать».
  4. Задайте имя виртуальной машины, а также тип и версию ОС, которую планируете установить. Позже эти параметры можно сменить.
  5. Укажите, сколько оперативной памяти выделить. Оставьте объём по умолчанию или задайте другой в пределах рекомендуемого.
  6. Нажмите «Создать новый виртуальный диск» и укажите его формат. Если не собираетесь использовать этот диск с другим ПО для виртуализации, вам нужен тип VDI.
  7. Далее выберите «Фиксированный виртуальный жёсткий диск» — он работает быстрее динамического и занимает строго отведённое место.
  8. Задайте имя диска и укажите его объём. Для 64-битной Windows 10 нужно минимум 32 ГБ плюс дополнительное место для установки необходимых программ.
  9. Готово!

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

И как установить ОС на виртуальный компьютер?

Как и на обычный. Понадобится образ системы или установочная флешка. В остальном процедура полностью аналогична. Для примера установим Windows 10.

  1. Скачайте образ диска с сайта Microsft.
  2. Выделите в VirtualBox нужную виртуальную машину и нажмите «Настроить».
  3. Перейдите на вкладку «Носители» и выделите оптический привод.
  4. Кликните на иконку диска и выберите образ Windows 10.
  5. Нажмите кнопку «Запустить» и следуйте подсказкам мастера установки.
  6. По окончании процесса виртуальная машина перезагрузится и будет готова к работе.

Как теперь всем этим пользоваться?

Почти так же, как и обычным ПК. Запускается виртуальная машина с помощью одноимённой кнопки, а отключается или перезагружается через системное меню завершения работы или просто закрытием окна. Все настройки и функции ОС работают так же, как и на реальном компьютере.

Окей. А как установить приложение?

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

А флешку подключить можно?

Да, конечно. Только придётся сначала отмонтировать её из основной системы, поскольку одновременное использование накопителей невозможно. Делается это так.

  1. Подключите флешку к компьютеру.
  2. Зайдите в Finder или «Проводник» и отмонтируйте накопитель.
  3. Перейдите в виртуальную машину и нажмите иконку USB на нижней панели.
  4. Выберите нужное устройство из списка.
  5. Накопитель сразу же появится в системе. Можно работать.

Как передать файл из основной ОС?

Через функцию общих папок, которая позволяет расшарить любые папки из основной ОС в гостевую и избавит от возни с флешками. Вот как её включить:

  1. Откройте VirtualBox.
  2. Перейдите в настройки виртуальной машины и переключитесь на вкладку «Общие папки».
  3. Нажмите иконку добавления и укажите путь к нужной папке.
  4. Поставьте галочку «Автоподключение» и нажмите ОК.
  5. После запуска виртуальной машины общая папка появится в меню «Мой компьютер».

Читайте также 🖥

lifehacker.ru

Обходим детектирование виртуальной машины программами в VMWare / Habr

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

Я использовал VMWare Fusion для Mac, однако с тем же успехом способ работает и в Workstation для Win.

1) Для работы необходима заново установленная система, как внести изменения в уже существующую — не нашёл.

Готовите виртуальный диск, указываете систему, как это обычно делаете, и в настройках к устанавливаемой машине, у меня этот пункт назван Isolation, выключаете любой обмен данными с хостовой ОС.

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

isolation.tools.getPtrLocation.disable = «TRUE»
isolation.tools.setPtrLocation.disable = «TRUE»
isolation.tools.setVersion.disable = «TRUE»
isolation.tools.getVersion.disable = «TRUE»
monitor_control.disable_directexec = «TRUE»
monitor_control.disable_chksimd = «TRUE»
monitor_control.disable_ntreloc = «TRUE»
monitor_control.disable_selfmod = «TRUE»
monitor_control.disable_reloc = «TRUE»
monitor_control.disable_btinout = «TRUE»
monitor_control.disable_btmemspace = «TRUE»
monitor_control.disable_btpriv = «TRUE»
monitor_control.disable_btseg = «TRUE»

Эти опции предотвращают детектирование программами виртуального окружения через такие сложные проверки, как отслеживание адресного пространства памяти, счётчиков.

Важно! Если на этапе настройки установки будет опция вроде «Express install», «Быстрая установка» — выключайте их. Также не стоит устанавливать VMWare Tools в установленную систему, т.к. некоторое ПО в проверку включает и наличие этого пакета.

3) Сохраняем файл, указываем для загрузки ISO с установщиком системы, устанавливаем ОС как обычно.

4) Несмотря на то, что подавляющее большинство программ, не любящих виртуальной среды, не заходят дальше проверок, которые мы отсекли на 2 шаге, некоторые особо упорные всё же идут дальше и пытаются искать, к примеру, всё, что похоже на название контроллеров виртуальных дисков.

Чтобы победить и их в Windows, идём в редактор реестра в ветку HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum. Как видите, там есть вполне явная отсылка к тому, что диск — виртуальный.


Нам нужно изменить его, убрав из параметра VMware, Virtual, Ven, итп, и сохранить её так.

Также имеет смысл заменить в реестре поиском по VMware/Virtual на какой-нибудь Intel или IBM всё, что меняется, а не только дисковые переменные.

После пробуйте запускать ваш упрямый объект экспериментов — в процентах 70 случаев описанные шаги помогут пройти проверки на виртуальное окружение.

Важно! Значение в HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum перезаписывается после каждой перезагрузки, так что его нужно менять после каждого нового запуска системы.

UPD от @Denisoid:

Естественно, это не исчерпывающее руководство, некоторое ПО также может пытаться определять виртуальную систему следующими методами:

1) Проверками диапазона MAC адресов (просто подменяется в настройках виртуального сетевого адаптера до запускa виртуальной машины)
2) Через WinAPI опросом конфигурации ОС и прочей системной информации (FirmwareTable)
3) Низкоуровневыми трюками.


Проверить, насколько вы обезопасили себя от обнаружения, а также ознакомиться с другими популярными у разработчиков средствами обнаружения песочниц и виртуалок можно средством Pafish.

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

Как видно, улучшить скрытность можно также выделив виртульной машине больше системных ресурсов. Что касается памяти, выбирать стоит значения, кратные 1024.

Спасибо всем, кто осилил статью и помог в дополнении её толковыми комментариями!

habr.com

Лучшая виртуальная машина: Обзор виртуальных машин

Какая на твой взгляд самая лучшая виртуальная машина?

Я не буду выдумывать велосипед и пересказывать других. Лучше я вам предложу прочитать статью из журнала Linux Format. В которой эксперты сделали сравнительный обзор пяти популярных виртуальных машин в надежде найти ту самую.., самую лучшую виртуальную машину. Кстати, тем кто отрекся и смог убежать из плена Windows очень рекомендую подписаться на журнал.

Еще по теме: Использование виртуальной машины VirtualBox

Лучшая виртуальная машина

Содержание

  • Что такое виртуальная машина
  • Зачем нужна виртуальная машина
  • Как мы тестировали Виртуальные Машины
  • Производительность
  • Функциональность
  • Совместимость и снапшоты
  • Интеграция с рабочим столом
  • Графическое ускорение
  • Вердикт

Что такое виртуальная машина

Если простым языком, без занудства, то виртуальная машина — это операционная система в операционной системе.

Зачем мне нужна виртуальная машина

В нашем случае, виртуальная машина — это в первую очередь платформа для проверки программ. Среди которых, как вы понимаете, могут быть и вредоносные. Еще виртуальную машину используют хакеры для тестирования своих и чужих троянов, rat-программ и других чудо файлов. К какой группе не принадлежали бы вы, вам все равно будет интересно узнать побольше о виртуальных машинах и их работе.

Как мы тестировали виртуальные машины

Сперва мы взяли двуядерный компьютер (из-за бюджетных ограничений) со свежим Arc Linux. Кроме проприетарной VMware (версия 7.1.0 Рlауег и 30-дневный пробный период Workstation 11), мы использовали официальные пакеты Arch, которые очень близко следуют релизам разработчиков. На каждой машине было 2 ГБ системной ОЗУ и 128 МБ видеопамяти (при необходимости — 256 МБ).

Мы тестировали каждого кандидата на разных гостевых ОС: Mint 17.1 и Kubuntu 15.04 beta, а также разных версиях не-Linux ОС под названием Windows. Для оценки производительности мы скомпилировали основное ядро Mint, запустили сравнительный тест JavaScript SunSpider и сыграли в разные игры из нашей библиотеки Steam. Чтобы протестировать реальные варианты, мы запустили их на 8-ядерной машине с 16 ГБ ОЗУ и 4-ГБ Nvidia GTX, но потом нас заставили ее вернуть.

Технология виртуализации фундаментально изменила компьютерный ландшафт. Мы бы опозорились, заявив, что это — новое изобретение (ранние мейнфреймы использовали ее как сред ст во предоставления ресурсов), но десятилетней давности инновации CPU означают, что почти родной производительности вы добьетесь разве что с кодом x86. А ныне нам удается впихнуть десятки машин (легко копируемых и восстанавливаемых) в один корпус, и работа дата-центров стала гораздо эффективнее. Можно и имитировать другую архитектуру, скажем, ARM, что удобно для разработчиков встраиваемых систем.

Это также благо и для обычных пользователей: знакомство с новой ОС теперь не обязано быть столь затратным по времени упражнением в постоянном страхе угробить свою систему. Даже если вы просто хотите протестировать новую программу, это намного безопаснее сделать в виртуальной машине вместо того, чтобы рисковать своей текущей настройкой. Поддержка виртуализации внутри ядра (через KVM) и эмулятор Qemu означает, что пользователям Linux больше незачем прибегать к проприетарным инструментам.

В былые дни VirtualBox от Sun (некогда принадлежавшая Innotek, а теперь Oracle) был единственной реальной опцией. Но времена изменились, так что давайте рассмотрим и другие приложения виртуализации.

И VMware, и VirtualBox используют зависимые от ядра модули, которые загружаются, чтобы сотворять свои чудеса. VMware понадобится их скомпилировать, для чего придется установить пакеты заголовков ядра и всю начинку компилятора. Потом вы получите скрипт init для загрузки указанных модулей, хотя для пользователей Systemd он будет бесполезен. Если это ваш случай, вы, возможно, пожелаете создать собственный файл init, вместо того, чтобы все время запускать этот скрипт как root (или видеть всё те же сообщения об ошибках). На момент написания статьи ядра серии 3.19 требовали подлатать исходники VMware, но, надеюсь, к моменту выхода журнала это уже будет исправлено. Пакеты VirtualBox в большинстве дистрибутивов имеются, и если у вас стандартное ядро, можете уже ни о чем не волноваться.

Virt-Manager требует, чтобы до его запуска в вашей системе был запущен сервис libvirtd, о чем вас уведомит любезное сообщение, и если вы используете полнофункциональную среду рабочего стола, то она сама сделает это за вас; вам останется только ввести пароль root.

И VirtualBox, и VMware Workstation достаточно просты, если только вы не вздумаете отвлекаться на каждую опцию. А вот в VMware Player опций не так уж и много, и вы очень быстро настроите и запустите свою машину. Но если вы полны решимости задействовать все эти опции по максимуму, придется установить гостевые дополнения.

Гостевые дополнения Linux для VirtualBox намного проще в установке (CD запустится автоматически), чем дополнительные «инструменты» для VMware, требующие копирования программ с воображаемого CD, изменения разрешений и затем запуска скрипта. Неужто на дворе 1999 год? Зато, проделав все это, вы будете вознаграждены улучшением графики и рядом добавочных функций, которые мы обсудим дальше.

Простейшим в использовании из нашей подборки является Boxes, пусть даже это обусловлено предоставлением всего только голого минимума функций Qemu / libvirt. VMware Player и VirtualBox идут вторыми, а следом — их платный соперник (номинально они труднее, в силу большего количества опций). Virt-Manager не особенно сложен в использовании, но в нем вполне достаточно от лабиринта настроек Qemu, чтобы ошеломить новичка. Помимо этого, механизм для управления хранением у него довольно-таки запутанный, особенно если вы собираетесь хранить свой виртуальный диск в нестандартном месте: тогда вам сначала надо добавить требуемую директорию в качестве «пула хранения». Однако все необходимые экзотические модули предоставит ваш собственный дистрибутив, а в таком случае почему бы и не рискнуть.

Производительность

Медленную или проворную ВМ они для вас создадут?

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

Однако так, как оно есть, обычно налицо определенное падение производительности. Практически любая конфигурация, на которой мы тестировали гостевой рабочий стол, демонстрировала некое торможение. Но к этому привыкаешь, да и можно отключить всякие красивости или включить соответствующий режим нейтрализации неисправностей, если вас это беспокоит.

Здесь мы не берем в расчет 3D-производительность — это было бы не совсем честно, и для нее есть собственная категория через страницу. Однако для повседневных задач с использованием Terminal вы вряд ли заметите особую разницу между нашими кандидатами. Эксперименты с компиляцией ядра показали, что VirtualBox солидно отстает в соревновании. Сравнительный тест JavaScript SunSpider подтвердил этот вывод: обе задачи выполнились на 20 % медленнее, чем у остальных. Ввод/вывод (I/O) диска (особенно если диск у вас SSD) и сетевой трафик у всех наших кандидатов отличались быстротой. В конечном итоге VMware обеспечила себе перевес благодаря поддержке более новых процессоров Intel.

Функциональность

Что способен предложить каждый кандидат?

Все наши кандидаты предназначаются для разных сценариев использования, и поэтому у каждого имеются свои собственные, индивидуальные преимущества. Конечно, наличие некоторых стандартных функций безусловно подразумевается: к таковым, например, принято относить способность создать моментальные снимки, поддержку расширений процессоров Intel VT-x и AMD-V и гибкую настройку виртуального оборудования. Всё это предлагается всеми, однако некоторые приложения способны на более героические подвиги.

Здесь следует сделать оговорку, что Gnome Boxes и Virt-Manager являются всего-навсего интерфейсами к Qemu (через уровень абстракции libvirt). А Qemu по существу является эмулятором процессора, который способен обеспечивать виртуализацию через KVM, но тем не менее представляет собой целый мир.

Итак, займемся рассмотрением наших кандидатов по отдельности.

Gnome Boxes ★★

При вызове из командной строки Qemu поддерживает массу опций, большая часть которых в Gnome Boxes отсутствует: его целью (реализованной) является простота и понятность внешнего вида и работы. Через его удобный интерфейс мастера можно настроить виртуальную машину буквально тремя щелчками — направьте только его на соответствующий ISO. Boxes абстрагирует разницу между виртуальной и удаленной машиной, и вы можете соединяться и с той, и с другой через протоколы VNC, SPICE (который позволяет аудио работать через сеть) или OVirt.

Gnome Boxes

Boxes не предлагает особых возможностей управления вашей виртуальной машиной через сеть, но, по крайней мере, предоставляет всё колдовство NAT, необходимое, чтобы обеспечить общение вашей виртуальной машины с миром. Остальные кандидаты с успехом настраивают NAT, сетевые мосты или сети host-only, и все это в определенных обстоятельствах бывает весьма удобно.

Virt-Manager ★★★★

Virt-Manager (он же Virtual Machine Manager) предлагает значительно больше функций Qemu (но опять-таки не все). Он, похоже, переборщил со своим списком поддерживаемых операционных систем x86, в частности, из семейства Linux.

Virt-Manager

Если оставить это в стороне, Virt-Manager относительно легко позволяет настроить машину любой сложности — можно добавлять любое оборудование, в том числе несколько сетевых интерфейсов. Помимо ВМ KVM, Virt-Man-ager умеет задействовать поддержку Qemu/ libvirt для гостей Xen и контейнеров LXC. Опционально он также может опрашивать гостевые ресурсы и, таким образом, обеспечивать очень симпатичные графики (вроде тех, что в разделе Производительность на стр. 25, на что требуется около 30 секунд после запуска Windows 10). Кроме того, Virt-Manager использует недавно добавленную в Qemu поддержку USB 3.0.

Совместимость и снапшоты

Можно ли перемещать виртуальные машины между реальными?

Иногда бывает нужно переместить ВМ между гипервизорами. Все наши программы могут импортировать машины, хранящиеся в формате Open Virtual Appliance (OVA), который является просто tar-архивом с образом диска VMDK (VMware), и данные о виртуальном оборудовании. VirtualBox разрешает экспорт в этот формат, но имеет еще и свой — Virtual Disk Image (VDI), а также справляется со всеми остальными.

Команду qemu-img можно применять для конвертирования форматов. Особо отметим его любимый формат QCOW2, позволяющий хранить многочисленные моментальные снимки [snapshot] системы внутри, с помощью отличного приема Copy On Write (COW).

Boxes, Virt-Manager, VirtualBox и VMware Workstation поддерживают моментальные снимки системы, сохраняя разные состояния своей ВМ. VMware Player позволяет иметь только один моментальный снимок для каждой машины в дополнение к ее текущему состоянию. Так что глубокое регрессионное тестирование исключается.

VirtualBox и VMware Workstation способны также «клонировать» ВМ, и это эффективный метод создания моментальных снимков системы: данные записываются на соответствующий клон, только если его состояние отличается от состояния родителя. VMware позволяет монтировать гостевой образ VMDK на хост, что тоже бывает удобно, хотя такой же трюк можно проделать посредством конвертирования в образ диска raw и использования стандартных инструментов Linux и арифметики, чтобы рассчитать смещение разделов.

VirtualBox ★★★★

Будучи изначально клиентом виртуализации рабочего стола, VirtualBox до сих пор, вероятно, основной инструмент для многих. У этой программы четкая структура, что упрощает настройку виртуальной машины, и множество полезных опций. Помимо ограничения количества ядер CPU, к которым имеет доступ гостевая ОС, VirtualBox позволяет указать предельный уровень использования CPU гостем в процентах. VirtualBox также поддерживает запись видео, так что за вечер вы сможете записать руководство по Windows для своего канала YouTube.

VirtualBox

Он может импортировать любые виртуальные диски, но предлагает только поддержку хост-контроллера USB 2.0, да и то только если вы установите проприетарный пакет расширений Oracle. Опции с распределенным доступом буфера обмена и drag-and-drop (в одном или в обоих направлениях, как пожелаете) весьма удобны. В VirtualBox имеются удобные индикаторы для сетевого и дискового I/O и для использования CPU.

Кстати, в статье «Настройка VirtualBox» мы подробно рассказывали о том, как установить и правильно настроить виртуальную машину VirtualBox.

VMware Player ★★★

Свободное предложение от VMware прошло долгий путь с момента своего появления в 2008 году. Самое примечательное, что это уже не плейер: он более чем способен создать для вас качественную виртуальную машину.

VMware Player

Помимо поддержки ряда сетевых конфигураций (NAT, bridged, host-only и т.д.), он предлагает очень симпатичные опции формирования сетевого трафика, что весьма удобно, если вы тестируете последнюю версию, скажем, клиента DDoS или смотрите, сколько вредоносных программ можно навесить на свою виртуальную машину Windows XP, пока она не лопнет. VMware также поддерживает устройства USB 3.0, а установка гостевых инструментов позволит использовать блестящую графику, буфер обмена с распределенным доступом и директории с распределенным доступом. Player несколько уступает, когда речь идет о моментальных снимках (он позволяет сделать только один), но мы раскритиковали его в предыдущем разделе.

VMware Workstation ★★★★★

Имеется несвободная версия VMware Player (VMware Player Pro), но мы решили, что для данного Сравнения будет уместнее взять вместо нее более высококачественную Workstation. В этом приложении предусмотрено множество дополнительных функций для разработчиков, в том числе возможность группировать виртуальные машины в своего рода виртуальную фалангу, чтобы вам удавалось одним щелчком заставить их вступить в действие одновременно.

VMware Workstation также предлагает поддержку новых команд современных процессоров Intel, а также позволяет настраивать машины с виртуальными CPU, в количестве до 16 и 64 ГБ ОЗУ. Однако программа Workstation в большой степени нацелена на интеграцию с остальным (довольно увесистым) пакетом VMware, и поэтому будет выглядеть уместнее прочих в среде предприятия.

Интеграция с рабочим столом

Будут ли они конфликтовать с вашей цветовой схемой?

Одни пользователи любят идеальную гармонию интерфейсов виртуальных машин и соответствующих им гипервизоров с рабочим столом хоста, а других это только запутывает.

VirtualBox использует Qt4, что особенно бесит на рабочем столе Arch Linux на основе Qt, где повсюду используется Qt5, но это лишь нечто вроде нишевого недостатка. Boxes идеально сочетается с Gnome 3, чего и следовало ожидать; Virt-Manager и VMware используют GTK3 и тоже идеально с ним сочетаются.

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

Особо выделяются режимы Unity в VMware (нет, это не способ сделать все убунтовидным) and Seamless в Virtual-Box — оба отображают окна приложений напрямую из гостя на рабочем столе хоста. Это очень хорошо для Linux-ВМ (исключая потенциальную путаницу между окнами гостя и хоста), однако попытка запустить
предпросмотр Windows 10 не слишком удалась; Windows 7 с включенным интерфейсом Aero тоже оказалась не самым приятным опытом.

Все наши кандидаты поддерживают запуск гостя в полноэкранном режиме, и их можно настроить на смену разрешения при изменении размера окна. Для выхода из данного сценария предусмотрены подходящие горячие клавиши. Возможность drag-and-drop на машинах VMware очень удобна, поэтому VMware и побеждает в этой категории.

Графическое ускорение

Можно ли избежать проблем программного рендеринга?

Любой из наших кандидатов отлично бы вам послужил, если бы вы захотели просто установить виртуальную машину, не собираясь делать ничего с интенсивным участием графики.

Но если требуется 3D-ускорение, надо брать VMware или VirtualBox. Как только вы справитесь с установкой гостевых дополнений (включая уводящий в сторону вопрос VirtualBox, с двойным отрицанием, который пытается отвратить вас от его экспериментальной поддержки WDDM, нужной, например, для интерфейса Windows 7 Aero), вам удастся насладиться 3D-ускорением в VirtualBox и в двух клиентах VMware.

Бум-бум, серебряный молот Максвелла опустился на, э-ээ, улей. Он погиб вскоре после того, как был сделан этот скриншот в Don’t Starve.

VirtualBox позволяет выделять виртуальной видеокарте до 256 МБ системного ОЗУ, а VMware — до 2 ГБ. Обратите внимание, что эти гигабайты не берутся у вашей реальной видеокарты, так что зачастую вы не увидите особых улучшений свыше 256 MБ. VirtualBox также обеспечивает 2D-ускорение для гостевых Windows, что должно способствовать ускорению рендеринга видео, увеличению экрана и коррекции цвета, хотя во многом это зависит от конфигурации хоста — на быструю машину эта настройка не особо повлияет. Виртуальная машина Windows, вероятно, не запустит Battlefield 4 [Поле битвы] или Middle-earth: Shadow of Mordor [Среднеземье: Тень Мордора] (получается, нам сильно повезло, что они портированы в Linux), когда все доведено до 11, но более старые или менее требовательные игры пойдут отлично: мы добрый час угрохали на популярную инди-игру Don’t Starve [Не зачахни], начисто позабыв про наше Сравнение.

На VMware все работало лучше, чем на VirtualBox, но, возможно, дело тут было в более выигрышной конфигурации — на Arch Linux мы использовали самый свежий проприетарный драйвер Nvidia, что могло обусловить перевес одного над другим.

Вердикт

Виртуализация — тема для Сравнений давняя и сложная. Желая запускать 3D-игры, вы даже не взглянете на Gnome Boxes или Virt-Manager, и если только вы не добьетесь в VirtualBox лучших результатов, чем мы, вы выберете своим гипервизором VMware. Но опять же, эта технология отнюдь не такая зрелая, как работающий в родном формате DirectX 11. Возможно, с играми вам даже больше повезет в Wine [Ред.: — Или нет.] при каких-нибудь экспериментальных заплатках производительности. Мы вообще-то не в восторге от лицензий VMware, особенно от той, которая заставляет вас платить после 30-дневного пробного периода, однако для некоторых функции уровня предприятия в Workstation будут истинным благом. В частности, если использовав vCenter Converter из VMware, вы виртуализуете машину одним щелчком — идеально, если требуется протестировать что-то новое на своей текущей системе.

Мы не охватили массу инструментов командной строки, которые идут со всеми нашими кандидатами, но они есть, вместе с более чем обильной документацией. Вы можете применять их в своих скриптах, когда пуститесь во все тяжкие виртуализации, выдвинув целую рать виртуальных машин из безопасной среды командной строки. Возможно, хакеры предпочтут работать с Qemu напрямую, а ищущим простое бесплатное решение с открытым кодом счастье составит Gnome Boxes.

Пузыри выглядят неплохо, если не видеть усилий, затраченных на их рендеринг.

Но в победители выходит только один (ничья — редкое исключение), и на сей раз это Virt-Manager — ну не могли же мы позволить выиграть VMware. Virt-Manager позволяет взнуздать большую часть мощи Qemu, не прибегая к пространным заклинаниям из командной строки. Виртуальные машины можно ставить на паузу, перенастраивать, перемещать и клонировать — и все это без особых хлопот. Единственное, чего ему не хватает — это поддержки графическо -го ускорения, но как знать, возможно, она и появится. VMware Player и Gnome Boxes делят второе место, поскольку они оба набрали высокие баллы за свою простоту, и нам нравится значок Boxes, на котором изображен тессеракт (или гиперкуб, или куб в кубе — как вам будет угодно).

Virt-Manager ★★★★
Всем бы менеджерам так хорошо работать.

VirtualBox ★★
Некогда единственное решение, а теперь на обочине.

VMware Player ★★★
Быстрый и удобный, да вот лицензия подвела.

VMware Workstation ★★
Быстрый и полнофункциональный, но не бесплатный.

Boxes ★★★
Простейший способ установить и настроить ВМ.

www.spy-soft.net

Почти нативный Direct3D в VirtualBox / Habr

Совсем недавно обновилась замечательная виртуальная машина с открытым исходным кодом от InnoTek/Sun/Oracle (нужное подчеркнуть) — среди прочих фишек в VirtualBox 3.0 была заявлена более или менее внятная поддержка DirectX 8/9 на уровне драйвера виртуального графического адаптера в гостевой Windows-машине. По хорошему, это должно было означать что сбылась мечта идиота геймера: можно гонять в любые win-игрушки не осуществляя рандомных подпрыгиваний с бубном и высушенной куриной лапкой. На деле все естественно оказалось не так просто, под катом предлагается микро-howto, позволяющее запускать в виртуальной машине DirectX-игрушки

UPD: Спасибо за карму, перенес в блог Linux для всех

Итак, что нам понадобится:

— Linux box
— VirtualBox 3.0
— WineD3D
— Дистрибутив Windows (эксперименты осуществлялись на XP SP2)
— Дистрибутив любимой виндовой игрушки (экзекуции производились над Myst V: End of Ages)

Процесс установки VBox особых затруднений вызвать не должен: качаем, запускаем из-под рута (su и sudo в помощь) бинарный установщик, например так:

[email protected]:[~]# wget dlc.sun.com/virtualbox/3.0.0/VirtualBox-3.0.0-49315-Linux_x86.run
[email protected]:[~]# ./VirtualBox-3.0.0-49315-Linux_x86.run

Если ничего нештатного не произошло и нас радостно оповестили об успешном окончании установки, то переходим к следующей части — то есть запуску VirtualBox и установке Windows в виртуальной машине.

Бывает так, что инсталлер не может корректно определить дистрибутив, в связи с чем начинает паниковать и отказывается собирать ядерный модуль. Впрочем, лечится это довольно просто:

[email protected]:[~]# cd /opt/VirtualBox/src
[email protected]:[/opt/VirtualBox/src]# ls
Makefile vboxdrv vboxnetadp vboxnetflt
[email protected]:[/opt/VirtualBox/src]# make

Далее, удостоверимся в том что ядерный модуль подгружен:

[email protected]:[/opt/VirtualBox/src]# lsmod |grep vboxdrv
vboxdrv 107720 0
[email protected]:[/opt/VirtualBox/src]#

Если нет, то:

[email protected]:[/opt/VirtualBox/src]# modprobe vboxdrv

ОК, будем считать что VBox у нас есть. Дальше все просто, создаем — виртуальную машинку, не забывая после создания зайти в «Свойства» и проставить галочки напротив «Включить IO APIC», и " Включить 3D-ускорение". Видеопамяти выделяем не меньше 32 мегабайт, после чего подключаем образ или физический CD/DVD-драйв и ставим любимую сборку Windows.

После установки загружаемся и начинаем шаманить. На самом деле, на этом этапе у нас уже есть поддержка 3D-ускорения, но проблема в том, что ускорять драйвер может только OpenGL. Это можно легко проверить, запустив dxdiag.exe. Логично предположить, что если DirectX (9c например) отсутствует нужно его установить. То есть, на этапе когда мы начнем ставить Guest OS Addons, DirectX уже должен присутствовать в системе.

Далее собственно и выполняем установку Guest Addons — Устройства > Установить Дополнения Гостевой ОС. На провокационные вопросы мастера отвечаем «Все равно продолжить установку». Перезагружаемся.

Теперь необходимо установить WineD3D — набор DLL из дистрибутива wine, которые заменят нативные DLLки DirectX. Это нужно для того чтобы DirectX-запросы транслировались в OpenGL (так, как это и происходит, когда запускаем игрушки под вайном). Скачать можно тут — download.savannah.nongnu.org/releases/wined3d/latest/wined3d.exe

Единственное примечание касается того, что свежескачаный exe'шник нужно запускать в безопасном режиме, ради чего придется еще раз перезагрузиться.

Ну вот теперь можно пробовать ставить игрушки. На интегрированной интелловой графике Myst V безбожно тормозил и рисовал артефакты, но с увеличением количества виртуальной видеопамяти до 128 Мб ситуация заметно изменилась к лучшему. Других игрушек под рукой не оказалось, поэтому отписывайтесь об удачных и не очень попытках поиграть в ту или геймзу в VBox'е.

Итого: конечно не панацея, но уже что то… Ждем дальнейших улучшений драйвера.

PS. Не судите строго — это мой первый хабрапост

habr.com


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



© 2010- GutenBlog.ru Карта сайта, XML.