The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Вычислительный кластер под FreeBSD (cluster freebsd nfs)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: cluster, freebsd, nfs,  (найти похожие документы)
From: Сгибнев Михаил <http://www.dreamcatcher.ru>; Date: Mon, 20 Sep 2004 18:21:07 +0000 (UTC) Subject: Вычислительный кластер под FreeBSD Оригинал: http://www.dreamcatcher.ru/docs/cluster.html Вычислительный кластер под FreeBSD Кластер используется для обьединения двух и более компьютеров, работающих как одно целое. Кластеры могут использоваться, чтобы увеличить надежность и/или доступные вычилительные мощности. Кластер 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, для оценки всех его возможностей. Оригинал на английском: http://www.bsdhound.com/newsread.php?newsid=205

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, Андрей (??), 14:51, 22/08/2007 [ответить]  
  • +/
    Здраствуйте, подскажите кто-нибудь зачем нужно шарить home через nfs? Можно ли как-то продублировать сервер? чтобы при падении сервера, все быстренько продолжило работать на другом?
     
     
  • 2, vasya (??), 18:53, 16/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    вообще nfs-export надо делать на другом сервере, не входящем в кластер
    или расшаривать диски аппаратно (дисковая стойка например)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру