Тонкий клиент – что это и с чем его едят (на примере WTWare)

    Тонкий клиент (англ. thin client) в компьютерных технологиях — бездисковый компьютер-клиент в сетях с клиент-серверной или терминальной архитектурой, который переносит все или большую часть задач по обработке информации на сервер (Wikipedia ).

    Если проще, то тонкий клиент – это недокомьютер, который загружает легкую операционную систему (обычно используется Linux, в обзоре возьмем это за априори) и соединяется с терминальным сервером.

    Обычно тонкие клиенты создаются для экономии на железе и ПО, в редких случаях по иным соображениям.

    image

    В этой статье я постараюсь сделать краткий обзор WTWare, являющегося Linux дистрибьютивом, разработанным специально для создания тонких клиентов.

    Сначала о тонком клиенте.

    Тонкий клиент представляет собой системный блок, у которого обычно нет жесткого диска, и присутствует только минимальный набор железа, нужный для запуска операционной системы тонного клиента (далее просто тонкого клиента). К системному блоку подключены питание, мышь, клавиатура, монитор, сетевой кабель. Кроме стандартного набора к тонкому клиенту могут быть подключены другие устройства, при условии, что он сможет их распознать и передать терминальному серверу.
    Схема сети с тонкими клиентами выглядит примерно так:
    image

    Как это работает:
    1. На компьютере с одного из источников загружается тонкий клиент. Основные варианты источников загрузки – LAN, CD, HDD.
    2. В процессе загрузки тонкого клиента (или до нее при варианте с LAN) сетевой карте компьютера выдается IP адрес.
    3. По окончании загрузки тонкий клиент через rdesktop поднимает терминальную сессию с указанным в настройках терминальным сервером.

    Зачем это работает:
    1. Существенно снижаются затраты на «железо». Предприятие может купить за копейки старый хлам, и все что нужно для его работы – терминальный сервер с достаточным количеством ресурсов и настроенные тонкие клиенты.
    2. Снижаются затраты на программное обеспечение – не нужно покупать ПО на десктопы, достаточно только лицензировать терминальный сервер (но нужно покупать терминальные лицензии).
    3. Снижаются затраты на администрирование. Администрировать нужно лишь терминальный сервер. Как показала практика, тонкие клиенты практически не убиваемы (если не прилагать целенаправленные усилия), и практически не дают сбоев. Но нужно понимать, что при смене сисадмина он должен разобраться во всем этом деле, например сэмулировав работу тонких клиентов на виртуальных машинах, ведь любой сбой приведет к общему краху.

    Типы загрузок:
    1. Загрузка по сети. Работает следующим образом: в локальной сети должны быть подняты DHCP и TFTP серверы. В компьютере должна быть либо сетевая карта с BootROM, либо драйвера для сетевой карты, эмулирующие BootROM. Сетевая карта ищет в сети DHCP сервер, получает все необходимые сетевые настройки + адрес TFTP сервера. Далее происходит обращение к TFTP серверу и загрузка операционной системы.
    2. Загрузка с CD/DVD/Flash/IDE — тут стандартно, как и любая другая операционная система.

    Что такое WTWare?

    WTWare — дистрибутив GNU/Linux, разработанный специально для создания тонких клиентов. За основу взят популярный клиент под названием Thinstation. Основное различие – ориентированность на русских пользователей (в самом Thinstation есть проблемы с кириллицей), плюс всякие мелкие фиксы.

    Настройка WTWare.

    Я не буду рассказывать про настройку DHCP и TFTP серверов, там все вполне стандартно. Напомню только, что в DHCP сервере нужно указать адрес TFTP сервера, а в TFTP сервере путь до файла загрузки и имя этого самого файла.

    Так же я не буду углубляться в тонкую настройку WTWare, т.к. информация на официальном сайте WTWare вполне доступная, ее много и вся она на русском языке. Укажу лишь на основные аспекты.

    Итак. В первую очередь качаем образ Thinstation с сайта WTWare. Распаковываем.
    Загрузочный файл называется pxelinux.0 при загрузке по протоколу PXE (если BootROM встроен в вашу сетевую или материнскую плату) или wtshell.nbi для загрузчика Etherboot (при использовании эмулятора BootROM).

    К слову говоря, Etherboot — оpensource проект, который выпускает прошивки практически для всех существующих сетевых карт. Прошивка Etherboot может быть записана в микросхему BootROM или flash-память сетевой карты, может быть запущена с дискеты или жесткого диска как загрузочный сектор или как программа из DOS.

    Далее если вы загружаетесь через LAN и у вас правильно настроены DHCP и TFTP сервера – все должно заработать «как есть». Единственное – не будет найден терминальный сервер, ведь вы еще не конфигурировали ваши тонкие клиенты.

    Если вы загружаетесь иным способом, то стоит прочитать тут, выбрав интересующий вас способ загрузки.

    Конфигурирование.

    Опять таки я не буду углубляться в дебри конфигурационных файлов, потому как там сотни параметров. Тут можно увидеть их полный список. Я расскажу лишь об основных.

    WTWare имеет следующие типа конфигурационных файлов:
    1. all.wtc – общесистемный конфигурационный файл.
    2. list.wtc – подключаемые конфигурационные файлы согласно списка.
    3. Индивидуальные конфигурационные файлы.

    Индивидуальные конфигурационные файлы могут быть следующих видов:
    1. Имя_терминала.wtc. Имя терминала, соотвественно, выдается DHCP сервером.
    2. ма.ка.др.ес.те.рм.wtc. Привязка идет по мак адресу подключаемового терминала.

    Конфигурационные файлы имеют следующие приоритеты:
    1. all.wtc
    2. Файлы, указанные в list.wtc
    3. Файлы, подключенные через include
    4. Индивидуальный конфиг

    Конфигурационные переменные общесистемного файла:
    win2kIP = 10.100.50.1 // адрес терминального сервера 1.
    win2kIP2 = 10.100.50.2 // адрес терминального сервера 2.
    video = VESA(S) // универсальный драйвер, работает почти на всех видеокартах
    mouse_wheel = on // включить колесо мыши
    resolution = 1024x768 // разрешение экрана
    bpp = 32 // Глубина цвета

    Конфигурационные переменные индивидуальных файлов:
    user = username // имя пользователя
    password = user_password // пароль пользователя
    domain = enterprise_domain // домен предприятия

    Если в индивидуальный файл записать переменную, которая присутствует в общем файле — она получит более высокий приоритет.

    Так же в индивидуальные файлы прописываются дополнительно подключенные устройства, такие как принтеры, сканера и т.п.

    И в конце хотел упомянуть об еще одной интересной возможности – подключение локальных ресурсов (Floppy, DVD, Flash, HDD, Sound). В конфиге выглядит примерно так:
    floppy = on
    cdrom = on
    usb1 = on
    sound = on
    Диск будет доступен в сессии текущего пользователя из Проводника Windows по адресу: \\tsclient\{floppy|cdrom|usbN}.

    Недостатки:
    1. Могут возникнуть проблемы с подключением оборудования, если драйвера на него в системе отсутствуют. Знаю, что через некие костыли можно разобрать образ, припихнуть туда драйвера, собрать образ обратно. Сам не пробовал.
    2. Если у карточки нет BootROM, могут возникнуть проблемы с подбором Etherboot прошивки (есть не для всех карт).

    Лицензирование:

    Стоит заметить, что сама система бесплатна, но можно приобрести лицензию с очень интересной целью – что бы убрать логотип WTWare из загрузочной заставки. Как я понимаю, это сделано для предприятий, массово внедряющих данный продукт под эгидой аутсорсинга.

    Оборудование для создания тонких клиентов:

    На сайте WTWare так же можно приобрести оборудование для создания тонких клиентов (дабы не собирать их из хлама). Надо сказать, что оно (оборудование) отвечает всем требованиям гламура. Несколько скринов:
    image

    Ну, вот, пожалуй, и все. При правильной настройке терминального, DHCP и TFTP сервера все должно заработать слету. В интернете очень много русскоязычной литературы, поэтому проблем с настройкой быть не должно. Да и вообще в плане документации система мне очень понравилась, на сайте производителя есть почти все.

    P.S. Самолично ставил данный продукт на два предприятия, на одном 34 ПК, на втором 16 ПК.
    P.P.S. Следует понимать, что данный продукт не является альтернативой тому же Linux, и возможно, имя на каждом ПК по установленной ОС, общая картина будет гораздо приятнее. Возможно и нет. Это именно тонкий клиент, и ничего иного.
    Поделиться публикацией

    Комментарии 24

      0
      чем это лучше freebsd+pxe+rdesktop?
        +1
        Я ведь не заявлял, что это лучше. Скорее всего ни чем, в плане поддержки Ваш вариант пожалуй более оптимален, т.к. каждый десктоп настраевается отдельно, и при крахе того же TFTP все будет работать.
        Было предложено одно из возможных решений, и только.
          0
          просто интересно было бы сравнение. Кстате я говорил про тонкий клиент на фрибсд, тот же TFTP, но в добавок еще nfs. Например можно ли подцепить принтер к тонкому клиенту и расшарить его в терминале?
            0
            точно можно, делал такое, когда не было принтсерверов
              0
              у меня просто тонкие клиенты находились в другом конце города от терминального сервера
                0
                аналогично. WTWare загружались не через сеть, а с CD, и терминалом через интернет соединялись с сервером.
          –2
          Например тем, что % железа который поддерживает FreeBSD меньше, чем % железа, который поддерживает Linux.
            0
            как-то похоже на комент тролля :) в чем проблема подобрать железо? у меня на ASuS pandit работает все. Замените freebsd на linux, но в случаее с фрибсд в систему достаточно dhcpd добавить (а мообще вообще bootp использовать из коробки) и вот уже сервер терминалов…
            p.s.
            freebsd power to server
            0
            какой объем занимает ваша связка?
              0
              чистая система 98 мегабайт, можно вместо обычной фряхи nanoBSD использовать, сжать ядро и все модули. Потом ставятся Х и rdesktop, мне еще пришлось поставить cups, размер около 300 метров. но загрузка занимает секунд 20(большую часть занимает dhcp) и я уже вижу привествие win2k8. ну и ясное дело не все эти мегабайты обязательно загружать. можно еще x-minimal поставить вместо обычных Х.
                0
                wtware весит в районе 2 мб
                Может сейчас больше, давненько не ходил на их сайт.
                  0
                  я не проводил никаких оптимизаций, даже ядро не ужимал. Вес все же не главное, у меня там полноценные иксы, опера, флюксбокс и купс :) однако загружается все это довольно таки быстро. ну я могу расширять свое решения столько сколько я хочу
                    0
                    да я не спорю, еще один вопрос.
                    У вас бездисковые терминалы с загрузкой по сети?
                      0
                      именно, ядро и загрузочник по tftp, потом / монтируется в режиме чтения по nfs.
            –1
            На мой взгляд, уровень таких решений ещё не дотягивает по показателям до
            freebsd+pxe+rdesktop


            При этом не видно и простых пользовательских решений…
            Однако свою аудиторию наверняка имеют.
              0
              Как со звуком в обе стороны?
                0
                Поддерживается в версии WTware PRO.
                Для того, чтобы перенаправить звук на терминал, надо указать в конфигурационном файле:
                sound = on
                Следующая строка оставит звук на сервере, т.е. звук будет воспроизводиться через звуковую карту сервера:
                sound = remote
                  0
                  в обе стороны? Меня интересует микрофон с клиента на сервер. rdesktop пока этого не умеет.
                0
                Интересно, а насколько это осуществимо для дома?
                То есть, есть 2-3 тонких клиента, а сервер стоит где-нибудь в кладовке.
                Как мне видится, основные проблемы возникнут из-за большего, по сравнению с офисом, количества задач — игры, мультимедиа, многоканальный звук и т.д.
                  0
                  Тогда тебе будет необходим «толстый» клиент. Ядро загружается по ethernet, затем монтируется NFS с полноценной системой. В этом случае терминальный сервер является только хранилищем данных и DHCP сервером, а все операции совершаются на «толстом» клиенте.
                    +1
                    зачем? можно терминальную систему *nix like заюзать. по сути только отрисовываться будет на терминале, все вычисления будут в «кладовке»
                      0
                      Мне кажется, в таком случае много ресурсов будет тратиться на трансфер медиа конента, особенно в случае игрушек, скорость должна быть гигабитной. Да еще и игрушки под линухой не оптимальный вариант. Короче терминальный клиент сервер решение для офисных задач. Все остальное — для гиканутых гиков.
                        0
                        есть такое. А в случаи с «толстым клиентов» все ресурсы будут уходить на своп (которая скорее всего будет по nfs) и на сам nfs… да и памяти в данном случае надо больше.
                        кстати я не совсем уверен с вашим высказыванием есть же вот такая штука: www.onlive.com/
                  0
                  Года 3 назад внедрил под Win Server 2003, раз в год обновляю версию. Работает стабильно, но основной бич — невозможность просмотра видео :(. К сожалению на терминалах это не решается. В целом выгода за 3 года набежала, да и тонкие клиенты (пару десятков) были собраны из того, что было. С учетом удаленности установки места и отсутствии там администратора, очень удобно — если старое железо сдохло, просто берут из стопки другой, конфиги залиты на все имеющиеся машинки, так что заводится сразу же.

                  Цена решения вполне гуманна, в отличие чем MS. Первоначальная стоимость по софту по большому счету сопоставима с традиционным решением. Плюс хлопоты с некоторым ПО которое в терминальном режиме шалит немного ACAD например.

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое