Различия между версиями 14 и 15
Версия 14 от 2008-07-10 14:45:01
Размер: 11658
Комментарий:
Версия 15 от 2008-07-10 14:48:02
Размер: 11663
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 74: Строка 74:
Наконец, расмотрим NFS, network file system, специальный протокол сетевой ФС. На NFS-серверах находятся корневые ФС клиентов. Делается это следующим образом: в GNU/Linux для подключения сетевых томов NFS используется по умолчанию. Отличительные особенности NFS: Наконец, расмотрим NFS, network file system, специальный протокол сетевой ФС. Сервис, который обеспечивает NFS, называется unfsd, который представляет из себя урезанную версию обычного nfsd. На NFS-серверах находятся корневые ФС клиентов. Происходит это следующим образом: в GNU/Linux для подключения сетевых томов NFS используется по умолчанию. Отличительные особенности NFS:
Строка 82: Строка 82:
 * no_root_squash --- отключение squashing'а, то есть обработки запросов от клиентов с UID=0 как запросов от пользователя nobody. Но, опять же, запросы только на чтение. Сервис, который обеспечивает NFS, называется unfsd, который представляет из себя урезанную версию обычного nfsd.  * 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.

Наконец, расмотрим 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 по сети, довольно проста:

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

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

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


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

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

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

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

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

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

Level

Maintainer

Start date

End date

25

1

1

1

1

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


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

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