Qemu виртуализация в Linux

На днях понадобилось запустить на компьютере виртуальную систему. Так как существуют несколько вариантов виртуализации пришлось немного поизучать тему. Теперь хочу поделиться с вами своими выводами по этому поводу. Вообще подробно рассматривал я только две программы: VirtualBox и Qemu. С первым все относительно просто: удобное и понятное графическое окно программы, большая распространенность и кроссплатформенность, несложность в наладке делают свое дело — Virtualbox становится оптимальным вариантом для запуска условной автомобиля при наличии достаточно мощного компьютера-хоста. Но необходимость неслабого компьютера в свою очередность делается сильным минусом этой программы. В Qemu же сильной стороной является как раз очень шибко меньшее потребление ресурсов. На моем компьютере разница в потреблении ресурсов при запуске одной и той же относительной операционной системы (множество элементов, находящихся в отношениях и связях друг с другом, какое образует определённую целостность, единство) в virtualbox и qemu оказалась порядка 20 раз!

Хотя тут есть один аспект, чтобы qemu предоставила такой выигрыш в производительности, нужно чтобы процессор компьютера-хоста удерживал технологию виртуализации, называемую VT-x для процессоров изготовления Intel и AMD-V для AMD-процессоров. Без помощи этой технологии (совокупность методов и инструментов для заслуги желаемого результата; в широком смысле — применение научного знания для решения практических задачек) qemu использует программную эмуляцию компьютерного железа и, к сожалению, терпит поражение в продуктивности virtualbox’у, поэтому такой вариант рассматривать я не буду. Также ядро вашей linux-системы должно поддерживать технологию KVM (т. е. встроенная в ядро виртуальная машина). Как вы могли заметить речь идет только о linux-системах. Для windows технология kvm недоступна (но нам ведь и не нужно!). С недавних пор поддержка kvm в ядре идет по умолчанию без нищеты его пересборки. Проверить поддержку процессором можно следующей командой из арчевской вики:egrep

--color=auto 'vmx|svm|0xc0f' /proc/cpuinfo

Когда после выполнения данной команды в терминале пусто, значит, увы, но эта технология пока что не для вас. Меж прочим, не забудьте предварительно активировать ее еще и в BIOS вашего компьютера. Итак, все проверки пройдены, kvm нам ясна, можно запускать qemu. Qemu сама по себе консольная программа, хотя для нее ясны несколько разных графических программ-оболочек, но я приведу свой скрипт запуска qemu из рента дабы не быть привязанным к графике (сам сомневался, но иногда это может пригодиться).

Читайте также:  Основы Docker для начинающих — пошаговое руководство

qemu-system-i386 \
-name \
-vga std \
-enable-kvm \
-localtime \
-cpu host \
-balloon virtio \
-m 256 \
-net nic, vlan=0,model=virtio \
-net user, vlan=0 \
-drive file=.qcow2,if=virtio

Послите внимание, что i386 в имени команды означается что эмулироваться будет архитектура i386. Qemu разрешит эмулировать также и другие архитектуры. Самый легкий способ просмотреть которые, это: открыть терминал, написать в нем qemu-system — и два раза нажать кнопку Tab, вы увидите все возможные варианты. Теперь об используемых ключах команды:

• — name — тут все просто, это имя вашей виртуальной машины;

• — vga std — показывает qemu утилизировать стандартный графический драйвер, который позволяет получить разрешение экрана условной системы вплоть до 2560 x 1600 крапинок;

Читайте также:  Установка Linux CentOS 7 на ваш компьютер

• — enable-kvm — ключ, указывающий qemu утилизировать технологию kvm о которой было написано реке;

• — localtime — указывает что qemu станет использовать локальное время вместо UTC;

• опции — cpu host и — balloon virtio я нашёл на странице в арчвики, посвященной qemu. Они необходимы для ускорения работы виртуальной машины;

• — m 256 — делает отличное предложение сделать количество оперативной памяти, доступной в виртуальной машине. В данном случае 256 Мб. По умолчанию, qemu изолирует 128 Мб;

• — net nic, vlan=0,model=virtio — означает что в виртуальной системе будет сотворено одно сетное устройство модели virtio. Модели могут быть такие: e1000, i82551, i82557b, i82559er, ne2k_pci, pcnet, rtl8139 и virtio. Для бесчисленных из них нужно устанавливать в гостевую ОС драйвера (если не для всех). Могу сказать что как минимум для rtl8139 и virtio драйвера с легкостью ищутся в интернете;

• — net user, vlan=0 — ключ, с помощью которого мы говорим qemu досоздать условную подсеть NAT и с помощью встроенного в qemu DHCP-сервера выдать виртуальной сетевой диаграмме IP-адрес. С поддержкою этой опции виртуальная машина будет иметь доступ в веб, при условии, конечно что компьютер-хост обладает к нему доступ;

• — drive file=.qcow2,if=virtio — показывает путь к файлу-образу безжалостного диска виртуальной системы. В данном случае в формате qcow2, характерной чертой какого является увеличение размера файла-образа по мере увеличения размера виртуальной системы до установленного первоначально максимального значения. Также существует возможность создания образа в формате raw, величина которого сразу равен максимальному заданному размеру. if=virtio опять же, означает эмулируемую модель диска.
Образ жесткого диска создается следующей командой:

Читайте также:  Как настроить репозиторий ATrpms Yum на CentOS/RHEL и Fedora

qemu-img create - f qcow2 4G

Тут все светло: указывается формат образа, его имя и размер.
Хочу обратить внимание что моделями виртуальных сетный игра в карты и жесткого диска выбраны virtio, так как на арчвики указывается что с драйверами для этих модификаций условная системы показывает наибольшую производительность и наименьшую нагрузку на хост-систему.
Помимо консольного метода запуска порекомендую еще и графическую программу для управления qemu — aqemu. В ней множество настроек, все интуитивно понятно и легко разобраться. Но больше всего мне понравилась функция вывода строки для терминала с помощью которой можно запустить qemu со всеми настройками, сделанными в этой программе.
В воззрение хочу добавить, что qemu способна даже осуществлять так называемый «проброс» видеокарты в гостевую систему, при этом гостевая система будет работать на 95% мощности от реальной. В сходственном случае отпадет необходимость в дуалбуте из нескольких операционок. Правда, стоит оговориться, что для этого необходимо проделать дополнительные операции и требования к железу компьютера существенно увеличиваются. Проще говоря, не всякий компьютер так сможет.