Найти в Дзене
ServerNews

Pi-KVM: недорогой и полностью открытый IP-KVM на базе Raspberry Pi

Любая серверная система обязательно располагает средствами удалённого управления — это аксиома, поскольку физический доступ к серверу не всегда возможен и может быть крайне неудобным и затратным по времени. Часто для этой цели используются дополнительные устройства, называемые IP-KVM (от слов keyboard, video, mouse).

KVM-коммутаторы обычно не являются открытыми, что влечёт за собой ряд неудобств. Но идеология «открытости» проникает и в эту сферу, тем более что для реализации KVM существует отличная основа в виде плат Raspberry Pi, обладающих достаточными вычислительными мощностями для кодирования и трансляции видеосигнала по сети.

Интерфейс Pi-KVM прост и интуитивен
Интерфейс Pi-KVM прост и интуитивен

«Малина» проникает повсюду: на базе этих недорогих и универсальных плат сегодня существует множество проектов, от вычислительных кластеров до систем умного дома. Вполне логично использовать Raspberry Pi и для реализации KVM, особенно последнюю на сегодня четвёртую версию с процессорными ядрами Cortex-A72. Этой цели и добился открытый проект Pi-KVM, у которого сегодня состоялся первый публичный релиз. Деталей требуется немного, проект очень прост в реализации и затраты укладываются в суммы от $30 до $100 — очень неплохо на фоне стоимости фирменных KVM от $500.

Реализация Pi-KVM в силу своей природы позволяет производить операции с питанием сервера, можно зайти в интерфейс настроек BIOS/UEFI, установить операционную систему, сэмулировать внешний CD/DVD/USB-накопитель, использовать смонтированный на нём образ, при нужде перезагрузиться — всё, чего не позволяют чисто программные средства, вроде VNC. 

Программная часть Pi-KVM использует ARM-дистрибутив Arch Linux, идеология которого изначально предусматривает модульность и конфигурируемость. Она дополнена необходимыми для реализации функций KVM пакетами, в частности, демоном kvmd. Вся программная часть написана на Python и имеет лицензию GPLv3.

Raspberry Pi 4
Raspberry Pi 4

Со стороны оператора доступ к серверу предоставляется либо через веб-интерфейс любого популярного браузера, но поддерживается также и протокол VNC, чрезвычайно популярный в системах удалённого управления. Flash или Java не используются. Видео сжимается на лету с помощью uStreamer, быстрого кодера, написанного на Си и передающего данные в режиме MJPG-HTTP.

Поскольку от Java разработчики отказались полностью, устройство отличается низкой латентностью в работе — задержка видеосигнала составляет порядка 100 миллисекунд, чего более чем достаточно для выполняемых Pi-KVM задач. Интерфейсы клавиатуры и мыши эмулируются полностью, включая управление состоянием индикаторных светодиодов. Управление питанием сервера реализовано путём подключения Pi-KVM к соответствующим ATX-контактам на системной плате, но также поддерживается и Wake-on-LAN.

Вопросу безопасности уделено серьёзное внимание и аутентификацию пользователя можно осуществлять рядом способов, от классической парольной до использования PAM и выделенного сервера паролей. В настоящее время Pi-KVM может базироваться на моделях Pi 2, 3, 4 и ZeroW, поддерживаются различные устройства видеозахвата, но разработчики сейчас заняты созданием специальной платы расширения для Raspberry Pi 4, что сделает Pi-KVM ещё более удобным.

Проект платы расширения Pi-KVM
Проект платы расширения Pi-KVM

Проект полностью открытый и все данные содержатся в репозитории на GitHub. Там же доступен удобный сборщик проекта. Однако создатели Pi-KVM также планируют продавать разработанный ими комплекс. Предварительные заказы можно будет сделать в четвертом квартале текущего года, стоимость, как и было сказано, составит около $100. Устройство может стать достаточно популярным благодаря сочетанию возможностей и цены.