В данной статье рассмотрим установку 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
21.10.2012
23.10.2012
29.10.2012
29.11.2012
30.11.2012
15.12.2012
16.12.2012
01.02.2013