Лучшая система размещения статей
 Добавить в избранное |  Сделать стартовой 
Поиск По Сайту
Навигация
     Главная
     Форум
     Новости
     Обзор новостей
     Гостевая
     Статьи
     Файлы
     Магазин
     Пользователи
     Контакты
     О Проекте
     Карта Сайта
Вход
Логин:

Пароль:


Запомнить меня
Вам нужно Авторизоваться.
Забыли Пароль?
Регистрация
Атестат
Подписка на новости: Подписаться

Вычислительный кластер под FreeBSD

Источник: www.dreamcatcher.ru
Добавлено: 2006-03-04 17:43:11

Кластер используется для обьединения двух и более компьютеров,
работающих как одно целое. Кластеры могут использоваться, чтобы
увеличить надежность и/или доступные вычилительные мощности. Кластер
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


Есть два важных параметра, остальные меняйте по Вашему разумению:
Сперва установите имя кластера:
[все]

name "ClusterName"


Затем интерфейс, используемый кластером:
[все]

mcast_if xl0
($:~)=> cp /usr/local/etc/gmetad.conf.sample
/usr/local/etc/gmetad.conf


Теперь проверьте работу мониторинга кластера. Должна быть запись в
web-интерфейсе для каждого компьютера кластера.
[все]

data_source "ClusterName"10 node1.yourdomain.com:8649
node2.yourdomain.com:8649


Удостоверьтесь, что ClusterName соответствует названию в gmond.conf
файле конфигурации. Значение 10 - интервал опроса компьютеров в
кластере.

Теперь, когда мониторинг настроен, приступим к настройке самого
кластера.
[все]

($:~)=> vi /usr/local/etc/lam-bhost.def


Конфигурируется это легко. Запишите полное имя каждой ноды.
[все]

Node1.yourdomain.com
Node2.yourdomain.com


Попробуем запустить все это дело...
[все]

($:~)=> mv /usr/local/etc/rc.d/gmetad.sh.sample
/usr/local/etc/rc.d/gmetad.sh
($:~)=> mv /usr/local/etc/rc.d/gmond.sh.sample
/usr/local/etc/rc.d/gmond.sh
($:~)=> /usr/local/etc/rc.d/gmetad.sh start
($:~)=> /usr/local/etc/rc.d/gmond.sh start


На сервере запускаем из под непривилегированного пользователя:
[сервер]

($:~)=> lambood -dv


Вы должны увидеть примерно такую картину:

lamboot: boot schema file: /usr/local/etc/lam-bhost.def
lamboot: opening hostfile /usr/local/etc/lam-bhost.def
lamboot: found the following hosts:
lamboot: n0 node1.yourdomain.com
lamboot: n1 node2.yourdomain.com
lamboot: resolved hosts:
lamboot: n0 node1.yourdomain.com --> 10.0.5.100
lamboot: n1 node2.yourdomain.com --> 10.0.5.105
lamboot: found 2 host node(s)
lamboot: origin node is 0 (node1.yourdomain.com)
Executing hboot on n0 (node2.yourdomain.com - 1 CPU)...
lamboot: attempting to execute "hboot -t -c lam-conf.lam -d -v -I
" -H 10.0.5.100 -P 57552 -n 0 -o 0 ""
hboot: process schema = "/usr/local/etc/lam-conf.lam"
hboot: found /usr/local/bin/lamd
hboot: performing tkill
hboot: tkill
hboot: booting...
hboot: fork /usr/local/bin/lamd
[1] 44660 lamd -H 10.0.5.100 -P 57552 -n 0 -o 0 -d
hboot: attempting to execute
Executing hboot on n1 (node2.yourdomain.com - 1 CPU)...
lamboot: attempting to execute "/usr/bin/ssh node2.yourdomain.com
-n echo $SHELL"
lamboot: got remote shell /usr/local/bin/bash
lamboot: attempting to execute "/usr/bin/ssh node2.yourdomain.com
-n hboot -t -c lam-conf.lam -d -v -s -I "-H 10.0.5.100 -P 57552 -n
1 -o 0 ""
hboot: process schema = "/usr/local/etc/lam-conf.lam"
hboot: found /usr/local/bin/lamd
hboot: performing tkill
hboot: tkill
hboot: booting...
hboot: fork /usr/local/bin/lamd
[1] 53214 lamd -H 10.0.5.100 -P 57552 -n 1 -o 0 -d
topology done
lamboot completed successfully


И это хорошо... Добавляем клиентов:
[сервер]

($:~)=> lamnodes
n0 node1.yourdomain.com:1
n1 node2.yourdomain.com:1


Поздравляю! Вы кластеризованы :-) Вы можете открыть браузер и
просмотреть /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, для
оценки всех его возможностей.

Оригинал на английском: www.bsdhound.com/newsread.php?newsid=205

Понравилась статья? Поделись с друзьями!
Facebook Опубликовать в LiveJournal Tweet This


Оглавление   |  ?? ????

Оглавление        Вернуться к Статье

Скачай CMS сейчас!
Текущая версия системы управления сайтом WebCodePortalSystem:
v.7.1.00
Скачать CMS v.7.1.00
Обновление с версии 6.2.01

Сайт разработчика:
Новые бета версии

На Сайте
Гостей: 9
Пользователей: 0


10 новых статей
Наши Партнеры


Copyright WebCode-Command © 2003-2012
Работает под управлением WebCodePortalSystem v. 6.2.01
Rambler's Top100