Использование бездисковых станций или бездисковых терминалов уже не редкость. Сейчас достаточно просто можно купить миниатюрные бездисковые рабочие станции, они сейчас недороги.
Но есть и другие актуальные вопросы, ответом на которые могут быть бездисковые станции:
- Использование старого оборудования, которое само по себе уже не может использоваться как полноценные рабочие станции, например, не хватает оперативной памяти для запуска всех необходимых для работы программ, но выбрасывать его жалко, потому что оно работает.
- Экономия на закупках оборудования. Впрочем, этот пункт может пересекаться с предыдущим. Если оборудование уже есть, зачем покупать новое, если можно использовать старое?
- Централизация хранения данных. Для обеспечения надежности можно использовать одно серьезное хранилище, обеспечивающее скорость и надежность за счет массива дисков, и исключить из работы диски пользовательских рабочих станций. Это также упростит создание резервных копий.
- Простота установки. Система с уже установленными и сконфигурированными программами загружается на любой машине, и пользователь может войти под своим пользователем и продолжить работу над тем же самым, над чем закончил работать вчера.
- Простота обновления. Обновляется только одна система, и программное обеспечение обновляется сразу у всех пользователей.
В общем, можно найти и другие причины, но даже этих уже достаточно для того, чтобы задуматься, а не организовать ли работу при помощи бездисковых станций, тем более, что в случае со старыми машинами, у нас есть неиспользуемые ресурсы, и мы можем их использовать, так как из рабочего процесса они уже выпали. Рассматривать, как это можно реализовать, мы будем на примере небольшой локальной сети.
Что нам понадобится?
- Сервер для бездисковых станций. Это должна быть достаточно мощная машина с быстрым дисковым массивом или подключенным внешним хранилищем.
- Сетевые коммуникации. Например, свитч и подключенные к нему провода. Желательно иметь скорость работы сети не менее 100 Мбит, а лучше 1 Гбит. Сетевые карты обязательно должны поддерживать загрузку по PXE. Подавляющее большинство сетевых карт, которые используются сейчас или использовались несколько лет назад, такую возможность имеют, поэтому это скорее всего проблемы не составит
- Настройка необходимых сервисов. Какие сервисы нам потребуются, мы рассмотрим по мере необходимости.
- Дистрибутив операционной системы на базе ядра Linux, на основе которой мы и будем создавать свою систему.
Подготовка сервера
В первую очередь надо подготовить аппаратную часть. Что надо учесть? Нам нужен будет достаточно большой объем оперативной памяти. Ее понадобится заметно меньше, чем для отдельных рабочих станций в таком же количестве, в котором у нас будут существовать бездисковые станции. Почему? Потому что у нас во-первых, будут совместно используемые библиотеки, во-вторых, память будет распределяться между приложениями, запущенными со всех станций, часть из которых будет скорее всего работать не на полной мощности.
Следующее, что необходимо,- это две сетевые карты. На одной сетевой карте будут подключаться рабочие станции, а второй будет выходить в сеть предприятия, либо в интернет, в зависимости от размеров сети вашего предприятия. Я уже оговаривал. что мы будем рассматривать пример для небольшого предприятия, поэтому пусть будет все-таки интернет.
Дисковая подсистема. Нам потребуется либо быстрый дисковый массив, либо внешнее хранилище, которое мы сможем использовать в качестве хранилища. Чем больше будет работать пользователей, тем более критичной будет скорость работы дисковой подсистемы. Про массивы, их конфигурацию, контроллеры и прочее можно рассказывать очень долго, информации по этим вопросам хватает. Но мы сейчас не об этом.
Сколько оперативной памяти надо терминальному серверу? Создатели LTSP приводят следующую формулу:
256 + (192 * users) MB
То есть, для 20 пользователей по их подсчетам понадобится
256 + (192 * 20) = 256 + 3840 = 4096 MB
Откуда такие цифры, почему так мало? Дело в том, что все клиенты будут использовать библиотеки общего доступа и другие компоненты системы, которые для них будут общими. Практически все современные операционные системы работают подобным образом.
Итак, аппаратная часть подготовлена. Теперь нам надо поставить операционную систему на сервер. Выбирайте ту, которая вам больше подходит, тут сложно сказать однозначно, какая вас больше устроит. Самое главное, чтобы все устройства подключились после установки системы. Один из сетевых интерфейсов мы делаем основным, это должен быть тот интерфейс, который будет выходить в Интернет, либо в сеть предприятия.
Пусть у нас это будет eth0 с адресом 192.168.0.50, это нам не особо важно, пусть на этом интерфейсе будет настроено получение адреса по DHCP, нам более важен второй сетевой интерфейс.
На втором интерфейсе мы будем создавать отдельную подсеть 192.168.2.0/255.255.255.0, в которой будут находиться бездисковые станции. Его надо сконфигурировать статически, поскольку именно на нем мы будем осуществлять загрузку бездисковых терминалов. Напишем его конфигурацию в /etc/network/interfaces
allow-hotplug eth1 iface eth1 inet static address 192.168.10.1 netmask 255.255.255.0
Теперь можно его поднять командой
# ifup eth1
И вот тут наступает очередь очередь LTSP.
LTSP — это Linux Terminal Server Project. Этот проект свободного программного обеспечения, обеспечивающего создание терминального решения для операционной системы на базе ядра Linux (Debian, Ubuntu, и т.д.). Это программное обеспечение позволяет использовать один, более мощный, компьютер, для обеспечения работы более слабых компьютеров, которые будут использоваться в качестве терминалов.
Какая конфигурация должна быть у терминалов? На официальном сайте LTSP указываются следующие рекомендуемые требования:
- Процессор: 533 МГц и быстрее. Если процессор медленнее, от 233 МГц, то заставить работать его все-таки можно, но уровень безопасности при работе будет ниже
- Оперативная память: 64 мегабайта для того, чтобы просто стартовать, но рекомендуется минимум 128 Мб. Естественно, можно и больше, 256 или 512.
- Видеокарта: PCI-видеокарта с 16 Мб памяти. Встроенная тоже подойдет.
- Сетевая карта: Желательно иметь поддержку PXE, но при ее отсутствии есть другие варианты, такие как Etherboot, gPXE и Yaboot (последний для Macintosh PowerPC, поэтому, возможно, не сильно актуально). Большинство более или менее современных сетевых карт имеют поддержку PXE.
Все рассматриваемое ниже приводится для Debian’а, но актуально также и для Ubuntu. Давайте приступим к установке. Дадим команду
# apt-get install ltsp-server-standalone
Будет установлено достаточно большое количество пакетов, они все нужны для работы.
По окончании надо настроить DHCP, чтобы рабочие станции могли получать адреса, по умолчанию DHCP-сервер после настройки не сконфигурирован
Отредактируем файл /etc/ltsp/dhcpd.conf
# # Default LTSP dhcpd.conf config file. # authoritative; subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.20 192.168.10.250; option domain-name "example.com"; option domain-name-servers 192.168.10.1; option broadcast-address 192.168.10.255; option routers 192.168.10.1; next-server 192.168.10.1; # get-lease-hostnames true; option subnet-mask 255.255.255.0; option root-path "/opt/ltsp/i386"; if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { filename "/ltsp/i386/pxelinux.0"; } else { filename "/ltsp/i386/nbi.img"; } }
После этого меняем в файле /etc/default/isc-dhcp-server строчку
INTERFACES=""
на строчку
INTERFACES="eth1"
И выполняем следующие команды:
# mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak # ln -s /etc/ltsp/dhcpd.conf /etc/dhcp/dhcpd.conf # service isc-dhcp-server start
Теперь нам надо создать окружение для тонких клиентов
# ltsp-build-client --arch i386
После этого придется немного подождать, пока скачается все необходимое и будет собрано окружение для тонких клиентов.
После создания окружения необходимо добавить в файл /etc/exports строчку
/opt/ltsp *(ro,no_root_squash,async,no_subtree_check)
И перезагрузить NFS-сервер командой
# invoke-rc.d nfs-kernel-server reload
Проверяем терминалы
Попробуем загрузить бездисковую станцию. Если появилась ошибка «NFS over TCP not available from 192.168.10.1″, проверяем, запущен ли сервер NFS
# rpcinfo -p
Если вы его там не видите, перезапустите NFS-сервер
# /etc/init.d/nfs-kernel-server restart
Всё, теперь можно стартовать бездисковую станцию. И для того, чтобы убедиться, что все сервисы корректно работают после загрузки системы, обязательно надо перезагрузить сервер, а после загрузки проверить, загружаются ли бездисковые станции.
Установка программного обеспечения для клиентских терминалов сводится к установке этого программного обеспечения на терминальный сервер. Точно так же происходит обновление программного обеспечения.
Почему бездисковые станции работают так быстро? Потому что программы работают на сервере, а на самих терминалах происходит только взаимодействие с пользователем. Соответственно, быстродействие зависит в большей степени от сервера, а не от того, что у нас используется на тонких клиентах.
Фактически, на терминалах используется двойная загрузка. Одно окружение используется с сетевой файловой системой, которая монтируется локально, потом происходит загрузка терминала и переключение на окружение терминального сервера. Таким образом обеспечивается возможность выключать и перезагружать терминал.
Продолжение следует …
[wysija_form id=»2″]