Терминальный сервер NoMachine в KVM
Установка и настройка терминального сервера на базе Altlinux с использованием виртуализации KVM и продуктов NoMachine
Цель: позволить пользователям удалённо работать в Linux Desktop с возможностью сохранения сессий, просмотра видео со звуком, передачей файлов, подключением из любого места и с любого устройства (полноценно работает даже через браузер(!) и т.д.
Средства: используем Altlinux в качестве host-системы, KVM-виртуализацию и Altlinux в качестве десктопа, а так же продукты NoMachine в качестве терминального сервера.
Altlinux
Берем свежую сборку сервера на ftp и устанавливаем как обычно. При инсталляции уже есть готовый профиль HN для KVM, а так же "Средства виртуализации KVM" в наборах пакетов. Однако, все равно нужно вручную будет поставить virt-install/virt-manager, kvm и обязательно модуль kvm для ядра, который почему-то тоже не поставился и это можно легко не заметить, при этом у вас будет 100% загрузка CPU.
KVM
Установка
В сети очень много различной документации по KVM, почти вся она неактуальная, ключи и опции постоянно меняются. После нескольких попыток использовать virt-install в консоли (неудачных, в начале инсталляции всё зависало почему-то) выяснилось, что простой и рабочий способ (спасибо cas@) - запускать virt-manager у себя на десктопе с подключением к удаленному серверу. Работает быстро и удобно. Десктоп, рассматриваемый в данной инструкции, сделан на базе сборки с Cinnamon DE.
Настройка
При создании новой виртуальной машины, прежде чем начать инсталляцию, выберите опцию проверки конфигурации перед началом и в секции Дисплей Spice установите параметр Все интерфейсы, иначе вы не сможете увидеть экран с инсталляцией и при этом не будет никаких ошибок.
В секции Видео VGA установите модель VGA, с QXL были проблемы уже после инсталляции (точно не помню, эксприментально подобрано).
Если вам необходимо пробрасывать порт внутрь гостя, то уже не нужны никакие мосты (bridge) и прочие ухищрения вроде опции -redir у qemu. Сейчас уже можно воспользоваться обычными правилами iptables на хосте и прокинуть нужные порты.
NoMachine
Установка
NoMachine без ошибок ставится из RPM, автоматически настраивает себя (наш дистрибутив они определяют как Fedora) и добавляют в автозапуск.
Настройка
В общем случае никакой особой настройки не требуется. Можно ознакомиться
с документацией. В /usr/NX/etc/node.cfg из полезных опций можно включить Virtual OpenGL (секция 18.1).
Викт
Донастройка Desktop
При использовании настроек по умолчанию в используемом десктопе система запускается в runlevel 5 (graphical) и запускается lightdm. Из-за этого мы получаем несколько недостатков:
- пользователю дважды приходится вводить данные для входа; сначала в NoMachine, потом в lightdm
- не работает установка клиентского разрешения на сервере, доступны только стандартные варианты разрешений
- почему-то не работает передача звука
- любой пользователь можно выключить/перезагрузить сервер
Поэтому просто меняем runlevel:
# ln -sf /usr/lib/systemd/system/multi-user.target /etc/systemd/system/default.target
А так же меняем в /usr/NX/etc/node.cfg команду старта сессии (там будет gnome-session):
DefaultDesktopCommand "/usr/bin/startcinnamon2d"
В самом Cinnamon рекомендуется так же выключить все эффекты и прозрачности (в разделах Эффекты и Общий).
FreeNX
Продукты NoMachine платные (однако, можно каждые 30 дней продлевать). У них есть открытый продукт с урезанными возможностями FreeNX.