Використовуємо kvm для створення віртуальних машин на сервері

Цю замітку я пишу для того, щоб продемонструвати покрокову установку і настройку віртуальної машини в Linux на базі KVM. Раніше я вже писав про віртуалізацію, де використав чудовий інструмент Vagrant.

Зараз переді мною постало питання оренди хорошого сервера з великим об'ємом оперативної пам'яті і об'ємним жорстким диском. Але запускати проекти прямо на хост-машині не хочеться, тому буду розмежовувати їх за окремим невеликим віртуальним серверам з ОС Linux або docker-контейнерів (про них розповім в іншій статті).

Всі сучасні хмарні хостинги працюють за таким же принципом, тобто хостер на хорошому залозі піднімає купу віртуальних серверів, які ми звикли називати VPS / VDS, і роздає їх користувачам, або автоматизує цей процес (привіт, DigitalOcean).

KVM (kernel-based virtual machine) це програмне забезпечення для Linux, що використовує апаратні засоби x86-сумісних процесорів для роботи з технологією віртуалізації Intel VT / AMD SVM.

установка KVM

Всі махінації зі створення віртуальної машини я буду проводити на ОС Ubuntu 16.04.1 LTS. Щоб перевірити чи підтримує ваш процесів апаратну віртуалізацію на базі Intel VT / AMD SVM, виконуємо:

Якщо термінал непорожній, то значить все в порядку і KVM можна встановлювати. Ubuntu офіційно підтримує тільки гипервизор KVM (входить до складу ядра Linux) і радить використовувати бібліотеку libvirt як інструмент для керування ним, що ми і будемо робити далі.

Перевірити підтримку апаратної віртуалізації в Ubuntu також можна через команду:

У разі успіху, ви побачите щось на зразок цього:

Встановлюємо пакети для роботи з KVM:

Якщо у вас є доступ до графічної оболонці системи, то можна встановити GUI менеджер libvirt:

Користуватися virt-manager досить просто (не складніше VirtualBox), тому в цій замітці мова піде про консольний варіант установки і настройки віртуального сервера.

Установка і настройка віртуального сервера

У командному варіанті установки, настройки і управлінням системою, незамінним інструментом є утиліта virsh (надбудова над бібліотекою libvirt). У неї велика кількість опцій і параметрів, докладний опис можна отримати так:

або викликати стандартний "help":

Я завжди дотримуюся таких правил при роботі з віртуальними серверами:

Приступимо до встановлення першої виртуалки (64-бітної серверної Убунту 16.04 LTS):

Завантаживши образ запускаємо установку:

Перекладаючи всі ці параметри на "людську мову", то виходить, що ми створюємо віртуальну машину з ОС Ubuntu 16.04, 1024 МБ ОЗУ, 1 процесором, стандартної мережевої картою (віртуальна машина буде ходити в інтернет как-будто через NAT), 20 ГБ HDD.

Варто звернути увагу на параметр --os-variant. він вказує Гіпервізор під яку саме ОС слід адаптувати настройки.
Список доступних варіантів ОС можна отримати, виконавши команду:

Якщо такої утиліти немає у вашій системі, то встановлюємо:

Після запуску установки, в консолі з'явиться ось такий напис:

Це нормальна ситуація, продовжувати установку ми будемо через VNC.
Дивимося на якому порту він був піднятий у нашій виртуалки (в сусідньому терміналі, наприклад):

Якщо нічого не знайшлося або ви бачите:

Те правимо конфиг на

і перезавантажуємо sshd.

Налаштування Port forwarding

Виконуємо команду на локальній машині:

Тут ми налаштували ssh port forwarding з локального порту 5900 на серверний порт 5900. Тепер уже можна підключитися до VNC, використовуючи будь-який VNC-клієнт. Я віддаю перевагу UltraVNC через простоти і зручності.

Після успішного підключення, на екрані відобразиться стандартне вікно привітання початку установки Ubuntu:

Редагуємо мережеві настройки гипервизора:

Шукаємо DHCP, і додаємо ось це:

Має вийти щось на зразок цього:

Для того, щоб настройки вступили в силу, необхідно перезавантажити DHCP сервер гипервизора:

Є й інші способи задати виртуалке статичний IP, наприклад, безпосередньо редагуючи мережеві настройки всередині гостьової системи, але тут вже як душі вашої буде завгодно. Я лише показав варіант, який сам вважаю за краще використовувати.

Щоб підключитися до терміналу віртуальної машини, виконуємо:

Машина готова до бою.

Virsh: список команд

Щоб подивитися запущені віртуальні хости (всі доступні можна отримати додавши --all):

Перезавантажити хост можна:

Зупинити віртуальну машину:

Додати в автозапуск:

Дуже часто потрібно склоніровать систему, щоб в майбутньому використовувати її як каркас для інших віртуальних ОС, для цього використовують утиліту virt-clone.

Крім установки виртуалки через VNC, також можливий варіант з X11Forwarding через утиліту virt-manager. У Windows, наприклад, для цього можна використовувати Xming і PuTTY.

Використовуємо kvm для створення віртуальних машин на сервері

На каналі вже понад 1000 учасників, тому приєднуйтесь і Ви - DevBrain

Схожі статті