Представьте себе типичную организацию небольшого офиса на 4-5 рабочих мест. Вокруг кабинета проложен кабель канал, подведены компьютерные и электрические розетки к каждому столу. Роутер с пучком проводов спрятан за дверью. Системные блоки ПК пылятся на полу с торчащими проводами. Сервер стоит где-то на полке или вообще отсутствует для экономии, а файлы лежат в шаре одного из ПК. Бесперебойники - непозволительная роскошь, потому что с электричеством перебои бывают редко. Добавляем второй кабинет и получаем всё то же самое помноженное на два.
Сравним с организацией офиса на базе lxc-desktop. В офисе нет кабель канала по периметру, отсутствуют сетевые и электрические розетки на стенах возле каждого рабочего места. Столы сгруппированы в центре кабинета, вокруг рабочих мест нет хвостов из проводов. Все провода проходят под столешницей. На полке возле стола стоит ПК с несколькими видеокартами, к которым подключены мониторы.
Все системы рабочих мест работают внутри этого ПК. Скорость доступа к данным равняется скорости чтения с диска. Информация хранится на рейде, что исключает простой в случае выхода из строя жесткого диска. Там же в отдельных контейнерах работает несколько серверов - почтовый, телефония, jabber, файловый и проч. Компьютер запитан от UPS-а, что исключает простой при краткосрочном отключении электричества. Компания расширяется и арендует второй кабинет. Два ПК связаны сетью. Информация на втором продублирована.
В начале ноября мы провели два опроса Насколько вам интересна поддержка организации нескольких рабочих мест на базе одного ПК? и Каким образом лучше организовать работу нескольких пользователей за ПК? чтобы узнать интерес готового решения “из коробки” среди пользователей Calculate Linux. Одновременно мы начали вести работу в этом направлении.
Организацию рабочих мест мы решили построить на базе LXC контейнеров с полноценными версиями дистрибутива. Подобное решение занимает золотую середину между запуском нескольких сеансов на базе одного Xorg сервера и использованием виртуальных машин. От первого решения через использование Xorg отличает то, что сущность системы нисколько не меняется, это по прежнему обычный десктоп запущенный только в изолированной среде. В отличие от использования виртуальных машин аппаратные требования значительно ниже. Контейнеры используют общую память, жесткий диск и ядро процессора.
Всё шло как по маслу. Добавляя второе рабочее место к существующим ПК проседания по производительности практически не наблюдалось. Для организации 3-4 рабочих столов достаточно было немного нарастить производительность железа. Благодаря многоядерным процессорам, отсутствию постоянной нагрузки на CPU во время работы, возможности использования различных инструментов, таких например как UKSM, использование нескольких рабочих столов показало в работе себя очень эффективно. Управлять lxc-десктопами было намного проще и безопасней, чем полноценными системами. Особенно важно то, что вы можете абсолютно безопасно обновлять системы находясь на расстоянии.
Мы начали внедрять и планировать новые кабинеты с учётом распределения рабочих мест вокруг одного системного блока (см. фото).
Внезапно выявилось одно непреодолимое препятствие на пути перевода машин на систему состоящую из Calculate Linux Container + Calculate Container Desktop Xfce. Во время работы rdesktop или freerdp с терминальными Windows приложениями, последние через случайный промежуток времени (от 15 мин. до 6 часов) закрывались. Закрывались так же просто запущенные в Windows приложения при открытии рабочего стола. Падал даже “Блокнот”. Мы потратили 3 месяца на изучение проблемы, но так и не нашли какого-либо решения.
В итоге пришлось откатить установленные системы на CLDX и вернуть недостающие системные блоки. Установщик, который мы планировали написать мы разрабатывать не стали. Вместо этого подготовили руководство по установке lxc-desktop посредством утилит lxc. Немного сложнее, но ничем не хуже. С прошлого года регулярно выходят сборка как Calculate Linux Container (хост-машины), так и Calculate Container Desktop Xfce (lxc-desktop). Если вам не приходится работать с терминальными Windows приложениями, вы можете установить использовать такое решение. Мы надеемся, что возможно с вашей помощью мы рано или поздно найдём решение проблемы работы RDP клиента. Используйте телеграм-чат для обратной связи.