Различия между версиями 3 и 4
Версия 3 от 2008-08-06 11:32:38
Размер: 20944
Редактор: ConstantinYershow
Комментарий:
Версия 4 от 2008-08-15 12:03:09
Размер: 19744
Редактор: VladimirLysikov
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 2: Строка 2:
Мы перебираемся к такой большй теме, как развертывание класса, и рассказ об этом будет организован послойно.  Мы перебираемся к такой большой теме, как развертывание класса, и рассказ об этом будет организован послойно.
Строка 5: Строка 5:
Терминал-сервер. Лектор вспоминает его, просто чтобы его упомянуть. В состав ПСПО входит 4 дистрибутива: мастер (большой), юниор (средний), лайт (маленький, для дохлых компьютеров) и терминал-сервер для ситуации, когда одна машина нормальная, а остальные никакие. Терминал-сервер содержит в себе концепцию класса, но специфическую, когда никакого администрирования на клиентских машинах не производится, более того, на локальных машинах можно даже не иметь винчестера, главное - научить их загружаться через сеть. Это можно сделать путём сетевой загрузки, по протоколу PXE, а можно подсунуть дискету/сидюк, лишь бы это приводило к тому, что они хотят загружаться из сети. Далее на клиентских машинах разворачивается только х-сервер (та часть графической оболочки, которая умеет рисовать и работает с мышью и клавиатурой) и больше ничего, за исключением всяких хитростей по доступу к флешкам и т.п. После чего эти машины подключаются по протколу взаимодействия графических подсистем, который называется xdmcp, к серверу, и запуск всех приложений происходит на сервере. Сервер должен быть хорошей машиной; лектор полагает, что любая современная машина подойдёт для класса из 10 компьютеров. 256 мб памяти на одного пользователя (полноценный развесистый терминальный сеанс) хватает с запасом. Если вы ограничены в средствах, считается так: 256 мб на сам сервер + 128 мб на каждый терминальный сеанс. 8 машин на гигабайте работают легко, 10 машин на гигабайте работают уже с некоим скрипом. Если 16 машин работают на 2 гб, начинаются проблемы с быстродействием дисковой подсистемы, когда у вас во столько же раз больше процессов, во сколько раз больше пользователей, и каждый из них чего-то в каком-то месте хочет. Оптимальный вариант - машина с двумя винчестерами, которые работают как один большой, и, соответственно, в два раза быстрее. Другой вариант - увеличить объём памяти и, соответственно, дискового кэша, чтобы всё это в памяти болталось. Чем хорош терминальный сервер - вы не администрируете локальные машины в принципе. Это - просто железяка, она включается и работает. Когда-нибудь в будущем вы воовще можете их выбросить и купить не полноценные компьютеры, а так называемые терминалы. У которых есть монитор (хороший), клавиатура (тоже хорошая) и сисблок без винчестера, с минимальной памятью, лишь бы он работал. Администрирование сокращается во столько раз, во сколько раз у вас меньше компьютеров: ну, сгорит один, из запасника можно достать другой, воткнуть - и всё продолжит работать. Терминал-сервер. В состав ПСПО входит 4 дистрибутива: Мастер (большой), Юниор (средний), Лайт (маленький, для старых компьютеров) и Терминал-сервер для ситуации, когда одна машина нормальная, а остальные никакие. Терминал-сервер содержит в себе концепцию класса, но специфическую, когда никакого администрирования на клиентских машинах не производится, более того, на локальных машинах можно даже не иметь винчестера, главное - научить их загружаться через сеть. Это можно сделать путём сетевой загрузки, по протоколу PXE, а можно использовать дискету/CD, лишь бы это приводило в конечном счете к загрузке по сети. Далее на клиентских машинах разворачивается только X-сервер (та часть графической оболочки, которая умеет рисовать и работает с мышью и клавиатурой) и всякие хитрости по доступу к флешкам и т.п. После чего эти машины подключаются по протколу взаимодействия графических подсистем, который называется xdmcp, к серверу, и запуск всех приложений происходит на сервере. Сервер должен быть хорошей машиной; скорее всего, любая современная машина подойдёт для класса из 10 компьютеров. 256 мб памяти на одного пользователя (полноценный развесистый терминальный сеанс) хватает с запасом. Если вы ограничены в средствах, считается так: 256 мб на сам сервер + 128 мб на каждый терминальный сеанс. 8 машин при гигабайте памяти на сервере работают легко, 10 машин --- уже с некоторым скрипом. Если 16 машин работают на 2 гб, начинаются проблемы с быстродействием дисковой подсистемы. Оптимальный вариант - машина с двумя винчестерами, которые работают как один большой, и, соответственно, в два раза быстрее. Другой вариант - увеличить объём памяти и, соответственно, дискового кэша, чтобы больше данных находилось в оперативной памяти.

Чем хорош терминальный сервер - вы не администрируете локальные машины в принципе. Это - просто железяка, она включается и работает. Когда-нибудь в будущем вы вообще можете их выбросить и купить вместо них не полноценные компьютеры, а так называемые терминалы, у которых есть монитор (хороший), клавиатура (тоже хорошая) и системный блок без винчестера, с минимальной памятью, лишь бы он работал. Администрирование необходимо только на терминальном сервере.
Строка 8: Строка 10:
Мы возвращаемся к ситуации, когда необходимо, чтобы на локальных машинах была установлена операционная система. Что нужно для того, чтобы происходила сетевая установка (написанное здесь специфично для альтлинукса): нужно организовать сетевую загрузку машины. Для этого нужно, прежде всего, установить DHCPD (Dynamic Host Configuring Protocol Daemon), пакет называется dhcp-server. Он есть в дистрибутиве "мастер". Dynamic Host Configuring Protocol значит - "протокол динамической настройки компьютера". По включении компьютера по определённым правилам вы ему скармливаете набор настроек. Вообще говоря, пртокол очень сложный, он позволяет передавать сотни настроек, причём настройки разного уровня, в том числе и с точки зрения сетевых протоколов. Например, раздача IP может быть организована динамически (каждому новому компьютеру будет выдаваться очередной IP адрес из набора) - если вас не очень волнует, что в вашу сеть включится кто-то лишний, либо по MAC-адресам (каждому MAC-адресу соответствует свой жёстко определённый IPшник). Бывают и другие варианты, всё зависит от того, насколько возможно решить задачу административным путём. В любом случае dhcp не помешает в классе. Даже если вы не планируете сетевую загрузку, в особенности, если в вашем учреждении не один сегмент сети и вы хотите, чтобы с пользовательской машины был доступ не только до сервера, но и куда-то дальше, было бы неплохо настроить на них IP-адреса. Либо это делается руками при установке, либо с помощью DHCP. Мы возвращаемся к ситуации, когда необходимо, чтобы на локальных машинах была установлена операционная система. Что нужно для того, чтобы происходила сетевая установка: нужно организовать сетевую загрузку машины (написанное здесь специфично для ALT Linux). Для этого нужно, прежде всего, установить DHCPD (Dynamic Host Configuring Protocol Daemon), пакет называется dhcp-server. Он есть в дистрибутиве "Мастер". Dynamic Host Configuring Protocol в переводе с английского --- "протокол динамической настройки компьютера". По включении компьютера по определённым правилам вы ему скармливаете набор настроек. Вообще говоря, этот протокол очень сложен, он позволяет передавать сотни настроек, причём разного уровня, в том числе и с точки зрения сетевых протоколов. Например, раздача IP может быть организована динамически (каждому новому компьютеру будет выдаваться очередной IP адрес из набора) - если вас не очень волнует, что в вашу сеть включится кто-то лишний, либо по MAC-адресам (каждому MAC-адресу соответствует свой жёстко определённый IP). Бывают и другие варианты, всё зависит от того, насколько возможно решить задачу административным путём. В любом случае dhcp не помешает в классе, даже если не планируется сетевая загрузка, в особенности, если в учреждении не один сегмент сети и необходимо, чтобы с пользовательской машины был доступ не только до сервера, но и куда-то дальше.
Строка 10: Строка 12:
Конфигурационный файл dhcpd лежит в /etc/dhcpd.conf. Обратим внимание на две вещи: все сети, которыев вашей машине есть, должны быть описаны. Дело в том, что DHCPD - капризный демон, если он видит сеть, которая в нём не описана, отказывается работать. Кстати, в одной локальной сети должен быть только один DHCP сервер. Какие настройки он умеет отдавать?
 * IP-адрес. В данном случае мы видим пример динамической отдачи IP-адреса. Другой вариант - написать "машина такая-то" (указывать MAC-адрес) и указать, какой ip выдавать ему.
Конфигурационный файл dhcpd лежит в /etc/dhcpd.conf. Обратим внимание на две вещи: все сети, которыев вашей машине есть, должны быть описаны. Дело в том, что DHCPD - капризный демон, если он видит сеть, которая в нём не описана, отказывается работать. И второе --- в одной локальной сети должен быть только один DHCP сервер. Какие настройки он умеет отдавать?
 * IP-адрес. Как уже было сказано, можно настроить динамическую выдачу IP-адреса, либо написать "машина такая-то" (MAC-адрес) и указать, какой ip выдавать ему.
Строка 13: Строка 15:
 * Сервер dns, он называется неймсервер, служба, которая преобразует IP-адреса в доменные имена и обратно, она устроена как распределённая база данных.
 * Все настройки вроде сетевой маски.
 * Сервер dns (nameserver). DNS --- это служба, которая преобразует IP-адреса в доменные имена и обратно, она устроена как распределённая база данных.
 * Все настройки сети вроде сетевой маски.
Строка 17: Строка 19:
Если выпустить из внимания две другие настройки, filename и nextserver, которые нужны именно для сетевой загрузки, то машина будет раздавать всем компьютерам в локальной сети адреса из указанного диапазона. Любая машина с установленным альтом, если ей сказать "настроить сеть автоматически", запускет клиент к dhcp, который назвается dhcpcd. Если выпустить из внимания две другие настройки, filename и nextserver, которые нужны именно для сетевой загрузки, то машина будет раздавать всем компьютерам в локальной сети адреса из указанного диапазона. Любая машина с установленным альтом, если ей сказать "настроить сеть автоматически", запускет клиент dhcp, который назвается dhcpcd.
Строка 19: Строка 21:
Возвращаемся к настройке. Итак, dhcp настроен. Есть ещё две волшебных настройки, связанных с сетевой загрузкой: чтобы она работала (то есть передача по сети не только каких-то настроек, но и файлов на компьютер), со стороны компьютеров необходимо, чтобы в них работала сетевая загрузка. Как правило, об этом свидетельствуют слова в настройках биоса о том, что загрузочным устройством является сеть, int 18 или там 19, либо вы покупаете сетевую карту, на которой есть бутром, то есть прошивка для сетевой загрузки. При включении компьютера с такой сетевой картой вам говорят: "нажмите, там, Alt+B, Shift+F10 или какое-то ещё волшебное сочетание, чтобы настроить параметры сетевой загрузки". В этй сетевой загрузке может быть много вариантов, правильно выбирать PXE. Оно включает в себя и получение настроек по dhcp, и ещё кое-чего, о чём будет сказано ниже. Итак, чтобы работали сетевая загрузка и установка, нужно, чтобы на клиентах поддерживался протокол pxe, они должны быть подключены к локальной сети и к серверу, где есть dhcp, и на сервере должен быть специальный демон, называемый tftp (trivial file transfer potocol) сервер (специальный протокол передачи файлов, крайне упрощённый, чтобы его клиентскую часть (то есть программу, которая умеет скачивать файлы согласно этому протоколу) можно было запихать в память сетевой карточки). Собственно, пресловутый бутром и есть программа, записанная в пзу сетевой карты, которая загружается в оперативную память и заниимается ровно одной вещью: по протоколу pxe получает настройки по dhcp/bootp, потом сообразно этим настройкам получает информацию о том, откуда брать специальный файл - загрузчик, скачивает его, загружает в память и запускает его. В отличие от ситуации, когда у вас передаётся только сетевая настройка, в протокол pxe входит стадия скачивания некое программы и запуска её. Это всё делает прошивка в сетевой карте. На сервере должен быть некий демон, tftp, которому и подкладывается эта специальная программа. Тем самым организёется каталог /var/lib/tftp/boot, в который можно помещать файлы, кторые будут скчиваться по протоколу tftp, как если бы они лежали в корне. Дальше есть множество разных вариантов. Здесь требуется поставить пакет syslinux. Лектор напоминает, пакет syslinux - пакет загрузчиков, который позволяет загружать linux с разных ностителей, в частности, загрузчик pxelinux, и некоторые программы, которые сопутствуют этому делу. Возвращаемся к сетевой загрузке. Итак, dhcp настроен. Есть ещё две настройки, связанных с сетевой загрузкой: чтобы она работала (то есть была возможна передача по сети не только настроек, но и файлов на компьютер), со стороны клиентов необходимо, чтобы в них работала сетевая загрузка. Как правило, об этом свидетельствуют слова в настройках биоса о том, что загрузочным устройством является сеть, int 18 или 19, либо на сетевой карте есть бутром, то есть прошивка для сетевой загрузки, и при включении компьютера с такой сетевой картой вам говорят: "нажмите, Alt+B, Shift+F10 или какое-то ещё волшебное сочетание, чтобы настроить параметры сетевой загрузки". В этой настройке сетевой загрузки может быть много вариантов, правильно выбирать PXE. протокол pxe включает в себя получение настроек по dhcp и некоторые другие возможности. Итак, чтобы работали сетевая загрузка и установка, нужно, чтобы на клиентах поддерживался протокол pxe, они должны быть подключены к локальной сети и к dhcp-серверу, и на сервере должен быть специальный демон, называемый tftp-сервер. Tftp(trivial file transfer protocol) --- это специальный протокол передачи файлов, крайне упрощённый, чтобы его клиентскую часть (то есть программу, которая умеет скачивать файлы согласно этому протоколу) можно было уместить в памяти сетевой карты. Собственно, бутром и есть программа, записанная в пзу сетевой карты, которая загружается в оперативную память и заниимается ровно одной вещью: по протоколу pxe получает настройки по dhcp/bootp, потом сообразно этим настройкам получает информацию о том, откуда брать специальный файл --- загрузчик, скачивает его, загружает в память и запускает его. В отличие от ситуации, когда передаются только настройки сети, в протокол pxe входит стадия скачивания некой программы и запуска её. Всё это делает прошивка сетевой карты.
Строка 21: Строка 23:
Посмотрим некоторые из них. Нас интересует содержимое каталога /usr/lib/syslinux/. Тут есть файлы нескольких форматов: .bin, .com, .c32, .0 ... которые предназначены для загрузки в разные среды. В частности, те, которые загружаются прямо в сетевую карточку называются .0 и .c32. Есть документация, её формат назыается .doc, но если вы думаете, что она в формате microsoft document, вы ошибаетесь. Memdisk - очень хорошая штука, позволяет по сети подгрузить memdisk, а к нему образ дискеты, то есть, фактически сэмулировать загрузку с дискетки на машине, где её нет. Ещё лектор использовал menu и vesamenu. Что такое menu - файл syslinux.conf (похожий на lilo.conf) можно подгрузить по сети, чтобы пользователь при сетевой загрузке выбрал, какой вариант он хочет загрузить. То есть, подгрузить по сети сначала меню, а потом уже настоящую сетевую загрузку. Если же сетевая карта поддерживает vbe1, то можно сделать графическое меню с разными красивостями. Вот это и есть vesamenu. На сервере организёется каталог /var/lib/tftp/boot, в который можно помещать файлы, которые будут скчиваться по протоколу tftp, как если бы они лежали в корне. Для того, чтобы получить эти файлы, требуется поставить пакет syslinux. Syslinux --- пакет загрузчиков, который позволяет загружать Linux с разных ностителей, в частности, в нем есть загрузчик pxelinux и некоторые программы, которые сопутствуют этому делу.
Строка 23: Строка 25:
Нас, конечно, будет в первую очередь интересовать загручзчик pxelinux.0. В терминологии последовательности загрузки это - вторичный загрузчик, то есть тот, который должен загружаться не из пзу, а непосредственно с устройства. Основная его задача - подгрузить откуда-то ядро и стартовый виртуальный диск. Загрузка этих двух файлов - это то, с чего начитнается загрузка linux. Ядро - это ядро, а в стартовом виртуальном диске находится очень маленький линукс, который содержит все модули, нужные для дальнейшей загрузки и работы системы. У него (pxelinux) есть конфигурационный файл, загружаемый прежде всего, в котором написано, что грузить дальше. В нём можно сделать несколько разных вариантов выбора. Нас интересует содержимое каталога /usr/lib/syslinux/. Тут есть файлы нескольких форматов: .bin, .com, .c32, .0 ... которые предназначены для загрузки в разные среды. В частности, те, которые загружаются прямо в сетевую карточку называются .0 и .c32. Есть документация с расширением .doc, но если вы думаете, что она в формате microsoft document, вы ошибаетесь. Memdisk - очень хорошая штука, позволяет по сети подгрузить memdisk, а к нему образ дискеты, то есть, фактически сэмулировать загрузку с дискетки на машине, где её нет. Ещё лектор использовал menu и vesamenu. Что такое menu - файл syslinux.conf (похожий на lilo.conf) можно подгрузить по сети, чтобы пользователь при сетевой загрузке выбрал, какой вариант он хочет загрузить. То есть, подгрузить по сети сначала меню, а потом уже настоящую сетевую загрузку. Если же сетевая карта поддерживает vbe1, то можно сделать графическое меню с разными красивостями с помощью vesamenu.
Строка 25: Строка 27:
Для удобства работы с сетью, pxelinux.0 загружает конфигурационный файл по определённым правилам. pxelinux сначала пытается загрузить конфигурационный файл, который по имени совпадает с шестнадцатеричным представлением полученного по pxe IP-адреса. Если на вашей машине это не работает, значит, бутром у вас просто выключен. Зачем так сделано? Есть жёсткая привязка к mac-адресу машины; для каждой машины можно иметь собственную настройку, есть привязка к IP адресу компьютера или целой сети, и можно машины с одними IP адресами загружать по одной конфигурации, а другие, у которых сеть другая, по другой конфигурации. Нас, конечно, будет в первую очередь интересовать загручзчик pxelinux.0. В терминологии последовательности загрузки это вторичный загрузчик, то есть тот, который должен загружаться не из пзу, а непосредственно с устройства. Основная его задача --- подгрузить откуда-то ядро и стартовый виртуальный диск. Загрузка этих двух файлов --- это то, с чего начинается загрузка Linux. Ядро --- это ядро, а в стартовом виртуальном диске находится очень маленький линукс, который содержит все модули, нужные для дальнейшей загрузки и работы системы. У pxelinux есть конфигурационный файл, загружаемый прежде всего, в котором написано, что загружать дальше. В нём можно сделать несколько разных вариантов выбора.

Для удобства работы с сетью, pxelinux.0 загружает конфигурационный файл по определённым правилам. pxelinux сначала пытается загрузить конфигурационный файл, который по имени совпадает с шестнадцатеричным представлением полученного по pxe IP-адреса. Если на вашей машине это не работает, значит, бутром у вас просто выключен. Зачем так сделано? Если есть жёсткая привязка IP к MAC-адресу машины, то для каждой машины можно иметь собственную настройку, и вообще, можно машины с одними IP адресами загружать по одной конфигурации, а другие, у которых сеть другая, по другой конфигурации.
Строка 37: Строка 41:
Синтаксис слегка замороченный, но ничего сложного нет. prompt означает, ожидать ли подсказки, timeout 0 означает ждать, пока пользователь не нажмёт enter. Тут есть один хак: если включён num lock, он будет ждать, а если выключен - нет. Дальше идут настройки для конкретной загрузки. label означает некое имя загрузки. Его, кстати, можно в ответ на подсказку написать - не то, которое по умолчанию, а какое-то. Дальше нужно указать, как называется ядро. Дальше нам нужно указать, какие у этого ядра параметры, параметр initrd=файл - его разбирает сам syslinux, он загружает этот файл тоже, потому что это стартовый виртуальный диск, остальные параметры, которые он не понимает, он передаёт ядру. Всё это документированно на сайте freesourseinfo. Синтаксис слегка замороченный, но ничего сложного нет. prompt означает, ожидать ли подсказки, timeout 0 означает ждать, пока пользователь не нажмёт enter. Тут есть один хак: если включён num lock, он будет ждать, а если выключен - нет. Дальше идут настройки для конкретной загрузки. label означает некое имя загрузки. Его, кстати, можно в ответ на подсказку написать - не то, которое по умолчанию, а какое-то. Дальше нужно указать, как называется ядро. Дальше нам нужно указать, какие у этого ядра параметры, параметр initrd=файл - его разбирает сам syslinux, он загружает этот файл тоже, потому что это стартовый виртуальный диск, остальные параметры, которые он не понимает, он передаёт ядру. Всё это документированно на сайте freesourсe.info(?).
Строка 47: Строка 51:
|| 20 || 1 || 1 || 1 || || 1 || ConstantinYershow, VladimirLysikov, VsevolodKrishchenko || || || || 40 || 1 || 1 || 1 || || 1 || ConstantinYershow, VladimirLysikov, VsevolodKrishchenko || || ||

Сетевая загрузка

Мы перебираемся к такой большой теме, как развертывание класса, и рассказ об этом будет организован послойно.

Отступление: терминальный сервер

Терминал-сервер. В состав ПСПО входит 4 дистрибутива: Мастер (большой), Юниор (средний), Лайт (маленький, для старых компьютеров) и Терминал-сервер для ситуации, когда одна машина нормальная, а остальные никакие. Терминал-сервер содержит в себе концепцию класса, но специфическую, когда никакого администрирования на клиентских машинах не производится, более того, на локальных машинах можно даже не иметь винчестера, главное - научить их загружаться через сеть. Это можно сделать путём сетевой загрузки, по протоколу PXE, а можно использовать дискету/CD, лишь бы это приводило в конечном счете к загрузке по сети. Далее на клиентских машинах разворачивается только X-сервер (та часть графической оболочки, которая умеет рисовать и работает с мышью и клавиатурой) и всякие хитрости по доступу к флешкам и т.п. После чего эти машины подключаются по протколу взаимодействия графических подсистем, который называется xdmcp, к серверу, и запуск всех приложений происходит на сервере. Сервер должен быть хорошей машиной; скорее всего, любая современная машина подойдёт для класса из 10 компьютеров. 256 мб памяти на одного пользователя (полноценный развесистый терминальный сеанс) хватает с запасом. Если вы ограничены в средствах, считается так: 256 мб на сам сервер + 128 мб на каждый терминальный сеанс. 8 машин при гигабайте памяти на сервере работают легко, 10 машин --- уже с некоторым скрипом. Если 16 машин работают на 2 гб, начинаются проблемы с быстродействием дисковой подсистемы. Оптимальный вариант - машина с двумя винчестерами, которые работают как один большой, и, соответственно, в два раза быстрее. Другой вариант - увеличить объём памяти и, соответственно, дискового кэша, чтобы больше данных находилось в оперативной памяти.

Чем хорош терминальный сервер - вы не администрируете локальные машины в принципе. Это - просто железяка, она включается и работает. Когда-нибудь в будущем вы вообще можете их выбросить и купить вместо них не полноценные компьютеры, а так называемые терминалы, у которых есть монитор (хороший), клавиатура (тоже хорошая) и системный блок без винчестера, с минимальной памятью, лишь бы он работал. Администрирование необходимо только на терминальном сервере. (конец отступления)

Мы возвращаемся к ситуации, когда необходимо, чтобы на локальных машинах была установлена операционная система. Что нужно для того, чтобы происходила сетевая установка: нужно организовать сетевую загрузку машины (написанное здесь специфично для ALT Linux). Для этого нужно, прежде всего, установить DHCPD (Dynamic Host Configuring Protocol Daemon), пакет называется dhcp-server. Он есть в дистрибутиве "Мастер". Dynamic Host Configuring Protocol в переводе с английского --- "протокол динамической настройки компьютера". По включении компьютера по определённым правилам вы ему скармливаете набор настроек. Вообще говоря, этот протокол очень сложен, он позволяет передавать сотни настроек, причём разного уровня, в том числе и с точки зрения сетевых протоколов. Например, раздача IP может быть организована динамически (каждому новому компьютеру будет выдаваться очередной IP адрес из набора) - если вас не очень волнует, что в вашу сеть включится кто-то лишний, либо по MAC-адресам (каждому MAC-адресу соответствует свой жёстко определённый IP). Бывают и другие варианты, всё зависит от того, насколько возможно решить задачу административным путём. В любом случае dhcp не помешает в классе, даже если не планируется сетевая загрузка, в особенности, если в учреждении не один сегмент сети и необходимо, чтобы с пользовательской машины был доступ не только до сервера, но и куда-то дальше.

Конфигурационный файл dhcpd лежит в /etc/dhcpd.conf. Обратим внимание на две вещи: все сети, которыев вашей машине есть, должны быть описаны. Дело в том, что DHCPD - капризный демон, если он видит сеть, которая в нём не описана, отказывается работать. И второе --- в одной локальной сети должен быть только один DHCP сервер. Какие настройки он умеет отдавать?

  • IP-адрес. Как уже было сказано, можно настроить динамическую выдачу IP-адреса, либо написать "машина такая-то" (MAC-адрес) и указать, какой ip выдавать ему.
  • Маршрутизатор по умолчанию
  • Сервер dns (nameserver). DNS --- это служба, которая преобразует IP-адреса в доменные имена и обратно, она устроена как распределённая база данных.
  • Все настройки сети вроде сетевой маски.
  • Имя домена по умолчанию.

Если выпустить из внимания две другие настройки, filename и nextserver, которые нужны именно для сетевой загрузки, то машина будет раздавать всем компьютерам в локальной сети адреса из указанного диапазона. Любая машина с установленным альтом, если ей сказать "настроить сеть автоматически", запускет клиент dhcp, который назвается dhcpcd.

Возвращаемся к сетевой загрузке. Итак, dhcp настроен. Есть ещё две настройки, связанных с сетевой загрузкой: чтобы она работала (то есть была возможна передача по сети не только настроек, но и файлов на компьютер), со стороны клиентов необходимо, чтобы в них работала сетевая загрузка. Как правило, об этом свидетельствуют слова в настройках биоса о том, что загрузочным устройством является сеть, int 18 или 19, либо на сетевой карте есть бутром, то есть прошивка для сетевой загрузки, и при включении компьютера с такой сетевой картой вам говорят: "нажмите, Alt+B, Shift+F10 или какое-то ещё волшебное сочетание, чтобы настроить параметры сетевой загрузки". В этой настройке сетевой загрузки может быть много вариантов, правильно выбирать PXE. протокол pxe включает в себя получение настроек по dhcp и некоторые другие возможности. Итак, чтобы работали сетевая загрузка и установка, нужно, чтобы на клиентах поддерживался протокол pxe, они должны быть подключены к локальной сети и к dhcp-серверу, и на сервере должен быть специальный демон, называемый tftp-сервер. Tftp(trivial file transfer protocol) --- это специальный протокол передачи файлов, крайне упрощённый, чтобы его клиентскую часть (то есть программу, которая умеет скачивать файлы согласно этому протоколу) можно было уместить в памяти сетевой карты. Собственно, бутром и есть программа, записанная в пзу сетевой карты, которая загружается в оперативную память и заниимается ровно одной вещью: по протоколу pxe получает настройки по dhcp/bootp, потом сообразно этим настройкам получает информацию о том, откуда брать специальный файл --- загрузчик, скачивает его, загружает в память и запускает его. В отличие от ситуации, когда передаются только настройки сети, в протокол pxe входит стадия скачивания некой программы и запуска её. Всё это делает прошивка сетевой карты.

На сервере организёется каталог /var/lib/tftp/boot, в который можно помещать файлы, которые будут скчиваться по протоколу tftp, как если бы они лежали в корне. Для того, чтобы получить эти файлы, требуется поставить пакет syslinux. Syslinux --- пакет загрузчиков, который позволяет загружать Linux с разных ностителей, в частности, в нем есть загрузчик pxelinux и некоторые программы, которые сопутствуют этому делу.

Нас интересует содержимое каталога /usr/lib/syslinux/. Тут есть файлы нескольких форматов: .bin, .com, .c32, .0 ... которые предназначены для загрузки в разные среды. В частности, те, которые загружаются прямо в сетевую карточку называются .0 и .c32. Есть документация с расширением .doc, но если вы думаете, что она в формате microsoft document, вы ошибаетесь. Memdisk - очень хорошая штука, позволяет по сети подгрузить memdisk, а к нему образ дискеты, то есть, фактически сэмулировать загрузку с дискетки на машине, где её нет. Ещё лектор использовал menu и vesamenu. Что такое menu - файл syslinux.conf (похожий на lilo.conf) можно подгрузить по сети, чтобы пользователь при сетевой загрузке выбрал, какой вариант он хочет загрузить. То есть, подгрузить по сети сначала меню, а потом уже настоящую сетевую загрузку. Если же сетевая карта поддерживает vbe1, то можно сделать графическое меню с разными красивостями с помощью vesamenu.

Нас, конечно, будет в первую очередь интересовать загручзчик pxelinux.0. В терминологии последовательности загрузки это вторичный загрузчик, то есть тот, который должен загружаться не из пзу, а непосредственно с устройства. Основная его задача --- подгрузить откуда-то ядро и стартовый виртуальный диск. Загрузка этих двух файлов --- это то, с чего начинается загрузка Linux. Ядро --- это ядро, а в стартовом виртуальном диске находится очень маленький линукс, который содержит все модули, нужные для дальнейшей загрузки и работы системы. У pxelinux есть конфигурационный файл, загружаемый прежде всего, в котором написано, что загружать дальше. В нём можно сделать несколько разных вариантов выбора.

Для удобства работы с сетью, pxelinux.0 загружает конфигурационный файл по определённым правилам. pxelinux сначала пытается загрузить конфигурационный файл, который по имени совпадает с шестнадцатеричным представлением полученного по pxe IP-адреса. Если на вашей машине это не работает, значит, бутром у вас просто выключен. Зачем так сделано? Если есть жёсткая привязка IP к MAC-адресу машины, то для каждой машины можно иметь собственную настройку, и вообще, можно машины с одними IP адресами загружать по одной конфигурации, а другие, у которых сеть другая, по другой конфигурации.

Рассмотрим конфигурационный файл default.

timeout 0
prompt 1
default install

label install
 kernel install/vmlinuz
 append initrd=install/full.cz fastboot automatic=method:nfs,network:dhcp,server:10.30.2.1,directory:/srv/boot/lite ai live stagename=altinst

Синтаксис слегка замороченный, но ничего сложного нет. prompt означает, ожидать ли подсказки, timeout 0 означает ждать, пока пользователь не нажмёт enter. Тут есть один хак: если включён num lock, он будет ждать, а если выключен - нет. Дальше идут настройки для конкретной загрузки. label означает некое имя загрузки. Его, кстати, можно в ответ на подсказку написать - не то, которое по умолчанию, а какое-то. Дальше нужно указать, как называется ядро. Дальше нам нужно указать, какие у этого ядра параметры, параметр initrd=файл - его разбирает сам syslinux, он загружает этот файл тоже, потому что это стартовый виртуальный диск, остальные параметры, которые он не понимает, он передаёт ядру. Всё это документированно на сайте freesourсe.info(?).

Как сделать установку на конкретный диапазон: создать соответствующий конфигурационный файл на конкретный диапазон IP адресов (с соответствующим именем) рядом с default'ом. На уровне dhcp можно выделить диапазон, внутри кторого вы будете отдавать pxe и другой диапазон, внутри кторого вы не будете отдавать pxe.


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

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

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

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

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

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

Level

Maintainer

Start date

End date

40

1

1

1

1

ConstantinYershow, VladimirLysikov, VsevolodKrishchenko


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

PspoClasses/080722/02NetBoot (последним исправлял пользователь eSyr 2009-03-23 02:03:43)