Differences between revisions 6 and 7
Revision 6 as of 2008-07-10 11:45:26
Size: 14220
Comment:
Revision 7 as of 2008-07-10 12:57:19
Size: 18675
Comment:
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
 *Второе --- в этом сервере должны быть две сетевых карты, причем eth0 должна смтореть в внешний интернет, а другая --- в локальную сеть - класс которому вы раздаете загрузку. Настраиваються они следующим образом: внешняя карта должна быть настроена статически, или необходимо совершать некие упражнения для того чтобы сам сервер получал настройки например по DHCP. Вкратце надо узнать настройки, затем настроить статически при установке, а затем убрать и перенастроить на DHCP.
Вторая сетевая карта обязана быть настроена единственным способом (адрес должен быть 192.168.0.1).
 *Второе --- в этом сервере должны быть две сетевых карты, причем eth0 должна смтореть в внешний интернет, а другая  в локальную сеть - точнее в класс которому вы раздаете загрузку. Настраиваються они следующим образом: внешняя карта должна быть настроена статически, или необходимо совершать некие упражнения для того чтобы сам сервер получал настройки например по DHCP. Если вкратце  то надо узнать настройки, затем настроить статически при установке, а затем убрать и перенастроить на DHCP.  Вторая сетевая карта обязана быть настроена единственным способом (адрес должен быть 192.168.0.1).
Line 15: Line 14:
Запустим клиент. что должен сделать системный администратор для настройки клиента.
1. а всех машинах- терминалах должнв быть настроена сетевая загрузка, причём, желательно, по умолчанию. Администратор
также должен обеспечить, чтобюы клиенты и сервер были в одной СПД. Сетевых загрузок бывает несколько видов, нам нужна
та, которая называеться PXE. По сути, это встроенный в сетевую карту достаточно полный большой клиент dhcp, bootp для
получения IP-адреса и tftp для скачивания первичного загрузчика.  
Запустим клиент.
Ч
то должен сделать системный администратор для настройки клиента?
1. а всех машинах- терминалах должнв быть настроена сетевая загрузка, причём, желательно, по умолчанию. Администратор также должен обеспечить, чтобюы клиенты и сервер были в одной СПД. Сетевых загрузок бывает несколько видов, нам нужна та, которая называеться PXE. По сути, это встроенный в сетевую карту достаточно полный большой клиент dhcp, bootp для получения IP-адреса и tftp для скачивания первичного загрузчика.
Line 23: Line 20:
Как видите подсказка у логина та
же самая, но удалённый XDM знает, что к нему подключились не с локальной машины, поэтому в меню другой
состав.
Как видите подсказка у логина та же самая, но удалённый XDM знает, что к нему подключились не с локальной машины, поэтому в меню другой состав.
Line 28: Line 23:
{{attachment:../terminal_server_login.png}}
Line 33: Line 27:
Какие проблемы с этим связаны: проблема с разд. ресурсов и проблема с доступом к ресурсам. Какие проблемы с этим связаны:
 *Проблема с разделением ресурсов- разделение на уровне пользователей. Если у вас в компьютерном зале 4 компьютера и один сервер то 4 пользователя работающие одновременно на одном сервере запускают соответственно 4 комплекта ПО. Если 24 компьютера и один сервер, то 24. Когда пользователи запускают n комплектов ПО, то они потребляют без малого n обьемов оперативной памяти и едят без малого n промежутков процессорного времени и генерируют n потоков обмена данными с диском.
 Практика эксплуатирования терминальных классов показывает, что для того чтобы нормально работать пользователям (большой документ в OOffice и Firefox с несколькими вкладками) надо оперативной памяти примерно 256 мб под сервер плюс 8 клиентов по 256 мб(c KDE или аналогичной DE ) и еще 8 по 128 мб(например с xfce).Замеров загрузки ЦП и обращений к диску не провадилось. Хотя опыт показывает что вместо одного диска лучше использовать RAID. Мораль --- если есть класс достаточно
 старых компьютеров и есть возможность купить современную нормальную машину, то это хорошее решение задачи.
 *проблема с доступом к ресурсам на уровне машин.
 Мы решили ровно одну проблему --- мы разделили запуск задач и ввод/вывод, но ввод\вывод исключительно связанный с графической подсистемой X11. Все что связанно с X11 отлично разделяеться на клиенте и сервере - задача запускается на машине-сервере, а ввод\вывод X11 - на рабочей станции. Но таким образом не решаются следующие проблемы:
  *если например программа звук играет, то играть она будет на машине-сервере.
  *Однако гораздо интереснее момент, когда полоьзователь поработал, достал из кармана флешку и вставил её в ... рабочую станцию. Между тем все файлы с которыми он работал, все что он видит на экране работает на сервере. А ввод\вывод на флашку надо осуществять на клиенте.
Line 35: Line 36:
Про разделение. Если у вас в комп. зале 4 компьютера, то 4 комплекта ПО, если 24, то 24. Кгда пользователи запускают n комплектов ПО, то они потребляют n комплектов памяти и едят n отрезков времени и генерируют n потоков обращения к диску. Практика эксплдуатирования терм. классов показывает, что нормально работать пользователям (большой документ в оофисе и фаерфокс с несколькими вкладками) надо 256 метров под сервер, и на каждыцй клиент по 256 (для xfce -- по 128). Мораль --- если есть класс достаточно старых компьютеров и есть возможность купить нормальную машину, то это хорошее решение задачи. Но на этом грабли не кончаются.  Есть два способа решения задачи:
  *первое --- по окончании работы все пользователи выстраиваются в очередь к администратору с флешками. Это решение на самом деле вполне реально если у вас учебный класс.
  *Для решения этой проблемы в терминале проделана дополнительная работа. /* {{вставить typescript}} */ Если посмотреть на mount, обратите внимание на последнюю строчку. Это некое волшебное действие, которое произв. на сервере, чтобы возратить имеющееся устройство обратно на клиент. То есть у пользователя будет в домашнем каталоге подкаталог drives, а в нем соответствующий подкаталог floppy0, который будет сответствовать дискетке подключенной к теринальному клиенту.
Line 37: Line 40:
Мы решили ровно одну проблему --- мы разделили запуск задач и В/В, но только связанный с X11. Не решаются какие проблемы: если программа звук играет, то играть она будет на сервере. Но это ладно, гораздо интереснее момент, когда полоьзователь решил скинуть файлы на флешку. Есть два спосба решения задачи: первое --- все пользователи выстраиваются в очередь к администратору с флешками. Для этог в терминале проделана дополнительная работа. Если посмотреть на mount, обратите внимание на последнюю строчку. Это некое волшебное действие, которое произв. на сервере, чтобы возратить имеющееся устройство обратно на клиент. То есть у польз. будет каталог drives, а у него подкаталог floppy0, который будет сответствовать его дискетке. ##{{скриншот}}
Line 39: Line 42:
На скриншоте виден этот файл под названием floppy и иконка на панели "неподключённый диск". Другое дело, что мы не можем его сейчас вставить. Идея состоит в следующем: устройство, подключённое к локальной машине, то есть к рабочей станции, неким образом (с помощью fuse) прокидивается на сервер, чему соответствует эта строка. Тем самым, когда запускаете на сервере программу, которая лезет туда, она лезет на рабочую станцию. Аналогично с диском. Для нелюбознательного пользователя это выгляит как работа с обычной машиной. Хитрость в том, чт всё работает на сервере, и доступен он путём обратного проброса. Посмотрим ещё раз mount. То же самое творится со звуком. Но со звуком лектор уже имел некое неприятное упражнение. Тут есть одна непр. особенность, которая состит в следующем: из-за того, что работа со звуком в разных юних-системах устроена немного по-разнму, то не все программы могут со звуком работать. Тут используется ESD. Проброс звука делается след. образом: для тех программ, которые умеют исп. не конкретные устройства (/dev/dsp), дл них исп. самый постой из всех возм. способов. На клиентской машине запускается ESD, это всего лишь программа, которая принимает подклю. по сети, он связаны с проигр. звука. На сервере у польз. указывается переменная ESPEAKER, которая указывает, куда программам пдключаться. Все рпограммы, которые скомпилированы с libesd, они работают. Для тех машин, которые не умеют это делать, а умеют pulseaudio, запускается ещё и pulseaudio-сервер. Наше счастье, что на сервере не было звуоковй карты. Все программы, которые работают с alsa, ни тоже работают по сети. Лектор на это наталкивался, но это лечится очень простым способом --- убить звуковую карту (открутить её, поставить в блеклист модуль), сделать так, чтобы он отсутствовал (например удалить руками в rc.local).      На скриншоте виден этот файл под названием floppy и иконка на панели под названием "неподключённый диск". Идея состоит в следующем: устройство, подключённое к локальной машине, то есть к рабочей станции, неким образом (с помощью fuse) прокидивается на сервер. Собственно именно этому соответствует эта строка. Тем самым, когда вы запускаете на сервере программу, которая обращаеться сюда, в результате она заходит на рабочую станцию к соответствующему каталогу. Аналогично с CD-приводами. Для нелюбознательного пользователя это выглядит как работа с обычной машиной. Хитрость в том, что всё работает на сервере, а диск доступен на сервере именно путём обратного проброса. Посмотрим ещё раз mount.
Line 41: Line 44:
Речь о терминалсервере идёт в двух случаях: эксплуатация старого железа. Есть, правда, один недстаток: современные иксы не работают на s3 trio64. Второй случай --- когда адм. подлежит одна машина, а не все в классе. При этом экономится куча времени. Переустановка ПО делается сама. ##{{скриншот??}}
##1:45:03
Line 43: Line 47:
Ещё один недостаток терминального сервера --- не может быть двух логинов с разных машин. С другой тсороны, на сегодняшний день только Линукс терминал обеспечивает концепцию терминлаьного класса и мобильного места. Реализуется это тем, что у каждого пользователя свои записи, которые заводятся на сервере.     То же самое творится со звуком. Но со звуком есть одна неприятная особенность, которая сосотит в следующем: из-за того, что работа со звуковой подсистемой в разных видах Unix-систем устроена немного по-разнму, далеко не все программы в действительности легко работают с таким пробросом звука на клиент. Для решения используется ESD и PulseAudio. Проброс звука делается следующим образом: для тех программ, которые умеют в качестве выходного устройства использовать не конкретные устройства (/dev/dsp), а предоставляют возможность выбора, для них используеться самый простой из всех возможных способов. На клиентской машине запускается ESD(Enlightened Sound Daemon) --- программа, которая по специальному протоколы принимает подключения по сети( эти подключения связаны с проигрыванием звука) и проигрывает звук. На сервере устанавливается переменная окружения ESPEAKER, которая указывает, тем програмам котоорые умеют работать с ESD что звук надо выводить не на текущую машину, а подключаться по указанному адресу. Все программы, которые скомпилированы с libesd, работают таким образом. Для тех машин, которые не умеют это делать, но умеют работать с pulseaudio, запускается ещё и pulseaudio-сервер,который делает ровнно тоже самое. Все программы, которые работают с alsa с помощью специального плагина для alsa и pulseaudio тоже в итоге работают сетевым образом. Лишь те программы которые по старинке пишут сразу в /dev/dsp работают с /dev/dsp и поэтому звук прокинут быть не может. Поэтому множество запущенных таких программ создают страшную какофонию. Лечится это очень простым способом --- нужно убить звуковую карту на сервере (открутить её, поставить в черный список её модуль), - в общем сделать так чтобы /dev/dsp отсутствовал.
##1:51:41
Речь о терминальном классе идёт в двух случаях:
 *Первый случай --- эксплуатация старого железа.
 *Второй случай --- если ваш рабочий процесс не стардает от использовния терминальных клиентоа, то тогда в итоге
 администрированию подлежит одна машина, а не все в классе. При этом экономится много времени. Переустановка ПО при
 этом как-бы делается сама- что вы на сервере поставили, то сразу на всех клиентах появилось.

Недостатки терминального класса:
 *Современные X Window System не работают например на s3 trio64.
 *Еще один значимый недостаток терминального сервера --- один пользовалтель не может одновременно работать на двух терминальных клиентах.Т.е. при работе через тонкий терминальный клиент каждый сеанс работы(пользователь сидящий за терминальным клиентом) должен использовать использовать отличную от других учетную запись.

 С другой стороны, на сегодняшний день только "Линукс терминал" обеспечивает концепцию терминлаьного класса и мобильного рабочего места. Реализуется это тем, что у каждого пользователя есть личные персональные записи, хранящиеся на сервере, коорые он эксплуатирует и использовать чужие ему не позваляеться. Это делаеться централизованно и абсолютно прозрачно с помощью Альтератора, который заводит пользователей на сервере(потому что больше нигде заводить их не надо).
##2:14:05
Line 51: Line 69:
|| 5 || 1 || 1 || 1 || || 1 || ArtemSerebriyskiy, DmitryChistikov || || || || 15 || 1 || 1 || 1 || || 1 || ArtemSerebriyskiy, DmitryChistikov || || ||

Терминальный сервер со стороны пользователя

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

Времена менялись, и в какой-то момент с появлением ядра 2.6 и виртуальной файловой системы sysfs, а также с изменением политики по оформлению и регистрации драйверов и аппаратного обеспечения машины в ядре линукс необходимость в создании отдельного специфического ядра для клиентов отпала. Например, LiveCD в АльтЛинуксе изготавливаеться из самого обычного ядра с обычными модулями, в общем берётся обычная система. К сожалению , проект LTSP был сильно завязан на уже разработтанную инфраструктуру и систему патчей, и поэтому так просто интегрировать его в обычный дистрибутива не представлялось возможным. Один раз даже кто-то даже собрал LTSP под Альт - это получился большой bundle который надо было выложтить в определенное место, почле чего различные скрипты настраивали нужные сервисы и это начинало как-то работать. Но полной автоматизации достичь было невозможно. Поэтому разработчики проекта который получил название ALTSP - Alt Linux Terminal Server Project - поступлии очень просто --- они частично скопировали инфраструктуру - т.е. структуру настройки сервисов из проекта LTSP, некие технологие, позволяющие осуществлять удалённого выполнение, но никакого специального ядра , никаких специальных хитрых утилит делать не стали, и выяснилось что и без этого все достаточно неплохо работает. Получился специализированный дистрибутив, который устанавливаеться на выделенный сервер - обращаем внимание- на выделенный сервер- т.е. никаких вещей подобных установке ОС Windows паралельно с ALTSP не предусмотренно, установка которого практически ничем не отличается от установки того же Мастера, за двумя исключениями:

  • первое --- раздела установщика под названием "разметка диска" нет, там есть окно в котором написанно примерно следующее - "а сейчас я вам весь диск убью" и галочка "я согласен". Потому что там достаточно хитро надо разметить всё.
  • Второе --- в этом сервере должны быть две сетевых карты, причем eth0 должна смтореть в внешний интернет, а другая в локальную сеть - точнее в класс которому вы раздаете загрузку. Настраиваються они следующим образом: внешняя карта должна быть настроена статически, или необходимо совершать некие упражнения для того чтобы сам сервер получал настройки например по DHCP. Если вкратце то надо узнать настройки, затем настроить статически при установке, а затем убрать и перенастроить на DHCP. Вторая сетевая карта обязана быть настроена единственным способом (адрес должен быть 192.168.0.1).

Больше видимых различий в установке скажем Мастера и ALTSP нет. Ну и другой пакетный набор.

Запустим клиент. Что должен сделать системный администратор для настройки клиента? 1. а всех машинах- терминалах должнв быть настроена сетевая загрузка, причём, желательно, по умолчанию. Администратор также должен обеспечить, чтобюы клиенты и сервер были в одной СПД. Сетевых загрузок бывает несколько видов, нам нужна та, которая называеться PXE. По сути, это встроенный в сетевую карту достаточно полный большой клиент dhcp, bootp для получения IP-адреса и tftp для скачивания первичного загрузчика.

../terminal_client_boot.png

Как видите подсказка у логина та же самая, но удалённый XDM знает, что к нему подключились не с локальной машины, поэтому в меню другой состав.

../terminal_client_login.png ../terminal_client_login_options.png ../terminal_server_login_options.png

Какие проблемы с этим связаны:

  • Проблема с разделением ресурсов- разделение на уровне пользователей. Если у вас в компьютерном зале 4 компьютера и один сервер то 4 пользователя работающие одновременно на одном сервере запускают соответственно 4 комплекта ПО. Если 24 компьютера и один сервер, то 24. Когда пользователи запускают n комплектов ПО, то они потребляют без малого n обьемов оперативной памяти и едят без малого n промежутков процессорного времени и генерируют n потоков обмена данными с диском. Практика эксплуатирования терминальных классов показывает, что для того чтобы нормально работать пользователям (большой документ в OOffice и Firefox с несколькими вкладками) надо оперативной памяти примерно 256 мб под сервер плюс 8 клиентов по 256 мб(c KDE или аналогичной DE ) и еще 8 по 128 мб(например с xfce).Замеров загрузки ЦП и обращений к диску не провадилось. Хотя опыт показывает что вместо одного диска лучше использовать RAID. Мораль --- если есть класс достаточно старых компьютеров и есть возможность купить современную нормальную машину, то это хорошее решение задачи.
  • проблема с доступом к ресурсам на уровне машин. Мы решили ровно одну проблему --- мы разделили запуск задач и ввод/вывод, но ввод\вывод исключительно связанный с графической подсистемой X11. Все что связанно с X11 отлично разделяеться на клиенте и сервере - задача запускается на машине-сервере, а ввод\вывод X11 - на рабочей станции. Но таким образом не решаются следующие проблемы:
    • если например программа звук играет, то играть она будет на машине-сервере.
    • Однако гораздо интереснее момент, когда полоьзователь поработал, достал из кармана флешку и вставил её в ... рабочую станцию. Между тем все файлы с которыми он работал, все что он видит на экране работает на сервере. А ввод\вывод на флашку надо осуществять на клиенте.
    Есть два способа решения задачи:
    • первое --- по окончании работы все пользователи выстраиваются в очередь к администратору с флешками. Это решение на самом деле вполне реально если у вас учебный класс.
    • Для решения этой проблемы в терминале проделана дополнительная работа. Если посмотреть на mount, обратите внимание на последнюю строчку. Это некое волшебное действие, которое произв. на сервере, чтобы возратить имеющееся устройство обратно на клиент. То есть у пользователя будет в домашнем каталоге подкаталог drives, а в нем соответствующий подкаталог floppy0, который будет сответствовать дискетке подключенной к теринальному клиенту.

  • На скриншоте виден этот файл под названием floppy и иконка на панели под названием "неподключённый диск". Идея состоит в следующем: устройство, подключённое к локальной машине, то есть к рабочей станции, неким образом (с помощью fuse) прокидивается на сервер. Собственно именно этому соответствует эта строка. Тем самым, когда вы запускаете на сервере программу, которая обращаеться сюда, в результате она заходит на рабочую станцию к соответствующему каталогу. Аналогично с CD-приводами. Для нелюбознательного пользователя это выглядит как работа с обычной машиной. Хитрость в том, что всё работает на сервере, а диск доступен на сервере именно путём обратного проброса. Посмотрим ещё раз mount.

  • То же самое творится со звуком. Но со звуком есть одна неприятная особенность, которая сосотит в следующем: из-за того, что работа со звуковой подсистемой в разных видах Unix-систем устроена немного по-разнму, далеко не все программы в действительности легко работают с таким пробросом звука на клиент. Для решения используется ESD и PulseAudio. Проброс звука делается следующим образом: для тех программ, которые умеют в качестве выходного устройства использовать не конкретные устройства (/dev/dsp), а предоставляют возможность выбора, для них используеться самый простой из всех возможных способов. На клиентской машине запускается ESD(Enlightened Sound Daemon) --- программа, которая по специальному протоколы принимает подключения по сети( эти подключения связаны с проигрыванием звука) и проигрывает звук. На сервере устанавливается переменная окружения ESPEAKER, которая указывает, тем програмам котоорые умеют работать с ESD что звук надо выводить не на текущую машину, а подключаться по указанному адресу. Все программы, которые скомпилированы с libesd, работают таким образом. Для тех машин, которые не умеют это делать, но умеют работать с pulseaudio, запускается ещё и pulseaudio-сервер,который делает ровнно тоже самое. Все программы, которые работают с alsa с помощью специального плагина для alsa и pulseaudio тоже в итоге работают сетевым образом. Лишь те программы которые по старинке пишут сразу в /dev/dsp работают с /dev/dsp и поэтому звук прокинут быть не может. Поэтому множество запущенных таких программ создают страшную какофонию. Лечится это очень простым способом --- нужно убить звуковую карту на сервере (открутить её, поставить в черный список её модуль), - в общем сделать так чтобы /dev/dsp отсутствовал.

Речь о терминальном классе идёт в двух случаях:

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

Недостатки терминального класса:

  • Современные X Window System не работают например на s3 trio64.
  • Еще один значимый недостаток терминального сервера --- один пользовалтель не может одновременно работать на двух терминальных клиентах.Т.е. при работе через тонкий терминальный клиент каждый сеанс работы(пользователь сидящий за терминальным клиентом) должен использовать использовать отличную от других учетную запись. С другой стороны, на сегодняшний день только "Линукс терминал" обеспечивает концепцию терминлаьного класса и мобильного рабочего места. Реализуется это тем, что у каждого пользователя есть личные персональные записи, хранящиеся на сервере, коорые он эксплуатирует и использовать чужие ему не позваляеться. Это делаеться централизованно и абсолютно прозрачно с помощью Альтератора, который заводит пользователей на сервере(потому что больше нигде заводить их не надо).


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

15

1

1

1

1

ArtemSerebriyskiy, DmitryChistikov


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

PspoClasses/080709/02TerminalClient (last edited 2008-10-09 18:39:06 by MaximByshevskiKonopko)