Магія віртуалізації: вступний курс в Proxmox VE

Магія віртуалізації: вступний курс в Proxmox VE
Сьогодні мова піде про те, як швидко і просто на одному фізичному сервері розгорнути кілька віртуальних серверів з різними операційними системами. Будь-якому системному адміністратору це дозволить централізовано керувати всією IT-інфраструктурою компанії та економити величезну кількість ресурсів. Використання віртуалізації допомагає максимально абстрагуватися від фізичного серверного обладнання, захистити критичні сервіси та легко відновити їхню роботу навіть у разі дуже серйозних збоїв.

Без жодного сумніву, більшості системних адміністраторів знайомі прийоми роботи з віртуальним середовищем і для них ця стаття не стане відкриттям. Незважаючи на це, є компанії, які не використовують гнучкість та швидкість роботи віртуальних рішень через брак точної інформації про них. Ми сподіваємося, що наша стаття допоможе на прикладі зрозуміти, що набагато простіше один раз почати використовувати віртуалізацію, ніж відчувати незручності та недоліки фізичної інфраструктури.

На щастя, спробувати, як працює віртуалізація, досить просто. Ми покажемо, як створити сервер у віртуальному середовищі, наприклад, для перенесення CRM-системи, яка використовується в компанії. Майже будь-який фізичний сервер можна перетворити на віртуальний, але спочатку необхідно освоїти базові прийоми роботи. Про це й йтиметься нижче.

Як це влаштовано

Коли йдеться про віртуалізацію, багатьом спеціалістам-початківцям складно розібратися в термінології, тому пояснимо кілька базових понять:

  • Гіпервізор – спеціальне програмне забезпечення, яке дозволяє створювати віртуальні машини та керувати ними;
  • Віртуальна машина (далі VM) - це система, що представляє собою логічний сервер усередині фізичного зі своїм набором характеристик, накопичувачами та операційною системою;
  • Хост віртуалізації — фізичний сервер із запущеним на ньому гіпервізором.

Для того, щоб сервер міг працювати повноцінним хостом віртуалізації, його процесор повинен підтримувати одну з двох технологій - або Intel VT або AMD-V. Обидві технології виконують найважливіше завдання – надання апаратних ресурсів сервера віртуальним машинам.

Ключовою особливістю є те, що будь-які дії віртуальних машин виконуються безпосередньо на рівні обладнання. При цьому вони один від одного ізольовані, що досить легко дозволяє керувати ними окремо. А сам гіпервізор відіграє роль контролюючого органу, розподіляючи ресурси, ролі та пріоритети між ними. Також гіпервізор займається емуляцією частини апаратного забезпечення, яка необхідна для коректної роботи операційної системи.

Впровадження віртуалізації дає можливість мати кілька запущених копій одного сервера. Критичний збій або помилка в процесі внесення змін до такої копії ніяк не вплине на роботу поточного сервісу або програми. При цьому також знімаються дві основні проблеми - масштабування та можливість тримати зоопарк різних операційних систем на одному обладнанні. Це ідеальна можливість поєднання різних сервісів без необхідності придбання окремого обладнання для кожного з них.

Віртуалізація підвищує стійкість до відмови сервісів і розгорнутих додатків. Навіть якщо фізичний сервер вийшов з ладу і його необхідно замінити на інший, то вся віртуальна інфраструктура залишиться повністю працездатною за умови збереження дискових носіїв. У цьому фізичний сервер то, можливо взагалі іншого виробника. Це особливо актуально для компаній, які використовують сервери, виробництво яких припинено та потрібно здійснити перехід на інші моделі.

Тепер перерахуємо найпопулярніші гіпервізори, що існують на поточний день:

  • VMware ESXi
  • Microsoft Hyper-V
  • Open Virtualization Alliance KVM
  • Oracle VM VirtualBox

Вони всі досить універсальні, однак у кожного з них є певні особливості, які слід завжди враховувати на етапі вибору: вартість розгортання/обслуговування та технічні характеристики. Вартість комерційних ліцензій VMware і Hyper-V дуже висока, а у разі виникнення збоїв вирішити проблему з цими системами власними силами дуже непросто.

KVM навпаки, повністю безкоштовний і досить простий у роботі, особливо у складі готового рішення на базі Debian Linux під назвою Proxmox Virtual Environment. Саме цю систему ми можемо порекомендувати для первісного знайомства зі світом віртуальної інфраструктури.

Як швидко розгорнути гіпервізор Proxmox VE

Встановлення найчастіше не викликає жодних питань. Завантажуємо актуальну версію образу з офіційного сайту та записуємо його на будь-який зовнішній носій за допомогою утиліти Win32DiskImager (У Linux використовується команда dd), після чого завантажуємо сервер безпосередньо з цього носія. Наші клієнти, які орендують у нас виділені сервери, можуть скористатися двома ще простішими шляхами – просто змонтувавши потрібний образ безпосередньо з KVM-консолі, або використовуючи наш PXE-сервер.

Програма установки має графічний інтерфейс і поставить лише кілька питань.

  1. Вибираємо диск, на який буде виконано встановлення. В розділі Опції можна також встановити додаткові параметри розмітки.

    Магія віртуалізації: вступний курс в Proxmox VE

  2. Вказуємо регіональні налаштування.

    Магія віртуалізації: вступний курс в Proxmox VE

  3. Вказуємо пароль, який буде використовуватись для авторизації суперкористувача root та E-mail адресу адміністратора.

    Магія віртуалізації: вступний курс в Proxmox VE

  4. Вказуємо налаштування мережі. FQDN позначає повністю певне ім'я домену, наприклад, node01.yourcompany.com.

    Магія віртуалізації: вступний курс в Proxmox VE

  5. Після завершення встановлення сервер можна відправити в перезавантаження за допомогою кнопки Reboot.

    Магія віртуалізації: вступний курс в Proxmox VE

    Веб-інтерфейс керування стане доступним за адресою

    https://IP_адрес_сервера:8006

Що потрібно зробити після встановлення

Є кілька важливих речей, які потрібно виконати після встановлення Proxmox. Розкажемо про кожну з них докладніше.

Оновити систему до актуальної версії

Для цього зайдемо в консоль нашого сервера та відключимо платний репозиторій (доступний лише тим, хто купив платну підтримку). Якщо цього не зробити, apt повідомить про помилку при оновленні джерел пакетів.

  1. Відкриваємо консоль та редагуємо конфігураційний файл apt:
    nano /etc/apt/sources.list.d/pve-enterprise.list
  2. У цьому файлі буде лише один рядок. Ставимо перед нею символ #, щоб вимкнути отримання оновлень із платного репозиторію:
    #deb https://enterprise.proxmox.com/debian/pve stretch pve-enterprise
  3. Поєднанням клавіш Ctrl + X виконуємо вихід із редактора, відповідаючи Y на питання системи збереження файла.
  4. Виконуємо команду оновлення джерел пакетів та оновлення системи:
    apt update && apt -y upgrade

Подбати про безпеку

Ми можемо порекомендувати встановити найпопулярнішу утиліту Fail2Ban, що захищає від атак шляхом перебору паролів (брутфорс). Принцип її роботи полягає в тому, що якщо зловмисник перевищить певну кількість спроб входу за вказаний час з невірним логіном/паролем, його IP-адреса буде заблокована. Термін блокування та кількість спроб можна вказати у конфігураційному файлі.

Виходячи з практичного досвіду, за тиждень роботи сервера з відкритим ssh-портом 22 та зовнішнім статичним IPv4-адресою, було понад 5000 спроб підібрати пароль. І близько 1500 адрес утиліта успішно заблокувала.

Для виконання установки наводимо невелику інструкцію:

  1. Відкриваємо консоль сервера через веб-інтерфейс чи SSH.
  2. Оновлюємо джерела пакетів:
    apt update
  3. Встановлюємо Fail2Ban:
    apt install fail2ban
  4. Відкриваємо конфігурацію утиліти на редагування:
    nano /etc/fail2ban/jail.conf
  5. Змінюємо змінні бантайм (кількість секунд на які блокуватиметься зловмисник) та максретрія (кількість спроб введення логіну/паролю) для кожного окремого сервісу.
  6. Поєднанням клавіш Ctrl + X виконуємо вихід із редактора, відповідаючи Y на питання системи збереження файла.
  7. Перезапускаємо службу:
    systemctl restart fail2ban

Перевірити статус роботи утиліти, наприклад, зняти статистику блокувань заблокованих IP-адрес із яких були спроби перебору паролів SSH, можна однією простою командою:

fail2ban-client -v status sshd

Відповідь утиліти виглядатиме приблизно так:

root@hypervisor:~# fail2ban-client -v status sshd
INFO   Loading configs for fail2ban under /etc/fail2ban
INFO     Loading files: ['/etc/fail2ban/fail2ban.conf']
INFO     Loading files: ['/etc/fail2ban/fail2ban.conf']
INFO   Using socket file /var/run/fail2ban/fail2ban.sock
Status for the jail: sshd
|- Filter
|  |- Currently failed: 3
|  |- Total failed:     4249
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 0
   |- Total banned:     410
   `- Banned IP list:

Аналогічно можна закрити від подібних атак Web-інтерфейс, створивши відповідне правило. Приклад такого правила для Fail2Ban можна знайти у офіційне керівництво.

Початок роботи

Хочеться звернути увагу, що Proxmox готовий до створення нових машин відразу після установки. Тим не менш, рекомендуємо виконати попередні налаштування, щоб надалі системою було легко керувати. Практика показує, що гіпервізор та віртуальні машини варто рознести по різних фізичних носіях. Про те, як це зробити і йтиметься нижче.

Налаштувати дискові накопичувачі

Наступним етапом слід налаштувати сховище, яке можна буде використовувати для збереження даних віртуальних машин та резервних копій.

УВАГА! Наведений нижче приклад дискової розмітки можна використовувати лише для тестових цілей. Для використання в реальних умовах ми рекомендуємо використовувати програмний або апаратний RAID-масив, щоб виключити втрату даних при виході дисків з ладу. Про те, як правильно приготувати дисковий масив до роботи та як діяти у разі аварійної ситуації ми розповімо в одній із наступних статей

Припустимо, що фізичний сервер має два диски. / dev / sda, на який встановлено гіпервізор та порожній диск / dev / sdbякий планується використовувати для зберігання даних віртуальних машин. Щоб система змогла побачити нове сховище, можна скористатися найпростішим і найефективнішим методом — підключити його як звичайну директорію. Але перед цим слід виконати деякі підготовчі дії. Як приклад подивимося, як підключити новий диск / dev / sdb, будь-якого розміру, відформатувавши його у файлову систему ext4.

  1. Розмічаємо диск, створюючи новий розділ:
    fdisk /dev/sdb
  2. Натискаємо клавішу o або g (розмістити диск у MBR або GPT).
  3. Далі натискаємо клавішу n (Створити новий розділ).
  4. І наостанок w (Для збереження змін).
  5. Створюємо файлову систему ext4:
    mkfs.ext4 /dev/sdb1
  6. Створюємо директорію, куди монтуватимемо розділ:
    mkdir /mnt/storage
  7. Відкриваємо конфігураційний файл для редагування:
    nano /etc/fstab
  8. Додаємо туди новий рядок:
    /dev/sdb1	/mnt/storage	ext4	defaults	0	0
  9. Після внесення змін зберігаємо їх поєднання клавіш. Ctrl + X, відповідаючи Y на запитання редактора.
  10. Для перевірки, що все працює, відправляємо сервер у перезавантаження:
    shutdown -r now
  11. Після перезавантаження перевіряємо змонтовані розділи:
    df -H

Висновок команди має показати, що / dev / sdb1 змонтований у директорію /mnt/storage. Це означає, що наш накопичувач готовий до роботи.

Додати нове сховище в Proxmox

Авторизуємося в панелі керування та заходимо до розділів Дата центрСховищеДобавитьДиректорія.

У вікні заповнюємо наступні поля:

  • ID - Назва майбутнього сховища;
  • Директорія - /mnt/storage;
  • вміст - Виділяємо всі варіанти (по черзі клацаючи на кожному варіанті).

    Магія віртуалізації: вступний курс в Proxmox VE

Після цього натискаємо кнопку Добавить. На цьому налаштування завершено.

Створити віртуальну машину

Для створення віртуальної машини виконуємо таку послідовність дій:

  1. Визначаємось із версією операційної системи.
  2. Заздалегідь закачуємо ISO-образ.
  3. Вибираємо у меню Сховище щойно створене сховище.
  4. натискаємо вмістЗавантажити.
  5. Вибираємо зі списку ISO-образ та підтверджуємо вибір натисканням кнопки Завантажити.

Після завершення операції зображення буде відображено у списку доступних.

Магія віртуалізації: вступний курс в Proxmox VE
Створюємо нашу першу віртуальну машину:

  1. натискаємо Створити VM.
  2. Заповнюємо почергово параметри: Ім'яISO-ImageРозмір та тип жорсткого дискаКількість процесорівОб'єм оперативної пам'ятіМережевий адаптер.
  3. Вибравши всі бажані параметри, натискаємо Завершити. Створена машина відображається в меню панелі керування.
  4. Вибираємо її та натискаємо запуск.
  5. Переходимо до пункту Консоль і виконуємо установку операційної системи таким самим чином, як і на звичайний фізичний сервер.

Якщо необхідно створити ще одну машину - повторюємо вищезгадані операції. Після того, як всі вони будуть готові, з ними можна працювати одночасно, відкриваючи кілька вікон консолі.

Налаштувати автозапуск

За промовчанням Proxmox автоматично не запускає машини, але це легко вирішується буквально двома клацаннями миші:

  1. Клацаємо за назвою потрібної машини.
  2. Вибираємо вкладку ОпціїЗапуск під час завантаження.
  3. Ставимо галочку навпроти однойменного напису.

Тепер, у разі перезавантаження фізичного сервера, VM буде запущено автоматично.

Магія віртуалізації: вступний курс в Proxmox VE
Для сучасних адміністраторів є ще й можливість вказати додаткові параметри запуску в розділі Start/Shutdown order. Можна явно вказати в якому порядку слід запускати машини. Також можна вказати час, який має пройти до старту наступної VM та час затримки вимкнення (якщо операційна система не встигне завершити роботу, гіперпризор примусово її вимкне через певну кількість секунд).

Висновок

У цій статті були викладені основи того, як можна почати працювати з Proxmox VE і ми сподіваємося, що вона допоможе спеціалістам-початківцям зробити перший крок і спробувати віртуалізацію в дії.

Proxmox VE – це дійсно дуже потужний та зручний інструмент для будь-якого системного адміністратора; головне не боятися експериментувати та зрозуміти, як це справді працює.

Якщо у вас виникли питання, ласкаво просимо в коментарі.

Джерело: habr.com

Додати коментар або відгук