

На LTSP-серверах могут одновременно работать много пользователей, запускающих ресурсоемкие приложения (Mozilla, OpenOffice). Вычислительной мощности сервера может не хватать. Как вариант, можно купить двух- или четырех-процессорный компьютер за десятки тысяч долларов, но не исключен случай, что при огромном количестве ресурсоемких задач и этих мощностей может перестать хватать. Решением данной проблемы служит использование Openmosix-кластера. Openmosix – это масштабируемый load balansing кластер (кластер балансировки нагрузки). Для использования ресурсов кластера никакой перекомпиляции существующих пакетов не требуется. Узлами кластера могут выступать различные по быстродействию компьютеры, но, естественно, желательно кластер собирать из мощных машин. При относительно дешевых узлах кластера (примерно 500-900 долларов на узел) можно получить вычислительную мощность, требуемую для решения любых задач. Количество узлов в кластере практически не ограничено (вернее, ограничено количеством узлов в IPv4-сети класса “А”). Принцип работы Openmosix-кластера прост: все узлы рассматриваются как процессоры с собственным ОЗУ. То есть Openmosix-кластер можно рассматривать как многопроцессорный компьютер. Это означает, что задача, запущенная на таком кластере, не будет работать быстрее задачи, запущенной на одиночном компьютере. Разница будет уже заметна на нескольких задачах, работающих параллельно. На кластере, как и на многопроцессорном компьютере происходит перераспределение задач между узлами. В результате несколько параллельно запущенных приложений будут выполнятся также параллельно на нескольких узлах кластера и выполнятся они быстрее, чем на одном компьютере.
Openmosix-кластер можно рассматривать как “сообщество” компьютеров-участников кластера без выделенного (или ведущего) узла. Это означает, что в кластер могут включаться обычные рабочие компьютера со своими операционками, но со специальным openmosix-ядром и дополнительными пакетами. Задачи могут быть запущены с любого узла кластера. В нашем случае важно, чтобы терминалки подсоединялись только к одному узлу – LTSP-серверу – и с него бы уже и запускались приложения. Остальные узлы можно рассматривать как дополнительные вычислительные ресурсы. Исходя их этого, схема LTSP-кластера может выглядеть так:

LTSP-сервер имеет две и более сетевых карт; одна сетевая карта находится в локальной сети кластера; вторая (или остальные) – в сети терминалок. Узлы кластера, в свою очередь, также являются терминалками и предназначены только для предоставления своих ресурсов основному LTSP-узлу. На дополнительных узлах не требуется наличия монитора, клавиатуры, мышки, жесткого диска и прочей периферии. По сути, необходимо только: блок питания, материнская плата, процессор, ОЗУ и сетевая карта с BOOTROOMом. Стоимость одного узла, как уже озвучивалось, колеблется в диапазоне 500-900$. Естественно, никто не мешает собрать кластер и на более дешевом (и менее производительном либо отказоустойчивом) оборудовании. В приведенной схеме кластер для сети терминалок (или, можно назвать, внешней сети) “виден” как один компьютер.
В результате получится один компьютер (сервер), который по сути и является “ядром” всей системы. Все бездисковые станции и узлы кластера грузятся с него, необходимый набор приложений “сконцентрирован” в одном месте, вследствие чего обновление пакетов происходит централизованно на одном компьютере, что очень облегчает жизнь сисадминам. Такой сервер можно буквально взять и перенести в другой офис, подключить к местной локальной сети – и LTSP-офис готов. Развертывание нового офиса займет время, необходимое для загрузки самого сервера, узлов кластера и бездисковых станций.
Для настройки LTSP-кластера используются стандартные пакеты дистрибутива Linux (такие как dhcpd, pxe, nfs-utils, tftp-server, telnet-server, openssh-server, xdm/kdm/gdm) и скачанные отдельно пакеты с сайтов www.openmosix.org, www.ltsp.org. Настройка openmosix-кластера сводится к установке openmosix-ядра, пакета openmosix-tools и перегрузки компьютера. После перегрузки компьютер станет узлом кластера Настройка LTSP-сервера заключается в скачивании пакета ltsp-utils и запуска утилиты ltspadmin; предварительно должны быть установлены уже перечисленные пакеты дистрибутива. Также необходимо будет создать initrd-образ для кластерных ядер на основе initrd-образа ядра из пакета LTSP-kernel и минимальную файловую систему на основе файловой системы ltsp. Схема загрузки бездисковых терминалов выглядит примерно так:

Часто бывает необходимо оставить Windows на рабочей станции, но при этом пользоваться ресурсами LTSP-кластера. Выходом могут послужить различные telnet- либо ssh-клиенты. Также существуют графические XDM-клиенты под Windows, такие как XLitePro, XoftWare WinaXe и прочие. Бывает необходимо также воспользоваться ресурсами выделенного Windows-сервера из-под Linux. Тогда на Windows-машину устанавливается vnc-сервер, а на Linux vnc-клиент; либо к терминальному Windows-серверу можно подключиться посредством пакета rdesktop, который входит в поставку дистрибутива Linux. Передача файлов между LTSP-кластером и Windows-машинами осуществляется посредством ftp либо samba.
В заключении хотелось бы подчеркнуть особенность такой схемы: как уже было сказано, вся схема локальной сети как бы содержится в одном единственном компьютере – центральном LTSP-сервере. Все остальные компьютера и узлы кластера получают от него динамический IP-адрес, грузятся с него и производят удаленный вход. Точно также с сервера могут грузиться роутера, файволлы, получать закрепленный IP-адрес другие сервера и т.д. Также повышаются требования к отказоустойчивости и безопасности LTSP-сервера. Отказ в работе центрального LTSP-сервера или просто даже его перегрузка приведет к останову компьютеров всей сети и, как следствие, невозможности работы организации, предприятия. Решением может служить создание дублирующих систем на основе heartbeat-кластера, установка источников бесперебойного питания, резервное копирование критических данных на другой компьютер посредством rsync либо на отдельный носитель информации (CDRW, отдельный жесткий диск, стриммер, магнитооптика). Безопасность LTSP-кластера обеспечивается жесткими и четко разграниченными правами доступа пользователей к файловой системе, запуск критических сервисов в chroot-окружении и с правами непривилегированных пользователей, а также ограждением прямого доступа из Интернета посредством внешних файрволлов.