Попередня установка

Для запуску 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 вказує роботу з 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 груп користувачів. Члени цієї групи можуть запускати віртуальні машини.

Налаштування мережного мосту для підключення віртуальних машин до реальної мережі

Це налаштування необхідне для вашого гіпервізера, щоб віртуальні сервери мали прямий доступ до інтернету. Внесемо деякі зміни до конфігураційного файлу

# nano /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.