Конфигурирование фермы бездисковых станций


Одно из преимуществ бездисковых систем состоит в том, что несколько машин могут разделять одну файловую систему. Однако даже для практически идентичных машин могут понадобиться немного отличающиеся конфигурационные файлы. У системы FreeBSD есть механизм, позволяющий организовать передачу персонализированных конфигурационных файлов поверх универсальной файловой системы за счет повторного монтирования разделов файловой системы в памяти (Memory Filesystem, MFS) и копирования в них нестандартных конфигурационных файлов.

Заданные по умолчанию настройки FreeBSD для бездисковых станций позволяют настраивать бездисковые системы в разных сетях и подсетях, что особенно ценно при работе в больших сетях. Если у вас всего несколько бездисковых систем, поначалу настройка их может показаться немного громоздкой. Однако некоторое время спустя вы обнаружите, что применяете их все шире и шире. Бездисковые системы — это удобное решение множества проблем.

Во время загрузки FreeBSD выясняет с помощью параметра sysctl vfs.nfs.diskless_valid — не запущена ли она как бездисковая система. Если этот параметр имеет значение 0, значит, система загружена с жесткого диска, в противном случае — это бездисковая система. В бездисковых конфигурациях FreeBSD запускает сценарий /etc/rc.initdiskless.

Клиент NFS хранит бездисковую конфигурацию в каталоге /conf, то есть в каталоге conf, размещенном в корне файловой системы NFS. Мы называем этот каталог /conf, хотя на самом деле в файловой системе сервера это будет каталог /var/diskless/1/conf.

Вы должны создать несколько подкаталогов: как минимум /conf/base и /conf/default, а также, возможно, отдельные каталоги для подсетей и/или отдельных IP-адресов. Содержимое этих каталогов будет использоваться при создании файловых систем в памяти, которые будут монтироваться в корневой каталог, что позволит вносить изменения, характерные для отдельных хостов.

Проще всего объяснить этот механизм на примере. Внесем некоторые изменения и настроим каталог /etc так, чтобы он монтировался как файловая система в памяти на бездисковых хостах.

Каталог /conf/base

Каталог /conf/base содержит базовую информацию о разделах, которые требуется смонтировать. Все, что находится в этом каталоге, влияет на все бездисковые станции. Для каждого каталога, в который будет смонтирована файловая система в памяти, нужно создать соответствующий каталог в /conf/base.

Активизация повторного монтирования каталогов на бездисковой станции

После создания каталога /conf/base/etc надо сообщить операционной системе FreeBSD о необходимости перемонтировать каталог /etc на стороне клиента. Для этого создайте файл с именем diskless_remount, содержащий имя каталога, в который нужно выполнить монтирование. Звучит довольно сложно, но все это означает, что файл содержит всего лишь одно слово:

/etc

Тем самым мы предписываем FreeBSD создать MFS для каталога /etc и смонтировать ее соответствующим образом на стороне бездискового клиента.

Наполнение и подстройка повторно монтируемых файловых систем

По умолчанию, чтобы наполнить файловую систему в памяти, сценарий rc.initdiskless копирует содержимое серверного каталога. То есть MFS /etc — это копия каталога /etc в файловой системе NFS. Однако некоторые файлы не нужны в файловой системе MFS. Например, бездисковые системы не должны хранить у себя файлы протоколов, откуда следует, что им не нужен newsyslog или /etc/newsyslog.conf. На бездисковых клиентах не требуется выполнять резервное копирование, следовательно файл /etc/dumpdates также не нужен. Внимательно просмотрев содержимое каталога /etc, можно выявить довольно много файлов, которые не требуется копировать в MFS /etc. Уменьшение количества файлов в /etc позволит сэкономить память, которая так нужна в небольших системах. Однако если удалить больше, чем нужно, система просто не будет загружаться, причем выбор файлов для удаления не так очевиден. Например, если удалить файл /etc/mtree, машина зависнет в однопользовательском режиме, потому что не сможет наполнить раздел MFS /var.

Поместите полные пути к нежелательным файлам и каталогам в файл /conf/base/etc.remove. Например, следующие записи удалят каталоги /etc/gss и /etc/bluetooth, а также файл /etc/rc.firewall:

/etc/gss
/etc/bluetooth
/etc/rc.firewall

Довольно просто, правда? А теперь вернем кое-что в нашу конфигурацию.

Комментарии запрещены.