Введение в круг понятий. UNIX/Linux  
  Организация сервиса бездисковой загрузки (diskless PXE boot)  


Эти материалы являются объектом авторского права и защищены законами РФ и международными соглашениями о защите авторских прав. Перед использованием материалов вы обязаны принять условия лицензионного договора на использование этих материалов, или же вы не имеете права использовать настоящие материалы

Авторская площадка "Наши орбиты" состоит из ряда тематических подразделов, являющихся моими лабораторными дневниками, содержащими записи за разное, иногда продолжительно отличающееся, время. Эти материалы призваны рассказать о прошедшем опыте, они никого ни к чему не призывают и совершенно не обязательно могут быть применимы кем-то ещё. Это только лишь истории о прошлом


ОС Linux реализует возможность бездисковой загрузки компьютеров, используя технологии PXE и подготовленные «бездисковые окружения». Это позволяет, например, отказаться в отдельных случаях от жёстких дисков на клиентских рабочих станциях, и использовать единый образ файловой системы для загрузки и работы клиентов

Такая технология имеет как плюсы, так и минусы. К плюсам можно отнести упрощение администрирования, сосредотачиваюбщегося на сервере бездисковой загрузки и экономию «на железе». Самым большим минусом является появлени «узкого места», которым становится сервер бездисковой загрузки, а также повышенная нагрузка на локальную сеть, что не всегда приемлимо

Организация бездисковой загрузки открывает возможности по дпльнейшему построению облегченной клиентской инфраструктуры, в частности возможна загрузка минимального образа (только ОС и X-сервер) с последующим принудительным подключением к терминальному серверу XDMCP (UNIX/Linux) или RDP (MS Windows через UNIX клиента rdesktop)

Ниже будет описана методика организации сервиса бездисковой загрузки

  • Установить пакеты с функционалом NFSD
    yum install nfs-utils nfs-utils-lib system-config-nfs
     
  • Создать базовый и дочерние каталоги бездисковых станций
    [ -d /mnt/diskless/i386/CentOS55 ] || mkdir -p /mnt/diskless/i386/CentOS55
    [ -d /mnt/diskless/i386/CentOS55/root ] || mkdir -p /mnt/diskless/i386/CentOS55/root
    [ -d /mnt/diskless/i386/CentOS55/snapshot ] || mkdir -p /mnt/diskless/i386/CentOS55/ snapshot
     
  • Сконфигурировать отдачу каталогов по NFS
    echo «/mnt/diskless/i386/CentOS55/root *(ro,sync,no_root_squash)» >> /etc/exports
    echo «/mnt/diskless/i386/CentOS55/root *(rw,sync,no_root_squash)» >> /etc/exports
     
  • Стартовать nfsd, сконфигурировать автозагрузку и проверить отдачу
    service nfs start (reload)
    chkconfig nfs on
    exportfs -v
     
  • При отсутствии развернуть сервер DHCP, при отсутствии добавить в конфигурацию блок PXE загрузки в /etc/dhcpd.conf (может быть уже сконфигурировано для инфраструктуры сетевой установки)
    allow booting;
    allow bootp;
    class "pxeclients" {
             match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
             next-server 192.168.1.20;
             filename "linux-install/pxelinux.0";
             }
    
  • Развернуть сервер TFTP и сконфигурировать автостарт
    yum install xinetd tftp-server
    chkconfig --level 345 xinetd on
    chkconfig --level 345 tftp on
     
  • Подготовить выделенную эталонную клиентскую машину. Важно, что в списке пакетов должен присутствовать busy-box
    yum install busybox-anaconda
     
  • Зайдя на сервер бездисковой загрузки, необходимо скопировать содержимое файловой системы эталонной клиентской машины в подкаталог root созданного для данного экземпляра ОС каталога
    rsync -v -a -e ssh --exclude='/proc/*' --exclude='/sys/*' ip_эталона:/ /mnt/diskless/i386/CentOS55/root
     
  • На сервере бездисковой загрузки при необходимости доустановить и запустить system-config-netboot
    yum install system-config-netboot
    system-config-netboot

    Эта утилита реализует две задачи. Мастер начальной установки, который можно вызвать из меню утилиты и в любое последующее время, подготавливает «бездисковое окружение», модифицируя файловое дерево созданного зеркала эталонной клиентской станции для работы в режиме бездисковой загрузки. Модифицируется часть файлов, начальные версии сохраняются с расширением .prediskless

    Такое «бездисковое окружение» описывается администратором через страницы мастера. В частности первая страница выдаёт подсказку по заполнению файлового дерева в подкаталог .../root командой rsync с эталонной рабочей станции, вторая тредует ввести IP nfs-сервера и путь к корню эталонного файлового дерева, третья при наличии в файловом дереве нескольких ядер позволяет выбрать то, которое будет грузиться ...

    Сервер бездисковой загрузки обеспечивает одновременную работу с несколькими эталонными зеркалами, а утилита system-config-netboot позволяет подготовить все требуемые эталонные зеркала, а не только одно. Каждое подготовленное файловое дерево отдельной эталонной рабочей станции становится отдельным «бездисковым окружением», редактирование которого также доступно из меню

    Второй задачей утилиты является подготовка «снимков» для каждой бездисковой станции. Снимки располагаются в подкаталоге .../snapshot от корня «бездискового окружения», на одном уровне с подкаталогом .../root. Для каждой бездисковой станции создаётся свой подкаталог .../snapshot/имя_снимка, содержащий подкаталоги и отдельные файлы, уникальные и доступные по записи для каждого бездискового клиента (снимка)

    Кроме подготовки файлового дерева снимка утилита создаёт файл удалённой загрузки PXE и размещает его в каталоге /tftpboot/linux-install/pxelinux.cfg. Имя файла вычисляется на основании заданного администратором MAC адреса сетевой карточки клиента. PXE загрузка ищет именно такие конфигурационные файлы, и только при их отсутствии использует конфигурацию из /tftpboot/linux-install/pxelinux.cfg/default

     

Неочевидными являются следующие моменты. В корне подкаталга .../snapshot расположен файл files, содержащий перечень всех каталогов и файлов, отличающихся от базового «бездискового окружения». Даже если в каталоге снимка расположить дополнительные каталоги и файлы, пересекающиеся с файловым деревом из .../root, задействованы они не будут, пока не появятся в перечне .../snapshot/files, модификация которого не рекомендуется производителем. Вместо модификации основного файла необходимо создать файл .../snapshot.custom и модифицировать его. Как минимум имеет смысл добавить уникальную для каждого снимка поддержку каталога /tmp, например командами

mkdir путь_к_нужному_эталону/snapshot/имя_снапшота/tmp
echo «/tmp» >> .../snapshot/files.custom

Кроме того необходимо расшарить по nfs и подключить домашний каталог, для чего на стороне сервера необходимо сказать
echo «/home *(rw,sync,no_root_squash)» >> /etc/exports
service nfs reload

На стороне клиента, в эталонном файловом зеркале или же непосредственно в файловом дереве снимка, необходимо добавить запись о монтировании домашнего каталога
echo «192.168.0.2:/home /home nfs rsize=8192,wsize=8192,timeo=14,intr» >> .../etc/fstab

Примечание: файлы pxelinux.cfg/default и msgs/boot перезатираются программой system-config-netboot. Это значит, что если до организации сервиса бездисковой загрузки был сконфигурирован сервис сетевой установки (net install), необходимо сохранить указанные файлы до начала конфигурирования сервиса бездисковой загрузки и восстановить их после окончания конфигурирования

Примечание: для входа на бездисковую станцию под пользователем root может потребоваться переконфигурирование механизма selinux или его отключения в файле .../etc/selinux/config


Белонин С.С. (С), сентябрь 2004 года

(даты последующих модификаций не фиксируются)


 
        
   
    Нравится     

(C) Белонин С.С., 2000-2024. Дата последней модификации страницы:2019-12-04 00:43:28