Журнал LinuxFormat - перейти на главную

LXF106:LTSP

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(Новая: == LTSP: Доступно о тонких клиентах == : ''Хотите работать с современными программами на старом ПК? Еще бы! ''...)
 
 
Строка 4: Строка 4:
 
Когда я впервые сел за компьютер в Манчестерском вычислительном центре в 1977 году, мы были в комнате, полной
 
Когда я впервые сел за компьютер в Манчестерском вычислительном центре в 1977 году, мы были в комнате, полной
 
терминалов, подключенных к удаленному мейнфрейму. Тогда
 
терминалов, подключенных к удаленному мейнфрейму. Тогда
по-другому было нельзя – настольных компьютеров не существовало.
+
по-другому было нельзя — настольных компьютеров не существовало.
 
По сути, это и были «тонкие клиенты». Компьютеры пользователей
 
По сути, это и были «тонкие клиенты». Компьютеры пользователей
 
(терминалы) предоставляли немногим больше экрана и клавиатуры,
 
(терминалы) предоставляли немногим больше экрана и клавиатуры,
 
а вся настоящая работа выполнялась на сервере. Сегодня с помощью
 
а вся настоящая работа выполнялась на сервере. Сегодня с помощью
Linux Terminal Server Project (LTSP) можно работать по схожей схеме
+
Linux Terminal Server Project (LTSP) можно работать по схожей схеме -
 
хотя на терминалах больше нет зеленого текста, а для работы сервера
 
хотя на терминалах больше нет зеленого текста, а для работы сервера
не нужно вентилируемое помещение. Терминология тоже слегка изменилась. Называть пользовательские компьютеры «тупыми терминалами» больше не годится, теперь это «тонкие клиенты». Сервер – просто
+
не нужно вентилируемое помещение. Терминология тоже слегка изменилась. Называть пользовательские компьютеры «тупыми терминалами» больше не годится, теперь это «тонкие клиенты». Сервер — просто
 
сервер, хотя, наверное, «толстый сервер» тоже подошел бы.
 
сервер, хотя, наверное, «толстый сервер» тоже подошел бы.
  
Одно из главных преимуществ LTSP – это эффективность вложений. Вместо 30 средних компьютеров для классной комнаты или
+
Одно из главных преимуществ LTSP — это эффективность вложений. Вместо 30 средних компьютеров для классной комнаты или
 
офиса вы покупаете один мощный сервер и 30 дешевых терминалов.
 
офиса вы покупаете один мощный сервер и 30 дешевых терминалов.
Они могут быть даже не новыми – требования к начинке настолько
+
Они могут быть даже не новыми — требования к начинке настолько
 
низкие, что можно воспользоваться старым оборудованием, которое
 
низкие, что можно воспользоваться старым оборудованием, которое
 
вы хотели выбросить: так будет намного экономнее и полезнее для
 
вы хотели выбросить: так будет намного экономнее и полезнее для
бюджета. Когда придет время обновить аппаратную часть – например,
+
бюджета. Когда придет время обновить аппаратную часть — например,
чтобы справляться с более ресурсоемкими приложениями – нужно
+
чтобы справляться с более ресурсоемкими приложениями — нужно
 
купить лишь сервер, а терминалы будут выполнять ту же работу, что
 
купить лишь сервер, а терминалы будут выполнять ту же работу, что
 
и раньше.
 
и раньше.
  
Есть и выгода для окружающей среды – 30 настольных компьютеров используют большое количество энергии и преобразуют ее в тепло,
+
Есть и выгода для окружающей среды — 30 настольных компьютеров используют большое количество энергии и преобразуют ее в тепло,
 
что требует несколько вентиляторов на каждый из них. Тонкие клиенты
 
что требует несколько вентиляторов на каждый из них. Тонкие клиенты
 
выполняют гораздо меньшее количество работы, поэтому им требуется меньше энергии, они производят меньше шума и выделяют меньше
 
выполняют гораздо меньшее количество работы, поэтому им требуется меньше энергии, они производят меньше шума и выделяют меньше
Строка 46: Строка 46:
 
LTSP начинает с того же самого, но вместо загрузки с сетевого диска полноценной системы он ограничивается минимальной версией, в
 
LTSP начинает с того же самого, но вместо загрузки с сетевого диска полноценной системы он ограничивается минимальной версией, в
 
которой есть средства для запуска ядра, старта X, обработки клавиатуры и мыши (и, обычно, звука). Потом он создает XDMCP-сеанс, в рамках которого рабочий стол сервера открывается на «тонком клиенте».
 
которой есть средства для запуска ядра, старта X, обработки клавиатуры и мыши (и, обычно, звука). Потом он создает XDMCP-сеанс, в рамках которого рабочий стол сервера открывается на «тонком клиенте».
На терминале не выполняется никаких пользовательских программ
+
На терминале не выполняется никаких пользовательских программ -
 
все они запускаются на сервере, но используют клиентские устройства
 
все они запускаются на сервере, но используют клиентские устройства
 
ввода-вывода. Это также означает, что загрузка может происходить
 
ввода-вывода. Это также означает, что загрузка может происходить
Строка 53: Строка 53:
  
 
=== Системные требования ===
 
=== Системные требования ===
 +
{{Врезка
 +
|Заголовок=Альтернативные методы
 +
|Содержание=Самый простой способ загрузить клиента по
 +
LTSP – воспользоваться PXE-совместимой
 +
сетевой картой (которая встроена в большинство современных матплат), но это не единственный вариант. Некоторые сетевые PCI-карты поставляются с загрузочным ROM, и проект Etherboot предоставляет открытый загрузочный код для пары сотен различных устройств. Создавать свой собственный ROM
 +
будет немного претенциозно, но код Etherboot
 +
можно записать на дискету.
 +
 +
Не бойтесь – это и в самом деле очень просто, благодаря http://www.rom-o-matic.net. Сайт генерирует загрузочные образы для многих карт в
 +
различных форматах. Просто выберите свой
 +
адаптер (запустите lspci -n, чтобы увидеть его
 +
PCI ID), укажите тип образа, который хотите
 +
получить, и нажмите кнопку Get ROM. Потом
 +
просто скопируйте файл, который вы загрузили, на дискету, командой
 +
cat cat eb-5.4.3-yournic.zdsk >/dev/fd0
 +
|Ширина=400px}}
 
Требования к серверу зависят от числа подключенных клиентов и того,
 
Требования к серверу зависят от числа подключенных клиентов и того,
 
будут ли они все работать одновременно. В компьютерном классе школы большинство компьютеров используется параллельно, создавая
 
будут ли они все работать одновременно. В компьютерном классе школы большинство компьютеров используется параллельно, создавая
 
большую нагрузку на сервер, а в офисе, куда люди приходят и уходят,
 
большую нагрузку на сервер, а в офисе, куда люди приходят и уходят,
единомоментно может быть запущено лишь 30-40% систем (кроме
+
единомоментно может быть запущено лишь 30-40 % систем (кроме
 
утра, когда все приходят на работу и заходят на важные сайты вроде
 
утра, когда все приходят на работу и заходят на важные сайты вроде
 
YouTube и Facebook).
 
YouTube и Facebook).
Строка 65: Строка 81:
 
бы использовать 64-битный процессор, не только из-за дополнительной производительности, но и потому, что он может работать с большим количеством памяти, что часто является наиболее важным фактором, ограничивающим производительность.
 
бы использовать 64-битный процессор, не только из-за дополнительной производительности, но и потому, что он может работать с большим количеством памяти, что часто является наиболее важным фактором, ограничивающим производительность.
  
Клиентам хватит очень скромных системных ресурсов, поскольку всю работу делает сервер – достаточно 128 МБ ОЗУ и процессора
+
Клиентам хватит очень скромных системных ресурсов, поскольку всю работу делает сервер — достаточно 128 МБ ОЗУ и процессора
Pentium II. Основное требование – компьютер должен иметь возможность загрузки по сети, хотя и без этого можно обойтись (см. врезку
+
Pentium II. Основное требование — компьютер должен иметь возможность загрузки по сети, хотя и без этого можно обойтись (см. врезку
 
«Альтернативные методы загрузки»). Необходима и быстрая
 
«Альтернативные методы загрузки»). Необходима и быстрая
сеть – по меньшей мере, гигабитное соединение от сервера до маршрутизатора и 100-мегабитные соединения для клиентов.
+
сеть — по меньшей мере, гигабитное соединение от сервера до маршрутизатора и 100-мегабитные соединения для клиентов.
  
 
=== Установка LTSP-сервера ===
 
=== Установка LTSP-сервера ===
 +
{{Врезка
 +
|Заголовок=Дистрибутивы с поддержкой LTSP
 +
|Содержание=Есть несколько дистрибутивов со встроенной
 +
поддержкой LTSP, и, в основном, они нацелены на образовательный рынок. Конечно, это
 +
не мешает вам использовать их и для других
 +
проектов. Знакомьтесь:
 +
; Edubuntu
 +
Образовательная версия Ubuntu
 +
http://www.edubuntu.org
 +
; K12LTSP
 +
Основан на Red Hat/Fedora
 +
http://k12ltsp.org
 +
; Edulinux
 +
Предназначен для учебных компьютерных лабораторий
 +
http://www.edulinux.cl
 +
; Skole Linux
 +
Разработан с прицелом на простоту установки и использования
 +
http://www.skolelinux.org
 +
|Ширина=300px}}
 
Здесь у вас есть выбор: можно воспользоваться специализированным
 
Здесь у вас есть выбор: можно воспользоваться специализированным
 
дистрибутивом, где все уже есть и (по большей части) настроено, или
 
дистрибутивом, где все уже есть и (по большей части) настроено, или
 
установить пакеты LTSP в имеющуюся систему. Каждый способ имеет
 
установить пакеты LTSP в имеющуюся систему. Каждый способ имеет
свои преимущества – предустановленный LTSP, безусловно, гораздо
+
свои преимущества — предустановленный LTSP, безусловно, гораздо
 
более удобен с точки зрения развертывания; с другой стороны, существующий дистрибутив привычнее, особенно если он используется на
 
более удобен с точки зрения развертывания; с другой стороны, существующий дистрибутив привычнее, особенно если он используется на
 
всех компьютерах сети. Конечно, если есть версия вашего дистрибутива
 
всех компьютерах сети. Конечно, если есть версия вашего дистрибутива
с поддержкой LTSP, можно взять с полки пирожок и съесть его – например, пользователи Ubuntu будут чувствовать себя в Edubuntu, как дома.
+
с поддержкой LTSP, можно взять с полки пирожок и съесть его — например, пользователи Ubuntu будут чувствовать себя в Edubuntu, как дома.
  
 
Так как тонкие клиенты работают на одном компьютере, то с дистрибутивом, который вы выберете, будут взаимодействовать все пользователи, и это тоже может повлиять на ваше решение. Дистрибутив с
 
Так как тонкие клиенты работают на одном компьютере, то с дистрибутивом, который вы выберете, будут взаимодействовать все пользователи, и это тоже может повлиять на ваше решение. Дистрибутив с
Строка 83: Строка 118:
 
хотите просто поэкспериментировать с технологией, добавочный пакет
 
хотите просто поэкспериментировать с технологией, добавочный пакет
 
избавит вас от проблем с установкой новой системы. Еще один способ
 
избавит вас от проблем с установкой новой системы. Еще один способ
попробовать – это взять специализированный дистрибутив и установить его на виртуальную машину VirtualBox или VMware.
+
попробовать — это взять специализированный дистрибутив и установить его на виртуальную машину VirtualBox или VMware.
  
Есть несколько дистрибутивов с поддержкой LTSP – список наиболее популярных приведен во врезке справа. Все они направлены
+
Есть несколько дистрибутивов с поддержкой LTSP — список наиболее популярных приведен во врезке справа. Все они направлены
 
на образовательный рынок, где в основном и используется LTSP. Мы
 
на образовательный рынок, где в основном и используется LTSP. Мы
 
остановимся на Edubuntu, поскольку многие из нас знакомы с его
 
остановимся на Edubuntu, поскольку многие из нас знакомы с его
родителем – Ubuntu.
+
родителем — Ubuntu.
  
 
В Edubuntu используется известный по Ubuntu текстовый инсталлятор. Выберите в меню загрузки первую опцию Install to the hard
 
В Edubuntu используется известный по Ubuntu текстовый инсталлятор. Выберите в меню загрузки первую опцию Install to the hard
Строка 116: Строка 151:
 
option broadcast-address 192.168.1.255;
 
option broadcast-address 192.168.1.255;
 
option routers 192.168.1.1;</pre>
 
option routers 192.168.1.1;</pre>
Подразумевается, что адрес маршрутизатора – это 192.168.1.1, и он
+
Подразумевается, что адрес маршрутизатора — это 192.168.1.1, и он
 
же предоставляет DNS-сервисы для вашей сети. Если вы в расположены другой сети, измените значения соответствующим образом.
 
же предоставляет DNS-сервисы для вашей сети. Если вы в расположены другой сети, измените значения соответствующим образом.
  
 
Теперь нужно отключить все DHCP-серверы в вашей сети. Когда
 
Теперь нужно отключить все DHCP-серверы в вашей сети. Когда
 
вы загружаете клиента, он отправляет в сеть DHCP-запрос, на который должен ответить сервер LTSP. Некоторые серверы DHCP умеют
 
вы загружаете клиента, он отправляет в сеть DHCP-запрос, на который должен ответить сервер LTSP. Некоторые серверы DHCP умеют
игнорировать заданные MAC-адреса – в таком случае можно оставить
+
игнорировать заданные MAC-адреса — в таком случае можно оставить
 
их работать, обеспечив невосприимчивость к запросам «тонких клиентов». Это удобно, если вы тестируете LTSP на временной или виртуальной системе. В настоящей установке, сервер LTSP должен предоставить сервисы DHCP для сети.
 
их работать, обеспечив невосприимчивость к запросам «тонких клиентов». Это удобно, если вы тестируете LTSP на временной или виртуальной системе. В настоящей установке, сервер LTSP должен предоставить сервисы DHCP для сети.
  
Строка 143: Строка 178:
 
оставить настройки по умолчанию и сразу перейти в Install/Update LTSP
 
оставить настройки по умолчанию и сразу перейти в Install/Update LTSP
 
Packages [Установить/Обновить LTSP-пакеты]. Сначала нужно выбрать
 
Packages [Установить/Обновить LTSP-пакеты]. Сначала нужно выбрать
пакеты, которые вы хотите установить – здесь проще всего нажать A
+
пакеты, которые вы хотите установить — здесь проще всего нажать A
 
для отметки всех вариантов. Чтобы получить информацию по каждой
 
для отметки всех вариантов. Чтобы получить информацию по каждой
 
опции, подсветите ее и нажмите S. Для начала установки нажмите Q.
 
опции, подсветите ее и нажмите S. Для начала установки нажмите Q.
Строка 151: Строка 186:
 
Воспользуемся опцией Configure LTSP [Настроить LTSP], которая запускает ltspcfg. Для того, чтобы видеть статус всех нужных файлов и
 
Воспользуемся опцией Configure LTSP [Настроить LTSP], которая запускает ltspcfg. Для того, чтобы видеть статус всех нужных файлов и
 
сервисов, нажмите S. Файлы должны быть отмечены словом ‘yes’, а
 
сервисов, нажмите S. Файлы должны быть отмечены словом ‘yes’, а
сервисы – выполняться. Нажмите C в меню настройки, чтобы настроить каждый элемент по очереди. В системах, основанных на Red Hat
+
сервисы — выполняться. Нажмите C в меню настройки, чтобы настроить каждый элемент по очереди. В системах, основанных на Red Hat
или SUSE, уровень выполнения должен быть равен пяти, на производных от Debian – двум.
+
или SUSE, уровень выполнения должен быть равен пяти, на производных от Debian — двум.
  
 
Секция DHCP создает лишь пример конфигурационного файла в
 
Секция DHCP создает лишь пример конфигурационного файла в
/etc/dhcpd.conf.sample, который нужно отредактировать, как и в случае с Edubuntu, и переименовать в /etc/dhcpd.conf. Здесь важно проверить, что директивы в dhcpd.conf указывают на существующие файлы. Во-первых, проверьте настройки server_args в файле /etc/xinetd.d/tftp – там будет что-то вроде -s /tftpboot; это означает, что имена файлов в dhcpd.conf задаются относительно данного каталога. Так, если
+
/etc/dhcpd.conf.sample, который нужно отредактировать, как и в случае с Edubuntu, и переименовать в /etc/dhcpd.conf. Здесь важно проверить, что директивы в dhcpd.conf указывают на существующие файлы. Во-первых, проверьте настройки server_args в файле /etc/xinetd.d/tftp — там будет что-то вроде -s /tftpboot; это означает, что имена файлов в dhcpd.conf задаются относительно данного каталога. Так, если
 
dhcpd ищет /lts/2.6.20-9-ltsp-1/pxelinux.0, настоящий файл должен
 
dhcpd ищет /lts/2.6.20-9-ltsp-1/pxelinux.0, настоящий файл должен
 
быть таким: /tftpboot/lts/2.6.20-9-ltsp-1/pxelinux.0. Это сбивает с толку
 
быть таким: /tftpboot/lts/2.6.20-9-ltsp-1/pxelinux.0. Это сбивает с толку
многих людей. Нужно задать имена двух файлов – первый используется для загрузки с PXE, а второй – прочими методами. Причина в
+
многих людей. Нужно задать имена двух файлов — первый используется для загрузки с PXE, а второй — прочими методами. Причина в
 
том, что ограничение на размер загрузочного файла в PXE составляет
 
том, что ограничение на размер загрузочного файла в PXE составляет
 
32 КБ, так что он передает загрузчик, который затем загружает ядро.
 
32 КБ, так что он передает загрузчик, который затем загружает ядро.
 
Etherboot загружает ядро непосредственно.
 
Etherboot загружает ядро непосредственно.
  
Пройдитесь по различным настройкам – сопровождающий текст
+
Пройдитесь по различным настройкам — сопровождающий текст
 
вам поможет, и значения по умолчанию обычно вполне разумные. В
 
вам поможет, и значения по умолчанию обычно вполне разумные. В
 
большинстве случаев нужно лишь убедиться, что необходимое ПО
 
большинстве случаев нужно лишь убедиться, что необходимое ПО
Строка 180: Строка 215:
  
 
=== Загрузка первого клиента ===
 
=== Загрузка первого клиента ===
Теперь сервер установлен, и пора проверить его работу, загрузив другой компьютер в той же сети. В нормальной ситуации это будет «тонкий клиент» – а для тестирования подойдет любой i386-совместимый
+
Теперь сервер установлен, и пора проверить его работу, загрузив другой компьютер в той же сети. В нормальной ситуации это будет «тонкий клиент» — а для тестирования подойдет любой i386-совместимый
ПК, даже виртуальный. Да что там говорить – в процессе обкатки виртуальными могут быть и клиент, и сервер!
+
ПК, даже виртуальный. Да что там говорить — в процессе обкатки виртуальными могут быть и клиент, и сервер!
  
 
Для клиента не нужно задавать специальных настроек, кроме
 
Для клиента не нужно задавать специальных настроек, кроме
Строка 187: Строка 222:
 
попалась «ущербная». Вы должны увидеть обмен DHCP, за которым
 
попалась «ущербная». Вы должны увидеть обмен DHCP, за которым
 
последует TFTP-передача загрузчика и ядра. После этого запуск продолжится, как обычно. Большая часть этой информации пролетит
 
последует TFTP-передача загрузчика и ядра. После этого запуск продолжится, как обычно. Большая часть этой информации пролетит
слишком быстро, чтобы вы могли ее заметить, но не беспокойтесь
+
слишком быстро, чтобы вы могли ее заметить, но не беспокойтесь -
 
раз так, значит, все работает нормально. Если загрузка на каком-то
 
раз так, значит, все работает нормально. Если загрузка на каком-то
 
этапе остановится, текст на экране сообщит об ошибке, и мы будем
 
этапе остановится, текст на экране сообщит об ошибке, и мы будем
Строка 193: Строка 228:
  
 
В любом случае, должен появиться обычный графический экран
 
В любом случае, должен появиться обычный графический экран
входа в систему. Введите имя пользователя и пароль – загрузится
+
входа в систему. Введите имя пользователя и пароль — загрузится
 
рабочий стол сервера, который почти неотличим от локального. Что
 
рабочий стол сервера, который почти неотличим от локального. Что
здесь можно запускать? Ответ – все, что угодно, поскольку ради этого
+
здесь можно запускать? Ответ — все, что угодно, поскольку ради этого
 
все и затевалось. Однако помните, что все обновления экрана отправляются по сети, так что поиграть в игры с приличным FPS не получится.
 
все и затевалось. Однако помните, что все обновления экрана отправляются по сети, так что поиграть в игры с приличным FPS не получится.
 
Но возможность работать с ресурсоемкими приложениями, такими как
 
Но возможность работать с ресурсоемкими приложениями, такими как
OpenOffice.org, на компьютере с пониженным энергопотреблением
+
OpenOffice.org, на компьютере с пониженным энергопотреблением -
 
настоящее преимущество.
 
настоящее преимущество.
  
 
=== Поиск неполадок ===
 
=== Поиск неполадок ===
Как только сервер будет настроен, клиент должен загружаться – но
+
{{Врезка
 +
|Заголовок=Скорая помощь
 +
|Содержание=Межсетевой экран
 +
может быть источником проблем,
 +
если он блокирует
 +
определенные
 +
порты. По возможности, отключите
 +
его в процессе
 +
тестирования.
 +
|Ширина=200px}}
 +
Как только сервер будет настроен, клиент должен загружаться — но
 
практика часто отличается от теории. Во время загрузки клиента есть
 
практика часто отличается от теории. Во время загрузки клиента есть
 
достаточно моментов, когда что-то может пойти не так, и то, что мы
 
достаточно моментов, когда что-то может пойти не так, и то, что мы
видим, где все остановилось – хороший способ локализовать проблему. Если компьютер даже не пытается загружаться по сети, наверное, нужно включить опцию в BIOS. Если вы пользуетесь загрузочной
+
видим, где все остановилось — хороший способ локализовать проблему. Если компьютер даже не пытается загружаться по сети, наверное, нужно включить опцию в BIOS. Если вы пользуетесь загрузочной
 
дискетой ROM-o-matic, и она не работает, попробуйте другой образ
 
дискетой ROM-o-matic, и она не работает, попробуйте другой образ
диска – различия могут быть даже между практически одинаковыми
+
диска — различия могут быть даже между практически одинаковыми
 
картами.
 
картами.
  
Строка 213: Строка 258:
 
убедитесь, что все межсетевые экраны на сервере разрешают соединения DHCP и TFTP. DHCP обычно разрешен, но TFTP по умолчанию
 
убедитесь, что все межсетевые экраны на сервере разрешают соединения DHCP и TFTP. DHCP обычно разрешен, но TFTP по умолчанию
 
блокируется. Если на экране компьютера клиента вы видите результаты обмена DHCP-пакетами, то он работает. Это можно проверить
 
блокируется. Если на экране компьютера клиента вы видите результаты обмена DHCP-пакетами, то он работает. Это можно проверить
и по содержимому журнала на сервере – обычно это файл /var/log/messages. Во время загрузки клиента, выполните команду
+
и по содержимому журнала на сервере — обычно это файл /var/log/messages. Во время загрузки клиента, выполните команду
 
  tail -f /var/log/messages
 
  tail -f /var/log/messages
 
Перед вами должны пролететь несколько сообщений DHCP, заканчивающихся DHCPACK. Если на клиенте затем происходит сбой при
 
Перед вами должны пролететь несколько сообщений DHCP, заканчивающихся DHCPACK. Если на клиенте затем происходит сбой при
 
TFTP-передаче, то сообщение об ошибке с загрузкой PXE
 
TFTP-передаче, то сообщение об ошибке с загрузкой PXE
будет таким: “PXE-E32: TFTP open timeout”. Вероятных объяснений три: либо сервер TFTP не запущен, и это подтвердит ltspcfg; либо путь к образу ядра в /etc/dhcpd.conf задан
+
будет таким: «PXE-E32: TFTP open timeout». Вероятных объяснений три: либо сервер TFTP не запущен, и это подтвердит ltspcfg; либо путь к образу ядра в /etc/dhcpd.conf задан
 
неверно; либо брандмауэр блокирует запрос. Последнее
 
неверно; либо брандмауэр блокирует запрос. Последнее
проверить проще всего – просто выключите межсетевой
+
проверить проще всего — просто выключите межсетевой
 
экран на несколько секунд во время загрузки клиента.
 
экран на несколько секунд во время загрузки клиента.
 
Если это помогло, откройте UDP-порт 69 для локальных
 
Если это помогло, откройте UDP-порт 69 для локальных
Строка 225: Строка 270:
  
 
Следующий этап, на котором что-то может пойти не
 
Следующий этап, на котором что-то может пойти не
так – это монтирование корневой файловой системы через
+
так — это монтирование корневой файловой системы через
NFS. В этом случае появится сообщение “Failed to mount the
+
NFS. В этом случае появится сообщение «Failed to mount the
root directory via NFS!, за которым последует паника ядра.
+
root directory via NFS!», за которым последует паника ядра.
 
Проверьте, что каталог, указанный как root-path в файле
 
Проверьте, что каталог, указанный как root-path в файле
 
/etc/dhcpd.conf, есть в /etc/exports. Если его нет, исправьте
 
/etc/dhcpd.conf, есть в /etc/exports. Если его нет, исправьте
Строка 233: Строка 278:
 
  exportfs -r
 
  exportfs -r
 
Если все верно, то, наверное, наш друг брандмауэр снова блокирует доступ. В этом случае нужно открыть порты
 
Если все верно, то, наверное, наш друг брандмауэр снова блокирует доступ. В этом случае нужно открыть порты
NFS и RPC для локальной сети. Это – 111 и 2049 для TCP и
+
NFS и RPC для локальной сети. Это — 111 и 2049 для TCP и
UDP. А теперь – вперед! Почувствуйте энергию использования меньшей энергии!
+
UDP. А теперь — вперед! Почувствуйте энергию использования меньшей энергии!
  
 
[[Категория:Hardcore Linux]]
 
[[Категория:Hardcore Linux]]
 
[[Категория:Нейл Ботвик]]
 
[[Категория:Нейл Ботвик]]

Текущая версия на 14:41, 16 марта 2009

Содержание

[править] LTSP: Доступно о тонких клиентах

Хотите работать с современными программами на старом ПК? Еще бы! Нейл Ботвик покажет, как сделать это с помощью Linux Terminal Server Project.

Когда я впервые сел за компьютер в Манчестерском вычислительном центре в 1977 году, мы были в комнате, полной терминалов, подключенных к удаленному мейнфрейму. Тогда по-другому было нельзя — настольных компьютеров не существовало. По сути, это и были «тонкие клиенты». Компьютеры пользователей (терминалы) предоставляли немногим больше экрана и клавиатуры, а вся настоящая работа выполнялась на сервере. Сегодня с помощью Linux Terminal Server Project (LTSP) можно работать по схожей схеме - хотя на терминалах больше нет зеленого текста, а для работы сервера не нужно вентилируемое помещение. Терминология тоже слегка изменилась. Называть пользовательские компьютеры «тупыми терминалами» больше не годится, теперь это «тонкие клиенты». Сервер — просто сервер, хотя, наверное, «толстый сервер» тоже подошел бы.

Одно из главных преимуществ LTSP — это эффективность вложений. Вместо 30 средних компьютеров для классной комнаты или офиса вы покупаете один мощный сервер и 30 дешевых терминалов. Они могут быть даже не новыми — требования к начинке настолько низкие, что можно воспользоваться старым оборудованием, которое вы хотели выбросить: так будет намного экономнее и полезнее для бюджета. Когда придет время обновить аппаратную часть — например, чтобы справляться с более ресурсоемкими приложениями — нужно купить лишь сервер, а терминалы будут выполнять ту же работу, что и раньше.

Есть и выгода для окружающей среды — 30 настольных компьютеров используют большое количество энергии и преобразуют ее в тепло, что требует несколько вентиляторов на каждый из них. Тонкие клиенты выполняют гораздо меньшее количество работы, поэтому им требуется меньше энергии, они производят меньше шума и выделяют меньше тепла. У более старых компьютеров, которые работают на пределе возможностей, этого преимущества нет, но компьютеры тонких клиентов без диска могут работать практически бесшумно, не имея ни вентиляторов, ни накопителей.

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

[править] Как это работает?

Мысленно вернитесь к учебнику по сетевой загрузке в LXF100/101. Если вы его не читали (как вам не стыдно!), вот выжимка. Большинство сетевых адаптеров, особенно те, что встроены в материнские платы, позволяют загружать компьютер по сети. При этом BIOS клиента отправляет особый DHCP-запрос, а сервер выдает специальный сетевой загрузчик (либо Pxelinux, либо версию Grub). Последний показывает клиенту необязательное загрузочное меню и скачивает ядро. Сервер также экспортирует каталог NFS в качестве корневой директории для клиента. После этого процесс загрузки и использования компьютера продолжается как обычно. Единственное различие в том, что жесткий диск находится на конце сетевого кабеля протяженностью в несколько метров, а не шлейфа длиной в несколько дюймов.

LTSP начинает с того же самого, но вместо загрузки с сетевого диска полноценной системы он ограничивается минимальной версией, в которой есть средства для запуска ядра, старта X, обработки клавиатуры и мыши (и, обычно, звука). Потом он создает XDMCP-сеанс, в рамках которого рабочий стол сервера открывается на «тонком клиенте». На терминале не выполняется никаких пользовательских программ - все они запускаются на сервере, но используют клиентские устройства ввода-вывода. Это также означает, что загрузка может происходить быстрее, чем на обычном компьютере, даже несмотря на то, что система работает на более медленном оборудовании и загружает сеть, потому что большинство программ, запускаемых при обычном старте, уже работает на сервере.

[править] Системные требования

Альтернативные методы

Самый простой способ загрузить клиента по LTSP – воспользоваться PXE-совместимой сетевой картой (которая встроена в большинство современных матплат), но это не единственный вариант. Некоторые сетевые PCI-карты поставляются с загрузочным ROM, и проект Etherboot предоставляет открытый загрузочный код для пары сотен различных устройств. Создавать свой собственный ROM будет немного претенциозно, но код Etherboot можно записать на дискету.

Не бойтесь – это и в самом деле очень просто, благодаря http://www.rom-o-matic.net. Сайт генерирует загрузочные образы для многих карт в различных форматах. Просто выберите свой адаптер (запустите lspci -n, чтобы увидеть его PCI ID), укажите тип образа, который хотите получить, и нажмите кнопку Get ROM. Потом просто скопируйте файл, который вы загрузили, на дискету, командой

cat cat eb-5.4.3-yournic.zdsk >/dev/fd0

Требования к серверу зависят от числа подключенных клиентов и того, будут ли они все работать одновременно. В компьютерном классе школы большинство компьютеров используется параллельно, создавая большую нагрузку на сервер, а в офисе, куда люди приходят и уходят, единомоментно может быть запущено лишь 30-40 % систем (кроме утра, когда все приходят на работу и заходят на важные сайты вроде YouTube и Facebook).

Общая рекомендация всегда была такой: 256 МБ оперативной памяти на сам сервер плюс 60 МБ на каждого подключенного клиента (иногда советуют выделять по 100 МБ на терминал). Так как все программы выполняются на сервере, не помешает иметь запас вычислительной мощности: особенно хорошо подойдет двухядерная или двух-процессорная система. При работе со множеством клиентов неплохо бы использовать 64-битный процессор, не только из-за дополнительной производительности, но и потому, что он может работать с большим количеством памяти, что часто является наиболее важным фактором, ограничивающим производительность.

Клиентам хватит очень скромных системных ресурсов, поскольку всю работу делает сервер — достаточно 128 МБ ОЗУ и процессора Pentium II. Основное требование — компьютер должен иметь возможность загрузки по сети, хотя и без этого можно обойтись (см. врезку «Альтернативные методы загрузки»). Необходима и быстрая сеть — по меньшей мере, гигабитное соединение от сервера до маршрутизатора и 100-мегабитные соединения для клиентов.

[править] Установка LTSP-сервера

Дистрибутивы с поддержкой LTSP

Есть несколько дистрибутивов со встроенной поддержкой LTSP, и, в основном, они нацелены на образовательный рынок. Конечно, это не мешает вам использовать их и для других проектов. Знакомьтесь:

Edubuntu

Образовательная версия Ubuntu http://www.edubuntu.org

K12LTSP

Основан на Red Hat/Fedora http://k12ltsp.org

Edulinux

Предназначен для учебных компьютерных лабораторий http://www.edulinux.cl

Skole Linux

Разработан с прицелом на простоту установки и использования http://www.skolelinux.org

Здесь у вас есть выбор: можно воспользоваться специализированным дистрибутивом, где все уже есть и (по большей части) настроено, или установить пакеты LTSP в имеющуюся систему. Каждый способ имеет свои преимущества — предустановленный LTSP, безусловно, гораздо более удобен с точки зрения развертывания; с другой стороны, существующий дистрибутив привычнее, особенно если он используется на всех компьютерах сети. Конечно, если есть версия вашего дистрибутива с поддержкой LTSP, можно взять с полки пирожок и съесть его — например, пользователи Ubuntu будут чувствовать себя в Edubuntu, как дома.

Так как тонкие клиенты работают на одном компьютере, то с дистрибутивом, который вы выберете, будут взаимодействовать все пользователи, и это тоже может повлиять на ваше решение. Дистрибутив с LTSP имеет смысл брать в том случае, если вы устанавливаете выделенный LTSP-сервер для школы или офиса. С другой стороны, если вы хотите просто поэкспериментировать с технологией, добавочный пакет избавит вас от проблем с установкой новой системы. Еще один способ попробовать — это взять специализированный дистрибутив и установить его на виртуальную машину VirtualBox или VMware.

Есть несколько дистрибутивов с поддержкой LTSP — список наиболее популярных приведен во врезке справа. Все они направлены на образовательный рынок, где в основном и используется LTSP. Мы остановимся на Edubuntu, поскольку многие из нас знакомы с его родителем — Ubuntu.

В Edubuntu используется известный по Ubuntu текстовый инсталлятор. Выберите в меню загрузки первую опцию Install to the hard disk [Установить на жесткий диск], и дистрибутив будет инсталлирован с поддержкой LTSP. Во время установки появится сообщение об отсутствии доступных для LTSP интерфейсов, но не беспокойтесь. Инсталлятор Ubuntu настраивает сетевой интерфейс на использование DHCP, но с LTSP это невозможно: он сам является сервером DHCP и потому требует статического IP-адреса. Скоро мы это исправим. Иногда также возникает проблема с подвисанием инсталлятора во время создания клиентского образа [client image], хотя это, кажется, происходит только при установке на виртуальную машину. Для решения проблемы выберите опцию установки без LTSP, затем (после перезагрузки) запустите Synaptic для добавления ltsp-server и ltsp-server-standalone и выполните sudo ltsp-build-client. Результат будет таким же.

Теперь откройте пункт меню System > Administration > Network [Система > Администрирование > Сеть], щелкните на кнопке Properties [Свойства] и выключите режим роуминга для проводного интерфейса. Выберите Static [Статический] и введите подходящие IP-адрес, маску подсети и адрес шлюза. Если вы не уверены, какой адрес использовать, возьмите данные, предоставленные текущим сервером DHCP: их можно получить с помощью команд

sudo ifconfig eth0
sudo route -n

Теперь отредактируйте файл /etc/ltsp/dhcpd.conf и установите подходящие значения. Если вы находитесь в сети 192.168.1.*, должно сработать что-то вроде этого:

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.128 192.168.0.250;
option domain-name “mydomain.com”;
option domain-name-servers 192.168.1.1;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;

Подразумевается, что адрес маршрутизатора — это 192.168.1.1, и он же предоставляет DNS-сервисы для вашей сети. Если вы в расположены другой сети, измените значения соответствующим образом.

Теперь нужно отключить все DHCP-серверы в вашей сети. Когда вы загружаете клиента, он отправляет в сеть DHCP-запрос, на который должен ответить сервер LTSP. Некоторые серверы DHCP умеют игнорировать заданные MAC-адреса — в таком случае можно оставить их работать, обеспечив невосприимчивость к запросам «тонких клиентов». Это удобно, если вы тестируете LTSP на временной или виртуальной системе. В настоящей установке, сервер LTSP должен предоставить сервисы DHCP для сети.

[править] Установка на желаемый дистрибутив

Чтобы установить LTSP в ваш дистрибутив, потребуется пакет ltsp-utils, который должен быть в его репозиториях. Мы воспользуемся Fedora 8, но в других дистрибутивах процедура будет примерно такой же. В Fedora, пакет ltsp-utils находится в основном репозитории, и его можно установить с помощью Yum. Если в вашем дистрибутиве нет ltsp-utils, загрузите необходимое с сайта http://www.ltsp.org, где можно найти пакеты для Debian, RPM и Slackware. Там есть также универсальный пакет, ltsp-utils-0.25-0.tgz, который можно установить в любом дистрибутиве с помощью команд

tar xf ltsp-utils-0.25-0.tgz
cd ltsp_utils
su -c ./install.sh

Как бы ни проходила установка, после нее нужно запустить ltspadmin от имени root. Если для использования HTTP или FTP требуется прокси-сервер, зайдите в Configure The Installer Options [Настроить установщик] и укажите его, в противном случае можно оставить настройки по умолчанию и сразу перейти в Install/Update LTSP Packages [Установить/Обновить LTSP-пакеты]. Сначала нужно выбрать пакеты, которые вы хотите установить — здесь проще всего нажать A для отметки всех вариантов. Чтобы получить информацию по каждой опции, подсветите ее и нажмите S. Для начала установки нажмите Q. Это может потребовать некоторого времени, в зависимости от скорости вашего интернет-соединения.

Теперь у нас есть все необходимое ПО для запуска удаленного сеанса с «тонкого клиента», но оно еще не сконфигурировано. Воспользуемся опцией Configure LTSP [Настроить LTSP], которая запускает ltspcfg. Для того, чтобы видеть статус всех нужных файлов и сервисов, нажмите S. Файлы должны быть отмечены словом ‘yes’, а сервисы — выполняться. Нажмите C в меню настройки, чтобы настроить каждый элемент по очереди. В системах, основанных на Red Hat или SUSE, уровень выполнения должен быть равен пяти, на производных от Debian — двум.

Секция DHCP создает лишь пример конфигурационного файла в /etc/dhcpd.conf.sample, который нужно отредактировать, как и в случае с Edubuntu, и переименовать в /etc/dhcpd.conf. Здесь важно проверить, что директивы в dhcpd.conf указывают на существующие файлы. Во-первых, проверьте настройки server_args в файле /etc/xinetd.d/tftp — там будет что-то вроде -s /tftpboot; это означает, что имена файлов в dhcpd.conf задаются относительно данного каталога. Так, если dhcpd ищет /lts/2.6.20-9-ltsp-1/pxelinux.0, настоящий файл должен быть таким: /tftpboot/lts/2.6.20-9-ltsp-1/pxelinux.0. Это сбивает с толку многих людей. Нужно задать имена двух файлов — первый используется для загрузки с PXE, а второй — прочими методами. Причина в том, что ограничение на размер загрузочного файла в PXE составляет 32 КБ, так что он передает загрузчик, который затем загружает ядро. Etherboot загружает ядро непосредственно.

Пройдитесь по различным настройкам — сопровождающий текст вам поможет, и значения по умолчанию обычно вполне разумные. В большинстве случаев нужно лишь убедиться, что необходимое ПО установлено (с помощью менеджера пакетов дистрибутива) и настроено на запуск во время загрузки. В Fedora 8 не используется Portmap, который ожидает увидеть ltspcfg, поскольку он заменен rpcbind. Это означает, что можно не обращать внимания на ругань ltspcfg о его отсутствии.

На последнем этапе в каталоге /opt/ltsp/i386/etc создается файл lts.conf. Этот каталог экспортируется как корневой для клиентов, поэтому файл появится в их директориях /etc, где хранятся настройки. Опции по умолчанию отлично подойдут, если вы хотите, чтобы на клиенте открывался единственный экран рабочего стола. В документации на сайте http://www.ltsp.org описаны более сложные варианты использования. Теперь перезагрузите компьютер. Этот шаг не обязателен, но он дает возможность снова запустить ltspcfg, чтобы убедиться, что все сервисы настроены и работают.

[править] Загрузка первого клиента

Теперь сервер установлен, и пора проверить его работу, загрузив другой компьютер в той же сети. В нормальной ситуации это будет «тонкий клиент» — а для тестирования подойдет любой i386-совместимый ПК, даже виртуальный. Да что там говорить — в процессе обкатки виртуальными могут быть и клиент, и сервер!

Для клиента не нужно задавать специальных настроек, кроме установки в BIOS загрузки по сети или с дискеты, если сетевая карта попалась «ущербная». Вы должны увидеть обмен DHCP, за которым последует TFTP-передача загрузчика и ядра. После этого запуск продолжится, как обычно. Большая часть этой информации пролетит слишком быстро, чтобы вы могли ее заметить, но не беспокойтесь - раз так, значит, все работает нормально. Если загрузка на каком-то этапе остановится, текст на экране сообщит об ошибке, и мы будем искать решение.

В любом случае, должен появиться обычный графический экран входа в систему. Введите имя пользователя и пароль — загрузится рабочий стол сервера, который почти неотличим от локального. Что здесь можно запускать? Ответ — все, что угодно, поскольку ради этого все и затевалось. Однако помните, что все обновления экрана отправляются по сети, так что поиграть в игры с приличным FPS не получится. Но возможность работать с ресурсоемкими приложениями, такими как OpenOffice.org, на компьютере с пониженным энергопотреблением - настоящее преимущество.

[править] Поиск неполадок

Скорая помощь

Межсетевой экран может быть источником проблем, если он блокирует определенные порты. По возможности, отключите его в процессе тестирования.

Как только сервер будет настроен, клиент должен загружаться — но практика часто отличается от теории. Во время загрузки клиента есть достаточно моментов, когда что-то может пойти не так, и то, что мы видим, где все остановилось — хороший способ локализовать проблему. Если компьютер даже не пытается загружаться по сети, наверное, нужно включить опцию в BIOS. Если вы пользуетесь загрузочной дискетой ROM-o-matic, и она не работает, попробуйте другой образ диска — различия могут быть даже между практически одинаковыми картами.

Если загрузка по сети начинается, но завершается по тайм-ауту, убедитесь, что все межсетевые экраны на сервере разрешают соединения DHCP и TFTP. DHCP обычно разрешен, но TFTP по умолчанию блокируется. Если на экране компьютера клиента вы видите результаты обмена DHCP-пакетами, то он работает. Это можно проверить и по содержимому журнала на сервере — обычно это файл /var/log/messages. Во время загрузки клиента, выполните команду

tail -f /var/log/messages

Перед вами должны пролететь несколько сообщений DHCP, заканчивающихся DHCPACK. Если на клиенте затем происходит сбой при TFTP-передаче, то сообщение об ошибке с загрузкой PXE будет таким: «PXE-E32: TFTP open timeout». Вероятных объяснений три: либо сервер TFTP не запущен, и это подтвердит ltspcfg; либо путь к образу ядра в /etc/dhcpd.conf задан неверно; либо брандмауэр блокирует запрос. Последнее проверить проще всего — просто выключите межсетевой экран на несколько секунд во время загрузки клиента. Если это помогло, откройте UDP-порт 69 для локальных IP-адресов.

Следующий этап, на котором что-то может пойти не так — это монтирование корневой файловой системы через NFS. В этом случае появится сообщение «Failed to mount the root directory via NFS!», за которым последует паника ядра. Проверьте, что каталог, указанный как root-path в файле /etc/dhcpd.conf, есть в /etc/exports. Если его нет, исправьте /etc/exports и примените изменения командой

exportfs -r

Если все верно, то, наверное, наш друг брандмауэр снова блокирует доступ. В этом случае нужно открыть порты NFS и RPC для локальной сети. Это — 111 и 2049 для TCP и UDP. А теперь — вперед! Почувствуйте энергию использования меньшей энергии!

Персональные инструменты
купить
подписаться
Яндекс.Метрика