Кластер openMosix на Gentoo Michael Imhof Michael Andrews Sven Vermeulen Xavier Neys Илья Крец Азамат Хакимов Это руководство поможет вам создать кластер openMosix, использующий Gentoo. 1.3 2003-11-20 Вступление
Об этом руководстве

Это руководство поможет вам создать кластер 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:

# emerge openmosix-sources
Настройка ядра
О ядрах

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

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

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

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

Очень важно направить символическую ссылку /usr/src/linux на исходники openmosix, как это показано ниже.
# cd /usr/src
# rm linux
# ln -s linux-2.4.22-openmosix linux

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

# cd /usr/src/linux
# make menuconfig

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

# cp .config .config_working

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

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 
Эти параметры конфигурации ядра должны быть только добавлены к специфическим параметрам вашей системы, они не должны полностью заменять эти параметры.

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

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

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

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

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

  • Code maturity level options --->
    • Prompt for development and/or incomplete code/drivers
Настройка узлов openMosix
Установка утилит openMosix

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

# emerge openmosix-user
Настройка узлов openMosix

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

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

# mkdir /mfs
none                 /mfs            mfs             noauto,dfsa=1          0 0
Нет необхдодимости во всех запущенных узлах для корректного функционирования openMosix.
Запуск openMosix

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

# /etc/init.d/openmosix start
Пользовательские утилиты openMosix
Утилиты командной строки

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

  • mosmon - монитор openMosix. Позволяет вам видеть состояние всех узлов, включая использование процессора, установленную память, используемую память и т.д. и т.п.
  • mtop - Улучшенная версия top, которая показывает, на каком узле процесс фактически выполняется.
  • mps - Улучшенная версия ps. Также показывает номер узла.
  • mosctl whois - Эта утилита очень полезна, так как с mosmon и другие показывают лишь номер узла. Используя mosctl whois nodenumber, вы можете выяснить IP-адрес или имя конкретного узла.

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

# emerge openmosixtest

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

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

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

# emerge openmosixview

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

# openmosixview
Ссылки
openMosix
  • http://openmosix.sf.net
Дополнения к openMosix (доступны файлы ebuild)
  • openMosixview
  • стресс-тест openMosix
  • общий демон openMosix