RISH KVM — как собрать личный VM-кластер на одном домашнем мини-ПК
Практическое руководство: автоматическая установка и настройка домашнего сервера виртуализации с помощью скрипта RISH KVM. Пошаговый мануал и установочный скрипт, превращающие AlmaLinux (или любую систему семейства RHEL) в готовый гипервизор (сервер для создания виртуальных машин), которым можно легко управлять прямо из браузера.
Запустить процесс установки на своем домашнем Mini PC можно очень просто одной командой:
bash <(curl -fsSL https://getkvm.rish.su)
Подробнее о проекте RISH KVM

Хотите иметь свой собственный маленький сервер дома — для веб-разработки, тестирования или экспериментов?
А что, если вам нужно сразу несколько серверов — чтобы отлаживать клиент-серверные приложения, микросервисы или сайты в реальных условиях? А что, если вы хотите разобраться, как на самом деле работает виртуализация и из чего состоит ваш хостинг-провайдер? А может, просто хотите прокачать навыки системного администрирования и инфраструктуры — без лишних затрат?
На самом деле всё это можно сделать буквально за час. Недорогой мини-ПК легко превращается в настоящий сервер виртуальных машин: достаточно подключить питание, установить AlmaLinux и запустить скрипт RISH KVM.

Такие мини-ПК сегодня стоят от 6 000 до 20 000 рублей, и каждый может подобрать вариант под свой бюджет и задачи. Иногда их цена оказывается сравнимой со стоимостью пары планок оперативной памяти — а возможностей при этом в десятки раз больше: полноценная виртуализация, создание снимков виртуальных машин и откат к предыдущему состоянию, несколько независимых окружений, удобное управление через браузер и готовая платформа для обучения и экспериментов. Причем работает все независимо от вашего основного компьютера. Можно даже устроить свой собственный домашний хостинг.
RISH KVM — это лёгкий установочный скрипт, созданный для разработчиков, системных администраторов и энтузиастов, которым нужно быстро развернуть полноценный гипервизор (то есть систему управления виртуальными машинами) KVM + Cockpit на базе AlmaLinux или любой другой системы семейства RHEL.
Скрипт автоматически устанавливает и настраивает основные компоненты виртуализации: libvirt, qemu-kvm, Cockpit Machines и Cockpit Storaged, а также активирует сетевые сервисы и веб-панель управления. После запуска вы получаете готовый сервер виртуализации, управление которым доступно через браузер.
В отличие от других проектов типа Proxmox RISH KVM обходится минимальными установками и не требователен к ресурсам. Это значит что он будет работать даже на самом дешевом mini PC.
Проект задуман как часть экосистемы RISH — набора инструментов для автоматизации администрирования и веб-разработки на Linux. Цель — сделать установку KVM на мини-ПК или домашнем сервере максимально быстрой, простой и понятной даже новичку.
Благодаря RISH KVM можно превратить любой компактный мини-ПК в удобный стенд для тестовых окружений, изолированных проектов или обучения системному администрированию — буквально за полчаса.
Подробное руководство по установке RISH KVM
Начать нужно с установки Alma Linux на ваши мини ПК. Для этого загрузите дистрибутив ALma Linux на флешку и начните установку.
Кстати, для записи дистрибутива на флешку советую использовать balenaEtcher — она есть для Windows, Linux и MacOS.
Вопрос на самом деле очень важный. Подойдет далеко не каждая версия. Дело в том, что в RHEL 10 и всех дистрибутивах на их основе (в том числе и Alma Linux 10 версии) прекратили поддержку процессоров с набором команд x86-64-v2 по умолчанию.
Что это значит? Это значит, что многие мини ПК остались за бортом, даже если были куплены буквально вчера. Дело в том, что в них применяются процессора, которые были анонсированы Intel в 2019, 2017 и даже в 2016 году. За бортом оказались системы собранные на N4000, N3350, N4100, J4105 и другие подобные. То есть, если ваш процессор не поддерживает инструкции AVX/AVX2, то стандартный дистрибутив 10 версии установить не получится.
Однако есть и хорошие новости — в отличие от всех RHEL дистрибутивов (таких как Rocky, Oracle и так далее) Alma Linux устроил аттракцион невиданной щедрости — он выпустил сборки своего дистрибутива специально для x86-64-v2 процессоров. Только скачивание этих сборок спрятано подальше. Со стандартной страницы сайта скачать не получится. Нужно перейти на страницу скачивания образов по ссылке.

Если у вас подключение по Wi-Fi (что я не советую, но у каждого свой сценарий), то некоторые драйвера для Wi-Fi карт и bluetooth могут быть не собраны для этой архитектуры и вы останетесь без Wi-Fi и bluetooth. Поэтому выбирайте внимательно – что для вас более предпочтительно — современная версия или же полная поддержка оборудования.
В любом случае вы можете выбрать для установки Alma Linux 9 — активная поддержка будет до 2027 года, а поддержка безопасности будет еще до 2032 года;
Начало установки Alma Linux

Первое что нужно сделать — выбрать разбиение диска. В стандартной ситуации все что вам нужно сделать — нажать на единственный диск и нажать кнопочку «Готово».
Если после нажатия на «Готово» этот раздел у вас все равно светится красным — возможно у вас диск не пустой (это чаще всего так и есть) и вам нужно повторно зайти в тот же самый раздел и еще раз выбрать тот же самый диск и опять нажать на «Готово».
В этот раз вам предложат освободить диск. Проще всего выбрать все и нажать «Освободить все». После этого все должно быть нормально и можно переходить к следующему пункту.
Я советую посетить настройки сети («Имя сети и узла»). Чаще всего она сама настраивается корректно по умолчанию, но я настойчиво советую зайти и проверить какой именно сетевой интерфейс выбран и какой адрес получил ваш сервер.
Самое время обратить внимание на то адрес, который получил ваш сервер и зафиксировать его в вашем роутере, чтобы он не менялся случайным образом. Так же советую его запомнить или записать на бумажке, так как именно он вам понадобится в дальнейшем для подключения к вашему серверу.
Так же можно задать имя вашего сервера слева-внизу. Советую использовать второй уровень и избегать слова local. Что-то типа gk2.home подойдет. Здесь gk2 — название мини ПК, ну а home есть home. Естественно используются только латинские символы. Принцип такой же как с доменами. Включите фантазию. Если что — можно поменять позднее и ничего сейчас не задавать.
Теперь переходим к настройке учетной записи root. Вам нужно ее включить.
Пароль можно выбрать любой, поскольку это локальный сервер, который находится за вашим роутером, отделяющим интернет от вашей локальной сети. Если будете выбирать короткий и простой пароль — снизу получите сообщение об этом. Для подтверждения потребуется дваждый нажать кнопку «Готово».
На данном этапе советую сильно не усердствовать с паролем — потом его можно поменять или отключить в пользу использования SSH ключей.
После начала установки можете сходить попить чаю — быстро это обычно не происходит. Все зависит от вашего компьютера.
Когда появится надпись «Готово» и внизу станет доступна кнопка перезагрузки не забудьте вытащить флешки из компьютера прежде чем чего перезагружать. На этом этапе флешка больше не понадобится.
После перезагрузки должно появиться приглашение ввести логин и пароль. На этом этапе можно возвращаться к своему основному компьютеру и подключаться к серверу с помощью команды SSH:
ssh root@192.168.1.31
Обратите внимание — здесь нужно ввести тот самый IP адрес, который я просил вас записать и зафиксировать в вашем роутере. Вы же его запомнили, да?
Монитор и клавиатура для вашего сервера больше не понадобятся. Их можно отключить и поместить его в то место, которое вы для него заранее придумали. Оптимальнее всего либо поставить на роутер, либо закрепить на стене рядом с ним.
Дальше мы будем работать с нашим сервером непосредственно через терминал вашего основного компьютера.
Установка RISH KVM
Чтобы начать установку запустите следующую команду на своем сервере. Запускать рекомендую через терминал своего основного компьютера, предварительно подключившись по SSH к серверу.
bash <(curl -fsSL https://getkvm.rish.su)
После установки скрипт покажет адрес по которому можно авторизоваться в Cockpit.
https://{IP сервера}:9090
Поскольку подключение происходит посредством https и используется самоподписанный сертификат, вам придется подтвердить исключение в своем браузере.
После первого входа вам нужно правильно настроить подключение ваших виртуальных машин к сети. Важно чтобы в вашей локальной сети каждая виртуальная машина выглядела как независимый компьютер и имела отдельный IP адрес. Для этого создается сетевой мост — bridge.
Для того чтобы каждая ваша виртуальная машина получала независимый IP адрес от вашего роутера, вам нужно создать сетевой мост — bridge.
Для этого перейдите в раздел «Сеть», нажмите кнопку «Добавить Bridge» и выберите вашу сетевую карту. Скорее всего она там будет одна — enp2s0 или что-то подобное. Virbr0 — это виртуальная карта NAT, которую создает KVM при установке — ее выбирать не надо. Не забываем нажимать кнопку «Добавить».
⚠️ Важно: если ваш сервер подключён к интернету через Wi-Fi, то создать мост (bridge) не получится — это ограничение протокола Wi-Fi. Для корректной работы виртуальных машин используйте проводное соединение (Ethernet). Если это невозможно — используйте стандартный virbr0 (NAT-режим) или настройте macvlan.
Кстати, на будущее — в этом же месте настраивается и firewall — межсетевой экран. Если понадобится блокировка IP или открытие портов — то это здесь. Помните, что по умолчанию все порты заблокированы!
Теперь у нас все готово для создания первой виртуальной машины!
Вначале вам нужно загрузить ISO файл с установочным файлом операционной системы, которую вы хотите установить на свою виртуальную машину. ISO файл нужно загрузить в категорию по следующему пути: var/lib/libvirt/images
Загрузить можно с помощью SFTP, используя ваши авторизационные данные для root или же можете пойти по более привычному пути и установить в cockpit файловый менеджер. Делается это очень просто — перейдите в раздел «Приложения» и найдите там Files. Если список не содержит Files — обновите список приложений (кнопка справ вверху). Должен появиться.
После того как вы загрузили образ для установки операционной системы можно переходить непосредственно к созданию виртуальной машины.
В разделе «Виртуальные машины» выберите кнопку «Создать ВМ». Появится окно создания новой виртуальной машины. Здесь все достаточно просто. Назовите свою машину так как вам хочется, а далее выберите тип установки «Local install media (ISO image or distro install tree)». Это самый надежный и стабильный способ установки.
Можно выбрать и тип установки «Загрузить ОС», но тогда дистрибутив будет выбирать уже сам cockpit и подгружать его онлайн. Это может быть не очень удобно для всех (хотя кому это может оказаться наоборот значительно удобнее, чем искать по сайтам где скачать дистрибутив). Например, для AlmaLinux 10 это может привести к неработоспособному состоянию на старых компьютерах, которые не поддерживают систему команд x86_64_v3. Поэтому советую начинать с уже загруженного дистрибутива и типа установки «Local install». Потом уже вы сможете самостоятельно выбирать тип установки.
Небольшая подсказка — во время выбора пути к файлу дистрибутива система подсказывает все текущие папки. Так что можно просто выбирать из выпадающего списка.
После того как файл дистрибутива будет выбран, обычно операционная система определяется автоматически. Если этого не произойдет — выберите ее самостоятельно из списка. Ну или можно выбрать unknown или Void Linux. Особой роли это не сыграет.
После этого выберите объем диска для вашей операционной системы (меньше 25Гб не советую), объем памяти и количество процессоров.
С диском всё просто: сколько есть свободного места — столько можно выделить виртуальной машине. Главное помнить, что для SSD должно оставаться не менее 20 % свободного пространства, чтобы диск сохранял высокую производительность и не деградировал со временем.
А вот с выбором объёма памяти (RAM) и количества процессоров (vCPU) стоит разобраться чуть подробнее.
Если у вас, например, процессор с двумя физическими ядрами, это вовсе не значит, что для двух виртуальных машин нужно каждой выделять по одному. Система виртуализации распределяет процессорные ресурсы динамически — в зависимости от нагрузки. Поэтому вы можете спокойно назначить по два виртуальных процессора каждой машине: они будут работать одновременно, если их суммарная нагрузка не превысит 100 % ресурсов хоста.
С оперативной памятью все по-другому: она не перераспределяется «на лету». Здесь нужно все внимательно рассчитать. Если вы хотите запускать две виртуальные машины одновременно — убедитесь, что суммарный объём выделенной памяти не превышает физическую память (ОЗУ) сервера, а лучше, чтобы оставался небольшой запас под систему и фоновые процессы.
Чтобы подключиться к экрану виртуальной машины и передавать туда нажатия клавиш — кликните мышкой по экрану виртуальной машины.
Еще одна полезная подсказка — можно нажать на кнопку «Расширить», чтобы раскрыть экран виртуальной машины на большее пространство. Дальнейшую установку лучше делать именно с расширенным экраном.
Вернуться из этого режима можно если нажать на хлебные крошки в левом верхнем углу.
Сам процесс установки операционной системы мы с вами уже обсудили выше. Он ничем особенным не отличается.
Единственное отличие — советую установить внутри виртуальной машины QEMU Guest Agent.
dnf -y install qemu-guest-agent
systemctl enable --now qemu-guest-agent
Команды нужно вводить внутри виртуальной машины.
Без этого агента cockpit не сможет показать какой IP адрес получила виртуальная машина. Без него не будет синхронизации времени между хостом и виртуальной машиной, что может приводить к ошибкам при разархивировании и других критических операциях.
Агент показывает корректно загруженность процессора, имя и версию ОС гостевой системы. Позволяет корректно включать и ставить на паузу виртуальную машину. Так же во время создания снимков состояния (snapshot) позволяет избежать неконсистентного состояния снимка.
Одним словом — просто поверьте — установка QEMU Guest Agent это очень полезно для работы виртуальной машины.
После установки агента лучше перезагрузить машину.
Признаком корректной работы агента будет появление IP адреса машины в интерфейсе cockpit.
Учитывайте, что IP появляется не сразу и еще нужно обновить страницу cockpit в браузере. Обычно требуется секунд 15 на его появление.
На этом я считаю руководство по установке RISH KVM можно закончить. Другие аспекты использования виртуальных машин будут рассмотренны в других статьях.