У даній статті ми розглянемо установку і базове налаштування Гіпервізор KVM на сервері під керуванням Linux CentOS. Покажемо, як створити віртуальну машину в KVM, змінити її налаштування, встановити гостьову операційну систему і основні команди управління ВМ.
КВМ (Kernel-based Virtual Machine) засіб віртуалізації в середовищі Linux, яке використовує апаратну віртуалізацію на базі Intel VT або AMD SVM. За допомогою KVM ви можете створювати ізольовані віртуальні машини з власним віртуальним апаратним забезпеченням: мережевими картами, дисками, відеокартами і іншими пристроями. На віртуальні машини можна уставити будь-яку ОС (не тільки Linux).
Встановлення KVM в CentOS
під час налаштування КВМ на сервері, потрібно почати з перевірки вашого процесора. Потрібно дізнатися, чи підтримує апаратну віртуалізацію CPU, встановлений на вашому сервері. З консолі сервера, виконайте команду:
# cat /proc/cpuinfo | egrep "(vmx|svm)"
Якщо ваш процесор підтримує технологію VT-x, У вас повинен бути приблизно такий висновок:
Якщо ж команда нічого не видала, але ваш процесор точно підтримує віртуалізацію, перевірте, вохможно дана опція відключена в BIOS сервера. шукайте параметри “Технологія віртуалізації Intel” або “SVM MODE”.
На моєму сервері підтримка даної технології включена, тому можна приступати до установки необхідних компонентів в CentOS через пакетний менеджер yum / dnf:
# yum install libvirt libvirt-python libguestfs-tools qemu-kvm virt-install –y
- qemu-kvm – сам гіпервізор КВМ;
- libvirt – бібліотеки управління вірилізацією;
- virt-install – команди для управління віртуальними машинами KVM.
На сервер буде встановлено велику кількість пакетів, стежте, щоб у вас не виникло помилок в процесі установки.
Тепер потрібно додати сервіс libvirtd в автозавантаження і запустити його:
# systemctl enable libvirtd
# systemctl start libvirtd
Перевірте, завантажилися чи модулі ядра kvm_intel і кв:
[root@localhost /]# lsmod | grep kvm
kvm_intel 188688 0 kvm 636931 1 kvm_intel irqbypass 13503 1 kvm
Якщо у вас нічого не виводиться, перезавантажте сервер і перевірте повторно.
Налаштування мережі в KVM
Тепер створимо каталоги, в яких будуть зберігатися диски віртуальних машин і iso образи:
# mkdir -p /vz/{disk,iso}
Щоб створені віртуальні машини мали доступ в інтернет, нам потрібно налаштувати мережу через міст. Для цього буде потрібно пакет міст-утилів, Перевірте чи встановлений він в Linux командою:
# rpm -qa | grep bridge-utils
Якщо потрібно, встановіть його:
# yum install bridge-utils -y
Після установки пакетів для KVM, в системі з’явився мережевий інтерфейс virbr0:
# ip a
Щоб створити мережевий міст (міст), Потрібно налаштувати файл конфігурації для мережевого інтерфейсу сервера:
# cp /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 /etc/sysconfig/network-scripts/ifcfg-enp1s0f0_bak
– робимо бекап файлу
# nano /etc/sysconfig/network-scripts/ifcfg-enp1s0f0
– відкриваємо для редагування
Видаліть всі вміст і замініть на наступне:
DEVICE="enp1s0f0" ONBOOT="yes" BRIDGE=br0
У вашому випадку, ім’я інтерфейсу може відрізнятися (дивіться через команду ip a).
Після чого створіть файл:
# nano /etc/sysconfig/network-scripts/ifcfg-br0
з вмістом:
DEVICE="br0" TYPE=BRIDGE ONBOOT=yes BOOTPROTO=static IPADDR="IP_адрес_сервера" NETMASK="255.255.255.0" GATEWAY="Основной_шлюз" DNS1="77.88.8.8" DNS2="8.8.4.4"
Де вкажіть свої дані: IP-адреса сервера і основний шлюз. Після редагування конфігураційних файлів мережевих інтерфейсів потрібно перезапустити есервіс:
# service network restart
Якщо у вас після рестарту network пропав доступ до сервера, спробуйте перезавантажити його. Іноді це потрібно для коректного налаштування bridge.
Щоб перевірити стан bridge, використовуйте команду:
# brctl show
bridge name bridge id STP enabled interfaces br0 8000.ac1f6b945206 no enp1s0f0 virbr0 8000.5254003f23cf yes virbr0-nic
Останнім кроком потрібно налаштувати перенаправлення мережевого трафіку:
# echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p
Тепер запустіть сервіс libvirtd:
# service libvirtd restart
На цьому базова настройка KVM закінчена, можна створити віртуальну машину.
KVM: створення віртуальної машини
Перед створенням віртуальної машини, я скачав образ CentOS 8 з офіційного дзеркала в директорію / vz / iso:
# cd /vz/iso && wget https://mirror.yandex.ru/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso
Щоб створити нову віртуалную машину KVM, виконайте:
virt-install -n test-centos
--noautoconsole
--network=bridge:br0
--ram 2048 --arch=x86_64
--vcpus=4 --cpu host --check-cpu
--disk path=/vz/disk/test-centos.img,size=32
--cdrom /vz/iso/CentOS-8.1.1911-x86_64-dvd1.iso
--graphics vnc,listen=IP,password=123456789
--os-type linux --os-variant=rhel7 --boot cdrom,hd,menu=on
- test-centos – ім’я ВМ;
- noautoconsole – після створення не потрібно підключатися до консолі віртуальної машини автоматично;
- network – тип мережі (в нашому випадку bridge);
- ram – кількість оперативної пам’яті в ВМ;
- vcpus – кількість ядер процесора (настройка vCPU в KVM);
- disk – віртуальний диск, path – шлях до диска. size – обсяг (у подальшому його можна розширити / зменшити);
- сdrom – віртуальний cdrom, в який монтується iso образ для установки гостьовий ОС;
- graphics – параметри підключення до машини за допомогою графічної консолі. Ми підключаємося через VNC, тому в listen вказує IP сервера, де створили ВМ і пароль для підключення в консолі віртуальної машини (password).
Щоб ВМ завантажувалася автоматично, виконайте:
# virsh autostart test-centos
Підключення до ВМ на KVM через VNC, установка ОС
Щоб підключитися до віртуальної машини через VNC, нам потрібно дізнатися порт, на якому вона працює:
[root@local vz]# virsh vncdisplay test-centos
IP:0
0 означає, що порт для підключення по VNC 5900, якщо у вас буде інший результат, просто додавайте до 5900 цифру, яку видасть вам команда.
Для підключення по VNC до серверів, я використовую утиліту TightVNC. Запустіть її і вкажіть IP-адреса сервера і VNC порт, який ми дізналися раніше (через подвійне двокрапка).
натисніть “Підключіться“, У вікні, вкажіть пароль, який задали при створенні ВМ. Якщо все зробили правильно, у вас відкриється консоль сервера, на якій запущена установка CentOS (або інший ОС, образ якої ви змонтували).
Якщо у вас на сервері встановлено фаєрвол, відкрийте мережеві порти для VNC 5900-5910 в firewalld / iptables, цієї кількості повинно вистачити. Після установки гостьовий ОС на віртуальну машину, запустіть ВМ з консолі сервера:
Щоб вимкнути віртуальну машину KVM, використовуйте команду:
# virsh shutdown test-centos
Щоб вивести список всіх зареєстрованих віртуальних машин KVM:
# virsh list --all
На цьому базова настройка сервера для KVM і створення віртуальної машини закінчено. На KVM можна створити необмежену кількість віртуальних машин, все залежить від ресурсів вашого сервера і ваших потреб.