Мета
На персональному комп’ютері під операційною системою Ubuntu налаштувати середовище для роботи з віртуальними машинами на основі гіпервізора Kernel Virtual Machine (KVM). Здійснити міграцію до KVM віртуальних машин, раніше створених в гіпервізорі Oracle VirtualBox. В даній публікації розглядається початкове налаштування KVM під Ubuntu 16.04.
Перевірка підтримки віртуалізації процесором
Якщо на комп’ютері попередньо успішно використовувався VirtualBox, зрозуміло, що з підтримкою віртуалізації в нього скоріше за все проблем немає. Втім, якщо відомостей про підтримку віртуалізації комп'ютером немає, доречно виконання наступних перевірок.
Перевіряємо чи підтримує апаратно процесор комп’ютера віртуалізацію. На сьогодні це вже суто формальна перевірка, адже всі сучасні процесори мають апаратну підтримку віртуалізації. Отже:
# egrep -c ‘(vmx|svm)’ /proc/cpuinfo
8
Результат виконання команди -- кількість ядер процесора, які апаратно підтримують віртуалізацію. Прапорець vmx присутній в процесорах Intel, svm -- в процесорах AMD. Вочевидь, отримана кількість ядер процесора дорівнюватиме загальній кількості ядер процесора, адже всі вони однакові. Також ця кількість буде вдвічі більшою за кількість апаратних ядер процесора у разі ввімкнення гіпертрідінгу (hyper-threading), який зазвичай ввімкнено (можливою причиною для вимкнення гіпертрідінгу може бути бажання оптимізувати продуктивність процесору для виконання одно-трідових (single-threaded) процесів, але це не типовий випадок).
Інший метод для перевірки підтримки процесором віртуалізації -- виконання команди lscpu, приклад виводу якої наведено нижче:
# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 58
Model name: Intel(R) Core(TM) i7-3632QM CPU @ 2.20GHz
Stepping: 9
CPU MHz: 1301.179
CPU max MHz: 3200,0000
CPU min MHz: 1200,0000
BogoMIPS: 4390.05
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 6144K
NUMA node0 CPU(s): 0-7
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
Якщо зазначені методи вказують на відсутність підтримки віртуалізації процесором, варто перевірити налаштування BIOS -- технологія апаратної підтримки віртуалізації процесором та гіпертрідінг можуть бути вимкнені.
Ще однією альтернативою перевірки спроможності процесора апаратно підтримувати віртуалізацію на основі KVM є виконання команди kvm-ok (для цього може бути потрібним встановлення пакунку cpu-checker). Вивід команди у разі підтримки розширень, які використовує KVM:
INFO: /dev/kvm exists
KVM acceleration can be used
KVM acceleration can be used
Для системи з віртуалізацією доречно використовувати 64-бітну операційну систему (ОС). Пересвідчитися, що використовувана ОС є 64-бітною можна командами arch або uname -a, у виводі яких має бути наявним ідентифікатор 64-бітної архітектури -- x86_64:
$ arch
x86_64
Також ознакою 64-бітної архітектури ОС є наявність флагу lm в інформації з /proc/cpuinfo:
$ egrep -c ' lm ' /proc/cpuinfo
8
У разі відсутності апаратної підтримки віртуалізації процесором продуктивність системи буде низькою, а у разі використання 32-бітової ОС максимальний обсяг пам’яті створюваних віртуальних машин не зможе перевищувати 2 Гбайти.
Встановлення пакунків для віртуалізації на основі KVM
Для віртуалізації на основі KVM необхідно встановити додаткові пакунки, якщо вони не були встановлені раніше:
$ sudo apt install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils
Встановлення вказаних пакунків призведе до автоматичного встановлення додаткових необхідних пакунків.
У разі, якщо на комп’ютері встановлено сервер графічного інтерфейсу користувача X- Window, доречно додатково встановити графічну утіліту роботи з віртуалізацією virt-manager:
$ sudo apt install virt-manager
Додаткові корисні утіліти:
$ sudo apt install virt-top
Після встановлення необхідних пакунків комп’ютер доречно перезавантажити. Під час завантаження системи можна помітити повідомлення: Starting Virtualization Daemon. Після завантаження перевірити стан гіпервізора для віртуалізації libvirtd можна командою:
$ sudo systemctl status libvirtd
● libvirt-bin.service - Virtualization daemon
Loaded: loaded (/lib/systemd/system/libvirt-bin.service; enabled; vendor preset: enabled)
Active: active (running) since пн 2017-01-02 22:46:19 EET; 6min ago
Docs: man:libvirtd(8)
http://libvirt.org
Main PID: 1428 (libvirtd)
CGroup: /system.slice/libvirt-bin.service
├─1428 /usr/sbin/libvirtd
├─1708 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/
└─1709 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/
Команда для огляду стану існуючих віртуальних машин повертає пустий список:
# virsh list --all
Id Name State
----------------------------------------------------
Створення та керування віртуальними машинами
Для створення та керування віртуальними машинами зручно скористатися графічною утілітою virt-manager. Утіліта надає можливість виконання всіх необхідних дій з віртуальними машинами:
- створення нової віртуальної машини
- імпорт віртуальної машини, створеної в іншому гіпервізорі
- запуск (start), зупинення (shut down), призупинка (pause) віртуальної машини
- створення миттєвих знімків (snapshots)
- створення нової віртуальної машини шляхом клонування існуючої
Джерела
- https://help.ubuntu.com/community/KVM/Installation
- https://help.ubuntu.com/community/KVM/CreateGuests
Немає коментарів:
Дописати коментар