Предупреждение :
Этот документ находится в разработке, и его пока не следует считать официальным.
|
Руководство по LTSP в ОС Gentoo Linux
1.
Введение
Что такое LTSP?
LTSP - это аббревиатура "Linux Terminal Server Project". Установленный на сервере
он может обеспечить множество рабочих станций (так называемых Тонких-клиентов)
одинаковым окружением. Все приложения запущены на сервере и поэтому
вы можете использовать старые компьютеры, преобразовав их в X-Терминалы.
Такой способ уменьшает общую цену и облегчает содержание особенно там, где вам
нужно одинаковое рабочее окружение на каждом компьютере, например в школах или
фирмах.
2.
Установка
Договоренности
Все примеры в данном руководстве предполагают, что IP адрес вашего сервера
192.168.0.254,
Ваш домен: yourdomain.com и адрес сети: 192.168.0.0/24.
Установка
В первую очередь у вас должна быть работающая система Gentoo. Прочитайте
"Руководство по Установке Gentoo" для своей архитектуры на cайте документации Gentoo.
Давайте начнем с самого простого шага, с установки пакета ltsp:
Листинг 2.1: Emerge LTSP |
# emerge ltsp
|
Эта команда установит (как зависимости) следующие пакеты:
-
XFree: Они называются XTerminal'ами, догадайтесь почему :)
-
DHCP: DHCP это протокол для автоматической конфигурации компьютеров,
использующих TCP/IP, используется ltsp для выделения IP-адресов рабочим
станциям.
-
NFS: NFS это протокол доступа к жестким дискам через сеть,
используется ltsp для монтирования базовой системы к рабочим станциям.
-
TFTP: TFTP это простой протокол передачи файлов, используется ltsp
для передачи ядра с сервера рабочим станциям.
-
XINETD: Xinetd это более мощная замена inetd, с дополнительными
возможностями, используется ltsp, чтобы стартовать tftp-сервер.
Примечание:
Если у вас установлен флаг USE kde/gnome, то будет также установлена полная
система kde/gnome.
|
3.
Конфигурация
После того как emerge закончил свою работу, необходимо настроить установленные
сервисы:
Системный журнал
Чтобы облегчить отладку, системный журнал должен быть настроен так чтобы
фиксировать удаленные соединения. Ознакомьтесь с документацией вашего
системного журнала, чтобы узнать как именно это сделать. Например, если вы
используете sysklogd, все что вам нужно это отредактировать
/etc/conf.d/sysklogd добавив "-r" к строке SYSLOGD:
Листинг 3.1: /etc/conf.d/sysklogd |
SYSLOGD="-m 0 -r"
KLOGD="-c 3 -2"
|
NFS
Следующий шаг: отредактировать файл /etc/exports, чтобы позволить
рабочим станциям монтировать корневую файловую систему. В нем должно быть, по
меньшей мере, 2 строки:
Листинг 3.2: /etc/exports |
/opt/ltsp-4.1/i386 192.168.0.0/255.255.255.0(ro,no_root_squash,async)
/var/opt/ltsp/swapfiles 192.168.0.0/255.255.255.0(rw,no_root_squash,async)
|
Примечание:
Вы должны поменять подсеть/маску, чтобы они соответствовали вашим настройкам.
|
Теперь запустим NFS.
Листинг 3.3: Запуск nfs |
# rc-update add nfs default
# /etc/init.d/nfs start
|
xinetd/tftp
TFTP необходимо настроить для правильной работы. Для начала в файле
/etc/conf.d/in.tftpd, выставим пути:
Листинг 3.4: /etc/conf.d/in.tftpd |
INTFTPD_PATH="/tftpboot"
INTFTPD_OPTS="-s ${INTFTPD_PATH}"
|
Флаг -s заставляет TFTP работать в безопасном chroot режиме (рекомендуется).
Это означает, что вам не нужно включать путь /tftpboot, к примеру,
в настройках DHCP.
Далее настроим xinetd для запуска TFTP и разрешим удаленные соединения.
Проверьте, был ли создан файл /etc/xinetd.d/tftp при установке
tftp. По умолчанию TFTP не запускается сервером xinetd, для того чтобы
исправить это замените значение disable=yes на disable=no.
в файле /etc/xinetd.d/tftp
Листинг 3.5: /etc/xinetd.d/tftp |
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
}
|
Теперь откройте /etc/xinetd.conf и закомментируйте строку
only_from = localhost, поставив знак # в ее начале. Наконец,
запустите xinetd.
Листинг 3.6: Запуск xinetd |
# rc-update add xinetd default
# /etc/init.d/xinetd start
|
Разрешение имен (Name resolving)
Для того чтобы, рабочая станция могла использовать все ресурсы, должно работать
корректное разрешение имен. Здесь есть несколько вариантов. Можно настроить
DNS-сервер в локальной сети. Или можно (что легче) иметь полностью идентичные
файлы /etc/hosts на всех системах, что мы и сделаем.
Все рабочие станции должны быть перечислены в /etc/hosts.
Например:
Листинг 3.7: /etc/hosts |
127.0.0.1 localhost
192.168.0.254 server server.yourdomain.com
192.168.0.1 ws001 ws001.yourdomain.com
|
Настройка DHCP
По моему, это самый запутанный этап, вы должны создать работающий конфиг DHCP
(/etc/dhcp/dhcpd.conf). К примеру:
Листинг 3.8: dhcpd.conf |
default-lease-time 21600;
max-lease-time 21600;
use-host-decl-names on;
ddns-update-style ad-hoc;
allow booting;
allow bootp;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.254;
option domain-name-servers 192.168.0.254;
option log-servers 192.168.0.254;
option domain-name "yourdomain.com";
option root-path "192.168.0.254:/opt/ltsp-4.1/i386";
filename "/lts/vmlinuz-2.4.26-ltsp-2";
#option option-128 code 128 = string;
#option option-129 code 129 = text;
#option option-128 e4:45:74:68:00:00;
#option option-129 "NIC=ne IO=0x300";
shared-network WORKSTATIONS {
subnet 192.168.0.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.1.1 192.168.1.16;
#host ws001 {
# hardware ethernet 00:E0:06:E8:00:84;
# fixed-address 192.168.0.1;
#}
}
}
|
Если ваши терминалы поддерживают PXE, вы должны перечислить их все, как сделали
с host ws001 (не забудьте раскоментировать). Не давайте им адрес из
динамического диапазона, иначе возможно что у нескольких терминалов будут
одинаковые IP-адреса (что проблематично). Запомните, если вы
скопируете-и-вставите (cut-n-paste) вышеприведенный пример, замените любые
вхождения "//" на "##", иначе dhcp не запустится.
За дополнительной документацией обращайтесь к официальному руководству по dhcp:
http://www.dhcp-handbook.com/
Теперь запустим DHCP, так же как и в случае с NFS и xinetd:
Листинг 3.9: Запуск dhcp |
# rc-update add dhcp default
# /etc/init.d/dhcp start
|
Примечание:
Для DHCP необходимо наличие CONFIG_PACKET и CONFIG_FILTER в ядре.
|
Настройка LTSP
Существует множество опций настройки терминалов, посетите
http://www.ltsp.org/documentation/ltsp-3.0-4-en.html#AEN903
для полного их описания.
Несколько советов: сначала скопируйте
/opt/ltsp/i386/etc/lts.conf.example в
/opt/ltsp/i386/etc/lts.conf и редактируйте уже его.
Вы можете попробовать изменить SCREEN_01 на SCREEN_01 = startx.
Чтобы использовать USB мышь на удаленной машине (терминале), добавьте следующие,
отвечающие за модули, строки, и поменяйте X_MOUSE_* строки как указано ниже:
Листинг 3.10: /opt/ltsp/i386/etc/lts.conf |
MODULE_01 = usb-uhci
MODULE_02 = mousedev
MODULE_03 = usbmouse
X_MOUSE_PROTOCOL = "IMPS/2"
X_MOUSE_DEVICE = "/dev/input/mice"
|
Менеджер экрана
Теперь вы должны настроить менеджер экрана так, чтобы он принимал удаленные
соединения.
Отредактируйте файл /etc/X11/xdm/Xaccess, раскомментировав
следующую строку:
Листинг 3.11: /etc/X11/xdm/Xaccess |
#* #any host can get a login window
|
Теперь поменяем настройку вашего менеджера экрана:
XDM: В /etc/X11/xdm/xdm-config раскомментируйте
DisplayManager.requestPort: 0
KDM: В /usr/kde/3.1/share/config/kdm/kdmrc в секции
[Xdmcp] измените Enable = false на Enable = true.
GDM: В /etc/X11/gdm/gdm.conf в секции [xdmcp]
измените Enable = false на Enable = True.
Теперь запустим менеджер:
Листинг 3.12: Запуск xdm |
# rc-update add xdm default
# /etc/init.d/xdm start
|
Предупреждение:
На данный момент возникают проблемы с использованием XDM и GDM. Автор
использует KDM, чтобы от них избавиться.
|
Запомните, если менеджер экрана запущен, то при перезагрузке X-сервера с
помощью CTRL-ALT-BACKSPACE он не перезапускается.
Создание загрузочной дискеты
Если ваши терминалы не поддерживают PXE-загрузку, вы должны создать загрузочную
дискету, которая используется для загрузки рабочих станций и подключения к
терминал-серверу. На странице http://www.rom-o-matic.net/, выберите
последнюю версию, выберите свою сетевую карту (NIC), нажмите Get ROM
и запишите полученный образ на дискету:
Листинг 3.13: Запись образа на дискету |
# cat nicfile.zdsk > /dev/fd0
|
4.
Устранение неполадок
Существует множество вещей, которые могут быть источником проблем, но есть
несколько ресурсов, которые помогут их решить:
5.
FAQ
Q: У моих терминалов процессор Pentium II, но сервер скомпилирован с
флагом march=athlon-xp, будут ли они работать?
A: Нет проблем, т.к. все приложения выполняются на сервере.
Q: Какой процессор и сколько оперативной памяти должно быть на сервере?
A: Хороший документ с советами находится на
http://ltsp.org/documentation/server_suggestions.html.
Q: Есть ли дополнительная информация о PXE?
A: Да, посмотрите на http://ltsp.org/documentation/eproms.txt
и на http://ltsp.org/documentation/pxe.howto.html.
Q: Возможно ли использовать программы, нуждающиеся в 3D видео карте на
терминалах?
A: Если вы используете карты от NVidia посмотрите
http://ltsp.org/documentation/nvidia.txt.
Q: В некоторых приложениях шрифты выглядят жутко, что делать?
A: Установите XFontServer, добавьте USE_XFS=Y в
lts.conf, отредактируйте /etc/X11/fs/config
раскомментировав no-listen: tcp, замените XFS_PORT="-1" на
XFS_PORT="7100" в /etc/conf.d/xfs и запустите xfs:
/etc/init.d/xfs start. Также ПРОВЕРЬТЕ что
/etc/X11/XF86Config (или /etc/X11/xorg.conf) содержит
FontPath "unix/:7100" в секции Files.
Q: Как я могу использовать звуковую карту на терминале?
A: В gentoo существует пакет ltsp-sound, за дальнейшими инструкциями
обращайтесь к README файлу в составе пакета.
6.
Словарик
LTSP "LTSP предлагает способ
повторного использования старых компьютеров, как графических или текстовых
терминалов на основе GNU/Linux сервера.
PXE "Акроним
от "Pre-Boot Execution Environment". Произносится пикси (pixie), PXE один из
компонентов спецификации WfM от Intel. Он позволяет компьютеру загружаться с
сервера по сети, до загрузки с локального диска. На рабочей станции с PXE
сетевая карточка соединена с сетью через джампер, благодаря чему соединение
сохраняется даже при выключенном питании."
Текст этого документа распространяется на условиях лицензии
Creative Commons
- Attribution / Share Alike.
|