LTSP/About
ALTSP — это сокращение от ALT Linux Terminal Server Project, а также результат скрещивания ужа (дистрибутивы ALT Linux) с ежом (терминальная технология LTSP.org). При этом используется смесь технологий LTSP4/LTSP5 с тем, чтобы обеспечить как интеграцию в дистрибутив, так и легковесность.
Чем удобен терминальный сервер
Использование ТС и тонких клиентов позволяет:
- сэкономить средства на обновлении имеющихся мест: теперь их быстродействие зависит от более мощной системы, а «морально устаревшие» компьютеры могут потребовать разве что новых монитора и клавиатуры с мышкой вместо полной замены;
- сохранить время и спокойствие при резервном копировании: данные пользователей собраны на одной системе (нередко с зеркалом из двух дисков) и делать бэкапы не так уж и тяжело;
- гибко распределять рабочие места: можно работать, войдя в систему с любого терминала;
- не терять время на администрирование N клиентских ПК, а заниматься одним или несколькими серверами.
О выгодах применения терминального сервера в школе также рассказано в этой статье
Функциональность
После установки дистрибутива и загрузки терминального сервера для подключенных тонких клиентов доступны:
- сетевая загрузка;
- централизованная регистрация пользователей на терминальном сервере;
- работа с развёрнутыми на сервере приложениями, используя его вычислительные ресурсы;
- поддержка локальных устройств (CD/DVD-ROM, USB Flash, USB HDD, флоппи-дисковод);
- воспроизведение звука;
- управление при помощи несложного модуля Alterator.
Требования
Необходима хотя бы одна достаточно современная система в качестве терминального сервера; желательно подключение тонких клиентов отдельным физическим сегментом Ethernet.
- сервер: от PIII с 512M ОЗУ (рекомендуется двухъядерный процессор и 1Gb RAM или лучше)
- клиент: от Pentium с 16M ОЗУ (рекомендуется от Pentium II с 32M RAM)
- локальная сеть: 100Mbps (рекомендуется подключать сервер гигабитом)
LTSP/BuildYourself
Здесь описан процесс превращения в терминальный сервер уже развёрнутой десктопной [1] системы. Обычно это слишком много труда и достаточно взять уже готовый дистрибутив терминального сервера [2] .
Версии
Для создания терминального сервера mike@ проверены пакеты из веток:
- 4.0 (выделенная система, 2007-09-11);
- p5 (дистрибутив, 2010-03-15);
- 5.1 (контейнер OpenVZ, 2011-04-03);
- t6 (дистрибутив, 2012-03-09);
- p7 (из стартеркита, 2015-11-28)
Следует использовать пакеты из актуальной копии выбранного бранча либо из дистрибутива терминального сервера. Первые сборки 2006/2007 года имели известные недоработки и нюансы; соответствующие примечания ниже отмечены [OLD] [3] и будут через некоторое время убраны как устаревшая документация.
Бранч 4.1 не применялся [4] для создания дистрибутивов терминального сервера.
Sisyphus по состоянию на весну 2012 года местами пригоден для создания терминального чрута; в kernel-image-ltsp-client-2.6.32-alt1+ есть поддержка KMS, необходимая для текущего xorg .
Настройка сервера
Предварительно необходимо подключить один из поддерживаемых бранчей.
- Установить пакет ltsp-server-{basic,enhanced,light,kde> (в basic и enhanced оконным менеджером служит twm , в light — icewm )
- Настроить dhcp ; можно взять рабочую заготовку в пакете ltsp-server :
mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.BAK cp -a /etc/ltsp/dhcpd.conf /etc/dhcp/
- Настроить tftp-server : дописать в /etc/xinetd.d/tftp рядом с остальными строчку only_from = 192.168.0.0/24 (или другую сеть, на которую настроен DHCP-сервер) и выполнить команды
chkconfig tftp on chkconfig xinetd on
control portmap server chkconfig portmap on
/var/lib/ltsp/i586 (ro,no_root_squash,async)
- При объёме памяти бездисковых станций менее 64..128Mb рекомендуется организовать сетевой своп.
- Настроить Display Manager:
- выполнить chkconfig dm on
- для kdm : в секции [Xdmcp] файла /etc/X11/kdm/kdmrc обеспечить Enable=true
- для gdm смотрим файл /etc/X11/gdm/custom.conf :
- в секции [Xdmcp] требуется Enable=true ,
- в секции [daemon] — RemoteGreeter=/usr/lib/gdm/gdmgreeter
:0 local /etc/X11/xinit/xserverrc
Сборка LTSP chroot
Для сборки чрута из пакетов требуется [9] :
- отредактировать (при необходимости):
- /etc/ltsp/update-kernels.conf [10] ;
- /etc/ltsp/ltsp-update-kernels.conf ;
- /etc/ltsp/ltsp-build-client.conf :
- ARCH , BASE [11] , MIRROR [12] (настроить на доступный репозиторий)
- ROOTPASS ( prompt — спросить при генерации);
- возможно, EXTRA_MIRROR (например, EXTRA_MIRROR=»file:/var/ftp/ltsp5 i586 ltsp5;file:/var/ftp/ltsp5 noarch ltsp5″ );
- возможно, KERNEL (по умолчанию — kernel-image-std-smp ; достаточно указывать только суффикс std-smp );
- возможно, KERNEL_MODULES (субпакеты через пробел; по умолчанию — alsa )
- CHROOT_IMAGE [13] ;
Запуск
service dhcpd restart service xinetd restart service portmap restart service nfs restart service ltspswapd restart || service nbd-server restart service xfs restart # для ltsp-client >= 5.0-alt0.49 xfs необязателен service dm restart
- Требуется также обеспечить обратный резолвинг IP клиентов, чтобы избежать таймаутов при отрабатывании dm («крестик на экране») — либо путём настройки DNS на терминальном сервере с обратной зоной для выдаваемых по DHCP адресов, либо хотя бы выполнить нечто вроде (для локального доменного суффикса ltsp):
grep -q ^192.168.0.1 /etc/hosts || echo "192.168.0.1 server server.ltsp" >> /etc/hosts grep -q ^192.168.0.250 /etc/hosts || < for i in `seq 20 250`; do echo "192.168.0.$i ws$i ws$i.ltsp" >> /etc/hosts done > update_chrooted conf
# вариант "на железе" echo fuse >> /etc/modules modprobe fuse control fusermount public
# вариант "под OpenVZ" # HN: echo fuse >> /etc/modules modprobe fuse vzctl set ltsp --devnodes fuse:rw --save # VE, которое --name ltsp: control fusermount public
Вариации на тему
dnsmasq
Роль сервера DHCP, TFTP и DNS вместо dhcpd , tftp-server и bind прекрасно исполняет dnsmasq со следующим конфигурационным файлом:
bind-interfaces interface=lan interface=lo resolv-file=/etc/resolv.conf.dnsmasq strict-order expand-hosts domain=mydomain.com dhcp-range=192.168.0.100,192.168.0.199 enable-tftp tftp-root=/diskless/altsp/boot/i586 dhcp-boot=pxelinux.0
ALTSP inside OpenVZ
Недавно повторено и описано тут enp@.
Загрузка тонких клиентов с локальных HDD
Шпаргалка
Для справки можно подсматривать в профиль, по которому собирался дистрибутив ALT Linux 4.0 Terminal, и фрагмент инсталятора. Оттуда видно, что, скорее всего, будет достаточно установить в VE по вкусу один из пакетов ltsp-server-{basic,enhanced,light,kde> и все, что он вытащит по зависимостям, а также выполнить действия по мотивам написанного в скрипте настройки.
Примечания
- ↑ Терминальный сервер самому проще сделать из десктопа (которым он функциональности в основном и является), чем из сервера (который сперва всё равно придётся превратить в десктоп).
- ↑ При сильном желании модифицировать не просто отдельную систему, а сам инсталяционный образ — читайте про сборку дистрибутивов.
- ↑ Совсем старые пакеты назывались ltsp5-* и ориентировались на расположение терминального чрута в /var/lib/ltsp5/ .
- ↑ Переработанный alterator-backend-x11 в 4.1/branch не работал без HAL; решено в бранчах 5.1/p5 пакетом ltsp-x11-autosetup .
- ↑ Как вариант, закомментировать PORTMAP_ARGS=»-l» в /etc/sysconfig/portmap
- ↑ В Sisyphus и бранчах старше 5.1/p5 замените portmap на rpcbind .
- ↑ При использовании в контейнере OpenVZ вместо nfs-server придётся взять unfs3 , это приведёт к удалению метапакета ltsp-server-basic — не страшно, его роль только втащить нужные пакеты по зависимостям.
- ↑ для ltsp-client >= 5.0-alt0.49 xfs необязателен.
- ↑ [OLD] В ранних сборках также был необходим пакет hasher .
- ↑ [OLD] Для standalone-сервера рациональнее будет NFSROOT_OPTS=tcp вместо udp (по умолчанию); с tcp наблюдались проблемы в контейнере OpenVZ.
- ↑ В BASE , если необходимо, изменить путь к chroot, расположив его на разделе без noexec.
- ↑ Если в MIRROR указать полную строчку из sources.list , начинающуюся с rpm , то реконструкция с использованием ARCH и COMPONENTS производиться не будет, а строчка попадёт «как есть».
- ↑ CHROOT_IMAGE имеет смысл, если используется заранее приготовленный с помощью spt и spt-profiles-ltsp-root (или другим способом) корень.
- ↑ Для ранних пакетов ltsp также были актуальны следующие замечания:
- [OLD] Для успешной сборки могло быть необходимо поправить /usr/share/ltsp/profile/ltsp-root/packages из пакета spt-profiles-ltsp-root , добавив туда which, xinitrc, libhw-tools .
- [OLD] После сборки следовало проверить права доступа на чтение в /var/lib/tftpboot/ltsp5
- [OLD] Также доводилось поправить /etc/exports на предмет лишнего пробела, иначе старый unfs3 не разрешал клиенту подмонтировать корень; в unfs3-0.9.18 была добавлена опция проверки корректности конфигурации и она теперь используется в инитскрипте, с 0.9.17 и ltsp5-server-5.0-alt0.44 тоже всё в порядке.
LTSP/About
ALTSP — это сокращение от ALT Linux Terminal Server Project, а также результат скрещивания ужа (дистрибутивы ALT Linux) с ежом (терминальная технология LTSP.org). При этом используется смесь технологий LTSP4/LTSP5 с тем, чтобы обеспечить как интеграцию в дистрибутив, так и легковесность.
Чем удобен терминальный сервер
Использование ТС и тонких клиентов позволяет:
- сэкономить средства на обновлении имеющихся мест: теперь их быстродействие зависит от более мощной системы, а «морально устаревшие» компьютеры могут потребовать разве что новых монитора и клавиатуры с мышкой вместо полной замены;
- сохранить время и спокойствие при резервном копировании: данные пользователей собраны на одной системе (нередко с зеркалом из двух дисков) и делать бэкапы не так уж и тяжело;
- гибко распределять рабочие места: можно работать, войдя в систему с любого терминала;
- не терять время на администрирование N клиентских ПК, а заниматься одним или несколькими серверами.
О выгодах применения терминального сервера в школе также рассказано в этой статье
Функциональность
После установки дистрибутива и загрузки терминального сервера для подключенных тонких клиентов доступны:
- сетевая загрузка;
- централизованная регистрация пользователей на терминальном сервере;
- работа с развёрнутыми на сервере приложениями, используя его вычислительные ресурсы;
- поддержка локальных устройств (CD/DVD-ROM, USB Flash, USB HDD, флоппи-дисковод);
- воспроизведение звука;
- управление при помощи несложного модуля Alterator.
Требования
Необходима хотя бы одна достаточно современная система в качестве терминального сервера; желательно подключение тонких клиентов отдельным физическим сегментом Ethernet.
- сервер: от PIII с 512M ОЗУ (рекомендуется двухъядерный процессор и 1Gb RAM или лучше)
- клиент: от Pentium с 16M ОЗУ (рекомендуется от Pentium II с 32M RAM)
- локальная сеть: 100Mbps (рекомендуется подключать сервер гигабитом)