Терминальный сервер для бухгалтерии: обновление за десять минут вместо полдня беготни
Перевели бухгалтерию с локальных установок учётной программы на терминальный сервер Windows Server 2003. Разбираем нюансы лицензий TS CAL и печати из терминала.
Терминальные службы Windows Server 2003 - зрелая платформа для централизованного запуска приложений
Бухгалтерия у одного из клиентов - восемь рабочих мест, учётная программа стоит на каждом локально. Классика. И каждый раз, когда выходит обновление - а у серьёзных учётных систем они выходят регулярно, особенно в налоговый период - надо обойти восемь машин, на каждой запустить установщик, подождать, проверить. Полдня работы администратора.
Плюс бэкап: базы данных у каждого пользователя свои, лежат локально, и чтобы нормально их резервировать - надо либо тянуть их по сети на файловый сервер, либо городить восемь отдельных заданий на восемь машин. Мы это настроили, но конструкция громоздкая.
И ещё одна проблема, про которую клиент молчал, пока не спросили: несколько машин в бухгалтерии старые, на них программа заметно тормозит. Менять железо не хотели - дорого.
Терминальный сервер решал все три проблемы сразу.
Что такое Terminal Services в Windows Server 2003
Терминальные службы в 2003-й версии - не экспериментальная функция, а нормально работающая платформа. Идея простая: приложение запускается на сервере, а на рабочую станцию передаётся только картинка. Пользователь работает в сессии на сервере через RDP-клиент, который есть на любом Windows начиная с XP. С точки зрения пользователя - открыл окно, работаешь. С точки зрения системы - всё работает в одном месте.
Это значит:
Обновление один раз. Поставил на сервер - обновление получили все восемь пользователей одновременно. Не через пользователей, не через обход машин - просто установил и готово. То, что раньше занимало полдня, теперь занимает десять минут включая перезапуск приложения.
Бэкап один. Все данные лежат на сервере. Резервное копирование одного объекта вместо восьми. Никаких "а вдруг кто-то сохранил базу не туда".
Железо не важно. Рабочая станция может быть сколь угодно слабой - она только отображает картинку и передаёт нажатия клавиш. Основная нагрузка на сервере. Те самые старые машины в бухгалтерии перестали быть проблемой.
Как разворачивали
Сервер для терминальных служб поставили отдельно от контроллера домена и файлового сервера - смешивать роли в этом случае не стоит, потому что нагрузка непредсказуемая. Взяли нормальную машину: четыре гигабайта RAM, два процессора. Windows Server 2003 Standard Edition, Terminal Services включается через "Добавить/удалить компоненты".
Роль добавилась без сложностей. Дальше - настройка профилей. Каждый пользователь работает в своей сессии, но все крутятся на одной машине, значит настройки и документы должны быть разделены правильно. Настроили перенаправление папок через групповые политики: "Мои документы" каждого уходят на файловый сервер, а не остаются на терминальном.
Учётную программу установили один раз на сервер. Важный момент: некоторые программы требуют специального режима установки - change user /install перед, change user /execute после. Без этого программа работает нормально только под тем пользователем, который её ставил. Нормальные учётные системы об этом знают, но проверять стоит.
Лицензии: где ловушка
Вот тут надо остановиться и поговорить честно, потому что с лицензированием Terminal Services легко наделать ошибок.
Windows Server 2003 идёт с базовой лицензией, которая позволяет двум администраторским сессиям работать одновременно - для удалённого управления. Как только вы хотите, чтобы обычные пользователи работали в терминале, нужны дополнительные лицензии - TS CAL (Terminal Services Client Access License).
TS CAL бывают двух видов: на устройство (Device CAL) и на пользователя (User CAL). Device CAL привязана к конкретной рабочей станции - сколько машин будет подключаться, столько лицензий нужно. User CAL привязана к пользователю и позволяет ему подключаться с любого устройства. Для бухгалтерии, где у каждого своё рабочее место, Device CAL обычно выходит дешевле.
Сервер лицензирования - отдельная роль, которую надо установить и активировать. Без неё Terminal Services работает в льготном режиме 120 дней, после чего подключения сторонних пользователей перестают работать. Мы видели несколько случаев, когда об этом забывали - через четыре месяца клиент звонил с паникой.
Лицензионный сервер активировали через интернет сразу, TS CAL добавили туда же - час работы.
Печать из терминала
Второй нюанс - печать. Бухгалтерия печатает много: платёжки, отчёты, накладные. И с печатью из терминальных сессий есть своя история.
По умолчанию Windows пытается перенаправить принтеры с рабочей станции в терминальную сессию автоматически. Идея хорошая, реализация - так себе. На сервере должен стоять драйвер для каждого принтера каждого пользователя. При подключении сервер пытается подобрать подходящий драйвер - если не находит, принтер не появляется.
Мы пошли по другому пути: поставили все принтеры бухгалтерии прямо на терминальный сервер как сетевые. Пользователи в сессиях видят те же принтеры, что и всегда, без перенаправления. Надёжнее и предсказуемее.
Принтеры, подключённые по USB к рабочей станции, перенаправляются заметно хуже. Порекомендовали клиенту перейти на сетевые модели - несколько принтеров поменяли на HP с встроенным сетевым интерфейсом, и проблема ушла.
Что получилось
Восемь пользователей бухгалтерии работают через RDP уже второй месяц. Жалоб на скорость нет - на сервере всё летает быстрее старых машин. Обновление программы в прошлый раз заняло двенадцать минут включая тестирование. Бэкап один, расписание одно, восстановление тоже одно.
Старые рабочие станции никуда не делись - просто стали тонкими клиентами де-факто. Железо не меняли, деньги сэкономили.
Схема не серебряная пуля: если у пользователей специфический софт с хитрыми железячными привязками или USB-ключами - это отдельная история. Но для типовой учётной задачи, где нужно дать нескольким людям доступ к одному приложению, управляемая инфраструктура с терминальным сервером - очень рабочий вариант.
Мы давно работаем с 1С в разных режимах и видели, как файловый вариант начинает тормозить при росте базы. Переход на клиент-серверную 1С 8 - один путь, перенос на терминал - другой. Иногда второй проще и дешевле, особенно когда парк старый.
- 1С на файловой шаре, и почему она тормозит к пятнице · 11 февраля 2003
- 1С 8.0 + SQL Server: как мы переводили сорок пользователей с файловой базы · 7 марта 2005