Развитие вычислительной техники происходит все более стремительными темпами. Если еще лет 10 назад ПК с пол-гигабайтом оперативной памяти казался чуть ли не пределом мечтаний, то сегодня 512Мб в домашнем компьютере уже как-то маловато. Частоты процессоров, оперативной памяти и объемы жестких дисков также продолжают увеличиваться. Два-три года, прошедшие с начала эксплуатации компьютера, автоматически переводят его в категорию морально устаревшей техники. Однако моральное устаревание вовсе не означает физическое. И хотя понятно, конечно, что запускать на P-166 с ОЗУ 32Мб что-то вроде Windows XP вряд ли кому придет в голову, существует ряд задач, с которыми подобные компьютеры могут вполне справляться. Для этого достаточно сделать их «тонкими клиентами» службы терминалов.
Служба терминалов позволяет выполнять одновременно несколько приложений на сервере. Клиент же выполняет функции терминала – он лишь передает на сервер данные о нажатых клавишах и положении курсора мыши. Сервер производит необходимые вычисления и возвращает на терминал изображение, выводимое на монитор. Для пользователя, сидящего за терминалом, весь процесс выглядит точно так же, как если бы приложение выполнялось на локальной машине. Преимущество такой технологии в том, что на «аппаратные плечи» клиента при этом не ложится почти никакой нагрузки, ведь весь вычислительный процесс происходит на стороне сервера. Таким образом, имея в распоряжении достаточно мощный сервер, можно использовать уже существующие низкопроизводительные компьютеры для выполнения задач, с которыми они в других конфигурациях справится уже не в состоянии. Наибольший эффект от применения терминалов достигается в условиях обеспечения работы большого числа пользователей, выполняющих однотипные задачи, например, учебные классы или рабочие офисные места.
Тонкий клиент очень похож на алфавитно-цифровой терминал для мэйнфреймов. Он лишь передает на сервер терминалов данные о событиях клавиатуры и мыши, получая от сервера графические данные для отображения на мониторе.
Взаимодействие сервера терминалов и клиента
Производительность такой системы будет зависеть только от мощности ресурсов сервера терминала. Клиент может работать даже без жесткого диска и съемных носителей, осуществляя загрузку ОС по сети. При использовании терминального сервера на базе Windows 2000/2003 Terminal Server, связь между компьютерами осуществляется по протоколу RDP 5 (Remote Desktop Protocol — «протокол удаленной настольной системы»).
Помимо невысоких требований к аппаратным ресурсам терминалов, такие решения имеют и ряд других преимуществ. В случае использования приложений, которым необходим интенсивный обмен данными между клиентом и сервером, значительно снижается нагрузка на сеть. В этом случае и клиентское ПО, и сервер физически находятся на одном компьютере, основной объем данных не покидает пределов самого сервера (даже если данные расположены на другом физическом файл-сервере, как правило, он находится на одной сетевой магистрали и рядом с сервером терминалов). На терминал отсылается лишь готовый для отображения результат вычислений. Данные используемого терминалом прикладного ПО как таковые по сети вообще не передаются, исключая их перехват. Модернизацию терминалов больше не нужно производить всякий раз, когда новое программное обеспечение становится все более требовательным к аппаратным ресурсам вычислительной техники – достаточно увеличить ресурсы терминального сервера.
Одним из вариантов использования терминала может быть отсутствие у него жесткого диска вообще. Такая конфигурация позволяет повысить надежность работы в целом, ведь все данные будут храниться на сервере, где вероятность утраты или повреждения данных на порядки ниже, чем на локальных компьютерах. Хранение данных на сервере значительно упрощает их резервирование. Можно даже сэкономить на источниках бесперебойного питания, ведь отключение терминала или его полный выход из строя не приведет к необратимым потерям информации. Значительно упрощаются задачи администрирования. Приложения необходимо устанавливать и выполнять их обновления лишь на сервере – изменения терминального сервера сказываются одновременно на всех рабочих местах. Отсутствие на терминале съемных носителей, повышает безопасность и позволит экономить на антивирусном обеспечении, снимет необходимость контроля установки пользователями несанкционированного ПО и возможность утечки конфиденциальной информации. Настройка программного обеспечения терминала требует значительно меньше времени и усилий, чем развертывание локальных копий ОС.
Конечно же, терминальные технологии имеют и ряд ограничений на применение. Использование терминалов крайне неэффективно и порой даже невозможно для обеспечения работы «тяжелых» приложений, требующих большого количества сложных вычислений (характерный пример программ такого класса – AutoCAD). Интенсивная нагрузка на процессор сервера вызовет сокращение обслуживания остальных клиентов. Также не следует применять терминалы при работе программ, создающих потоковое видео и 3D, или подключающихся к серверу терминалов в удаленном режиме. В этом случае с передачей информации на терминал может не справиться сеть. То есть играть в современные 3D-игры и смотреть фильмы на терминалах не удастся. Стоит заметить, что для подобных случаев можно использовать смешанную архитектуру, устанавливая на необходимые рабочие места полноценные автономные ПК. Значительное внимание придется уделить обеспечению бесперебойной работе сервера – при его отказе ни один терминал не сможет продолжать работу.
Каждый компьютер оснащен микросхемой энергонезависимой памяти, в которой хранится исполняемый код BIOS. Задачей BIOS является обнаружение загрузчика и передачи ему управления. В случае использования бездискового терминала необходимо загрузить ОС по сети (конечно, можно использовать в качестве носителя загрузчика компакт-диск, флэш-драйв или дискету; однако, нам интересен терминал, на котором полностью отсутствуют какие-либо съемные носители). Для этого сетевая карта должна соответствовать спецификациям PXE или Etherboot. 100-мегабитные сетевые карты Intel, карты 3com905c-tx-m и 3com905cx-tx-m, а также многие встроенные в материнские платы сетевые адаптеры, изготавливаются по спецификации PXE. Для сетевых карт, имеющих встроенную флэш-память, или позволяющих установить микросхему BootROM можно получить загрузчик Etherboot (Binary ROM Image) на сайте rom-o-matic.net.
Процесс загрузки компьютера по сети
Для успешной загрузки на сервере обязательно должны быть запущены службы DHCP и TFTP. DHCP выдает клиенту сетевые параметры и сообщает о местонахождении загрузчика. Передача файлов осуществляется посредством TFTP. Можно использовать встроенные в Windows службы или воспользоваться бесплатной утилитой tftp32, загрузив ее с сайта разработчика. Если в сети уже работает DHCP-сервер, необходимо будет настроить именно его параметры, а не создавать новый.
На рынке тонких клиентов существуют как готовые аппаратные решения, так и ПО, позволяющее создать такого клиента самостоятельно. Аппаратные тонкие клиенты, как правило, оснащаются небольшим встроенным флэш-диском, с которого осуществляется загрузка ОС. Стоимость подобных решений начинается от 300 долларов. Если планируется задействовать уже существующую технику, необходимо использовать ПО, «превращающее» персональный компьютер в терминал.
В настоящее время большинство прикладных программ пишутся для исполнения под Windows. Реализация терминальных решений может быть построена как на использовании сервисов ОС Windows Server, так и при использовании пакета Citrix Metaframe фирмы Citrix. Доступ к терминальной сессии Windows Server может быть получен как из ОС Windows, так и из UNIX-подобных операционных систем, а также из-под DOS с использованием собственного программного обеспечения. По протоколам соединения с сервером наиболее распространены программы, работающие с RDP(родной для Windows протокол удаленного подключения) и ICA, ориентированный для работы с Citrix. Citrix более гибок и предоставляет больше возможностей, однако лицензирование клиентского соединения у него значительно дороже клиентской лицензии Windows.
Для иллюстрирования примера создания сети с бездисковыми терминалами я воспользуюсь ПО WTware. Можно использовать, например, бесплатного тонкого клиента для проекта "Терминальная сеть", однако ПО WTware мне показалось более простым в настройке. Коммерческий продукт WTware PRO стоит порядка 15 долларов США за каждый терминал, однако с сайта pxe.ru можно загрузить бесплатную версию WTware lite. Основное отличие бесплатной версии – ограничение на разрешение монитора терминала. Оно не будет превышать 800х600. Использование WTware lite позволит:
• Загружаться по сети, с CDROM, с IDE жесткого диска, IDE флэш-диска, с USB флэш-диска.
• Подключаться к терминальным серверам Windows 2000 Server, Windows 2003 Server, Windows XP.
• Использовать в качестве терминалов даже 486-е компьютеры с 8Мб RAM.
• Работать с разрешениями экрана до 800x600, при глубине цвета 8, 15, 16 или 24 бита, настраивать частоту регенерации экрана.
• Использовать DIN и PS/2-клавиатуры, COM и PS/2-мыши.
• Подключать к терминалам LPT-принтеры и печатать на них с любого компьютера в сети.
WTware поддерживает практически все сетевые и видеокарты, выпущенные за последние 10 лет.
Итак, предполагаем, что у нас в распоряжении есть компьютер с установленной ОС Windows Server 2003, на котором запущен сервер терминалов и компьютер с сетевой картой, поддерживающей спецификацию PXE. У второго компьютера отсутствуют жесткий диск и съемные носители. Загружаем инсталлятор WTware lite, запускаем его. При установке будет предложено установить встроенную в WTware TFTP-службу.
Выбор компонентов установки WTware
Можно самостоятельно установить TFTP-службу. Я оставлю отмеченным пункт "Служба TFTP". После установки будут запущены службы WTware.
Сервисы, запускаемые WTware
Теперь займемся настройкой DHCP-сервера. Открываем консоль управления DHCP (Пуск – Администрирование – DHCP). Создаем новую область адресов (New Scope).
Создание области IP-адресов
На первом шаге указываем имя и описание создаваемой области (произвольно, используется только для описания). Далее указываем диапазон IP-адресов, которые будет выдавать DHCP-сервер. Указывать лучше несколько больше, чем планируется установить клиентов. Конечно, диапазон адресов не должен пересекаться с уже существующими в сети статическими IP-адресами. Если необходимо, можно указать исключения для адресов области и изменить срок аренды адреса. Далее необходимо указать IP-адрес TFTP-сервера, с которого будет производиться загрузка образа ОС и имя загружаемого файла. Для этого делаем щелчок правой кнопкой мыши на разделе "Параметры области". Указываем параметр 066, присваиваем ему значение IP-адреса компьютера, с которого будет производиться загрузка клиентов. В параметре 067 указываем имя и путь к файлу загрузки. Если используется загрузка по спецификации PXE, вводим имя файла - pxelinux.0 , если используем метод Etherboot, то пишем wtshell.nbi. Обратите внимание, что при стандартной установке WTware в пути файла должно быть отброшено все, что находится от буквы диска до папки TFTPDROOT. То есть, если файл загрузчика pxelinux.0 находится в папке C:\Program Files\WTware\TFTPDROOT\lite\4.3.19, в параметре 067 необходимо указать lite\4.3.19\pxelinux.0. На этом настройку области можно считать законченной. Обязательно созданную область необходимо активировать – нажимаем правой кнопкой мыши на название области, выбираем "Активировать". Теперь можно запускать наш терминал. В настройках BIOS указываем загрузку с сетевого адаптера. Если службы DHCP и TFTP настроены верно, на мониторе терминала появится процесс загрузки.
Загрузка клиента (PXE)
После успешной загрузки появится мастер настройки терминала. Необходимо будет выбрать видеодрайвер и разрешение для монитора клиента. Рекомендуется протестировать все доступные видеодрайверы, выбрав тот, у которого будет наименьшее время прохождения теста.
Тест видеосистемы WTware
Когда мы определились с драйвером, необходимо создать конфигурационный файл для запуска клиента. Для этого правим в любом текстовом редакторе файл 00.00.00.00.00.00.wtc, который находится в папке configs установленного WTware. Указываем в нем параметры, выводимые на экране теста с минимальным временем выполнения. Также необходимо будет указать в этом файле IP-адрес сервера (параметр win2kIP). Например, для показанных на рисунке параметров, конфигурационный файл будет таким:
win2kIP = 192.168.1.100
mouse_wheel = on
video = VESA(X)
resolution = 800x600
bpp = 16
refresh = 75
debug = disable
Сохраняем конфигурационный файл с именем MAC-адреса сетевого адаптера клиента и расширением wtc. MAC-адрес выводится в предпоследней строчке на экране теста. Теперь все готово. Перезагружаем клиент. После загрузки появляется обычное окно входа в Windows.
Терминальный вход в Windows ничем не отличается от обычного
Когда будет произведен вход, откроется обычный вид рабочего стола сервера. Вы можете работать точно так же, как будто находитесь перед монитором сервера.
Вид рабочего стола клиента с запущенными программами
Если необходимо, можно указать, какая программа будет запускаться при входе в Windows. Для этого в настройках сервера терминалов (Пуск – Администрирование – Настройка служб терминалов) выбираем подключение, и на вкладке "Среда" его свойств указываем программу и рабочую папку. Следует учесть, что Проводник Windows при этом загружен не будет, и пользователь сможет работать лишь с указанной программой.
Если в свойствах подключения включена возможность удаленного управления, в любой момент администратор может подключиться к сеансу, запущенному пользователем. В зависимости от этих настроек администратор может запрашивать у пользователя разрешение на управление сеансом, осуществлять только просмотр сеанса или использовать полное управление, включая перемещение мыши и нажатие клавиш. Управлять пользовательской сессией таким образом можно только из клиентской сессии, в которой работает администратор, но не с консоли сервера. Пример такого управления – администратор подключается к серверу, открывает Диспетчер служб терминалов, выбирает необходимый сеанс, и в контекстном меню, вызываемом правой кнопкой мыши, выбирает команду «Удаленное управление».
Подтверждение запроса удаленного управления сеансом пользователя
Среднее значение сетевого трафика при работе тонкого клиента составляет около 5-6 Кбайт/c (работа в Internet Explorer, просмотр документов WinWord без графики, открытие и работа программ со стандартными элементами пользовательского интерфейса). Трафик в обратном направлении (сервер - клиент) составляет несколько десятков килобайт в секунду. Превышение максимальной пропускной способности канала не приводит к сбою, а лишь вызывает замедление обновления экрана клиента. По некоторым оценкам, для комфортной работы терминал должен подключаться к каналу с полосой пропускания не менее 20КБ/сек.
Так стоит ли использовать терминальные решения вместо установки полноценных компьютеров? Однозначного ответа на этот вопрос нет. В каждом конкретном случае придется тщательно взвешивать плюсы и минусы обеих технологий. При внедрении терминальных решений основные затраты будут связаны с обеспечением серверной части сети. Однако, как было указано выше, существует ряд задач, для решения которых применение тонких клиентов позволяет снизить общую стоимость ПО и оборудования, упростить администрирование и повысить надежность и безопасность сети в целом. Если вы планировать уже существующую технику, необходимо проверить, сможет ли она поддерживать необходимые способы загрузки при использовании в качестве терминалов.
Автор Сергей Вальковский