linux terminal server project

27
01.01.13 Организация ТЕРМИНАЛЬНОЙ информационной системы Выполнил: Сиганов Илья СБС-001-О А так же виртуализация

Upload: ilya-siganov

Post on 13-Jan-2017

37 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Linux Terminal Server Project

01.01.13

Организация ТЕРМИНАЛЬНОЙ информационной системы

Выполнил: Сиганов Илья СБС-001-О

А так же виртуализация

Page 2: Linux Terminal Server Project

Проблемы?● KIS 2013 тормозит на старых компах?● Вам не хочется переставлять WinME/XP

каждый месяц?● Почему-то вам звонят каждый день и

говорят «у меня не работает принтер»?● Хочется настроить что-то один раз, а

потом даже и не вспоминать?● Вы хотите устроить тотальную слежку?

Тогда вас заинтересует моё предложение.

● Появился новый сотрудник и ему срочно нужен компьютер с готовой к работе ОС?

● KIS 2013 тормозит на старых компах?● Вам не хочется переставлять WinME/XP

каждый месяц?● Почему-то вам звонят каждый день и

говорят «у меня не работает принтер»?● Хочется настроить что-то один раз, а

потом даже и не вспоминать?● Вы хотите устроить тотальную слежку?

Тогда вас заинтересует моё предложение.

Page 3: Linux Terminal Server Project

Что нам необходимо.

● 20 штук тонких клиентов Pentium III,IV или Celeron. Можно даже без жестких дисков!!

● Один сервер на Intel i7. RAID массив жестких дисков. Возможно пригодится слабенкий компьютер для резервных копий.

● Коммутатор с гигабитной линией до сервера и 100мбитной до клиентов.

Page 4: Linux Terminal Server Project

Размышления

● Первые 3 проблемы решаются установкой linux для слабых машин.

● Но как же тотальная слежка и настроить всё и сразу?

● Тогда моё предложение- создать терминальный сервер и запускать тонкие клиенты через сеть!

Page 5: Linux Terminal Server Project

Учите матчасть!!

PXEPXE BOOT BOOT TPTP

WAKE-WAKE-ON-LANON-LAN

VirtualizVirtualizationation

TFTPTFTPLTSPLTSP

Page 6: Linux Terminal Server Project

PXE

● Preboot eXecution Environment● Это cреда для загрузки компьютеров с помощью сетевой карты

без использования жёстких дисков, компакт-дисков и других устройств. Для организации загрузки системы в PXE используются протоколы IP, UDP, BOOTP и TFTP.

● PXE-код, обычно находящийся в ПЗУ сетевой карты, получает из сети по протоколу TFTP (получив адрес TFTP-сервера по BOOTP) исполняемый файл, после чего передаёт ему управление.

● Одна из реализаций загружаемого по PXE файла — pxelinux из комплекта программ syslinux. Умеет показывать пользователю меню, похожее на меню syslinux и загружать по сети и передавать управление ядру Linux и программам, имеющим идентичный формат загрузки (например, Memtest86).

Page 7: Linux Terminal Server Project

Немного магии● Wake-on-LAN● Технология, позволяющая

удалённо включить компьютер посредством отправки через локальную сеть специальной последовательности байтов — пакета данных (так называемого magic packet — «волшебного пакета»)

● Это можно сделать, например, с помощью другого компьютера с соответствующей программой

Page 8: Linux Terminal Server Project
Page 9: Linux Terminal Server Project

BOOTP● Bootstrap Protocol● Cетевой протокол, используемый для автоматического

получения клиентом IP-адреса. Это обычно происходит во время загрузки компьютера.

● BOOTP позволяет бездисковым рабочим станциям получать IP-адрес прежде, чем будет загружена полноценная операционная система. Исторически это использовалось для Unix-подобных бездисковых станций, которые в том числе могли получать информацию о местоположении загрузочного диска посредством этого протокола. А также большими корпорациями для установки предварительно настроенного программного обеспечения (например, операционной системы) на новоприобретённые компьютеры.

● Данный протокол поддерживается BIOS на современных мат.платах и сетевых картах.

Page 10: Linux Terminal Server Project

TFTP

● Trivial File Transfer Protocol● TFTP, в отличие от FTP, не содержит возможностей

аутентификации (хотя возможна фильтрация по IP-адресу) и основан на транспортном протоколе UDP.

● Безопасность?● Демон tftpd отказывается обрабатывать файлы, содержащие

в своём имени комбинацию «/../» или начинающуюся с «../». Запись разрешается только в файлы, которые уже существуют (любого размера, например нулевого), и доступны для публичной записи (права доступа: -rw-rw-rw-).

Page 11: Linux Terminal Server Project
Page 12: Linux Terminal Server Project

Что дальше?

● Очевидно, из определений протоколов следует, что нам нужен особый сервер. Что же он должен уметь?

● DHCP-сервер для обеспечения BOOTP● TFTPD-сервер● NFS & Samba● WOL скрипт● И какая-то операционная система, которая

будет отпавляться тонким клиентам!!!

Page 13: Linux Terminal Server Project

The Linux Terminal Server Project-добавляет поддержку тонких клиентов серверу Linux. Это гибкое, недорогое решение для запуска тонких клиентов в школах(см. Edubuntu) и на предприятиях. Тонкие клиенты используются для веб-сёрфинга, офисных работ- e-mail, office, icq,и для обучения.

Page 14: Linux Terminal Server Project

Процесс настройки 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

Page 15: Linux Terminal Server Project

Процесс загрузки● Клиент использует загрузку по сети с PXE, который по

протоколу DHCP получает свой ip-адрес и адрес загрузочного сервера (LTSP-сервер). Загрузчик получает ядро и initrd по протоколу TFTP с LTSP-сервера. Ядро заново получает свой ip-адрес и адрес сервера, с которого можно подключить корневую файловую систему (подготовленное заранее в chroot), после чего монтирует его по протоколу Network File System (NFS) либо Network Block Device (NBD)

Page 16: Linux Terminal Server Project

● Клиент устанавливает SSH-туннель к графическому окружению LTSP-сервера, через который локально запускает LDM (LTSP Display Manager). С этого момента, программы запускаются на LTSP-сервере, а отображаются и управляются на клиенте.

Page 17: Linux Terminal Server Project

● Возможен локальный запуск приложений на тонком клиенте (утолщение). Например, mplayer, vlc для воспроизведения видео.

Page 18: Linux Terminal Server Project

Преимущества

● Windows● Дёшево: мощный сервер приложений и куча слабых

nettop-ов или просто старых компьютеров с поддержкой netboot.

● Бесплатные приложения. Открытая лицензия сервера GPLv2.

● Простота обслуживания: один раз настраиваем сервер. Ставим всё необходимое ПО. Создаем пользователей, раздаем права. Больше никаких «у меня не открывается word или у меня не работает принтер».

● Безопасность- Вирусы. Удаленное управление через ssh.

Page 19: Linux Terminal Server Project

А как же Виндовс???

● VirtualBox-Oracle● KVM(Kernel-based Virtual Machine)-RedHat ● Xen(кроссплатформенный монитор

виртуальных машин)-The Xen Project● vmware(дорого, круто, сложно)

Page 20: Linux Terminal Server Project

Виртуализация

● VirtualBox-бесплатно, просто, сердито, медленно. Поэтому я его и выбрал.

● Конечно более привлекательно смотрится xen, так как паравиртуализация делает его очень быстрым. Он разработан специально для разворачивания сервера виртуальных машин. Он используется как компонент в облачных вычислениях.

● Vmvare предлагает очень много решений для разворачивания облаков, но это дорого.

Page 21: Linux Terminal Server Project

Настройка Virtualbox

● Собственно говоря это всё. Теперь, как обычно, из графического интерфейса создаем виртуальные машины.

● Добавляем extention-pack для возможности подключения к виртуальным машинам через rdesktop.

● Кто-то спросит: «Но как же так? А если на сервере нет X-system, тогда как будет работать виртуалбокс?»

apt-get install virtualbox

VBoxHeadless -s "Ubuntu"

Page 22: Linux Terminal Server Project

● Кроме того, можно создавать образы машин из tty удалено, что очень удобно.

● Теперь мы можем подключиться к машине:

Rdesktop localhost:3389

Page 23: Linux Terminal Server Project

VirtualBox+LTSP

● Вы действительно подумали, что клиент будет запускать X-сиссию на сервере, чтобы потом запустить себе VBox? Нет конечно, можно устроить так, чтобы сотрудник даже и не знал что он в виртуалке, под линуксом и еще где-то на сервере. Для этого нужно man lts.conf .ltsp-chroot; nano /etc/lts.conf

Page 24: Linux Terminal Server Project

● Память сервера: 2Gb+512MB*Users=12Gb(users=20), но на стайте LTSP другой расчет: 256 + (192 * 20) = 256 + 3840 = 4096 MB

● Некоторые проблемы возникают с пробросом портов на usb,com-port,sound. Особенно если человек работает из виртуальной машины.

● Интернет работает очень быстро, можно смотреть даже YouTube 720p, но по какой-то непоятной причине обычное локальное выидео воспоизводится с ужасными фризами.

Итог.

Page 25: Linux Terminal Server Project

А как же управление?

● Дело в том, что за время своего развития, LTSP дорос до того что у него появилась возможность создавать кластер серверов, с балансировщиком нагрузки и даже Web-интерфейсом! Перечислю некоторые компоненты кластера.

● Load Balancer Server — главный сервер контроля нагрузки, следящий за всеми подключёнными серверами приложений.

● Control Center (Web Interface) — веб-интерфейс, позволяющий получить информацию о подключенных клиентах и нагрузке на сервера. а также произвести некоторые настройки.

● NX Loadbalancer — запускает SSH сервер и следит за подключение пользователя nx в случае необходимости перекидывает его на тот или иной сервер.

Page 26: Linux Terminal Server Project

Мистика!

● Самое интересное -это Windows Applications Integration.

● Судя по демо-видео и краткому описанию на сайте, на тонком клиенте запускается Ubuntu сессия, и из нее можно запускать приложения с Windows Terminal Server и выводить как родное приложение.

Page 27: Linux Terminal Server Project

Литература● 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/