Для упрощения и унификации работы с различными системами виртуализации можно использовать
удобный фронтэнд virt-manager (http://virt-manager.et.redhat.com/).В Ubuntu ставим необходимые пакеты:
sudo apt-get install kvm qemu libvirt-bin bridge-utils ubuntu-virt-mgmt ubuntu-virt-server
Отдельно GUI интерфейс можно поставить из пакетов virt-manager и virt-viewer.
Пакет для формирования гостевых окружений: python-vm-builder
Пакет для создание гостевых VM с другими ОС внутри: python-virtinst
Добавляем себя в группу администраторов виртуальных серверов:
sudo usermod -aG libvirtd `id -un`
Далее, управление виртуальными машинами производится командой virsh.
Создаем файл конфигурации test.xml и определяем новую виртуальную машину test c Ubuntu внутри:
sudo python-vm-builder kvm jaunty \
--domain test \
--dest описание \
--arch i386 \
--hostname имя_хоста \
--mem объем_памяти_в_мегабайтах \
--user имя_пользователя \
--pass пароль \
--ip 192.168.0.12 \
--mask 255.255.255.0 \
--net 192.168.0.0 \
--bcast 192.168.0.255 \
--gw 192.168.0.1 \
--dns 192.168.0.1 \
--components main,universe \
--addpkg vim openssh-server \
--libvirt qemu:///system ;
virsh dumpxml test > ~/test.xml
редактируем test.xml
virsh define ~/test.xml
При необходимости создания гостевой VM с другой операционной системой, можно использовать python-virtinst:
sudo virt-install --connect qemu:///system -n test -r 512 -f test.qcow2 -s 12 \
-c test_inst.iso --vnc --noautoconsole --os-type linux --os-variant ubuntuJaunty --accelerate --network=network:default
Для контроля процесса установки, соединяемся GUI интрфейсом:
virt-viewer -c qemu:///system test # локально
virt-viewer -c qemu+ssh://ip_адрес_хоста/system test # с внешнего IP
Если необходимо, чтобы гостевая ОС работала в отдельном разделе диска, то файловый образ нужно сконфертировать:
sudo qemu-img convert root.qcow2 -O raw /dev/sdb
Клонирование ранее созданного гостевой системы:
virt-clone --connect=qemu:///system -o srchost -n newhost -f /path/to/newhost.qcow2
А затем поправить в XML файле "<source file='/dev/sdb'/>"
Управление окружением.
Заходим в shell virsh:
virsh --connect qemu:///system
Стартуем виртуалную машину:
virsh # start test
Замораживаем состояние виртуальной машины:
virsh # suspend test
Продолжаем выполнение с момента остановки:
virsh # resume test
Список активных виртуальных машин:
virsh # list
Список всех определенных в системе виртуальных машин:
virsh # list --all
Останавливаем виртуальную машину test (эквивалент выполнения shutdown -r now):
virsh # shutdown test
Мгновенно останавливаем виртуальную машину, как при выключении питания:
virsh # destroy test
Удаляем виртуальную машину test из списка (удалем файл конфишурации virsh):
virsh # undefine test
Для управления виртуальными машинами с удаленного ПК 10.0.0.1 через GUI интерфейс можно использовать:
virt-manager -c qemu+ssh://10.0.0.1/system
на локальной машине:
virt-manager -c qemu:///system
Настройка сети.
Настойка эмуляции локальной сети и создания полноценного сетевого соединения внутри виртуального окружения.
В хост-окружении создаем интерфейс для бриждинга, в /etc/network/interfaces добавляем:
auto br0
iface br0 inet static
address 192.168.0.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
Рестартуем сеть:
sudo /etc/init.d/networking restart
В XML конфигурации гостевой системы правим настройки сети на:
<interface type='bridge'>
<mac address='00:11:22:33:44:55'/>
<source bridge='br0'/>
<model type='virtio'/>
</interface>
URL: https://help.ubuntu.com/community/KVM
Обсуждается: http://www.opennet.dev/tips/info/2074.shtml