Различия между версиями 21 и 22
Версия 21 от 2008-07-12 23:11:00
Размер: 12015
Комментарий:
Версия 22 от 2008-07-12 23:33:14
Размер: 12179
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 57: Строка 57:
Перейдем к настройке TFTP. Он запускается по умолчанию. Всё, что можно сделать при помощи tftp --- скачать определённый файл. Если у нас работает PXE, то скачивается `pxelinux.0`. Это загрузчик, он является частью syslinux. После того, как он загружается на рабочей машине, Pxelinux.0 совершает некоторые действия. В первую очередь, он скачивает настроечный файл, отобранный следующим образом: сначала он перебирает настроечные файлы, соответствующие IP, затем полному MAC-адресу и его частям (при необходимости разных сценариев загрузки для разных групп машин). В директории `/var/lib/tftpboot/ltsp/i586/` лежат все файлы, которые передаются по tftp, в `pxelinux.cfg/default` находится настроечный файл, использующийся по умолчанию. Он выглядит так: Перейдем к настройке TFTP. Он запускается по умолчанию. Всё, что можно сделать при помощи TFTP --- скачать определённый файл. Если у нас работает PXE, то скачивается `pxelinux.0`. Это загрузчик, он является частью syslinux. После того, как он загружается на рабочей машине, Pxelinux.0 совершает некоторые действия. В первую очередь, он скачивает настроечный файл, отобранный следующим образом: сначала он перебирает настроечные файлы, соответствующие IP, затем полному MAC-адресу и его частям (при необходимости разных сценариев загрузки для разных групп машин). В директории `/var/lib/tftpboot/ltsp/i586/` лежат все файлы, которые передаются по TFTP, в `pxelinux.cfg/default` находится настроечный файл, использующийся по умолчанию. Он выглядит так:
Строка 65: Строка 65:
Итак, после выполнения загрузчика (`pxelinux.0`) грузится ядро, initrd, подключается корневая ФС по сети и оттуда происходит дальнейший старт клиента. Итак, после выполнения загрузчика (`pxelinux.0`) запускается ядро, initrd (временная файловая система), подключается корневая файловая система по сети и оттуда происходит дальнейший запуск клиента.
Строка 67: Строка 67:
Возвращаемся к тому, что происходит дальше. Дальше происходит автоматическое обновление DNS, значит, DNS тоже настроен. В качестве DNS-сервера используется avahi-daemon. Вообще, Avahi --- реализация протокола Zeroconf, позволяющего пользователям создавать IP-сети без DNS-серверов. Об этом уже было рассказано раньше. Дальше происходит автоматическое обновление DNS, значит, DNS тоже настроен. В качестве DNS-сервера используется avahi-daemon. Вообще, Avahi --- реализация протокола Zeroconf, позволяющего пользователям создавать IP-сети без DNS-серверов. Об этом уже было рассказано раньше.
Строка 69: Строка 69:
Наконец, расмотрим NFS, network file system, специальный протокол сетевой ФС. Сервис, который обеспечивает NFS, называется unfsd, который представляет из себя урезанную версию обычного nfsd. На NFS-серверах находятся корневые ФС клиентов. Происходит это следующим образом: в GNU/Linux для подключения сетевых томов NFS используется по умолчанию. Отличительные особенности NFS:
 * Во-первых, он реализован поверх udp с соответствующими ограничениями udp. То есть, NFS-клиент и NFS-сервер обмениваются друг с другом датаграммами, и тот факт, что операция записи не прошла или что случилось, отслеживается на уровне прикладном, а не транспортном. Однако внутри NFS есть много интересного: NFS является идиопатентной, то есть несколько одинаковых действиях выполняются как одно. Единственная трудно решаемая проблема --- блокировки. Раньше никаких блокировок не было, потом появился nfslockd.
 * Вторая особенность --- уровень доверия в NFS вынесен на уровень IP. То есть машина некоторым IP либо имеет доступ к NFS, либо нет. Так было в NFS 2 и 3, так же и в NFS 4.( Когда говорится хост --- читай, пользователь root на хосте.) Другое дело, что в случае тонких клиентов мы отдаём кому угодно ФС, но только на чтение, то есть всё в порядке. Соответственно, настройка NFS-сервера, программы, которая раздаёт NFS по сети, довольно проста:
Наконец, расмотрим NFS, network file system, специальный протокол сетевой файловой системы. Сервис, который обеспечивает NFS, называется unfsd, который представляет из себя урезанную версию обычного nfsd. На NFS-серверах находятся корневые файловые системы клиентов. Происходит это следующим образом: в GNU/Linux для подключения сетевых томов NFS используется по умолчанию. Отличительные особенности NFS:
 * Во-первых, он реализован поверх UDP с соответствующими ограничениями UDP. То есть, NFS-клиент и NFS-сервер обмениваются друг с другом датаграммами, и тот факт, что операция записи не прошла или что-то случилось, отслеживается на уровне прикладном, а не транспортном. Стоит отметить NFS является идиолатентной, то есть несколько одинаковых действий выполняются как одно. Единственная трудно решаемая проблема --- проблема блокировки. Раньше их вообще не было, потом появился nfslockd.
 * Вторая особенность --- уровень доверия в NFS вынесен на уровень IP. То есть машина некоторым IP либо имеет доступ к NFS, либо нет. Так было в NFS 2 и 3, так же и в NFS 4. Другое дело, что в случае тонких клиентов мы предоставляем файловую систему любому клиенту, но только на чтение, то есть проблема с блокировкой решается автомитически. Соответственно, настройка NFS-сервера, программы, которая раздаёт NFS по сети, довольно проста:
Строка 75: Строка 75:
Слева указан путь, справа --- список хостов и параметры в скобках через запятую. Если списка хостов нет, то это означает доступ для всех. Рассмотри значение написанного выше: Слева указан путь, справа --- список хостов и параметры в скобках через запятую. Если списка хостов нет, то это означает доступ для всех. Здесь под хостом подразумевается пользователь root на данном хосте. Поясним некоторые из параметров:
Строка 77: Строка 77:
 * no_root_squash --- отключение squashing'а, то есть обработки запросов от клиентов с UID=0 как запросов от пользователя nobody. Но, опять же, запросы только на чтение.  * no_root_squash --- отключение squashing'а, то есть обработки запросов от клиентов с UID=0 как запросов от пользователя nobody. Но, опять же, имеются в виду запросы только на чтение.

Терминальный сервер со стороны администратора

Дмитрий, в связи со сложившейся обстановкой взяла твой модуль с тем, чтобы отдать тебе свой (соседний). Подробности --- в рассылке. --- ОльгаТочилкина

Рассмотрим теперь особенности терминального сервера с точки зрения администратора. Перейдем к рассмотрению различных его служб.

Рассмотрим основной конфигуратор системы - альтератор, в частности, раздел настройки сети.

../terminal_server_alterator_network.png

Для правильного функционирования терминальной сети необходимо правильно настроить DHCP для загрузки тонких клиентов (напомним, что тонким клиентом называют компьютер-клиент сети с терминальной архитектурой, который переносит все задачи по обработке информации на терминальный сервер). Для этого отредактируем файл /etc/DHCP/dhcpd.conf.

ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;

option option-128 code 128 = string;
option option-129 code 129 = string;

use-host-decl-names on;

next-server 192.168.0.1;

subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.20 192.168.0.250;
    option domain-name "example.com";
    option domain-name-servers 192.168.0.1;
    option broadcast-address 192.168.0.255;
    option routers 192.168.0.1;
    option subnet-mask 255.255.255.0;
    option root-path "192.168.0.1:/var/lib/ltsp/i586";
    if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/i586/pxelinux.0";
    } else if substring( option vendor-class-identifier, 0, 9 ) = "Etherboot" {
        filename "/ltsp/i586/nbi.img";
        #filename "/ltsp/i586/pxelinux.0";
    } else {
        option-129 = " initrd=/ltsp/i586/initrd.img";
        filename "/ltsp/i586/vmlinuz";
    }
}

subnet 10.0.2.0 netmask 255.255.255.0 {}

Здесь объявлена внешняя сеть и присутствует большой блок ее описания. Из всех параметров отметим отметим несколько особенностей:

  • Обратите внимание, что здесь присутствует адрес next-server'а (это TFTP-сервер, с которого клиенты получают загрузочные файлы; он может не совпадать с DHCP-сервером)
  • Посмотрим на if. Мы знаем, что в процессе загрузки по PXE клиент получает несколько настроек, в числе которых IP, машрутизация, DNS. Кроме того, предоставляется имя файла с загрузчиком на сервере TFTP. Обратите внимание, что параметр filename встречается трижды: формат конфигурации DHCP довольно сложный, и в ней могут встречаться условные операторы. В данном случае, условный оператор выбирает разные загрузочные файлы в зависимости от клиента.
  • На самом деле, на этом не заканчиваются те настройки, которые можно передать по DHCP. При сетевой загрузке можно реализовать подключение сетевых дисков. Происходит это так: по сети подключается диск, который передаётся параметром option root_path. В этом каталоге находится корневая файловая система, которая подключается к сети как корневая файловая система для клиента.

Если у вас не работает загрузка по сети (ваша сетевая карта не поддерживает PXE), то необходимо воспользоваться rom-o-matic.net (он же Etherboot). Он позволяет изготовить bootrom для сетевой карты. Это значит, что для конкретной карты можно сгенерировать образ, который можно доставить на компьютер при помощи различных носителей информации или записав в BIOS или в загрузочную запись.

Перейдем к настройке TFTP. Он запускается по умолчанию. Всё, что можно сделать при помощи TFTP --- скачать определённый файл. Если у нас работает PXE, то скачивается pxelinux.0. Это загрузчик, он является частью syslinux. После того, как он загружается на рабочей машине, Pxelinux.0 совершает некоторые действия. В первую очередь, он скачивает настроечный файл, отобранный следующим образом: сначала он перебирает настроечные файлы, соответствующие IP, затем полному MAC-адресу и его частям (при необходимости разных сценариев загрузки для разных групп машин). В директории /var/lib/tftpboot/ltsp/i586/ лежат все файлы, которые передаются по TFTP, в pxelinux.cfg/default находится настроечный файл, использующийся по умолчанию. Он выглядит так:

DEFAULT vmlinuz ro initrd=initrd.img root=/dev/nfs nfsroot=/var/lib/ltsp/i586,udp ip=dhcp

Синтаксис здесь такой же, как и везде в syslinux. Мы видим, что ядро специфическое, используется специфический root. Отметим, что параметр nfsroot указывает, где находится корневая ФС.

(В принципе, вовсе не обязательно компилировать NFS-клиент в ядро, можно сделать аналогичный настроечный файл с обычным ядром.)

Итак, после выполнения загрузчика (pxelinux.0) запускается ядро, initrd (временная файловая система), подключается корневая файловая система по сети и оттуда происходит дальнейший запуск клиента.

Дальше происходит автоматическое обновление DNS, значит, DNS тоже настроен. В качестве DNS-сервера используется avahi-daemon. Вообще, Avahi --- реализация протокола Zeroconf, позволяющего пользователям создавать IP-сети без DNS-серверов. Об этом уже было рассказано раньше.

Наконец, расмотрим NFS, network file system, специальный протокол сетевой файловой системы. Сервис, который обеспечивает NFS, называется unfsd, который представляет из себя урезанную версию обычного nfsd. На NFS-серверах находятся корневые файловые системы клиентов. Происходит это следующим образом: в GNU/Linux для подключения сетевых томов NFS используется по умолчанию. Отличительные особенности NFS:

  • Во-первых, он реализован поверх UDP с соответствующими ограничениями UDP. То есть, NFS-клиент и NFS-сервер обмениваются друг с другом датаграммами, и тот факт, что операция записи не прошла или что-то случилось, отслеживается на уровне прикладном, а не транспортном. Стоит отметить NFS является идиолатентной, то есть несколько одинаковых действий выполняются как одно. Единственная трудно решаемая проблема --- проблема блокировки. Раньше их вообще не было, потом появился nfslockd.
  • Вторая особенность --- уровень доверия в NFS вынесен на уровень IP. То есть машина некоторым IP либо имеет доступ к NFS, либо нет. Так было в NFS 2 и 3, так же и в NFS 4. Другое дело, что в случае тонких клиентов мы предоставляем файловую систему любому клиенту, но только на чтение, то есть проблема с блокировкой решается автомитически. Соответственно, настройка NFS-сервера, программы, которая раздаёт NFS по сети, довольно проста:

/var/lib/ltsp/i586       (ro,no_root_squash,async)

Слева указан путь, справа --- список хостов и параметры в скобках через запятую. Если списка хостов нет, то это означает доступ для всех. Здесь под хостом подразумевается пользователь root на данном хосте. Поясним некоторые из параметров:

  • ro --- readonly,
  • no_root_squash --- отключение squashing'а, то есть обработки запросов от клиентов с UID=0 как запросов от пользователя nobody. Но, опять же, имеются в виду запросы только на чтение.


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

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

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

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

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

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

Level

Maintainer

Start date

End date

40

1

1

1

1

MaximByshevskiKonopko, ОльгаТочилкина


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

PspoClasses/080709/03TerminalServer (последним исправлял пользователь MaximByshevskiKonopko 2008-10-09 21:39:51)