Установка Linux KVM и гостевой ОС
В данной статье рассмотрим установку KVM в Debian/Debian-based операционных системах.
KVM (Kernel-based Virtual Machine) – Linux-решение, которое обеспечивает виртуализацию x86-платформы, поддерживающей Intel VT (Virtualization Technology) или AMD SVM (Secure Virtual Machine).
Разрабатывается компанией Red Hat.
Чтобы проверить, поддерживает ли ваша платформа VT или SVM – дайте команду
1 |
egrep '(vmx|svm)' /proc/cpuinfo |
Если вывод команды не пустой, значит поддерживает.
Устанавливаем KVM:
1 |
apt-get install kvm libvirt-bin virtinst bridge-utils |
Создаем мост – в файл /etc/sysctl.conf добавляем строки:
1 2 |
net.ipv4.conf.all.forwarding=1 net.ipv4.conf.all.proxy_arp=1 |
и даем команду sysctl -p
Для моста в файл /etc/network/interfaces добавляем новый сетевой интерфейс, например kvmbr0 – в результате файл interfaces получился приблизительно таким:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet manual auto kvmbr0 iface kvmbr0 inet static address 10.45.11.192 network 10.45.11.0 netmask 255.255.255.0 broadcast 10.45.11.255 gateway 10.45.11.254 bridge_ports eth0 # dns-nameservers 10.81.101.5 |
Перезагрузим сеть: /etc/init.d/networking restart
Теперь вывод brctl show должен показать примерно следующее:
kvmbr0 8000.f46d04976c46 no eth0
У меня все будет в домашнем каталоге /home/sd
Скачиваем (или передаем между компьютерами через scp/nc) в домашний каталог iso-образ (дистрибутив) той операционной системы, которая впоследствии будет гостевой. У меня это файл winxp.iso
Создаем файл-диск виртуальной системы (здесь 10 Гб):
1 |
dd if=/dev/zero of=/home/sd/vmwinxp.img bs=1024k count=10000 |
При запуске следующей команды может появиться сообщение:
Unable to connect to graphical console: virt-viewer not installed. Please install the ‚virt-viewer‘ package. – не обращайте на него внимания.
Сама команда – установка гостевой ОС:
1 |
virt-install -n windaxp -r 1024 -f /home/sd/vmwinxp.img -s 30 -c /home/sd/winxp.iso --accelerate --os-type=windows --os-variant=winxp --vnc -v -w bridge:kvmbr0 |
(„–os-type=linux –os-variant=generic26“ для линуксов)
где:
-r 1024 – количество памяти выделяемой под виртуальную машину (в мегабайтах)
–vnc – включаем VNC (будет слушать на localhost:5900, позже сделаем SSH-туннель)
-w bridge:kvmbr0 – подключаем к сети на интерфейс kvmbr0
Как я предупреждал ранее, если после запуска этой команды не появилось никаких ошибок, а отобразилось что-то вида:
Starting install…
Creating domain… 0 B 00:01
Unable to connect to graphical console: virt-viewer not installed. Please install the ‚virt-viewer‘ package.
Domain installation still in progress. You can reconnect to
the console to complete the installation process.
то все отлично, виртуальная машина запустилась (можно проверить командой virsh -c qemu:///system list –all)
Теперь с любого компьютера пробрасываем SSH-туннель:
1 |
ssh -L 5900:localhost:5900 root@HOST_SERVER_IP |
и remmina на localhost:5900
или
Устанавливаем (если в самом начале не установили, а настраивали сервер локально) ssh-клиент, например, kitty (доработанный вариант putty). Запускаем, настраиваем:
Во вкладке Session — Host Name (or IP address) адрес нашего хост-сервера (в моем случае 172.16.4.24).
Во вкладке Windows-Translation — выбираем UTF-8.
Во вкладке Connection-SSH-Tunnels — заполняем поля Source port 59000, Destination localhost:5900, нажимаем Add. Должна появится следующая запись:
image
Жмем Open и мы должны подключиться по SSH к хост-серверу. Одновременно у нас произойдет перенаправление порта 5900 хост-сервера (порт vnc-сервера) на наш локальный 59000 порт.
Если у вас появляется ошибка: „qemu: could not open disk image … : Permission denied“, скопируйте .img/.iso файлы в /var/lib/libvirt/images, чтобы SELinux „не был против“ =)
Администрирование виртуальных машин:
Для начала запускаем консоль управления
sudo virsh
и уже в ней:
list –all -посмотреть все виртуальные машины
destroy имя виртуальной машины – жесткое выключение виртуальной машины
undefine имя виртуальной машины -удалить виртуальную машину(не забываем потом удалить файл виртуальной машины, конечно если она больше не нужна)
start имя виртуальной машины – запустить виртуальную машину
autostart имя виртуальной машины – автозагрузка виртуальной машины
autostart –disable имя виртуальной машины – выключить автозагрузку виртуальной машины
Ф-С-КК-К
15.10.2012 @ 16:15
Вылазит ошибка, а в /var/lib/libvirt/images места нет. ??
ERROR internal error process exited while connecting to monitor: char device redirected to /dev/pts/3
qemu: could not open disk image /home/udelf/.qq/img.img: Permission denied
Vzhikk
21.10.2012 @ 11:15
Можно в /etc/libvirt/qemu.conf
раскоментить/заполнить параметры
user=“root“ и group=“root“
Ф-С-КК-К
23.10.2012 @ 15:50
не помогает
lxc
29.10.2012 @ 22:35
смотрите в сторону LXC
admin
29.11.2012 @ 11:36
не совсем понял, как будут назначаться ip-адреса гостевым машинам?
Uchla
30.11.2012 @ 06:02
Здравствуйте,
Ручками, внутри самой гостевой машины
слава
15.12.2012 @ 05:37
а gui какой-нибудь у KVMА есть?
Uchla
16.12.2012 @ 20:38
virt-manager
Konst
01.02.2013 @ 16:39
Привет Руслан,
слушай, как склонировать уже поднятую виртуалку?