Терминальное состояние:личный опыт
АрхивЭти строки я набираю на клавиатуре 486-го ноутбука с 16 Мбайт памяти. Помимо WinWord, в панели задач есть еще несколько программ: Excel, любимый браузер Opera, несколько окон Internet Explorer (увы, Opera плохо работает на некоторых сайтах), организатор The Brain, расхваленный Сергеем Голубицким, и вот уже второй час компилируется один немаленький исходник на C++. Винчестер моего ноутбука "уснул" за полной ненадобностью, ведь все перечисленные задачи крутятся на компьютере, который стоит в соседней комнате. А на мой слабенький ноутбук делегированы только его экран и клавиатура.
Идея переложить всю вычислительную нагрузку на мощный центральный компьютер, максимально облегчив пользовательское рабочее место, далеко не нова. В виде алфавитно-цифровых "зеленых" терминалов она была реализована еще в незапамятные компьютерные времена, а удаленный доступ в Unix (в том числе и к графическим программам - через X-Windows) является изначальной и неотъемлемой функцией системы.
Не то - в операционных системах Microsoft. Терминальный доступ в Windows NT до сих пор явление весьма экзотическое, и не в последнюю очередь тому виной лицензионная политика компании. Насколько мне известно, единственная удачная реализация терминального доступа к Windows (тогда еще NT 3.5) была сделана компанией Citrix. Затем Microsoft приобрела у Citrix технологию, выпустив специальную редакцию 4-й версии NT со сложным названием Windows NT Server 4.0 Terminal Server Edition. Кроме того, было предложено несколько программ shareware (например, Radmin) и даже freeware (WinVNC) для удаленного доступа к десктопу Windows NT и 95/98, однако все они страдали двумя крупными недостатками. Во-первых, на удаленном компьютере отображался тот же "рабочий стол" Windows, который видел перед собой локальный пользователь, то есть одновременная работа нескольких человек была невозможна. Во-вторых, содержимое экрана передавалось по сети в растровом виде, что сильно тормозило работу. Так что использовать эти приложения можно было разве что для администрирования компьютера в неотложных случаях.
Мой давний интерес к полноценному удаленному доступу к Windows был подогрет семинаром о терминальных решениях на платформе Windows, который 21 октября Microsoft провела в Москве в сотрудничестве с компанией ASA Productions. Желание пощупать все своими руками привело меня в Microsoft, где мне посоветовали начать с Windows 2000, в серверные поставки которой Terminal Server включен по умолчанию. Через несколько дней я получил в московском представительстве компании диски с ОС Windows 2000 Server Release Candidate 2, в которую терминальный сервер включен по умолчанию, и работа, как говорится, закипела. Всех впечатлений от новой версии операционной системы и процесса ее установки я описывать не буду (это тема отдельной повести), постараюсь ограничиться лишь обзором Terminal Server.
"Чудище обло, огромно, стозевно и лаяй..." Как написано в руководстве, 64 Мбайт оперативной памяти (именно столько у меня и было) для Windows 2000 Server являются минимумом, 128 Мбайт - "рекомендованным минимумом". Процесс установки с 24-скоростного привода CD-ROM занимает около полутора часов. С минимумом памяти, то есть 64 мегабайтами, в Windows 2000 вполне можно работать, если не обременять ее дополнительными обязанностями: установкой Office и пр. Пришлось добавить еще 64 Мбайт, - ОС вздохнула с облегчением.
Теперь о собственно Terminal Server. В процессе инсталляции система спрашивает, в каком режиме он будет работать, предлагая выбор из двух позиций: "удаленное администрирование" (remote administration mode) и "сервер приложений" (application server mode). Первый режим, согласно справке, рассчитан на удаленную работу одного или нескольких администраторов и "оказывает минимальное влияние на производительность сервера", второй ориентирован на одновременную работу многих пользователей и требует установки дополнительного "сервера лицензий". Я выбрал первый вариант.
После инсталляции в меню Administrative Tools обнаружилось три пункта, относящихся к терминальному доступу: Terminal Services Client Creator, Terminal Services Configuration и Terminal Services Management. Первый умеет только делать дискетки с клиентским ПО для 16- и 32-разрядной Windows (на диске с системой есть также клиент для карманных компьютеров с Windows CE). В принципе, терминальный доступ к Windows можно получить также из DOS, Unix и MacOS, но для этого придется устанавливать сервер Citrix Metaframe ценою в несколько тысяч долларов.Terminal Services Management позволяет администратору контролировать терминальные сессии, отстреливать в случае необходимости программы, запускаемые пользователями, и самих пользователей. Terminal Services Configuration предназначена, естественно, для конфигурации терминальных сессий.
Работает Terminal Server по протоколу RDP/TCP (Remote Desktop Protocol) и требует наличия в сетке TCP/IP. Пришлось его поставить и выдать сетевым карточкам на обеих машинах - сервере и клиенте - IP-адреса из несуществующей подсетки. После чего установил программу, сделанную Client Creator'ом на ноутбук, и... все заработало. При соединении с сервером выдается стандартное предложение Windows ввести имя пользователя и пароль, после чего на экране появляется десктоп. Единственно, что пока смущает, - полутораминутная задержка при соединении с сервером, но я отношу ее на счет кривости собственных рук (компьютер в это время, скорее всего, что-то бесплодно ищет в сети). Для каждого клиента выделяется полноценная (в меру ограничений, наложенных администратором) виртуальная машина. Можно делать все, что угодно, вплоть до выключения, ежели ты наделен соответствующими полномочиями. При разрыве соединения (в меню Shutdown для терминала появляется пункт Disconnect) сессия на сервере сохраняется до выключения: можно вернуться и найти свою работу в том виде, в котором ты ее оставил.
На клиенте можно выбрать два варианта представления удаленного десктопа - в окошке и на полном экране. Переключаться между программами, запущенными на сервере, можно с помощь мышки в панели задач, а также клавиш Alt+PgUp и Alt+PgDn. Комбинации Alt+Tab и Ctrl+Esc сохраняют свои локальные функции.
Насколько быстро все это работает? Если неискушенному человеку дать попечатать, допустим, в Word на локальной машине и в терминальной сессии, он вряд ли сможет отличить одно от другого - разве что во втором случае совсем не трещит винчестер.
Окошки, текст и пр. передаются по сети в векторном виде, и поэтому большой полосы пропускания не требуется. Некоторое замедление начинает проявляться при передаче растровой графики. Например, карты, перетаскиваемые в пасьянсе Solitaire, чуть заметно подергиваются (кстати, в эту игру Microsoft наконец-то вставила замедлитель, и теперь, хвала прогрессу, карточки в конце не падают стремительным домкратом, а скользят плавно и красиво). Развертывание фотографии на полный экран 640x480 в терминальной сессии происходит примерно за секунду, но смотрится она в 256 цветах совсем некрасиво. Почему в 256? Таково единственное возможное значение в настройках терминального десктопа, установленное, чтобы сэкономить полосу пропускания сети. Так что о терминальной работе в Photoshop можно забыть, разве что GIF'ы рисовать.
Просмотрев по окончании терминальной сессии журнал событий на сервере, я обнаружил несколько ошибок, связанных с тем, что система не могла найти у себя принтеры, которые были установлены... на ноутбуке. Оказалось, что терминальная служба делает Printer Mapping (отображение принтеров). Это значит, что, когда удаленный пользователь пожелает распечатать документ, тот вылезет именно из его принтера, а не из того, что установлен на сервере. Что и говорить, удобно (но можно при желании отключить). Таким же образом делается отображение COM-, LPT-портов, а также Clipboard. То есть забрал текст или картинку в буфер обмена в терминальной сессии и перенес в "местную" программу, или наоборот. Выход в Интернет через модем осуществляется без проблем, причем установленным dialup-соединением можно пользоваться в любой сессии (опять-таки в меру ограничений, налагаемых администратором). Для пользователя, совсем пораженного в правах, в настройках сервера можно назначить одну-единственную программу, кроме которой он ничего не сможет видеть.
Насколько обременительна для сервера работа в таком режиме? Наиболее дефицитным ресурсом здесь является оперативная память. По приблизительным оценкам, первая клиентская сессия без учета запущенных в ней дополнительных программ отъедает на сервере около 15 Мбайт оперативки. Каждая следующая - около 10 Мбайт. Добавьте к каждой сессии еще мегабайт шесть, например, на WinWord. Конечно, что-то операционная система положит в своп, но скорость работы будет уже не та.
В заключение можно сказать, что Microsoft (вместе с Citrix?) удалось сделать полноценный терминальный доступ к системе, которая изначально не была предназначена для одновременной работы нескольких пользователей. Конечно, жадность к памяти неимоверна, но должна же память когда-нибудь подешеветь? Так что решение на основе терминального доступа может показаться довольно привлекательным для апгрейда сетки из нескольких безнадежно устаревших ПК. Поставить бы мощный сервер и радоваться, но... Точку я здесь поставить, увы, не могу, так как весь вопрос упирается в стоимость серверного ПО и клиентских лицензий (поскольку Windows 2000 официально еще не вышла, хотелось бы знать цену Windows NT 4.0 Terminal Server Edition). Представители Microsoft уходят от прямого ответа, объясняя, что цена зависит от многих факторов. Понятно, что зависит, но хотя бы для ориентировки можно было бы назвать... Вот что я нашел на сервере Microsoft: Windows NT Server 4.0, Terminal Server Edition - около 600 долларов, клиентская лицензия (серверная и терминальная часть) -115 долларов. Теперь посчитаем: покупка десятка новых ПК (с предустановленной OEM-версией Windows NT Workstation) при сохранении старых мониторов обойдется нам тысяч в шесть долларов. В "терминальном" случае только одно ПО будет стоить 1750 долларов. Что ж, тысячи за четыре, разумеется, можно найти приличествующий случаю сервер, но нужно заметить, что выгодность такого решения находится на грани. Конечно, можно говорить об уменьшении совокупной стоимости владения, однако эта совокупная стоимость, как дышло - куда повернул, туда и вышло, а посему учесть этот фактор чрезвычайно сложно.