нагрузке. Процессы, обрабатывающиеся на любом из узлов, при увеличении нагрузки данного компьютера по сравнению с другими способны передаваться на любой другой компьютер кластера. OpenMosix постоянно пытается оптимизировать распределение ресурса между машинами, при этом новый узел может быть добавлен «на лету» и автоматически будет подхвачен кластером. Так как все openMosix расширения выполняются внутри ядра, каждое из приложений, автоматически извлекает выгоду из распределенной вычислительной концепции openMosix. Кластер ведет себя фактически как многопроцессорная система, правда без ограничения на их максимальное число. И естественно возникло желание испытать это все в деле, тем более что большая часть работы уже проделана.
Как и в приведенном выше примере, один из компьютеров играет роль главного (master), а остальные, сколько есть, подчиненные (slave). Для работы понадобятся сами ядра с патчем от openMosix и инструменты для работы openmosix-tools. Все это можно найти на странице http://prdownloads.sourceforge.net/openmosix/ , где доступны как сами патчи, так и уже перекомпили- рованые (серверные) ядра для разных платформ, причем уже доступны патчи для ядер серии 2.6. Мы будем устанавливать при помощи патча, самостоятельно компилируя все ядра.
Для этого берем ядро 2.4.22:
# wget -с http://www.kernel.Org/pub/linux/kernel/v2.4/ jlinux-2.4.22.tar.bz2
# wget -с http://tab.tuxfamily.org/download/openmosix/ j
patch-2.4.22-om-20030811.bz2
# tar -xjvf linux-2.4.22.tar.bz2# cd linux-2.4.22
# bzcat ../patch-2.4.22-om-20030825.bz2|patch -pi
# In -sf /path/to/linux-2.4.22 /usr/src/linux
Теперь заходим в него:
# cd /usr/src/linux
Конфигурируем серверное ядро:
# make xconfig [menuconfig, gconfig]
И смотрим, чтобы следующие пункты были включены в ядро, а не в виде модулей:
openMosix -
openMosix process migration support openMosix File-System
Networking options -
Packet Socket Socket Filtering TCP/IP networking IP: multicasting
File systems -
/proc file system support
Network File Systems -
NFS file system support NFS server support Provide NFSv3 server support
# make dep# make bzlmage amp; amp; make modules amp; amp; make module sinstall
Копируем ядро на свое место:
# mv arch/i386/boot/bzImage /boot/vmlinuz-openmosix
# rpm -ivh openmosix-kernel-2.4.22-openmosixl.i686.rpm
Для начала сохраняем конфигурационный файл основного ядра.
# ср /usr/src/linux/.config /usr/src/linux/.confi gmaster
Следующие опции нужно включить в ядро.
openMosix -openMosix process migration support openMosix File-System
Networking options -
TCP/IP networking
IP: kernel level auto-configuration IP: DHCP support IP: BOOTP support
File systems -
/proc file system support
Network File Systems -
NFS file system support Provide NFSv3 client support Root file system on NFS
Но получившееся в результате ядро копируем в другое место, а именно в каталог /tftpboot. Например:
# ср /usr/src/linux/arch/i386/boot/bzImage J
/1ftpboot/1ts/vmlinuz-openmos ix-s1ave
настраиваем его загрузку описанным выше способом. В принципе для этого не обязательно иметь установленный полный пакет Itsp, а все необходимое создать вручную, как это все сделать, можно найти в дополнительной литературе, указаной в конце статьи. Но все равно, для того чтобы избежать большого количества ручной работы, советую в таком случае скачать файл lts pinitrd kit и lts putil src ( http://prdown loads .sou reef orge. n et/ltsp/lts pin itrd kit-3.0.11- i386.tgz и http://prdownloads.sourceforge.net/ltsp/lts putil src- 3.0.0-i386.tgz).
Все, что мы делали до сих пор, фактически не отличается от предыдущего варианта ядра. Чтобы заставить компьютеры работать в одной связке и обмениваться нагрузкой, необходимо установить пакет openmosix-tools. Его также можно получить уже в виде перекомпилированных пакетов или все это проделать самому. Ничего особенного в компиляции нет:
# ./configure -with-kerneldir=/usr/src/linuxФлагом -with-kerneldir указываем путь к исходным файлам ядра, по умолчанию /usr/src/linux-openmosix:
# make amp; amp; make install
Или строим пакет для rpm-based дистрибутивов:
# rpmbuild -ta openmosix-tools-0.3.4.tar.gz
1 192.168.0.1 12 192.168.0.100 10
# ср /etc/openmosix.map /opt/ltsp/i386/etc/
# ср /sbin/setpe /opt/ltsp/i386/sbin/# ср /bin/mosrun /opt/ltsp/i386/bin/
# ср /bin/mosmon /opt/ltsp/i386/bin/
# ср /bin/mosctl /opt/Itsp/i386/bin/
# cp /bin/migrate /opt/ltsp/i386/bin/
# cp /etc/rc.d/init.d/openmosix /qpt/ltsp/i386/etc/rc.openmosix
# /etc/init.d/openmosix start
# mosctl status 2
si::sysinit:/etc/rc.d/rc.sysinit
si::sysinit:/bin/mosrun -h /etc/rc.d/rc.sysinit
test -f /proc/$$/lock amp; amp; echo 0 > /proc/$$/lock
Кроме документации на сайтах проектов LTSP и openMosix советую просмотреть еще и следующие документы:
1. Колисниченко Д. Загрузка по сети. //журнал «Системный администратор», 9(10), 2003 г. 47-49 с.2. LTSP + openMosix: Integration How-To: http://home.onestop.net/jjensen/ltsp-om5r3c.html
3. openMosix and Diskless Nodes: http://www.gentoo.org/doc/en/openmosix-howto.xml