International conference of developers
and users of free / open source software

Создание специализированного дистрибутива Linux для подключения к национальной GRID-сети

Денис Пынькин, Минск, Беларусь

Unicore is ready-to-run system used as main platform for Belarusian national GRID network. There are no Linux distributions for bare-metal Unicore installation and user-friendly administration. Article describes steps to produce the ALT Linux based server with Unicore services working out of the box.

Сборка базового дистрибутива

Современные дистрибутивы ALT Linux собираются с помощью инструмента mkimage, который состоит из набора правил для утилиты make и вспомогательных скриптов и предоставляет базовый функционал для сборки образа Linux-системы. Фактически для создания своего собственного дистрибутива достаточно в правильном порядке и с правильными параметрами собрать из предоставляемых «кирпичиков» единое целое, что в общем-то является нетривиальной задачей.

Так было предпринято несколько попыток создать универсальные профили для mkimage, но наиболее удачным и развитым оказался mkimage-profiles-desktop (в рассылках и на форумах часто сокращают до аббревиатуры M-P-D).

Далее, на примере создания дистрибутива Unicore для упрощения подключения к белорусской национальной научной GRID-сети, описывается как можно использовать M-P-D для создания собственного инсталляционного образа сервера.

Для начала необходимо получить правила сборки дистрибутива из git-репозитория:

git clone git://git.altlinux.org/people/boyarsh/packages/
 mkimage-profiles-desktop

Создать файл для пакетного менеджера apt с описанием репозитория и соответствующей архитектурой, который необходимо расположить по пути /arch.conf, в случае стабильного репозитория для Platform 6 и 64-битной архитектуры — /p6-x86_64.conf. В качестве минимума в этом файле должна содержаться ссылка на файл с описаниями источников пакетов, для нашего примера — /p6-sources-x86_64.list.

Например для белорусского зеркала ALT Linux эти файлы будут выглядеть следующим образом:

p6-x86_64.conf:

Dir::Etc::SourceList "/home/d4s/p6-sources-x86\_64.list";

p6-sources-x86_64.list:

rpm [p6] ftp://ftp.mgts.by/pub/ALTLinux/p6/branch x86_64 classic
rpm [p6] ftp://ftp.mgts.by/pub/ALTLinux/p6/branch noarch classic

Для создания установочного диска своего сервера удобнее всего использовать профиль от Антона Фарыгина, который можно собрать в качестве теста, чтобы проверить работоспособность конфигурации. Например, таким образом можно собрать установочный диск для 64-битной архитектуры с дизайном Sisyphus:

archs=x86_64 ./make-distro server-light
 --with-branding=altlinux-sisyphus

На консоль ничего не выводится, но это не страшно — «все ходы записаны», а ход сборки протоколируется в файлы вида ..log или, в нашем случае, в файл server-light.×86_64.log.

Получившийся образ диска сохраняется в домашнем каталоге /out/ ( /out/server-light/).

Теперь можно приступать к созданию собственного сервера.

Модификация базового дистрибутива

Модификация базового дистрибутива проводится с помощью дополнительных пакетов и изменения M-P-D для добавления своих правил сборки дистрибутива и списков программного обеспечения, которое будет доступно во время и после установки.

Все дополнительные пакеты условно можно разбить на две категории – функциональные и вспомогательные. К функциональным относятся пакеты, которые содержат все необходимое для полноценного выполнения сервером той задачи, для которой он создается. Для создания управляющего сервера Unicore, технически готового для включения в белорусский национальный GRID, это пакеты, содержащие сами сервисы Unicore: gateway, unicorex, xuudb и TSI. Кроме того, для полноценного управления вычислительным кластером необходим сервис управления пакетными задачами Torque, а по требованию операционного центра добавлено программное обеспечение учета ресурсов и система мониторинга Ganglia.

Кроме того разработаны специально для дистрибутива два дополнительных пакета:

  • unicore-grid-by — содержит конфигурационные скрипты и файлы, специфичные для белорусской GRID-сети.
  • alterator-unicore-servers — минимальный интерфейс для настройки Unicore, реализованный в виде модуля к системе управления Alterator.

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

Так можно выделить следующие пакеты:

  • installer-distro-unicore-server — этот пакет содержит правила, которые будут выполняться во время установки на различных этапах. Например тут можно указать в каком порядке и какие шаги выполнять программе-установщику, какие сервисы будут запускаться. Сюда же можно добавлять скрипты для более тонкой настройки системы в процессе инсталляции.
  • installer-feature-vm-unicore-server-stage2 — этот пакет позволяет подсказать программе-установщику какие разделы и какого размера должны быть созданы жестком диске по умолчанию, а также точки монтирования и предпочтительные файловые системы.
  • branding — пакет содержит все графические части, дизайн и, несущественные для сервера, первоначальные пользовательские настройки для оконных сред. Именно здесь можно поменять внешний вид веб-интерфейса, загрузчика, добавить свои картинки для слайд-шоу во время инсталляции.