Howto Qemu-kvm Debian 8

У цьому howto ми з вами просто і швидко, крок за кроком, запустимо гіпервізор Qemu-KVM в debian 8.

image

Будемо запускати віртуальну машину в qemu-kvm від користувача username, використовуючи spice, qxl і virtio.
Передбачається, що встановлений Debian 8 amd64, з вибраними в tasksel стандартними утилітами і SSH-сервером. Довстановимо.

aptitude install-y firmware-linux bridge-utils etckeeper


Перевіримо, чи підтримує наш процесор віртуалізацію:
egrep '(vmx|svm)' /proc/cpuinfo

Включимо форвардінг, net.ipv4.ip_forward=1
vim /etc/sysctl.conf

Створюємо міст br0
Приблизний вигляд /etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
#auto eth0
#allow-hotplug eth0
#iface eth0 inet dhcp

auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0

/etc/init.d/networking restart

Перевіримо, повинно бути схоже «br0 8000.08608ee7dc58 no eth0»
brctl show 

Використовуючи міст, при старті віртуальної машини будуть підніматися vnetX інтерфейси
tcpdump-i vnet0-n

Встановлюємо kvm:
aptitude install qemu-kvm libvirt-bin

Додаємо користувача в групи kvm:
adduser username kvm
adduser username libvirt

Дозволимо доступ для spice і змінимо користувача, під яким все буде працювати:
vim /etc/libvirt/qemu.conf

spice_listen = «0.0.0.0»
user = «username»
group = «username»


За великим рахунком все готово до роботи.
Без запущених віртуальних машин хост-система займає ~150 mb ram

Можна пропустити — варіант для просунутихGUI менеджер для виконання базового ряду завдань при роботі з kvm.
Створення, запуск/зупинка, клонування — майже :) все, що потрібно.

На іншому комп'ютері встановлюємо:
aptitude install ssh-askpass virt-manager virt-viewer spice-client-gtk

Запускаємо virt-manager.
Файл -> додати з'єднання -> Гіпервізор: QEMU/KVM і підключаємося до віддаленого хосту під нашим користувачем username. Авторизація використовує openssh-askpass.
Правка -> властивості підключення — Сховище
Тут можна управляти сховищами — наприклад, створити qemu-iso-storage і покласти туди дистрибутиви для подальших потреб. Наприклад, gparted

До створеної віртуальної машини можна підключиться простим вивером зі всім функціоналом, що надає spice.
Для цього необхідно дізнатися URI домену/вірт.машини на kvm
virsh domdisplay corn

На клієнті запустимо:
remote-viewer spice://10.1.1.8:5905 


Теж саме іншим вивером, який spice-client-gtk:
spicy-h 10.1.1.8-p 5905


У просунутому варіанті при створенні нової віртуальної машини існує баг.
В налаштуваннях, де вибираємо spice-сервер vnc-сервер, можна вибрати spice, не включивши TLS.
Саме по собі TLS в qemu за замовчуванням не використовується і, соовественно, вимкнено.
Якщо TLS поки не потрібно, можна тимчасово запустити вірутальную машину з vnc-сервер, що б /etc/libvirt/qemu/ створився corn.xml і замінити в ньому секцію <graphics… /> на spice з вимкненим TLS.
<graphics type='spice' port='5905' autoport='no' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>

Як подружити TLS написано тут — habrahabr.ru/post/221693


Продовжуємо конфігурувати під root

Визначаємо пули — де все буде лежати
конфігурації storage зберігаються тут /etc/libvirt/storage/
за замовчуванням є default.xml — сховище на файловій системі в /var/lib/libvirt/images
Додаємо своє qemu-test-storage:
*-as створює сховище аналогічне дефолту, тобто по конфігурації таке ж як default.xml
virsh pool-define-as qemu-test-storage --target dir /home/robot/qemu-test-storage/

За замовчуванням пул не запущений, стартуємо:
virsh pool-start qemu-test-storage

Додаємо створений пул в автостарт:
virsh pool-autostart qemu-test-storage

Подивитися усі басейни:
virsh pool-list --all

Всі домени:
virsh list --all


Реєструємо домен (віртуальну машину) з конфігурацією, описаної у файлі corn.xml
Створити xml з конфігурацією (наприклад, для шаблона) простіше через virt-manager, ніж описувати кожну опцію в virt-install.
Всі конфігурації віртуальних машин зберігаються /etc/libvirt/qemu/
Вообщем, передбачається, що у нас є цей файл.
virsh define /home/robot/anyfolder/corn.xml

Додати домен в автозавантаження:
virsh autostart corn

Поточна конфігурація домену:
virsh dumpxml corn

Редагуємо домен:
virsh edit corn

Стартуємо домен, дивимося URI і підключаємося будь-яким доступним способом.
virsh start corn
virsh domdisplay corn


Що б встановити windows на VirtIO розділ, установникові потрібен драйвер з папки viostor комплекту драйверів virtio for windows.
На linux-kvm.org лежать исходники, на fedoraproject.org можна знайти зібрані virt-win.iso
Після установки вам, швидше за все, знадобляться spice windows guest tools

Тепер розширимо тому домену.
Скористаємося qemu-img — QEMU disk image utility. В нашому випадку те corn.qcow2
Спостереження — windows 7 мало 10GB, що б разом викачати все з центру оновлень і коректно їх встановити.
Буває корисно спочатку встановити Оновлення для Windows 7 (KB2852386)» — дозволяє худо-бідно (читай, ніяк) очищати C:\Windows\winxsx через стандартну «очищення диска» і між перезавантаженнями, а після використовувати цент оновлень.

Перевіримо розділ:
cd /home/username/qemu-qcow2-storage/
qemu-img info corn.qcow2
qemu-img check corn.qcow2

Мінімально досить наступного:
qemu-img resize corn.qcow2 +10GB

Потім додаємо пристрій CD-ROM, «вставляємо туди gparted» і все як зазвичай. Російська мова — 24.
По хорошому треба використовувати libguestfs-tools або resize2fs

Для Windows 8.1 потрібен драйвер wddm, QXL буде дуже повільно, краще прокинути видекарту хоста
Про OEM-активація Windows дуже добре написано тут — habrahabr.ru/post/247597

Всім дякую.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.