Библиотека сайта rus-linux.net
Терминальные системы, блеск или нищета?
Автор: Сергей Ушенин
Дата публикации: 05.02.2016
Отношение к терминальным системам в России может служит барометром состояния экономики. В "тучные" годы эта тема почти исчезает с просторов рунета, но как только состояние экономики ухудшается тут же возрастает количество желающих построить терминальный рай в отдельно взятом офисе. Впрочем, постепенно эти приливы становятся все слабее и слабее. Компьютерное железо дешевеет, а вычислительные мощности растут. Сейчас, в период острейшего кризиса, компьютеризация одного офисного рабочего места не станет большой проблемой даже для бедной организации в глухой провинции. В сознании очень многих ИТ специалистов терминальные системы ассоциируются исключительно с возможностью экономии на оборудовании. В свое время, действительно, очень популярным было использование в качестве рабочих мест старых персональных компьютеров. И когда какой-то ИТ администратор задумывается об использовании терминалов, то прикидывает возможную экономию на оборудовании, объем работ по внедрению и чаще всего отказывается от этой идеи. Тем более что экономить будет предприятие, а работать придется этому специалисту.
Я довольно долго и вполне успешно использовал терминальные системы, и убежден, что те, кто отказывается от их использования, много теряют. Причем теряют и сами администраторы, и предприятия, и общество в целом. Конечно, терминальная система позволяет получить какую-то экономию на оборудовании, но в сегодняшних условиях экономия на программном обеспечении может быть существенно больше, чем экономия на оборудовании. Но и это не главное! Самое главное в терминальной системе - это существенное снижение трудоемкости обслуживания офисных рабочих мест, грубо говоря - администратору приходится гораздо меньше бегать по кабинетам. Однако ценность самого специалиста в глазах руководства сильно увеличивается. При этом возрастает надежность и безопасность системы. Все это в какой-то мере относится и к терминальным системам на основе Windows, но конечно, максимальный эффект получается при использовании Linux. При этом вполне возможна их комбинация. Когда-то я экспериментировал с такими смешанными системами, тогда все работало нормально, однако в последние годы использую только Linux.
Безусловно, терминальные системы подойдут не всем. Возможно, история практического использования терминальной системы кому-то поможет определиться. Прежде всего нужно внести ясность в используемую терминологию, довольно часто происходит путаница в понятиях. Терминальная система состоит из двух основных частей (тут имеется ввиду аппаратная часть) - терминального сервера и собственно терминалов, то есть рабочих мест. Сервер и и терминалы обмениваются информацией по тому или иному протоколу. Та программа, которая обеспечивает поддержку нужного протокола на терминальном сервере, тоже называется терминальным сервером, а та программа, которая обеспечивает поддержку протокола на терминале, называется терминальным клиентом. Кроме того, в терминальных системах могут использоваться различные способы запуска системы на клиентских терминалах. Это может быть аппаратный терминал, у которого вся система и программа терминального клиента прошита в биос или на встроенный флэш накопитель. Либо система на терминал может загружаться по сети (PXE загрузка). И, наконец, может использоваться обычный компьютер, на котором работает нормальная операционная система, а терминальный клиент запускается как любая другая программа и работает в окне.
В графической системе Linux изначально заложена возможность подключения удаленных рабочих мест по X (икс) протоколу (X-терминалы). Но, честно говоря, лучше бы там этого не было. Оно, конечно, работает, но работает плохо, особенно если рабочее место действительно удаленное и канал связи не очень хороший. Впрочем, мне когда-то удавалось работать по ADSL соединению с нестабильным 4 мегабитным каналом. То есть, конечно, работать по настоящему не получалось, но зайти в систему что-то посмотреть было вполне возможно. В нормальной 100 мегабитной, а тем более в гигабитной сети несколько человек могут работать вполне комфортно. Основное достоинство этой системы в том, что для использования X протокола ничего дополнительного на сервер ставить не нужно. Основной недостаток - "падучесть" - малейший в сбой в сети приводит к обрыву сессии со всеми вытекающими последствиями, в том числе, возможна утрата данных. Кроме того, все данные передаются по сети в открытом виде и довольно легко могут быть перехвачены. Поэтому использование X протокола в чистом виде вряд ли оправдано для каких-либо целей, кроме экспериментов. И поэтому лучше бы этого протокола вообще не было, так как во многом из-за врожденной ориентации на удаленное подключение X сервер и в локальном режиме работает хуже, чем могло бы быть... Ну это мое личное мнение, не обращайте внимания, к делу это не относится...
Довольно долго для удаленной работы в Linux (и не только в Linux) в основном использовался VNC протокол (точнее говоря формально протокол называется RFB, но на практике об этом редко вспоминают). Существует несколько реализаций VNC, я когда-то пробовал их, не скажу что все, но многие, однако ни одна не показалась мне пригодной для постоянной работы. Знаю, что некоторым нравится использовать VNC, но у меня все клиенты тормозили, портили картинку и при этом нагружали сервер. Возможно, если бы не было других вариантов, то можно было бы добиться приемлемой работы VNC систем, тем более, что у VNC есть интересные и полезные возможности. Но другие варианты были и они оказались гораздо удобнее.
После многих экспериментов выбор пал на NX протокол. В те времена установка FreeNX сервера была не тривиальной задачей, сейчас с этим никаких проблем. Терминальная система на основе NX протокола и thinstation 2.3 терминальных клиентов прекрасно работала в течении нескольких лет. Но у этой системы есть ряд ограничений. Не очень хорошо работает мультимедиа, по крайней мере в бесплатных вариантах этой системы. В некоторых случаях это можно даже считать достоинством, работники не будут отвлекаться на рабочем месте. Однако в моем случае потребовалось обеспечить на некоторых рабочих местах работу Skype и просмотр рекламных flash роликов. Возможно, этот удалось бы реализовать в рамках NX сервера, который к тому времени превратился в RX. Но загружать терминальный сервер обработкой мультимедиа мне показалось неправильным: с одной стороны нагрузка сама по себе может оказаться чрезмерной, с другой стороны - это угроза безопасности и стабильности.
Самым простым вариантом была установка на рабочих местах полноценных компьютеров для запуска мультимедиа-приложений локально, и запуск на этом же компьютере в отдельном окне терминального клиента. Таким образом, офисная работа выполнялась в терминальном режиме, а мультимедиа на локальном компьютере. Этот способ использовался какое-то время, но тоже оказался не очень удобным. Во первых, терялось одно из основных преимуществ терминальной системы - централизованное управление. Особенно это неудобно при удаленном администрировании. Во вторых, пользователи работали на 2 компьютерах и нередко путали, что нужно делать в терминальном окне, а что в локальной системе. Тем не менее какое-то время именно так все и работало. Рядовые пользователи работали на терминалах с thinstation, а "привилегированные" - на полноценных компьютеры и запускали терминального клиента в оконном режиме. Кстати, забыл упомянуть в качестве рядовых терминалов использовались переделанные старые компьютеры. Вполне достаточно целерона-2 и 128 Mb RAM. В принципе и на 64 Mb можно было работать, но требовалось использовать оптимизированную сборку thinstation. В качестве "полноценных" компьютеров сначала использовались машины с целероном 1200 и 512 Mb RAМ. Как в песне "но скажу я в оправдание, это древнее предание, вся история случилась много лет тому назад". Конечно, постепенно техника обновлялась, но для комфортной работы даже "привилегированным" вполне хватало минимальной конфигурации, причем 5-6 летней давности. Случалось такое, что работники приносили из дома свой старый компьютер после апгрейда, чтобы войти в число "избранных". Начальство не возражало, но мне эта ситуация нравилась все меньше и меньше.
Пришло время обновлять сам терминальный сервер, и я решил под это дело попробовать новый вариант - LTSP 5. Когда-то давно я пробовал LTSP, тогда это была 3 версия, но мне не очень понравилось, сейчас уже не помню точно что именно. Позднее мне и 4 версия LTSP не приглянулась. Но в 5 появились очень интересные возможности. В первую очередь меня интересовал режим "толстого" клиента. Я хотел чтобы на всех "привилегированных" рабочих местах использовалась общая операционная система, которую можно будет настраивать централизованно и один раз на всех. В конечном итоге я стал использовать другой вариант, при котором используется механизм запуска локальных приложений прямо в терминальном сеансе. То есть у пользователя запускается терминальный сеанс на полном экране, он работает как на родном компьютере, никаких проблем с переключением между локальной системой и терминальным окном. Если этот пользователь запускает приложения, настроенные на работу в локальном режиме, то эти приложения запускаются "как родные", то есть пользователю не нужно думать, где именно работает то или иное приложение. Но локальное приложение использует для работы ресурсы терминала, а не терминального сервера. Пользователям это очень удобно.
Впрочем есть и минусы. Первый запуск "тяжелого" приложения (например, интернет-браузера) происходит не очень быстро, даже в гигабитной сети задержка довольно заметна. Кроме того, есть некоторые недоработки с ярлыками, то есть, если, например, запустить видео-проигрыватель и открыть файл из него - все работает, а если просто щелкнуть по видео-файлу в папке, то запуск проигрывателя не происходит. Дело в том, что сам файл находится на сервере, и "кликанье" происходит тоже на сервере, и система пытается запустить приложение на сервере, а его там нет... Более серьезных проблем не обнаружилось... Впрочем, многое зависит от потребностей пользователей, и нельзя утверждать, что все идеально будет работать во всех случаях. Но практически всегда можно найти то или иное решение для для возможных проблем, ну или использовать какой-то обходной путь. На самом деле и с медленным запуском и с ярлыками можно разобраться, но пока до этого не дошла очередь, пользователи приспособились и всегда есть более срочные дела. А толстого клиента я все же собираюсь когда-нибудь попробовать, вдруг это окажется более удобным вариантом, но не знаю, когда удастся это сделать. Сам теперь редко выезжаю к клиентам, чаще обхожусь удаленным администрированием и консультациями.
Таким образом, терминальные системы позволяют использовать самые разные варианты, естественно, под Linux, под Windows особо не разбежишься... Но при желании можно в рамках терминальной системы объединить лучшие стороны Linux и Windows (если с вашей точки зрения они есть). К примеру, есть у организации много Windows XP, на которых нормально работает нужный софт, но эти системы нельзя выпускать в Интернет. А пользователям нужен интернет и скайп и почта и т. п. Все это можно получить в Linux, а XP изолировать от Интернета и использовать только для работы того самого нужного софта. В зависимости от того, что есть в наличии, и того, что требуется получить, возможны самые разные схемы. Но если нет каких-то особых требований, то абсолютно нормальное офисное рабочее место получается на самом слабом компьютере типа целерона-333 и 128 Mb RAM. Впрочем, сейчас можно абсолютно бесплатно найти гораздо более мощные системные блоки, вам еще и спасибо скажут, если вы их заберете... А могут даже и привезти, лишь бы избавиться... Конечно, на слишком слабой системе мультимедиа работать не будет, но уже начиная с Pentium-4 и 1Gb RAM работает все, что нужно (фильмы в высоком разрешении на рабочем месте смотреть не нужно :)), хотя браузеру, конечно, желательно памяти побольше. При этом мониторы, вполне, можно поставить новые. Сервер, естественно, нужен хороший, а еще лучше два сервера или три, можно такие интересные конфигурации придумать! Впрочем, в предельно бюджетном варианте подойдет любой более-менее приличный компьютер. То есть при необходимости можно получить работоспособную многопользовательскую систему с минимальными затратами, если же предельная экономия не требуется, то за счет использования терминальных технологий можно получить выигрыш в чем то другом. Можно существенно увеличить безопасность за счет изоляции различных систем и полного контроля за доступом пользователей к данным. Можно увеличить надежность за счет дублирования и резервирования оборудования. Быстродействие системы, тоже можно увеличить, если направить средства сэкономленные на рабочих местах на модернизацию сервера. Короче говоря, много чего можно сделать. И самое приятное то, что почти все это можно попробовать практически бесплатно. В общем-то учебную терминальную систему можно запустить на одном единственном более-менее приличном компьютере, в VirtualBox. Конечно, придется потратить какое-то время, но это время в дальнейшем может многократно окупится...
Я не стал излагать каких-то технических подробностей, в сети все это есть, и при желании легко можно найти. Но, если эта тема заинтересует читателей, то можно будет сделать подробную пошаговую инструкцию установки и настройки различных вариантов системы.
Согласны ли вы с мнением автора этой статьи? Выскажите свое отношение к использованию терминальных систем в следующей ветке на нашем форуме.