Различия между версиями 25 и 26
Версия 25 от 2008-07-13 00:01:01
Размер: 12174
Редактор: MaximByshevskiKonopko
Комментарий:
Версия 26 от 2008-07-13 00:01:45
Размер: 12259
Редактор: MaximByshevskiKonopko
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 8: Строка 8:
Заметим, что на терминальном сервере основной конфигуратор системы - альтератор --- претерпел некоторые изменения (ср. [[PspoClasses/080704/03ConfigPractice]]), в частности, раздел настройки сети. Заметим, что на терминальном сервере основной конфигуратор системы - альтератор --- претерпел некоторые изменения (ср. [[PspoClasses/080704/03ConfigPractice|Настройка с использованием Центра управления]]), в частности, раздел настройки сети.

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

Рассмотрим теперь особенности терминального сервера с точки зрения администратора.

Заметим, что на терминальном сервере основной конфигуратор системы - альтератор --- претерпел некоторые изменения (ср. Настройка с использованием Центра управления), в частности, раздел настройки сети.

../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

51

1

1

1

1

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


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

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