Сучасний сервер без системи віртуалізації наразі є швидше вийнятком, ніж правилом. І це не дивно, адже переваг його використання дійсно безліч. Виробнича потужність обладнання постійно зростає, і у адміна з’являється нагода розподіляти ресурси сервера для виконання різноманітних задач. А також виникає можливість заощадити кошти, використовуючи один більш потужний сервер з віртуалізацією замість декількох менш продуктивних. І на додачу – зручна для адміністрування система управління з повним доступом до віртуального сервера на відстані. Всі ці переваги забезпечують попит на технології віртуалізації у сучасному ІТ світі та їх беззаперечні перспективи.
Покрокова інструкція з налаштування системи віртуалізації KVM на базі ОС Linux Debian 10 (Buster)
Вихідні діні
Щоб виконати налаштування необхідно мати сервер з двома жорсткими дисками для RAID-1. Усі команди виконуватимуться від користувача root. Текстовий редактор nano.
1. Першочергове налаштування
Є декілька варіантів налаштування системи віртуалізації KVM. Розглянемо два з них. В першому випадку розгорнемо віртуальний сервер на lvm-розділі, в другому – використаємо файл-образ .
Для першого варіанту розмітка нашого RAID-массиву має виглядати наступним чином:
PART swap PART /boot ext3 PART / ext4 PART /data ext4
З розділу /data ми згодом зробимо lvm-розділ.
Для установки на файл-образ все простіше:
PART swap PART /boot ext3 PART / ext4
Встановлюємо операційну систему Linux Debian 10 (buster) на дзеркало (RAID-1).
Встановлюємо додаткові пакети:
#apt install nmap tcpdump mc hdparm fail2ban smartmontools parted texinfo exim4-config mailutils host bridge-utils
Додаємо в файл /etc/sysctl.conf наступні рядки:
#nano /etc/sysctl.conf net.ipv4.ip_forward=1 net.ipv4.conf.all.rp_filter=1 net.ipv4.icmp_echo_ignore_broadcasts=1 net.ipv4.conf.default.proxy_arp=1 net.ipv4.conf.all.forwarding=1 net.ipv4.conf.all.proxy_arp=1
Застосовуємо зміни:
#sysctl -p
2. Конфігуруємо інтерфейси
Якщо віртуальна машина матиме локальну ip-адресу, необхідно додати наступні рядки до файлу /etc/network/interfaces:
#nano /etc/network/interfaces
. . . auto br0 iface br0 inet static bridge_ports none bridge_maxwait 0 address локальна ip-адреса netmask 255.255.255.0
У випадку, коли віртуальна машина матиме зовнішню ip-адресу, конфигурація мосту виглядатиме інакше:
. . . auto br0 iface br0 inet static address ip-адреса хостової операційної системи netmask 255.255.255.255 bridge_ports none bridge_stp off bridge_fd 0 pre-up brctl addbr br0 up ip route add ip-адреса хостової ОС/32 dev br0 down ip route del ip-адреса хостової ОС/32 dev br0
3. Створення LVM-розділу (Перший варіант)
Даний розділ статті призначений для варіанту установки віртуальної машини на lvm. Якщо Ви віддаєте перевагу використанню файл-образу для установки, пропустіть цей розділ.
Розмонтуємо розділ, який ми створили для LVM та видалимо інформацію про нього з fstab (в нашому випадку це розділ /dev/md3):
#umount /data/ #nano /etc/fstab proc /proc proc defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 /dev/md/0 none swap sw 0 0 /dev/md/1 /boot ext3 defaults 0 0 /dev/md/2 / ext4 defaults 0 0
Ініціалізуємо підтримку LVM цим розділом:
#pvcreate /dev/md3
Створимо групу томів, яку назвемо vgvm:
#vgcreate vgvm /dev/md3
Для того, щоб отримати дані про точний обсяг (в TiB) вільного дискового простору, виконайте наступну команду:
#pvdisplay
Створимо логічний розділ LVM на 1Тб:
#lvcreate –L 1Т -n lvmpart vgvm
Перевіримо, що все гаразд:
#lvdisplay
4. Створення файлу-образу (другий варіант)
Альтернативний варіант –це створення файлу-образу:
#dd if=/dev/zero of=/home/img/guest.img bs=1024k count=150000
В даному прикладі створюється файл /home/img/guest.img разміром 150 ГБ.
5. Інсталяція KVM
Встановлюємо необхідні пакети:
#apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils libguestfs-tools genisoimage virtinst libosinfo-bin
Вводимо до складу користувача root в групи libvirt та kvm:
#adduser `id -un` libvirt #adduser `id -un` kvm
Перезавантажуємо систему:
#shutdown -r now
Після перезавантаження перевіряємо працездатність:
#virsh -c qemu:///system list root@server1:~# virsh -c qemu:///system list Id Name State ----------------------------------
6. Приклад установки гостьової системи Linux Debian 10 (buster)
Для перевірки списку операційних систем, що підтримуються системою віртуалізації kvm, виконайте наступні команди:
#apt install libosinfo-bin #osinfo-query os
Для першого варіанта (інсталяція на lvm-розділ), запуск установок віртуальної машини буде мати наступний вигляд:
#virt-install --connect qemu:///system --arch=x86_64 -n debian10 -r 32000 --vcpus=6 --disk /dev/vgvm/lvmpart,device=disk,bus=virtio -c /home/iso/debian10.iso --vnc --noautoconsole --os-type linux --os-variant debian10 --network=bridge:br0,model=virtio
Для файлу-образу:
#virt-install --connect qemu:///system --arch=x86_64 -n debian10 -r 32000 --vcpus=6 --disk /home/img/guest.img,device=disk,bus=virtio -c /home/iso/debian10.iso --vnc --noautoconsole --os-type linux --os-variant debian10 --network=bridge:br0,model=virtio
де:
--connect qemu:///system URL, по якому йде підключення до KVM, -n debian10- ім'я хостингової системи, -r 32000 - обсяг оперативної пам'яті, що виділяється у мегабайтах, --arch=x86_64 - архітектура гостьової системи, --vcpus=6 - кількість віртуальних процесів, відкритих гостю, --disk /dev/vgvm/lvmpart,device=disk,bus=virtio - розділ lvm, на який встановлюємо віртуальну машину, --disk /home/img/guest.img,device=disk,bus=virtio - файл-образ, на який встановлюємо гостьову систему, --os-type=linux - тип операційної системи, --os-variant debian10 - версія операційної системи, --network=bridge:br0,model=virtio - міст для нашої гостьової системи. --vnc Запускаємо VNC для підключення до текстової консолі.
Залишилося додати доступ до віртуальної машини по vnc:
#nano /etc/libvirt/qemu.conf
vnc_listen = "0.0.0.0" vnc_password = "passwd"
Застосовуємо зміни:
#service libvirtd restart
Встановлюйте операційну систему та користуйтеся перевагами системи віртуалізації.
Хай щастить!
Компанія ТОВ “ІНФОТЕК.УА” надає професійні послуги з обслуговування комп’ютерів організацій
August 22, 2019