International conference of developers
and users of free / open source software

Linux Terminal Server Project

Михаил Шигорин -‭ ‬ООО Медиа Мэджик,‭ ‬ALT Linux Team -‭ ‬Киев,‭ ‬Украина

LVEE 2008

Преимущества использования терминальных технологий для целей миграции на свободное ПО и повторного использования морально устаревшего‭ “железа‭”.‭ ‬Участие в проектах ALT Linux и LTSP:‭ ‬порознь и вместе.‭ ‬ALTSP как уникальный сплав‭ “лучшего из двух миров‭” – ‬LTSP4/5.

предыстория

Когда компьютеры были большими,‭ ‬а их количество‭ ― ‬маленьким,‭ ‬на одной системе в нескольких десятках килобайт работало несколько пользователей.

Времена менялись,‭ ‬640К какое-то время хватало всем,‭ ‬и все предпочли работать персонально.‭ ‬Мощность ПК же продолжала расти по закону Мура,‭ ‬и вскоре достигла мощности дорогущих рабочих станций UNIX,‭ ‬а потом и перешагнула ее.

Вдруг оказалось так,‭ ‬что ресурсов ширпотребного компьютера достаточно,‭ ‬чтобы обеспечить работу…‭ ‬правильно,‭ ‬опять нескольких пользователей.‭ ‬Где ваша лицензия на подключение‭?

Linux

В‭ ‬1999‭ ‬году уже существовало как движение свободного ПО,‭ ‬так и намерение разработчиков ядра Linux вплотную заняться настольными системами.‭ ‬Этим воспользовались в одной детройтской фирме,‭ ‬занимавшейся обслуживанием госпиталей‭; ‬так появилась первая версия LTSP.

События развивались довольно быстро:‭ ‬в апреле‭ ‬2000‭ ‬года появилась вторая версия,‭ ‬всё так же копировавшая бинарники из основной системы,‭ ‬но уже улучшенным скриптом инсталяции‭; ‬через полтора года‭ ― ‬третья с существенным прогрессом по части развёртывания и функциональности,‭ ‬а в‭ ‬2004‭ ‬был выпущен LTSP4‭ ‬с очень неплохими эксплуатационными характеристиками:‭ ‬работа на‭ ‬12M RAM,‭ ‬загрузка в полминуты,‭ ‬поддержка балансировки нагрузки и локально запускаемых на клиенте приложений‭ (‬например,‭ ‬для интернет-телефонии с доступом к микрофону‭)‬.

LTSP5

В‭ ‬2005‭ ‬начались работы над версией,‭ ‬которая наконец должна была не таскать бинарники из хост-системы при установке,‭ ‬не тягать с собой из какого-то RH,‭ ‬не собирать в специальном окружении‭ ― ‬но пользоваться дистрибутивной основой,‭ ‬прекратив быть мини-дистрибутивом в своём праве и став фреймворком по составлению терминальных решений из существующих дистрибутивов.

Эта работа выполнялась в тесном сотрудничестве с Ubuntu и Debian,‭ ‬результат был включен в образовательный комплект Edubuntu.

При том,‭ ‬что технологически переработка представляла собой прорыв,‭ ‬на практике многие ценные свойства были утеряны или разменяны на другие.‭ ‬Например,‭ ‬существенно возросли аппаратные требования к терминалам,‭ ‬сильно возросло время их загрузки,‭ ‬исчезла поддержка LocalApps и кластеризации.‭ ‬В отличие от того,‭ ‬что задумывалось,‭ ‬ситуация с безопасностью также ухудшилась.

Но всё это было оправдано происшедшей закладкой фундамента для дальнейшей метадистрибутивной разработки,‭ ‬когда LTSP предоставляет не свои сборки ядра или системных библиотек,‭ ‬но методологию по поддержке загрузки и обеспечения работы клиентов‭ ― ‬и компоненты,‭ ‬готовые к использованию для интеграции такого режима в существующие дистрибутивы.‭ ‬Ну и практической реализацией,‭ ‬пригодной к работе‭ «‬из коробки‭»‬.

В‭ ‬2007‭ ‬году к разработке LTSP5‭ ‬присоединились участники проектов Gentoo,‭ ‬openSUSE,‭ ‬Fedora,‭ ‬Slackware,‭ ‬принося с собой фрагменты специфического для их дистрибутивов кода,‭ ‬исправляя и улучшая общий.

ALTSP5

В том же‭ ‬2007‭ ‬году был доведён до бета-состояния и использован в деле форк LTSP5‭ ‬на базе ALT Linux,‭ ‬сочетавший в себе как наработки по использованию дистрибутива из пятой ветки,‭ ‬так и зрелые компоненты из четвёртой‭; ‬наш офис‭ [‬1‭] ‬успешно переехал на технологию ALTSP5‭ ‬в конце весны.

К концу года был наработан дистрибутив,‭ ‬который обеспечил на стенде загрузку и нормальную работу Pentium‭ ‬166/32M как одного из тонких клиентов,‭ ‬подключенных к более мощной машине.‭ ‬То есть при наличии одной современной системы со специализированным школьным дистрибутивом Линукс Терминал возможно работать на‭ «‬старичке‭» ‬с KDE,‭ ‬OpenOffice.org и Eclipse.

почему форк‭?

В проекте ALT Linux нередко выполняют форк каких-либо других проектов по той банальной причине,‭ ‬что считают совершенно невозможным улучшать их такими,‭ ‬как есть:‭ ‬подчас приходится переписывать начисто.‭ ‬Собственно,‭ ‬ALT когда-то был с пылу с жару таким же форком,‭ ‬быстро уходящим от оригинала в сторону разумности.

Предпосылки начались осенью‭ ‬2006‭ ‬года с развёртывания LTSP4.2‭ ‬в нашем офисе внутри OpenVZ VPS‭ ― ‬скрипты явно не были рассчитаны на действительность,‭ ‬отличающуюся от авторской,‭ ‬а их отладка отнимала непомерно много времени и нервов.‭ ‬По ходу пьесы образовались как‭ «‬волшебный тарбол‭» ‬/opt/ltsp,‭ ‬так и решимость самостоятельно LTSP4‭ ‬больше не заниматься‭ [‬2‭]‬.

Решимость заниматься терминальными решениями,‭ ‬однако,‭ ‬не угасла,‭ ‬и весной‭ ‬2007‭ ‬на этот нелёгкий труд был приглашён выделенный разработчик‭ ― ‬Александр Чумаченко‭ (‬led@altlinux‭)‬.‭ ‬У него возникли схожие предпосылки применительно к LTSP,‭ ‬и хотя рассматривались разные варианты‭ ― ‬в итоге остановились на этом в качестве основы.‭ ‬Были выброшены те части LTSP 5.0,‭ ‬которые были сочтены незрелыми,‭ ‬и добавлены куски LTSP 4.2,‭ ‬которые доказали лучшую пригодность‭ (‬NFS root и использование XDMCP‭)‬.

upstream merge

Результат вскоре стал работоспособным,‭ ‬но довольно сильно уходил в сторону от основного направления разработки LTSP5‭ ‬по части организации взаимодействия с тонкими клиентами.‭ ‬После ряда обсуждений было решено всё-таки попробовать включить наработки в состав основного репозитория‭ ― ‬что,‭ ‬помимо других дел,‭ ‬заняло примерно полмесяца весной‭ ‬2008,‭ ‬но в общих чертах позволило сократить объём различий с примерно восьмидесяти до двух десятков килобайт и синхронизировать представление об интересах по дальнейшей разработке с теми,‭ ‬кто её и так давно‭ (‬или недавно‭) ‬ведёт.

текущее состояние

ALTSP5‭ ‬остался таким же‭ «‬гибридным‭» ‬вариантом‭; ‬используется специальная сборка ядра с патчами для надёжного свопа по сети‭; ‬потребность в памяти терминала получилось свести к сопоставимому с требуемым для LTSP4.2‭ ‬объёму‭ ― ‬16M‭ (‬ниже опускаться большого смысла нет,‭ ‬поскольку это типичный объём для первых‭ «‬пентиумов‭»‬,‭ ‬а на i486‭ ‬уже не работают штатные пакеты ALT Linux,‭ ‬оптимизированные для i586‭)‬.

Доступны снапшоты терминального решения на основе ALT Linux 4.0‭ ‬Desktop и школьного дистрибутива Линукс Терминал,‭ ‬которые позволяют воспользоваться терминальным сервером непосредственно после установки‭ (‬при возможности загрузиться по PXE‭)‬.

Написана документация‭ [‬3‭] ‬и‭ ‬система управления клиентами‭ ― ‬обе скорее в минимальном объёме:‭ ‬документации чем меньше‭ ‬читать‭ ― ‬тем лучше,‭ ‬а вот улучшение модуля Alterator‭ ― ‬один из главных участков дальнейшей работы.

планы

Существует намерение разрешить возникший‭ «‬конфликт поколений‭» ‬LTSP‭ (‬в первую очередь по части требований к ресурсам‭) ‬за счёт реализации поддержки множественных транспортов в стиле LTSP4/5‭ ‬и расширяя их‭ ― ‬для:

-‎ ‏загрузки терминалов‭ (‬NFS/NBD‭);
-‎ ‏регистрации в системе‭ (‬XDMCP/LDM/RDP/…‭);
-‎ ‏работы с приложениями‭ (‬X11/X11+ssh/RDP/…‭);
-‎ ‏работы с локальными устройствами‭ (‬ltspfs/RDP/…‭)‬.

Дистрибутивами по факту вовсю пользуются и в виде снапшотов,‭ ‬причём они весьма близки к релизному состоянию‭; ‬работа в направлении выпусков также ведётся.

контакты

Загрузить бета-версии‭ (‬и будущие релизы‭) ‬можно с серверов‭ ‬ и‭ ‬; подписаться на рассылку,‭ ‬где идёт обсуждение разработки и применения‭ ― ‬по адресу‭ ‬ .

Докладчика можно найти как‭ ‬ (email/jabber‭)‬.

использованные источники

1.‎ ‏Media Magic Ltd,‭ ‬Терминал-сервер,‭ ‬2007,‭
2.‎ ‏Michael Shigorin,‭ ‬А не сделать ли ALTSP‭?‬,‭ ‬2006,‭
3.‎ ‏Alexander Chumachenko,‭ ‬LTSP5‭ ‬в ALTLinux,‭ ‬2007,‭ ‬http://freesource.info/wiki/Dokumentacija/LTSP5