У даній статті ми розглянемо установку і базове налаштування гипервизора KVM на сервері під керуванням Linux CentOS. Покажемо, як створити віртуальну машину в KVM, змінити її налаштування, встановити гостьову операційну систему і основні команди управління ВМ.
KVM (Kernel-based Virtual Machine) засіб віртуалізації в середовищі Linux, яке використовує апаратну віртуалізацію на базі Intel VT або AMD SVM. За допомогою KVM ви можете створювати ізольовані віртуальні машини з власним віртуальним апаратним забезпеченням: мережевими картами, дисками, відеокартами і іншими пристроями. На віртуальні машини можна уставити будь-яку ОС (не тільки Linux).
зміст:
- Установка KVM в CentOS
- Налаштування мережі в KVM
- KVM: створення віртуальної машини
- Підключення до ВМ на KVM через VNC, установка ОС
Установка KVM в CentOS
під час налаштування KVM на сервері, потрібно почати з перевірки вашого процесора. Потрібно дізнатися, чи підтримує апаратну віртуалізацію CPU, встановлений на вашому сервері. З консолі сервера, виконайте команду:
# Cat / proc / cpuinfo | egrep "(vmx | svm)"
Якщо ваш процесор підтримує технологію VT-x, у вас повинен бути приблизно такий висновок:
Якщо ж команда нічого не видала, але ваш процесор точно підтримує віртуалізацію, перевірте, вохможно дана опція відключена в BIOS сервера. шукайте параметри "Intel Virtualization Technology" або "SVM MODE".
Детальніше про отримання інформації про апаратне забезпечення в Linux.На моєму сервері підтримка даної технології включена, тому можна приступати до установки необхідних компонентів в CentOS через пакетний менеджер yum / dnf:
# Yum install libvirt libvirt-python libguestfs-tools qemu-kvm virt-install -y
- qemu-kvm - сам гипервизор KVM;
- libvirt - бібліотеки управління вірилізацією;
- virt-install - команди для управління віртуальними машинами KVM.
На сервер буде встановлено велику кількість пакетів, стежте, щоб у вас не виникло помилок в процесі установки.
Тепер потрібно додати сервіс libvirtd в автозавантаження і запустити його:
# Systemctl enable libvirtd
# Systemctl start libvirtd
Перевірте, завантажилися чи модулі ядра kvm_intel і kvm:
[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
Щоб створені віртуальні машини мали доступ в інтернет, нам потрібно налаштувати мережу через bridge. Для цього буде потрібно пакет bridge-utils, перевірте чи встановлений він в Linux командою:
# Rpm -qa | grep bridge-utils
Якщо потрібно, встановіть його:
# Yum install bridge-utils -y
Після установки пакетів для KVM, в системі з'явився мережевий інтерфейс virbr0:
# Ip a
Щоб створити мережевий міст (bridge), Потрібно налаштувати файл конфігурації для мережевого інтерфейсу сервера:
# 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
Щоб перевірити стан 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 порт, який ми дізналися раніше (через подвійне двокрапка).
натисніть "Connect", У вікні, вкажіть пароль, який задали при створенні ВМ. Якщо все зробили правильно, у вас відкриється консоль сервера, на якій запущена установка CentOS (або інший ОС, образ якої ви змонтували).
Якщо у вас на сервері встановлено фаєрвол, відкрийте мережеві порти для VNC 5900-5910 в firewalld / iptables, цієї кількості повинно вистачити. Після установки гостьовий ОС на віртуальну машину, запустіть ВМ з консолі сервера:
Щоб вимкнути віртуальну машину KVM, використовуйте команду:
# Virsh shutdown test-centos
Щоб вивести список всіх зареєстрованих віртуальних машин KVM:
# Virsh list --all
На цьому базова настройка сервера для KVM і створення віртуальної машини закінчено. На KVM можна створити необмежену кількість віртуальних машин, все залежить від ресурсів вашого сервера і ваших потреб.