Установка гипервизора KVM на Debian/Ubuntu
Хочу рассказать в своей теме «Установка гипервизора KVM на Debian/Ubuntu» как установка гипервизор KVM на Debian или Ubuntu на примере Debian 8. Одной из причин почему я использую именно Debian а не Ubuntu — это личные соображения и в стабильности ОС.
Предварительная установка
Для запуска KVM, необходимо процессор поддерживающий аппаратную виртуализацию. Intel и AMD и разработали расширения для своих процессоров, считаются соответственно Intel VT-х (кодовое название Vanderpool) и AMD-V (кодовое название Pacifica). Чтобы узнать поддерживает ваш процессор данную опцию, выполните:
# egrep -c '(vmx|svm)' /proc/cpuinfo
- Если получите ответ 0 — это означает, что ваш процессор не поддерживает аппаратную виртуализацию.
- Если получите ответ 1 или другое число — это означает, что ваш процессор поддерживает виртуализацию в BIOS.
По умолчанию, если вы загрузились в XEN ядро не будет отображаться SVM или флаг VMX с помощью команды GREP. Чтобы увидеть включены ли данные флаги от Xen, введите:
# cat /sys/hypervisor/properties/capabilities
Вы должны увидеть HVM флаги.
Кроме того, вы можете выполнить:
# kvm-ok
Если получите следующий вывод, то у вас все хорошо и у вас имеется поддержка:
INFO: /dev/kvm exists KVM acceleration can be used
Если получите следующий вывод, то у вас нет поддержки и будет работать гораздо медленнее без этих расширений KVM:
INFO: Your CPU does not support KVM extensions KVM acceleration can NOT be used
ПРИМЕЧАНИЕ: Вы можете увидеть сообщение вроде «KVM acceleration can/can NOT be used». Это вводит в заблуждение, и только означает что KVM является *currently* available (i.e. «turned on»), и говорит что они включены, но не поддерживаются.
Используйте 64 битное ядро (если это возможно)
Запуск на 64 битном ядре рекомендуется, но не требуется.
Чтобы обеспечить поддержку более 2 Гб оперативной памяти для виртуальных машин, необходимо использовать 64-битное ядро. На 32-битном ядре будут ограничено использование РАМ до 2 Гб.
Кроме того, 64-разрядная система может содержать как 32-разрядные, так и 64-разрядные ОС, а 32-битная система может вместить только 32-разрядные ОС ваших виртуальных машин. Чтобы проверить, какой розрядности ваш процессор, вы можете запустить эту команду:
# egrep -c ' lm ' /proc/cpuinfo
- Если вы имеете 0, то это означает что ваш процессор не 64-битный.
- Если вы имеете 1 и выше, то это говорит что имеет поддержку.
Чтобы посмотреть архитектуру вашего сервера, используйте:
# uname -m
x86_64 указывает работу c 64-разрядным ядром. Если вы используете i386, i486, i586 или i686, вы работаете в 32-битным ядром.
Установка гипервизора KVM на Debian/Ubuntu
Для минимальной установки, потребуется лишь следующий пакет virtinst который можно установить:
# aptitude install virtinst
Следующие пакеты необходимы если вам необходимо включить KVM на уже установленной ОС, я установлю и их:
# aptitude install kvm libvirt-bin virtinst bridge-utils
Для того, тобы использовать графический интерфейс установите:
# aptitude install virt-manager virt-viewer
Моя первая виртуальная машина будет установлена именно через графический интерфейс т.к он очень простой.
Добавляем своего пользователя в группы:
# adduser `id -un` libvirtd $ sudo adduser `id -un` kvm
Например:
# adduser captain kvm # adduser captain libvirtd
После установки, вы должны войти снова, чтобы ваш пользователь становится действительным членом KVM и libvirtd групп пользователей. Члены этой группы могут запускать виртуальные машины.
Настройка сетевого моста для подключения виртуальных машин к реальной сети
Данная настройка необходима для вашего гипервизера, для того чтобы виртуальные сервера имели прямой доступ к интернету. Внесем некоторые изменения в конфигурационный файл
# vim /etc/network/interfaces
Если у вас имееться сетевой интерфейс eth0, то его нужно заменить на br0 с добавляем следующих строк:
#auto eth0 #iface eth0 inet manual auto br0 iface br0 inet static address 192.168.10.10 gateway 192.168.10.1 netmask 255.255.255.0 network 192.168.10.0 broadcast 192.168.10.255 bridge_ports eth0 bridge_stp off bridge_maxwait 0 bridge_fd 0
ИЛИ
auto lo iface lo inet loopback auto eth0 iface eth0 inet manual 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_stp off bridge_fd 0 bridge_maxwait 0
Я буду использовать следующий пример с DHCP
auto lo iface lo inet loopback auto eth0 iface eth0 inet manual auto br0 iface br0 inet dhcp bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0
Это создаст виртуальный интерфейс br0.
Теперь перезагрузите сеть:
# /etc/init.d/networking restart
Если ваша VM «замораживает» в течение нескольких секунд после запуска или остановки KVM при использовании мостового сети, это потому, что мост Linux примет аппаратный адрес с наименьшим номером интерфейса. Чтобы обойти эту проблему, добавьте следующию конфигурацию вашего моста:
# post-up ip link set br0 address f4:6d:04:08:f1:5f
Замените f4:6d:04:08:f1:5f с аппаратным адресом физического Ethernet адаптер, который всегда будет частью моста.
Проверка установки KVM
$ virsh -c qemu:///system list Id Name State ----------------------------------
Если получите вывод:
$ virsh -c qemu:///system list libvir: Remote error : Permission denied error: failed to connect to the hypervisor $
Файл sock должен иметь права, аналогичные как:
$ sudo ls -la /var/run/libvirt/libvirt-sock srwxrwx--- 1 root libvirtd 0 2010-08-24 14:54 /var/run/libvirt/libvirt-sock
Так же, /dev/kvm должен иметь правильные группы. Если ты видишь:
$ ls -l /dev/kvm crw-rw----+ 1 root root 10, 232 Jul 8 22:04 /dev/kvm
Вы можете столкнуться с проблемами при создании виртуальной машины. Изменить группу устройства для kvm/libvirtd:
# chown root:libvirtd /dev/kvm
Теперь вам нужно либо войти снова или перезагрузить модули ядра:
# rmmod kvm # modprobe -a kvm
Следующим шагом будет создание самой виртуальной машины. Но об этом немного позже. А на этом тема «Установка гипервизора KVM на Debian/Ubuntu» завершена.
https://help.ubuntu.com/community/KVM/Installation
Спасибо!)