From Kerrighed

Примечания к установке Kerrighed

Это краткое описание установки Kerrighed. Для более полной информации следует ознакомиться с документацией.

Contents

Предварительные требования

Для сборки и установки Kerrighed необходимы следующее ПО:

  • automake  : версии >= 1.9
  • autoconf  : версии >= 2.59
  • gcc  : ознакомьтесь с рекомендациями версии gcc ядра Linux 2.6.30 (<linux>/Documentation/Changes)
  • различные утилиты :
    • libtool
    • pkg-config
    • awk (рекомендуется GNU awk)
    • bzip2
    • patch
    • wget

Необязательно (но желательно) наличие следующих компонент:

  • xsltproc  : позволяет создавать документацию в различных форматах (необходимо только мейнтейнерам).
  • Python (>= 2.5) : для установки Python обертки libkerrighed.

Быстрая компиляция и установка

  • Предположим, что тарбол с Kerrighed распакован в '/usr/src/kerrighed-src'
  • При желании, можно загрузить тарбол исходных кодов ядра linux-2.6.30 в '/usr/src'. В ином случае, скрипт 'configure' будет делать это при каждом исполнении.
  • Далее необходимо указать конфигурацию сборки:
 % cd /usr/src/kerrighed-src && ./configure --sysconfdir=/etc
  • Настроить ядро. Скрипт `./configure' укажет стандартную конфигурацию сборки ядра, которая может не удовлетворить вас, но Kerrighed с ней гарантированно запустится.
    • Опция `configure' --with-kernel-* может быть указана для настройки сборки ядра с использованием файла `.config', или с использованием одной из целей *config ядра.
    • Для просмотра всех опций настройки сборки наберите './configure --help'
    • Для просмотра некоторых подсказок о параметрах ядра, посмотрите секцию [Настройки ядра].
  • Соберите исходный код:
 % make
  • Установите всё (необходимо выполнить под учетной записью пользователя root):
 % make install

Специфичные настройки

Kerrighed состоит из нескольких частей, каждая из которых может быть собрана и установлена отдельно:

  • Ядро Kerrighed (модифицированное ядро Linux)
  • Библиотеки
  • Утилиты
  • Скрипты
  • Тесты

Основные опции настройки

Скрипт `configure` пытается подобрать правильные значения для различных системно-зависисых переменных во время сборки. Он использует эти значения для создания файла `Makefile` в каждой директории пакета. Также, он может создать один или несколько заголовочных `.h` файлов, содержащих системно-зависимые определения. После этого он создает скрипт `config.status`, который вы сможете запустить в будущем, чтобы использовать сохраненные настройки, файл `config.cache`, который сохраняет результаты проверок для увеличения скорости перенастройки, и файл `config.log`, который содержит вывод компилятора (в основном используется для отладки `configure`).

Если вам пришлось сделать что-то необычное для компиляции пакета, опишите, каким образом скрипт `configure` может это выполнить, и пришлите ваши изменения или инструкции на email адрес, указанный в файле `README`, и ваше предложение может появиться в следующем релизе. Если файл `config.cache` содержит данные, которые вы не хотите передавать, вы можете удалить, либо изменить их.

Файл `configure.in` используется для создания `configure` программой `autoconf`. Вам необходим только файл `configure.in`, если вы захотите изменить `configure`, или пересоздать его, используя новую версию `autoconf`.

Используемые пути

По умолчанию

make install 

установит файлы пакета в директории `/usr/local/bin`, `/usr/local/man`, и т.д. Вы можете указать префикс установки, отличный от `/usr/local`, передав скрипту `configure` параметр `--prefix=PATH`.

Основные параметры configure

Скрипт `configure` принимает следующие параметры:

--cache-file=ФАЙЛ
    Использовать и сохранять результаты тестов в ФАЙЛ вместо
    ./config.cache.  Установка переменной ФАЙЛ в значение /dev/null отключает кэширование (для отладкиconfigure).

--help
    Печатает список всех опций configure и выходит.

--quiet
--silent
-q
    Не печатает сообщения о проводимых тестах.

--srcdir=ДИРЕКТОРИЯ
    Искать исходные коды пакета в директории ДИРЕКТОРИЯ.  Обычнно
    configure может найти директорию с исходными кодами сам.

--version
    Печать версии Autoconf использованного для генерации скрипта configure
    и выход.
--disable-silent-rules
    Подробный вывод сборки (отменяется: `make V=0')
--enable-silent-rules
    Менее подробный вывод сборки (отменяется: `make V=1')

Дополнительные параметры configure

Следующие параметры могут быть переданы скрипту `configure`:

  --disable-kernel  	   Отключает автоматическую настройку/сборку/установку ядра (По умолчанию=enable)
  --disable-libkerrighed   Отключить libkerrighed (По умолчанию=enable)
  --disable-python	   Отключить код на Python (По умолчанию=enable)
  --disable-tools	   Отключить утилиты (По умолчанию=enable)
  --disable-host-tools     Отключить сервис хоста Kerrighed (По умолчанию=enable)
  --enable-preserve-conf   Не перезаписывать существующие файлы настройки (По умолчанию=disable)
  --enable-tests	   Включить тесты глобально (По умолчанию=disable)
  --disable-tests-ktp	   Отключить тесты 'ktp'
  --disable-tests-apps	   Отключить тесты 'apps'
  --disable-tests-proc	   Отключить тесты 'proc'
  --disable-tests-benchmark
                           Отключить тесты 'benchmark'
  --with-kernel-mirror	   Зеркало kernel.org, используемой для получения исходных кодов ядра Linux
                           [default=ftp.eu.kernel.org]
  --with-kernel-config	   config|menuconfig|xconfig|gconfig|defconfig|allmodconfig|allyesconfig|allnoconfig
                           Если вы используете автоматическую настройку/сборку/установку ядра, используйте
                           одну их этих опция для конфигурирования ядра.
                           (По умолчанию=defconfig)
   --with-kernel-config-file
                           Указывает путь до файла .config, используемого для компиляции ядра
                           (По умолчанию=none)
  --with-ltp-base	   Путь до базовой директории ltp (По умолчанию=DATAROOTDIR/ltp)

Сборка из произвольной директории

Компиляция и установка могут быть выполнены за пределами директории с исходниками. Просто создайте новую директорию, откуда вы хотите выполнить сборку, и перейдите в неё. Запустите на выполнение скрипт `configure` из этой директории. Все цели `make` могут быть использованы как обычно.

Советы разработчикам

Директория исходников ядра — '_kernel'. Если он не существует, то скрипт `configure` создаст её из исходников ванильного ядра Linux и патча Kerrighed. Если эта директория существует, то скрипт `configure` будет использовать её.

Настройки ядра

Если вы собираетесь редактировать настройки ядра, учтите, что следующие параметры в текущий момент не работают с Kerrighed:

 - Processor type and features -> Preemption Model -> Voluntary
   Kernel Preemption (CONFIG_PREEMPT_NONE=y,
   CONFIG_PREEMPT_VOLUNTARY=n, CONFIG_PREEMPT=n)
 - Exectuble file formats / Emulations -> IA32 Emulation (CONFIG_IA32_EMULATION)
 - Security options -> Enable access key retention support (CONFIG_KEYS=n)

Запуск Kerrighed

Новая архитектура Kerrighed

Kerrighed теперь изолирован внутри контейнера ядра Linux на всех нодах. Для информации о контейнерах ядра Linux, ознакомьтесь с техническими статьями, доступными в интернет, например здесь

Эти изменения в userspace касаются установки и запуска кластера.

В нескольких словах, каждая нода Kerrighed запускается в контейнере root (корневом контейнере), в котором доступны только локальные ресурсы. Для доступа к глобальным ресурсам, необходимо запустить контейнер Kerrighed на одной ноде, а затем добавить остальные ноды в контейнер Kerrighed.

Быстрая установка

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

  • Корневой контейнер и контейнер Kerrighed запущены на одинаковой файловой системе.
  • Корневой контейнер запускает весь кластер.
  • Контейнер Kerrighed запускает sshd на нестандартном порте (2222) для возможности входа пользователя.
 Примечание: для корневого контейнера sshd на порте 2222 и контейнере Kerrighed sshd
 на (стандартном) порте 22, отредактируйте файлы `/etc/default/ssh'
 и `/etc/kerrighed/krginit_helper.conf'.
  • Известны номера нод, которые вы хотите запускать при загрузке, и их node_id.

Теперь, предположим, что вы следовали инструкциям секции 2 #Быстрая компиляция и установка.

  • Отредактируйте файл `/etc/default/kerrighed-host`. Установите значение BOOT_ID в node_id запускающей контейнер.
  • Отредактируйте файл `/etc/default/kerrighed`. Установите значение ADD_OPTS в "--total N", где N — это количество нод, запускаемых при загрузке кластера. При необходимости, после загрузки можно добавлять ноды с помощью утилиты krgadm(1).
  • Добавьте init-скрипт в ваш стандартный runlevel. В Debian GNU/Linux это можно сделать так:
 % update-rc.d kerrighed-host defaults 99

Настройка ядра

Ядро Kerrighed может быть настроено с помощью загрузочных параметров.

  • session_id=X.Параметр session_id содержит идентификатор кластера. Если несколько кластеров Kerrighed находятся в одном сегменте сети, каждый кластер должен иметь свой идентификатор, для отсутствия конфликтов. X — целое число в пределах 1..9999. Этот параметр необходим.
  • node_id=X. Параметр node_id содержит идентификатор ноды. Это целое число. Должен быть уникален в пределах кластера. Принимаемые значения: 0..255. Если параметр autonodeid не используется, то этот параметр необходим.
  • autonodeid=0|1. Когда параметр autonodeid равен 1, node_id принимается равным последним цифрам IP адреса. Для этого необходимо, чтобы драйвер сетевой карты был скомпилирован в ядре, и IP адрес был установлен при загрузке (По DHCP или как параметр ядра при загрузке ( Описано в bootparam(7) ) ). По умолчанию параметр равен 1 (активен).


Перевод

Переведено Александром Масловым aka drakmail.

Translated by Alexander Maslov aka drakmail.