Кластер используется для обьединения двух и более компьютеров,
работающих как одно целое. Кластеры могут использоваться, чтобы
увеличить надежность и/или доступные вычилительные мощности. Кластер
Beowulf - группа обычно идентичных компьютеров PC, которые являются
сетевыми,обьединены в локальную сеть TCP/IP, и используют общие
разделяемые библиотеки и программы. Теперь прежде, чем буден нам
счастье, важно знать, что приложения должны быть написаны для mpicc
чтобы полностью использовать кластерный ресурс. Вы можете
консультироваться с вебсайтом lam для получения информации и обучающих
программ на эту тему. Итак, начнем.
Команды, выполняемые на сервере будут помечены - [сервер]
Команды, выполняемые на ноде кластера будут помечены - [нода]
Команды, выполняемые на всех компьютерах будут помечены - [все]
Первым, чем Вы должны озаботиться - каждая нода кластера должна иметь
DNS имя. Можно не использовать DNS, а пользоваться /etc/hosts.
Здесь не будет рассматриваться конфигурация BIND.
Затем Ваш сервер должен быть сконфигурирован как NFS сервер:
[сервер]
($:~)=> vi /etc/rc.conf
nfs_server_flags="-u -t -n 4 -h 10.0.5.100" #Replace with your
internal ip address.
mountd_enable="YES"
mountd_flags="-l -r"
rpcbind_enable="YES"
rpcbind_flags="-l -h 10.0.5.100" #Replace with your internal ip
address.
nfs_server_enable="YES"
Затем конфигурируем ноды как NFS клиенты:
[нода]
($:~)=> vi /etc/rc.conf
nfs_client_enable="YES"
Следующим этапом экспортируем /home:
[сервер]
($:~)=> vi /etc/exports
/home -maproot=0:0 -network 10.0.5.0 -mask 255.255.255.0
теперь клиенты должны примонтировать его:
[нода]
($:~)=> vi /etc/fstab
10.0.5.100:/home /home nfs rw 0 0
Удостоверьтесь, что NFS работает должным образом перед продолжением.
Следующим этапом устанавливаем lam-mpi. Это должно быть сделано на
всех компьютерах кластера.
[все]
($:~)=> cd /usr/ports/net/lam
($:~)=> make install clean
Устанавливаем вспомогательное программное обеспечение, которое поможет
нам в мониторинге кластера.
[все]
($:~)=> cd /usr/ports/sysutils/ganglia-monitor-core
($:~)=> make install clean
На сервере ставим web-интерфейс к ganglia. HTTP сервер должен быть
установлен с поддержкой PHP и поддержкой графической библиотеки GD.
[сервер]
($:~)=> cd /usr/ports/sysutils/ganglia-webfrontend
($:~)=> make install clean
Теперь конфигурирование.
[все]
($:~)=> cp /usr/local/etc/gmond.conf.sample /usr/local/etc/gmond.conf
($:~)=> vi /etc/gmond.conf
Есть два важных параметра, остальные меняйте по Вашему разумению:
Сперва установите имя кластера:
[все]
Поздравляю! Вы кластеризованы :-) Вы можете открыть браузер и
просмотреть /usr/local/www/data-dist/ganglia и окончательно
донастроить кластер.
Теперь что с этим кластером делать?
Некоторые команды, которые я использую:
[сервер]
($:~)=> tping N
1 byte from 1 remote node and 1 local node: 0.002 secs
1 byte from 1 remote node and 1 local node: 0.001 secs
1 byte from 1 remote node and 1 local node: 0.001 secs
Tping команда - то же самое как утилита ping, но это используется,
чтобы прозвонить узлы в кластере. N (верхний регистр) означает все
узлы в кластере. Если бы я только хотел прозвонить
node2.yourdomain.com, то я использовал бы lamnodes команду, чтобы
узнать, что число, связанное с тем узлом тогда выполняет tping n1 (n1
является node2.yourdomain.com)
Другая возможность - я могу находиться на одной машине и говорить
кластеру запускать приложения на других машинах и делать вывод на
монитор. Пропробуем.
[сервер]
($:~)=> lamexec N echo "hi"
hi
hi
Пинги, это конечно, дело хорошее, но не совсем то, для чего нужен
кластер. Предлагаю заняться самостоятельным изучением lamexec, для
оценки всех его возможностей.
Оригинал на английском: http://www.bsdhound.com/newsread.php?newsid=205