Centaurus: Бездисковый клиент: различия между версиями
(→TODO) |
|||
Строка 64: | Строка 64: | ||
=== TODO === | === TODO === | ||
* | Другие задачи и направления модернизации класса бездисковых клиентов: | ||
* | * Многосистемная загрузка с помощью vesamenu из syslinux | ||
* Использование под swap разделов или файлов на локальных дисках | |||
* Кеширование NFS с помощью cachefilesd | |||
----- | ----- | ||
[[Category:Centaurus]] [[Category:LiveCD]] [[Category:Releases/60]] | [[Category:Centaurus]] [[Category:LiveCD]] [[Category:Releases/60]] |
Версия от 16:30, 29 августа 2011
Класс бездисковых клиентов обеспечивает следующий порядок работы:
- Сервер предоставляет образ LiveCD в качестве загрузочного образа.
- Клиенты загружают ОС по сети.
- Работа на клиентах не отличается от работы на LiveCD:
- можно использовать рабочие места с различным аппаратным профилем;
- ВНИМАНИЕ: суперпользователь (
root
) и пользователь по умолчанию (altlinux
) не имеют паролей.
Класс бездисковых клиентов в составе домена дополнительно предоставляет возможность работы пользователя домена с произвольного клиентского компьютера с подключением его домашнего каталога.
Порядок настройки
Сначала необходимо удостовериться, что на сервере определены внутренний и внешний сетевые интерфейсы, и включён режим трансляции внутренних адресов (NAT). Класс будет функционировать и без NAT, и вовсе без внешнего сетевого интерфейса, но доступ в Интернет, а во втором случае — и DNS придётся настраивать отдельно.
Для работы сервера сетевых загрузок на внутреннем интерфейсе должна быть поднята служба сетевых настроек DHCP. Обратите внимание, что параметры «домен поиска» и «DNS-сервер» на этом шаге вводятся временно, впоследствии их будет предоставлять Kerberos/LDAP домен.
Домен задаётся стандартным способом. Стоит иметь в виду, что для корректной работы класса DHCP необходимо настроить до задания домена. Обратите также внимание на успешную диагностику работы всех необходимых служб. При использовании систем, не подразумевающих включение в домен, рекомендуется останавливать эту службу. Включение LDAP «с нуля» сопровождается созданием множества файлов и перезапуском зависимых служб, поэтому этот шаг может потребовать времени.
Функциональность бездискового клиента обеспечивается загрузкой ALT Linux Centaurus 6.0 LiveCD в качестве «установочного» образа подсистемы сетевой установки. В случае использования дисков со множественной загрузкой (например, ALT Linux Centaurus 6.0 Install DVD), выбирается первая конфигурация. Другую конфигурацию можно временно указать во время загрузки клиента или в файле `/var/lib/tftpboot/pxelinux.cfg/default` на сервере (этот файл генерируется при каждом выборе загружаемого образа).
Образ на диске создаётся довольно долго.
Обратите внимание, что создания образа недостаточно, его необходимо явно отметить.
Запуск клиента
Для запуска клиента достаточно включить в BIOS на постоянной основе сетевую загрузку (по протоколу PXE). Для того, чтобы сетевая загрузка работала, необходимо наличие на сетевой карте BootROM (это касается также и встроенных сетевых карт; кроме того, на них BootROM иногда включается отдельно настройкой BIOS). В некоторых случаях сетевую загрузку можно произвести с внешнего носителя (см. проект http://etherboot.org/ и конкретно http://www.rom-o-matic.net/ ).
Модернизация загружаемого образа
Стандартный загруженный образ LiveCD обладает некоторыми свойствами, которые нужны для LiveCD, но плохо применимы при массовой загрузке, например, учебного компьютерного класса. Пересборка образа — дело непростое, поэтому Live-дистрибутивы Шестой платформы имеют дополнительный механизм модернизации системы, загружаемой на клиенте. Опишем этот механизм подробнее.
Изначально загрузка системы по сети устроена так:
- Загрузка по протоколу PXE (DHCP+tftp) вторичного загрузчика
pxelinux
. - Загрузка вторичным загрузчиком по протоколу tftp автоматически изготовленного конфигурационного файла
/var/lib/tftpboot/pxelinux.cfg/default
, после чего — указанных в этом файле ядра и стартового виртуального диска. - Стартовый виртуальный диск Live-версии содержит подсистему
propagator
, которая, анализируя параметры, переданные ядру, определяет тип дальнейшей загрузки. - В частности, при загрузке Live-версии происходит следующее:
- монтируется по NFS каталог
/srv/public/netinst/
; - из этого каталога монтируется как loop-device файл
current
(это символьная ссылка на выбранный ISO-образ); - из смонтированного таким образом каталога (
/image
), в свою очередь, монтируется как loop-device Squashfs-образ, определяемый параметром ядраstagename
; - полученный каталог (
/.ro
) содержит всю файловую систему клиента, доступную, разумеется, только для чтения. Для обеспечения возможности записи этот каталог монтируется «внахлёст» при помощи AUFS с пустым каталогом/.rw
. Результат становится корневым каталогом клиента.
- монтируется по NFS каталог
Однако в AUFS между «нижним» каталогом /.ro
и «верхним» /.rw
можно вставить произвольное число дополнительных readonly-каталогов, перекрывающих содержимое /.ro
. Для этого при загрузке проверяется наличие ISO-образов в каталоге /srv/public/netinst/overlays-live
на сервере, и каждый такой образ в алфавитно-цифровом порядке монтируется в виде каталога и включается в AUFS поверх /.ro
.
Создание образа-«заплатки»
Например, для эксплуатации компьютерного класса необходимо модифицировать следующее:
- Пароль root и altlinux. Пароль root по умолчанию пустой, это нехорошо, если на машине есть ещё какая-то операционка. Достаточно в терминале сказать
su -
(пароль пустой), а затем выполнить командуpaswd
. Если беспарольный пользователь <code<altlinux не нужен, его можно удалить командойuserdel -r altlinux
. - Установка и удаление пакетов. Можно поставить какое угодно количество пакетов, если файловая система
/.rw
, располагающаяся в памяти, предоставляет достаточно места. Если нет, можно попробовать сделать это в несколько этапов (создать последовательно несколько заплаток). - Настройки по месту. Всяческие другие системные настройки (включение swap, если найден раздел с особой меткой, включение и предварительная настройка служб, например, ssh, и т. п.) производятся обычным порядком, в терминале от root. Например, для установки пакетов необходимо отредактировать настройку APT (скажем, раскомментировать две строки в
/etc/apt/sources.list.d/alt.list
и запуститьapt-get update
). - Настройка рабочего стола и домашнего каталога пользователя по умолчанию. Пользователь
altlinux
по умолчанию не имеет пароля, а если домен не используется, происходит автоматический вход в систему. Настройки, сделанные для этого пользователя, также можно сохранить в «заплатке» (предварительно следует завершить сеанс работы пользователя: некоторые настройки записываются на диск только после этого).
Все изменения аккумулируются в каталоге /.rw
. Для создания заплатки достаточно изготовить из этого каталога ISO-образ и положить его на сервер в каталог /srv/public/netinst/overlays-live
:
[root@localhost ~]# sync; mkisofs -q -R -o- /.rw | ssh user@ldap 'cat > patch0.iso'
Обратите внимание, что файл-«заплатка» получается довольно большим, и его небезопасно хранить в файловой системе клиента (может закончится память), поэтому на сервере заводится пользователь (в примере «user»), в домашний каталог которого временно помещается файл. При включённом домене можно использовать имя сервера ldap
, в противном случае — его IP-адрес.
Размер заплатки получается большим из-за dist-upgrade
: перестраиваются базы пакетов RPM и APT. Поскольку при следующей модификации, скорее всего, придётся заново делать dist-upgrade, можно исключить из ISO каталоги с кешами и списками файлов, а также файлами, которые создаются в процессе работы системы.
[root@localhost ~]# sync; mkisofs -q -R -m /.rw/var/lib/rpm -m /.rw/var/lib/apt -m /.rw/var/cache/apt -m /.rw/var/run -m /.rw/var/log -o- /.rw | ssh user@ldap 'cat > patch0.iso'
На сервере «заплатка» перемещается в каталог/srv/public/netinst/overlays-live
:
[root@server ~]# mv ~user/patch0.iso /srv/public/netinst/overlays-live/
TODO
Другие задачи и направления модернизации класса бездисковых клиентов:
- Многосистемная загрузка с помощью vesamenu из syslinux
- Использование под swap разделов или файлов на локальных дисках
- Кеширование NFS с помощью cachefilesd