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

Кластер openMosix на Gentoo

Michael Imhof  автор
Michael Andrews  автор
Sven Vermeulen  рецензент
Xavier Neys  рецензент
Илья Крец  переводчик
Азамат Хакимов  редактор перевода

Обновлено 20 ноября 2003
Исходный документ для этого перевода больше не поддерживается

1.  Вступление

Об этом руководстве

Это руководство поможет вам создать кластер openMosix, основанный на дистрибутиве Gentoo Linux. Мы постарались сделать эту процедуру настолько простой для пользователя, насколько это было возможно, и этим помочь новичку в Linux. Опытный пользователь легко сможет связать несколько руководств по openMosix, бездисковым узлам и настройке сети воедино. Мы же надеемся, что этот документ облегчит данную задачу менее опытным пользователям.

Примечание: Если вы намереваетесь создать ваш кластер openMosix, использующий бездисковые узлы, вам следует прочитать следующий раздел, чтобы узнать, как собрать ядро с поддержкой openMosix, а затем наше руководство по бездисковым узлам. После этого возвратитесь к этому документу, чтобы продолжить установку кластера.

О проекте openMosix

OpenMosix — это заплатка для ядра Linux, которая позволяет нескольким узлам сети действовать подобно единому системному образу (single system image, SSI). В результате несколько узлов кажутся одним мультипроцессорным узлом. На момент написания документа последняя версия патча openMosix — 2.4.22, последняя версия утилит openMosix — 0.3.4. Разнообразную информацию о openMosix можно найти на http://openmosix.sourceforge.net. Не так легко объединить в кластер компьютеры с различными версиями заплаток openMosix, и мы обнаружили, что большинство патчей несовместимы с более ранними версиями. OpenMosix распределяет сложные процессы (требовательные к ресурсам) явно при исполнении двоичных файлов a.out или ELF или в том случае, когда сложный процесс разветвляется. OpenMosix не станет распределять легкие процессы, такие как p-threads, или сложные процессы, которые используют разделяемую память.

Посетите домашнюю страницу openMosix, чтобы узнать больше.

О кластере

Наш кластер будет составлен из отдельных компьютеров (узлов), объединяющих вычислительные ресурсы, чтобы повысить вычислительную мощность всех узлов. Нет необходимости в том, чтобы все узлы имели одинаковую архитектуру, однако это делает задачу создания кластера гораздо проще.

Перед тем, как начать

Gentoo должен быть установлен на компьютерах, из которых вы хотели бы составить кластер. Также вам необходимо установить исходные коды ядра openMosix, которые были пропатчены Gentoo.

Чтобы установить эти исходники, просто используйте emerge:

Листинг 1.1: Получение заплатанных исходников ядра

# emerge openmosix-sources

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

О ядрах

Ядро — это программа, которая находится между оборудованием и всеми остальными программами, выполняемыми на компьютере, по существу это сердце операционной системы, основанной на ядре. Когда включается компьютер, BIOS выполняет инструкции, найденные в специальном загрузочном секторе жесткого диска. Чаще всего эти инструкции являются инструкциями началльного загрузчика, который загружает ядро. После загрузки ядра все процессы будут обслуживаться им.

Чтобы узнать больше о ядрах и конфигурации ядер, вы можете обратиться к руководству по ядрам.

Конфигурирование ядра

Ядро может быть настолько большим и настолько настроенным по вашему вкусу, насколько вам этого захочется, но есть несколько параметров ядра, которые вам необходимо проверить.

Важно: Очень важно направить символическую ссылку /usr/src/linux на исходники openmosix, как это показано ниже.

Листинг 2.1: Установка ссылки /usr/src/linux на openmosix

# cd /usr/src
# rm linux
# ln -s linux-2.4.22-openmosix linux

Затем приступайте к конфигурированию ядра:

Листинг 2.2: Правка конфигурации ядра

# cd /usr/src/linux
# make menuconfig

Должен запуститься серо-голубой графический интерфейс, являющийся безопасной альтернативой ручному редактированию файла /usr/src/linux/.config. Если ваше ядро сейчас функционирует нормально, вы возможно захотите сделать резерную копию текущего файла конфигурации:

Листинг 2.3: Резервное копирование конфигурации ядра

# cp .config .config_working

Самым верхним меню должно быть openMosix --->. Если это не так, вам необходимо установить исходники ядра с заплаткой openMosix (см. Перед тем, как начать). Убедитесь, что следующие пункты отмечены как встроенные (а НЕ как модули):

Листинг 2.4: Опции menuconfig

openMosix --->
    [*] openMosix process migration support
    [ ] Support clusters with a complex network topology
    [*] Stricter security on openMosix ports
    (1) Level of process-identity disclosure (0-3)
    [*] openMosix File-System
    [ ] Poll/Select exceptions on pipes
    [ ] Disable OOM Killer
    [ ] Load Limit

Code maturity level options  --->
    [*] Prompt for development and/or incomplete code/drivers

Networking options --->
    <*> Packet socket
    [ ]   Packet socket: mmapped IO
    < > Netlink device emulation
    [ ] Network packet filtering (replaces ipchains)
    [ ] Socket Filtering
    <*> Unix domain sockets
    [*] TCP/IP networking
    [*]   IP: multicasting

File systems --->
    [*] /proc file system support
    [*] /dev file system support (EXPERIMENTAL)
    [*]   Automatically mount at boot 

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

После того, как вы перенастроили ваше ядро, вам следует пересобрать его:

Листинг 2.5: Пересборка ядра и модулей

# make dep
# make clean bzImage modules modules_install
(убедитесь, что /boot подключен, перед тем как копировать туда образ ядра)
# cp arch/i386/boot/bzImage /boot/bzImage-openmosix

Затем добавьте запись для нового ядра в lilo.conf или grub.conf (в зависимости от того, каким загрузчиком вы пользуетесь) и сделайте новое ядро загружаемым по умолчанию. После того, как вы скопировали bzImage в каталог /boot, все, что вам нужно сделать — это перезагрузить систему.

Недостающие параметры

Если при конфигурации ядра вы не можете найти некоторые параметры, убедитесь, что вы отметили:

3.  Настройка узлов openMosix

Установка утилит openMosix

Для того, чтобы кластер мог распределять процессы, необходимо установить несколько пользовательских приложений. Также необходимо запустить сервер openMosix, чтобы узлы могли подсоединяться к кластеру и полностью использовать возможности openMosix. Чтобы установить эти приложения и файлы, воспользуйтесь emerge:

Листинг 3.1: Установка пользовательских утилит openMosix

# emerge openmosix-user

Настройка узлов openMosix

Больше не нужна правка или создание /etc/openmosix.map. Новые версии пользовательских утилит включают в себя демон автоматического обнаружения, который определяет все узлы в вашей сети.

Создайте директории /mfs на каждом узле и подмонтируйте их, если вы хотите использовать файловую систему openMosix (очень рекомендуется), которая позволит вам иметь доступ ко всем узлам.

Листинг 3.2: mkdir /mfs

# mkdir /mfs

Листинг 3.3: Пример записи в /etc/fstab

none                 /mfs            mfs             noauto,dfsa=1          0 0

Примечание: Нет необхдодимости во всех запущенных узлах для корректного функционирования openMosix.

Запуск openMosix

Запуск openMosix очень прост. Следующая команда включит функциональность openMosix в ваше ядро и запустит демон автообнаружения, который будет следить за всеми доступными узлами.

Листинг 3.4: Запуск openMosix

# /etc/init.d/openmosix start

4.  Пользовательские утилиты openMosix

Утилиты командной строки

openMosix-user устанавливает несколько полезных утилит на вашу систему. Вот некоторые из них:

Стресс-тест openmosix может быть использован того, чтобы проверить, работает ли всё на кластере так, как нужно, и как он ведет себя под нагрузкой. Эта программа называется openmosixtest:

Листинг 4.1: Установка openmosixtest

# emerge openmosixtest

Ebuild проинформирует вас, как запустить тест.

Графические утилиты

Чтобы получить графический обзор кластера и увидеть распределенные процессы, вы можете использовать openmosixview.

Листинг 4.2: Установка openmosixview

# emerge openmosixview

Чтобы запустить это чудесное приложение, просто наберите openmosixview:

Листинг 4.3: Запуск openmosixview

# openmosixview

5.  Ссылки

openMosix

Дополнения к openMosix (доступны файлы ebuild)