Невелика серверна, вдома: налаштування та використання

Привіт всім! Пройшло вже досить багато часу з моменту оприлюднення першої частини цієї статті, тож саме час розповісти вам про мій досвід використання сервера HPE ProLiant DL560 Gen8 для задоволення моїх навчальних потреб, а також для роботи над моїми проєктами.

Віддалене керування й адміністрування

Одною з переваг використання серверного обладнання рівня підприємства є наявність вбудованих інструментів для віддаленого управління ними. Наприклад, у серверах виробництва компанії HP Enterprise присутній фірмовий IP-KVM модуль під назвою “HPE Integrated Lights-Out” (скорочено - “HPE iLO”), а також інші вбудовані утиліти, доступ до яких можна отримати під час запуску сервера. Вони, усі разом, дозволяють керувати серверами лінійки ProLiant на 100% віддалено, згадуючи про їх фізичне місцеперебування лише у разі виявлення модулем HPE iLO проблем із замінними частинами сервера.

Серед засобів керування серверами HPE ProLiant, окрім iLO, можна виділити HPE Smart Storage Administrator (засіб для управління системою зберігання даних і RAID-контролерами) і HPE Intelligent Provisioning (засіб для керування усіма підсистемами сервера, оновлення прошивок тощо). Їх огляд заслуговує окремої статті від професійних користувачів таких систем, і таких матеріалів у відкритому доступі є доволі багато.

Для мене можливість віддаленого керування сервером є вкрай необхідною, бо я більшість часу проводжу у Львові, у той час, як сервер знаходиться в іншому місті, звідки я родом. Крім неможливості розміщення такого обладнання у студентському гуртожитку, є ще одна, не менш важлива причина такого віддаленого розташування моєї “домашньої лабораторії”: якість і швидкість доступу до мережі Інтернет. У іншому місті, я маю стабільний гігабітний канал, у той час, як у Львові на силу отримую до 50 Мбіт/сек з максимально можливого тарифного плану «до 100 Мбіт/сек» від державного інтернет-провайдера, ДП «УАРНЕТ». Але, давайте не будемо говорити сьогодні про погане!

Віртуалізація середовища

На сервер було інстальовано актуальну версію апаратного гіпервізора VMware ESXi 7. Одразу ж виникає питання: нащо використовувати пропрієтарне рішення, якщо є вільне програмне забезпечення під назвою “Proxmox”? Вся справа у моїх особистих вподобаннях і тому, що в ESXi зручніше реалізована можливість “прокидування” фізичних накопичувачів та PCIe-пристроїв у віртуальні машини, в той час, як у середовищі Proxmox для цього потрібно дещо “потанцювати з бубном” (хоча, можливо, за цей час щось таки змінилося, і такий функціонал вже доступний “з коробки” - треба буде перевірити).

Також, для роботи з ESXi існує зручний мобільний застосунок “vSphere Mobile Client“ (так, він дозволяє під’єднання окремих ESXi-серверів, без прив’язки до контроллеру vSphere).

З іншого боку, Proxmox “з коробки” має підтримку LXC-контейнерів, і, якщо трошки “погратися” з терміналом, на ньому можна розгорнути Docker-хост.

Використання Docker-контейнерів

Використовувати Docker для налагодження і тестування своїх проєктів я став вже достатньо давно, тож на новопридбаному сервері я одразу розгорнув віртуальну машину під Ubuntu, на якій інсталював саму платформу, а також Portainer — GUI для зручного управління Docker-контейнерами. Хтось може поставити під сумнів швидкодію такого рішення, але для моїх невимогливих потреб цього достатньо.

Під Docker у мене працюють кілька інстансів СКБД (MariaDB) для різних проєктів, Jenkins і його агенти побудови, та контейнери для тестування моїх проєктів. Все це економить мій час і нерви. Наприклад, якщо щось зламається всередині окремого контейнера, не треба буде турбуватися про можливі пошкодження чутливих даних з інших сервісів. Навіть не згадую про старий-добрий Jenkins 😏.

Віртуальні машини для навчання

У ході кожного семестру навчання на Факультеті електроніки та комп’ютерних технологій ми знайомимось з різними технологіями та програмним забезпеченням, яке покликане спростити нашу роботу. Зараз, наприклад, ми вивчаємо процеси програмування і налагодження мікропроцесорних і мікрокомп’ютерних систем на прикладі Infineon/Cypress PSoC і Raspberry PI, NVIDIA Jetson Nano відповідно. А перед тим будували електронні схеми у середовищі NI MultiSim, використовували OriginLab OriginPro для аналізу отриманих даних тощо.

З часом такого програмного забезпечення може накопичитись надто багато, що уповільнюватиме роботу ноутбука чи персонального комп’ютера (на прикладі моїх одногрупників і загалом студентів нашого факультету). Мені ж така проблема не страшна, бо кожного семестру я створюю дві нові віртуальні машини, назвемо їх ubuntu-education і windows-education, перед тим видаляючи старі дві. Це дозволяє не тільки не засмічувати основну робочу “машину”, але й надавати доступ до згаданого програмного забезпечення своїм друзям і одногрупникам.

Віртуальні машини для роботи

Для роботи над проєктами створив дві віртуальні машини: одна на базі Ubuntu 20.04, інша — на базі Windows Server 2019 LTSC. На кожній з них встановлено необхідний мінімум для розробки й тестування програмного забезпечення, який здебільшого складається з IDE від компанії JetBrains і платформи Visual Studio Code. На ці дві віртуальні машини припадає більшість ресурсів серверної платформи, бо я часто граю у багатозадачність, тож вони мають витримувати одночасну роботу двох IDE, вебпереглядача, ну і два-три запущених у режимі зневадження програмки.

Ubuntu Server на всі випадки життя

Ніколи не знаєш, у який несподіваний момент тобі треба буде підняти щось на старому-доброму Apache, чи запустити якусь програмку, яка точно не може працювати у контейнері (наприклад, якщо вона утилізує «особливі» системні виклики, або ж її швидкодія у контейнері буде неприйнятною). Саме тому я тримаю на сервері ще й таку віртуальну машину на базі Ubuntu Server 20.04. На ній встановлено Apache і всі основні сервіси, які можуть стати у пригоді.

На тому Apache, до речі, розгорнуто динамічне і статичне (залежно від потреби) реверс-проксіювання деяких портів (HTTP, WebSockets абощо) окремого діапазону IP-адрес локальної мережі, у якій знаходиться сам сервер. Це зроблено для зручного тестування вебзастосунків. Доступ до «динамічних портів» (вживаю трішки неправильне формулювання, тож сподіваюся, що ви мене за це пробачите) можна отримати з доменних імен у зоні *.int.sirkadirov.com.

Загальні враження від використання

Використання вживаного сервера HPE ProLiant DL560 Gen8 як основної робочої станції виявилося досить цікавим для мене, і, що найголовніше, жодних проблем з ним за час використання не виникало. До того ж магазин Servak, у якому я його купляв, надає розширену гарантію на сервер і його запчастини — ще менше приводів хвилюватися через можливі поломки й проблеми з його використанням.

Ще одною несподіванкою стало те, що до нього стабільно «приходять» оновлення прошивок, серед іншого — для IP-KVM модуля; для RAID-контролера; для мережевих адаптерів; для інших замінних частин сервера.

Що ж, зважаючи на свій досвід використання такого рішення, зі впевненістю можу сказати, що воно ідеально підійде для використання малим бізнесом і такими ж “ентузіастами” як я сам. Головне — перед прийняттям рішення про придбання подібних серверів рівня підприємства, необхідно зважити усі “за” і “проти”, і мати розуміння, що адміністрування такого “заліза” у деяких рисах дуже відрізняється від звичайних комп’ютерів і робочих станцій.

Відеоогляд HPE ProLiant DL560 Gen8

Довгий час я стежу за YouTube-каналом MyPlayHouse, де автор, Morten Hjorth, розглядає різні “залізячні” цікавинки. Раджу вам підписатися на його канал, і, за можливості й бажання, підтримати автора за допомогою платформи Patreon.

Замість завершення

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