linux terminal server project
Post on 13-Jan-2017
37 Views
Preview:
TRANSCRIPT
01.01.13
Организация ТЕРМИНАЛЬНОЙ информационной системы
Выполнил: Сиганов Илья СБС-001-О
А так же виртуализация
Проблемы?● KIS 2013 тормозит на старых компах?● Вам не хочется переставлять WinME/XP
каждый месяц?● Почему-то вам звонят каждый день и
говорят «у меня не работает принтер»?● Хочется настроить что-то один раз, а
потом даже и не вспоминать?● Вы хотите устроить тотальную слежку?
Тогда вас заинтересует моё предложение.
● Появился новый сотрудник и ему срочно нужен компьютер с готовой к работе ОС?
● KIS 2013 тормозит на старых компах?● Вам не хочется переставлять WinME/XP
каждый месяц?● Почему-то вам звонят каждый день и
говорят «у меня не работает принтер»?● Хочется настроить что-то один раз, а
потом даже и не вспоминать?● Вы хотите устроить тотальную слежку?
Тогда вас заинтересует моё предложение.
Что нам необходимо.
● 20 штук тонких клиентов Pentium III,IV или Celeron. Можно даже без жестких дисков!!
● Один сервер на Intel i7. RAID массив жестких дисков. Возможно пригодится слабенкий компьютер для резервных копий.
● Коммутатор с гигабитной линией до сервера и 100мбитной до клиентов.
Размышления
● Первые 3 проблемы решаются установкой linux для слабых машин.
● Но как же тотальная слежка и настроить всё и сразу?
● Тогда моё предложение- создать терминальный сервер и запускать тонкие клиенты через сеть!
Учите матчасть!!
PXEPXE BOOT BOOT TPTP
WAKE-WAKE-ON-LANON-LAN
VirtualizVirtualizationation
TFTPTFTPLTSPLTSP
PXE
● Preboot eXecution Environment● Это cреда для загрузки компьютеров с помощью сетевой карты
без использования жёстких дисков, компакт-дисков и других устройств. Для организации загрузки системы в PXE используются протоколы IP, UDP, BOOTP и TFTP.
● PXE-код, обычно находящийся в ПЗУ сетевой карты, получает из сети по протоколу TFTP (получив адрес TFTP-сервера по BOOTP) исполняемый файл, после чего передаёт ему управление.
● Одна из реализаций загружаемого по PXE файла — pxelinux из комплекта программ syslinux. Умеет показывать пользователю меню, похожее на меню syslinux и загружать по сети и передавать управление ядру Linux и программам, имеющим идентичный формат загрузки (например, Memtest86).
Немного магии● Wake-on-LAN● Технология, позволяющая
удалённо включить компьютер посредством отправки через локальную сеть специальной последовательности байтов — пакета данных (так называемого magic packet — «волшебного пакета»)
● Это можно сделать, например, с помощью другого компьютера с соответствующей программой
BOOTP● Bootstrap Protocol● Cетевой протокол, используемый для автоматического
получения клиентом IP-адреса. Это обычно происходит во время загрузки компьютера.
● BOOTP позволяет бездисковым рабочим станциям получать IP-адрес прежде, чем будет загружена полноценная операционная система. Исторически это использовалось для Unix-подобных бездисковых станций, которые в том числе могли получать информацию о местоположении загрузочного диска посредством этого протокола. А также большими корпорациями для установки предварительно настроенного программного обеспечения (например, операционной системы) на новоприобретённые компьютеры.
● Данный протокол поддерживается BIOS на современных мат.платах и сетевых картах.
●
TFTP
● Trivial File Transfer Protocol● TFTP, в отличие от FTP, не содержит возможностей
аутентификации (хотя возможна фильтрация по IP-адресу) и основан на транспортном протоколе UDP.
● Безопасность?● Демон tftpd отказывается обрабатывать файлы, содержащие
в своём имени комбинацию «/../» или начинающуюся с «../». Запись разрешается только в файлы, которые уже существуют (любого размера, например нулевого), и доступны для публичной записи (права доступа: -rw-rw-rw-).
Что дальше?
● Очевидно, из определений протоколов следует, что нам нужен особый сервер. Что же он должен уметь?
● DHCP-сервер для обеспечения BOOTP● TFTPD-сервер● NFS & Samba● WOL скрипт● И какая-то операционная система, которая
будет отпавляться тонким клиентам!!!
The Linux Terminal Server Project-добавляет поддержку тонких клиентов серверу Linux. Это гибкое, недорогое решение для запуска тонких клиентов в школах(см. Edubuntu) и на предприятиях. Тонкие клиенты используются для веб-сёрфинга, офисных работ- e-mail, office, icq,и для обучения.
Процесс настройки LTSP
● На LTSP-сервере в среде chroot подготавливается минимальная операционная система на базе Linux и X Window System;
apt-get install ltsp-server-standalone
● Далее на клиенте используется загрузка по сети с PXE, который по протоколу DHCP получает свой ip-адрес и адрес загрузочного сервера (LTSP-сервер). Загрузчик получает ядро и initrd по протоколу TFTP с LTSP-сервера. Ядро заново получает свой ip-адрес и адрес сервера, с которого можно подключить корневую файловую систему (подготовленное заранее в chroot), после чего монтирует его по протоколу Network File System (NFS) либо Network Block Device (NBD)
● Клиент устанавливает SSH-туннель к графическому окружению LTSP-сервера, через который локально запускает LDM (LTSP Display Manager). С этого момента, программы запускаются на LTSP-сервере, а отображаются и управляются на клиенте.
● Возможен локальный запуск приложений на тонком клиенте (утолщение).
● Устанавливаем LTSP сервер, все зависимости включены автоматически:
ltsp-build-client --arch i386 ● Редактируем настройки isc-dhcp-server в
/etc/dhcp/dhcpd.conf
include "/etc/ltsp/dhcpd.conf";● Правим /etc/exports
/opt/ltsp *(ro,no_root_squash,async,no_subtree_check)
/etc/init.d/tftpd-hpa restar; /etc/init.d/isc-dhcp-server
Процесс загрузки● Клиент использует загрузку по сети с PXE, который по
протоколу DHCP получает свой ip-адрес и адрес загрузочного сервера (LTSP-сервер). Загрузчик получает ядро и initrd по протоколу TFTP с LTSP-сервера. Ядро заново получает свой ip-адрес и адрес сервера, с которого можно подключить корневую файловую систему (подготовленное заранее в chroot), после чего монтирует его по протоколу Network File System (NFS) либо Network Block Device (NBD)
● Клиент устанавливает SSH-туннель к графическому окружению LTSP-сервера, через который локально запускает LDM (LTSP Display Manager). С этого момента, программы запускаются на LTSP-сервере, а отображаются и управляются на клиенте.
● Возможен локальный запуск приложений на тонком клиенте (утолщение). Например, mplayer, vlc для воспроизведения видео.
Преимущества
● Windows● Дёшево: мощный сервер приложений и куча слабых
nettop-ов или просто старых компьютеров с поддержкой netboot.
● Бесплатные приложения. Открытая лицензия сервера GPLv2.
● Простота обслуживания: один раз настраиваем сервер. Ставим всё необходимое ПО. Создаем пользователей, раздаем права. Больше никаких «у меня не открывается word или у меня не работает принтер».
● Безопасность- Вирусы. Удаленное управление через ssh.
А как же Виндовс???
● VirtualBox-Oracle● KVM(Kernel-based Virtual Machine)-RedHat ● Xen(кроссплатформенный монитор
виртуальных машин)-The Xen Project● vmware(дорого, круто, сложно)
Виртуализация
● VirtualBox-бесплатно, просто, сердито, медленно. Поэтому я его и выбрал.
● Конечно более привлекательно смотрится xen, так как паравиртуализация делает его очень быстрым. Он разработан специально для разворачивания сервера виртуальных машин. Он используется как компонент в облачных вычислениях.
● Vmvare предлагает очень много решений для разворачивания облаков, но это дорого.
Настройка Virtualbox
● Собственно говоря это всё. Теперь, как обычно, из графического интерфейса создаем виртуальные машины.
● Добавляем extention-pack для возможности подключения к виртуальным машинам через rdesktop.
● Кто-то спросит: «Но как же так? А если на сервере нет X-system, тогда как будет работать виртуалбокс?»
apt-get install virtualbox
VBoxHeadless -s "Ubuntu"
● Кроме того, можно создавать образы машин из tty удалено, что очень удобно.
● Теперь мы можем подключиться к машине:
Rdesktop localhost:3389
VirtualBox+LTSP
● Вы действительно подумали, что клиент будет запускать X-сиссию на сервере, чтобы потом запустить себе VBox? Нет конечно, можно устроить так, чтобы сотрудник даже и не знал что он в виртуалке, под линуксом и еще где-то на сервере. Для этого нужно man lts.conf .ltsp-chroot; nano /etc/lts.conf
● Память сервера: 2Gb+512MB*Users=12Gb(users=20), но на стайте LTSP другой расчет: 256 + (192 * 20) = 256 + 3840 = 4096 MB
● Некоторые проблемы возникают с пробросом портов на usb,com-port,sound. Особенно если человек работает из виртуальной машины.
● Интернет работает очень быстро, можно смотреть даже YouTube 720p, но по какой-то непоятной причине обычное локальное выидео воспоизводится с ужасными фризами.
Итог.
А как же управление?
● Дело в том, что за время своего развития, LTSP дорос до того что у него появилась возможность создавать кластер серверов, с балансировщиком нагрузки и даже Web-интерфейсом! Перечислю некоторые компоненты кластера.
● Load Balancer Server — главный сервер контроля нагрузки, следящий за всеми подключёнными серверами приложений.
● Control Center (Web Interface) — веб-интерфейс, позволяющий получить информацию о подключенных клиентах и нагрузке на сервера. а также произвести некоторые настройки.
● NX Loadbalancer — запускает SSH сервер и следит за подключение пользователя nx в случае необходимости перекидывает его на тот или иной сервер.
Мистика!
● Самое интересное -это Windows Applications Integration.
● Судя по демо-видео и краткому описанию на сайте, на тонком клиенте запускается Ubuntu сессия, и из нее можно запускать приложения с Windows Terminal Server и выводить как родное приложение.
Литература● https://www.ltsp-cluster.org/● http://www.ltsp.org/● http://habrahabr.ru/post/142963/
виртуализация● http://habrahabr.ru/post/126476/ История
успеха-запуск 200 тонких клиентов на ltsp● http://wiki.debian.org/LTSP/Howto● Man lts.conf● https://www.virtualbox.org/
top related