Создание специализированного дистрибутива 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
На консоль ничего не выводится, но это не страшно — «все ходы записаны», а ход сборки протоколируется в файлы вида
Получившийся образ диска сохраняется в домашнем каталоге /out/
Теперь можно приступать к созданию собственного сервера.
Модификация базового дистрибутива
Модификация базового дистрибутива проводится с помощью дополнительных пакетов и изменения 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 — пакет содержит все графические части, дизайн и, несущественные для сервера, первоначальные пользовательские настройки для оконных сред. Именно здесь можно поменять внешний вид веб-интерфейса, загрузчика, добавить свои картинки для слайд-шоу во время инсталляции.