LINUX-Терминалы


За последние 10-15 лет упрощенное понятие «компьютер» незаметно вошло в быт, заменив другое, более точное для большинства случаев — «персональный компьютер». Для поколения пользователей, которое «выросло» с операционными системами MS-DOS, Windows 3.x, 9x, Me — это вполне естественно и ничего другого они не представляют. Тех, кто имел возможность работать с системами семейства UNIX еще в 80-х годах, хотя бы ли сталкивался с терминальным режимом работы Windows серии NT и знакомый с процессом одновременной работы нескольких пользователей в одной ОС, совсем немного на фоне общего количества владельцев ПК. Но во время распространения Unix-подобных ОС, в частности Linux, а также условий, когда мощность компьютерного «железа» достигла величин, о которых могли лишь мечтать мэйнфреймы 80-х, мы опять можем позволить себе вспомнить слово «терминал» в значении упрощенной бездисковой рабочей станции.


Несколько лет назад на слуху появилась аббревиатура «LTSP» — Linux Terminal Server Project. Это проект, призванный с минимальными затратами «реанимировать» старые ПК, в частности, компьютерные классы учебных заведений, предоставить их пользователям возможность работать с самым современным программным обеспечением, невзирая на преклонный возраст парка «железа». В конечном итоге, проект не являет собой ничего кардинально нового: он использует издавна известные юниксу средства — сетевую файловую систему NFS, протокол передачи файлов TFTP, роботу Х-сервера и клиента на разных компьютерах но др. Фактически, это просто набор скриптов, которые автоматизируют процесс настройки соответствующих сервисов.


Какие выгоды может принести в реальном приложении терминальный режим работы?


LINUX-Терминалы

Как было сказано, основная идея LTSP — «оживить» парк обветшалого оборудования. Означает ли это, что при планировании современного офиса «из нуля», то есть с закупкой и использованием современной компьютерной техники говорить о терминальной работе нет смысла? Во многих случаях это не так. Давайте рассмотрим не теоретическую, а реально работающую систему, которая состоит из терминального сервера и 8-ми «тонких» клиентов. Используется система не в учебных целях, а в разработке и тестировании полностью реальных проектов на PHP, Java, javascript.


Задача перевести программистов на терминальный режим работы была поставлена около года назад, с целью облегчения администрирования (что было выгодно мне как администратору) но экономии средств на аппаратном обеспечении (в чем было заинтересованное начальство). Поскольку требовалось как можно быстрее ввести систему в работу, я решил воспользоваться дистрибутивом Linux K12ltsp, который являет собой Fedora Core 4 с интегрированными пакетами LTSP. За счет этой настройки свелось к корректному указыванию сетевых параметров и добавление пользователей. Позже, через некоторое время после выхода Ubuntu 6.06 LTS, на сервер была поставлена именно эта система, через возможность «безболезненного» возобновления к следующему релизу и значительно больше, чем в Fedora, времени поддержки (LTS значит не что другое, как Long Time Support).


Что являют собой сервер и клиенты с точки зрения аппаратного обеспечения? Сервер, который, напомню, на данное время обслуживает 8 клиентов, собранный на базе Intel Pentium 4 3.0 Ghz, с поддержкой технологии Hyperthreading. Это достаточно важная деталь, поскольку мощность PIV 2.4 Ghz без HT, который использовался раньше, позволяли комфортную работу 4–5-ти пользователям. В свою очередь, при увеличении количества клиентов до15, лучше использовать платформу с двумя реальными процессорами, или хотя бы с одним, но двухъядерным :-). Оперативная память — 2 Гб Ddr2 — на сегодняшний день при активной работе всех пользователей 1.3-1.4 Гб, остальные заняты буферами и кешем. Жесткие диски — PATA, один (120 Гб) для системы и домашних директорий пользователей, второй — 250 Гб, для общих файлов. Как показывает опыт, при увеличении количества пользователей к более чем 10-ти, ощутимый прирост даст использование для корневой директории Sata-диску. Для работы с оптическими носителями установленный повод DVD-RW. Также используются два 100-мегабитных сетевых интерфейса: один для подсети терминалов, другой — для взаимодействия с «внешней» сетью. Относительно терминальной подсети: как видно из ее загруженности, для активной работы 15 и больше пользователей придется переходить на гигабитный интерфейс и свитчи — при работе с текстовыми данными в среде KDE или GNOME траффик составляет 200 Кб/с, если добавляется активная навигация в нескольких вкладках браузера, прослушивание mp3, траффик растет до 600–800 Кб/c. Из других деталей — просторный корпус с как можно лучшей вентиляцией (в нашем случае три 12-сантиметровых и один слотовый кулер, в результате чего температура внутри корпуса не поднимается выше 35 градусов), и источник бесперебойного питания.


Что являют собой так называемые «тонкие» клиенты? Поскольку целью было максимальное их удешевление, подбирались самые простые интегрированы материнские платы, процессоры с как можно низшей частотой и минимальный объем оперативной памяти. Конечно, сегодня вы не найдете планку памяти DDR с объемом 32 Мб, которого было бы достаточно клиенту, потому придется использовать планки 256 Мб. Так же процессоры на рынке имеют частоту не меньше 2 Ггц. Ввиду этих обстоятельств, типичная конфигурация «тонкого» клиента выглядит так: максимально интегрирована материнская плата (обязательная деталь — наличие опции Boot From LAN), процессор Intel Celeron 2.1–2.2 Ghz, 256 Мб оперативной памяти, корпус, с минимальной шумностью, PS2 или Usb-клавиатура и мышь, 17' TFT-монитор и наушники. Поскольку система в сравнении с «полной» комплектацией потребляет гораздо меньше электроэнергии, мы перешли на использование одного источника бесперебойного питания на 2 рабочих станции без потери времени работы от аккумуляторов. Конечно, можно было бы использовать готовые «тонкие клиенты» от известных производителей типа Hewlett-packard, но высокая стоимость (свыше 350 у.е. только системный блок) и длительное время, потраченное на заказ и доставку, заставили отказаться от такого «идеологически правильного» решения.


Как видим, с одной стороны, такая реализация рабочих мест предусматривает дополнительные расходы на оборудование выделенного сервера (в нашем случае стоимость отмеченной выше конфигурации составила 750 у.е.). С другой стороны, экономия достигается за счет рабочих станций, в частности отсутствию жесткого диска (90 у.е.), еще как минимум 512 Мб ОЗУ (30 у.е.), повода DVD-RW (40 у.е.), корпуса, без дополнительных кулеров и с менее мощным блоком питания (разница 20 у.е.), сюда же можно прибавить половину стоимости блока UPS (60 у.е.) — вместе это составляет около 240 у.е. на одну рабочую станцию. Если же умножить это на количество рабочих станций, которое может достигать более чем 20-ти, экономическая выгода на порядок перекрывает расходы на оборудование терминального сервера. К тому же, введение новой рабочей станции в эксплуатацию происходит чрезвычайно быстро и просто — необходимо только подсоединить компьютер к сети, в BIOS выставить опцию «Boot From LAN», и через несколько секунд пользователь может приступать к работе. Рассмотрим теперь программный аспект. Насколько полноценное рабочее место получает пользователь? Как было упомянуто, в настоящее время в роли операционной системы используется Ubuntu 6.06 LTS. Конечно, можно было использовать Edubuntu, в котором все необходимое для построения терминального класса получается, как говорят, «из коробки», но, согласитесь, иметь окружение, рассчитанное на ученика младших или средних классов, для дизайнера или программиста не совсем уместно. Поэтому, благодаря материалам, найденным на сайте http://help.ubuntu.com, были дополнительно установлены пакеты dhcp-server, ltsp-server и с помощью скрипта ltsp-build-client созданы файлы для клиентского окружения. Нужно иметь в виду, что этот процесс требует загрузка из Интернета 150 Мб пакетов. Если это невозможно или экономически невигидно для вас, стоит все-таки обратиться к дистрибутиву с предварительно установленным терминальным сервером.


После установления LTSP корректно настраиваем демон DHCP (указав в файле /etc/ltsp/dhcpd.conf правильную подсеть и диапазон адресов для рабочих станций), добавляем пользователей, и можно приступать к тестированию. Не забываем отметить в Biosи компьютера-клиента загрузку из сети. Если все сделано правильно, за несколько секунд загрузки с характерной для Ubuntu заставкой увидим приглашение к входу в систему. В отличие от дистрибутива K12ltsp, где в качестве менеджера сеансов используется обычный GDM, в Ubuntu применен он упрощенный аналог — LDM, который не дает возможности перед входом в систему выбрать окружение или локаль, но, в отличие от GDM, позволяет после выхода из системы выключить питание клиента. Также пришлось побороть одну неприятную особенность — в среде Gnome после завершения сеанса пользователю не дается возможности выбрать пункт «Shutdown», но почему-то весьма возможно воспользоваться пунктом «Hibernate», который будет касаться, конечно, сервера, а не клиента. Этим пунктом за первый день не раз ошибочно пользовались, одновременно останавливая работу всего офиса. Хорошо хоть, что возобновление после software suspend происходило без сбоев.


Следовательно, что мы наконец получили? 8 практически полноценных рабочих мест (из разряда ограничений только невозможность играть в трехмерные игры — что в офисной рабочей обстановке, согласитесь, не является очень актуальным! Прибавлю только, что для возможности прослушивания музыки в программах типа XMMS или BMP необходимо выбрать esound daemon как устройство для вывода, поскольку именно он отвечает за передачу звука по сети. Как рабочее окружение наши разработчики используют Gnome, хотя пользуются многими средствами из состава KDE — в первую очередь, Quanta, SIM, Kdesvn, Cervisia. В роли браузера выступает Firefox, правда, загруженный из официального сайта, поскольку тот, который идет в составе Ubuntu, проявил склонность к «падению» именно в терминальном режиме. Из других программ, которые часто используются, — XMMS, Gvim, Opera, Eclipse, Zend Studio. Также на сервере установлено Apache 2 с модулем mod_userdir, который позволяет разработчику тестировать свою работу в подкаталоге public_html домашнего каталога. Зато, серверы баз данных было решено вынести на отдельную машину, поскольку, выполняя несколько сложных запросов, тот же MYSQL может усложнить нормальную работу пользователей. На одном сервере с базами данных было размещено также Subversion- и CVS- сервисы. В конечном итоге, с использованием приведенного ПЗ даже при загрузке одного из виртуальных процессоров сервера на 100% значительного замедления интерфейса не наблюдается. Аптайм сервера достигает 30–35 дней, терминалы же желательно перезагружать хотя бы раз в 2 дня, при этом видслидковуючи наличие «неприкаянных» процессов, владельцем которых является давно отключенный пользователь. Напомню, это касается ситуации, когда в роли пользователей выступают программисты, люди, требовательные к условиям работы, программного обеспечения и системных ресурсов. Если же поставить перед системой более простые, типично офисные, задачи — работу с текстами, по почте, пересмотр веб-страниц, — требования к оборудованию могут быть снижены, в первую очередь объем жестких дисков и объем памяти.


Следовательно, чем можно просуммировать столько умных слов? В первую очередь — идея использования терминального сервера на Linux вне учебных заведений полностью реальна. При умном подходе и планировании можно извлечь выгоду не только материальную, но и в количестве человеко-часов, потраченных на поддержание компьютерной сети в работоспособном состоянии. Как видим, технологии из мира UNIX не только не устарели, как кое-кто считает, но порой могут дать фору всевозможным там альтернативам.


  • Дата: 15-02-2018, 22:09

Предыдущие статьи сайта:

Понравилась статья? Ставь лайки, рассказывай друзьям!



Отзывы о статье: LINUX-Терминалы

Технологии, секреты и фишки Apple: Iphone, iPad, iPod