Работа с QEMU и KVM
Содержание
Введение
Зачем это нужно, если уже есть ряд фронтендов разного уровня (libvirt, Proxmox, RHEV итд)? В любом случае фронтенды вынуждены вызывать qemu с множеством опций, поэтому в некоторых случаях (тестирование новых возможностей, отладка, развлечение) намного приятней и понятней работать непосредственно с qemu. Кроме того знания полезны для общего развития и понимания работы систем.
Как связаны qemu и технология KVM? Qemu - эмулятор, который может работать и без KVM, но использование аппаратной виртуализации значительно ускоряет работу гостевых систем, поэтому KVM является предпочтительным вариантом.
Создание файла образа
Для начала стоит проверить, поддерживается ли аппаратная виртуализация вашим процессором. Для этого стоит убедиться что в параметрах камня имеется флаг vmx или svm (В зависимости от производителя Intel/AMD.)
cat /proc/cpuinfo | grep -E "vmx|svm"
Кроме того необходимо включить поддержку виртуализации в BIOS. На некоторых ноутбуках эта возможность может быть отключена производителем и потребуется перепрошивка BIOSа.
Устанавливаем QEMU:
urpmi qemu
После установки следует перезагрузить компьютер, чтобы система подключила модули ядра kvm и kvm_intel (kvm_amd). После перезагрузки проверим, подключены ли модули ядра:
[root@localhost pastordi]# lsmod | grep kvm kvm_intel 137021 0 kvm 448299 1 kvm_intel [root@localhost pastordi]#
Если нет желания перегружаться, можно в самим подключить эти модули:
modprobe kvm modprobe kvm_intel #Для процессоров AMD подключаем kvm_amd
Далее, если все хорошо, то создаем файл для образа нашей системы.
qemu-img create -f qcow2 RELS1.qcow2 8G
Где:
create = создать файл
-f = укахывает на формат файла, лучше использовать формат qcow2 родной для QEMU, qcow2 формат записи образа виртуальных машины с поддержкой сжатия, снапшотов и шифрования. Кроме того qcow2 образ занимает столько места, сколько данных записано в него виртуальной машиной, вне зависимости от размера создаваемого при создании
RELS1.qcow2 = имя нашего файла образа
8G = размер файла для образа, в данном примере 8 Гигабайт.
После выполнения данной команды у вас будет такое сообщение:
[pastordi@localhost ~]$ qemu-img create -f qcow2 RELS1.qcow2 8G Formatting 'RELS1.qcow2', fmt=qcow2 size=8589934592 encryption=off cluster_size=65536 lazy_refcounts=off [pastordi@localhost ~]$
Установка ISO образа в QEMU
Сначала нам надо запустить ISO образ в QEMU, затем проинсталлировать, и потом уже использовать полученную виртуальную систему.
qemu-kvm -cpu SandyBridge -enable-kvm -net nic,vlan=0 -net user,vlan=0 -hda RELS1.qcow2 -cdrom ./ROSA-Server-6.4-x86_64-DVD.iso -boot d -m 2048
Разберем по порядку, что тут и как:
-cpu SandyBrige = опция отвечающая за эмуляцию командных инструкций процессоров под кодовым названием SandyBrige. В принципе вы можете узнать какие еще процессора поддерживает qemu и выбрать свой.
qemu-kvm -cpu ?
Будет список процессоров:
[pastordi@localhost ~]$ qemu-kvm -cpu ? x86 Opteron_G4 x86 Opteron_G3 x86 Opteron_G2 x86 Opteron_G1 x86 SandyBridge x86 Westmere x86 Nehalem x86 Penryn x86 Conroe x86 [n270] x86 [athlon] x86 [pentium3] x86 [pentium2] x86 [pentium] x86 [486] x86 [coreduo] x86 [kvm32] x86 [qemu32] x86 [kvm64] x86 [core2duo] x86 [phenom] x86 [qemu64] [pastordi@localhost ~]$
-enable-kvm = включаем поддержку kvm ядра. Если мы не включим эту опцию, то qemu будет запущен без использования kvm.
-net nic,vlan=0 -net user,vlan=0 = включение эмуляции сетевого адаптера.
-hda RELS1.qcow2 = указываем какой файл образ будем использовать. Выше было описано, как его создавать.
-cdrom ./ROSA-Server-6.4-x86_64-DVD.iso = опция указывает, что мы будем использовать ISO образ который находится виртуально на устройстве cdrom.
-boot d = указывает, что грузиться qemu будет с cdrom (т.е. с нашего ISO образа) но буква d говорит о том, что ISO образ находится не в приводе cdrom, а на жестком диске.
-m 2048 = указывает, сколько памяти будет выделено под работу qemu. В данном примере 2 Гигабайта.
Итак, мы разобрали наши ошпции, и можно запускать на инсталляцию. Однако есть некоторые ньюансы. Например некоторые образы дистрибутивов не работают из-за настроек vga карты. По- этому, если такое случается, не расстраивайтесь, добавьте в команду запуска опцию: -vga std.
Так же, некоторым захочется иметь еще и звуковую карту рабочую. Тогда в строку запуска следует добавить опцию: -soundhw ac97.
Ну и для гурманов, конечно же можно поиграться с указанием количества процессоров и потоков. Например, можно указать: -smp 4,core=4.
Запуск виртуальной ОС в QEMU
После того, как установили систему. Можно пробовать ее запускать.
qemu-kvm -cpu SandyBridge -enable-kvm -soundhw ac97 -net nic,vlan=0 -net user,vlan=0 -hda RELS1.qcow2 -m 2048
Отличие данной строки запуска, от строки запуска с ISO образом в том, что в первом случае мы указываем параметр: -cdrom ./ROSA-Server-6.4-x86_64-DVD.iso и -boot d. Здесь, же нам это не требуется, т.к. уже имеется файл с установленной виртуальной системой.
В данном примере, мы включаем звук и сеть. Ну а остальные опции, описанные выше, "по вкусу". :)