Ganglia

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Ganglia
Image-scalers problems 2010-08-22.png
Страница статистики серверов Викимедиа, сформированная системой Ganglia
Тип

Мониторинг параллельных вычислений

Написана на

C, Perl, PHP, Python

Операционная система

Кроссплатформенное программное обеспечение

Языки интерфейса

Английский

Последняя версия

3.5.7 (18 февраля 2013)

Лицензия

Лицензия BSD

Сайт

ganglia.info

Ganglia на Викискладе
График системы Ganglia, отображающий количество правок статей в Википедии. Отчетливо виден интервал когда сервер Викимедиа перестал отвечать.

Ganglia (МФА: ˊgæŋglɪə) — масштабируемая распределенная система мониторинга кластеров[1] параллельных и распределенных (англ. grid) вычислений и облачных систем с иерархической структурой. Позволяет наблюдать статистику и историю (загруженность процессоров, сети) вычислений в реальном времени для каждой из наблюдаемых машин.[2][3]

Проект Ganglia был создан в 1998 году в Калифорнийском университете в Беркли как продолжение проекта Millennium, который был инициирован Национальным научным фондом США.[2][4]

Назначение и применение[править | править вики-текст]

Система построена по иерархическому принципу для интеграции кластеров. Для мониторинга состояния кластеров и их объединения используется древовидная система основанная на P2P соединениях и широковещательных протоколах. Система использует широко известные технологии: XML для представления данных, XDR для сжатия данных, RRDtool для хранения и визуализации данных. Она построена на базе тщательно спроектированных алгоритмов и структур данных, что обеспечивает надёжность, позволяет свести к минимуму накладные расходы на каждом из узлов и достичь высокой степени параллелизма. Для отображения страниц статистики используется шаблонизатор TemplatePower.[5]

Система была портирована на широкий спектр операционных систем и процессорных архитектур, и в настоящее время используется на более чем 500 кластерах по всему миру. Существует возможность установки Ganglia на следующие операционные системы: Linux (i386, ia64, sparc, alpha, powerpc, m68k, mips, arm, hppa, s390), FreeBSD, NetBSD, OpenBSD, DragonflyBSD, Mac OS X, Solaris, AIX, IRIX, Tru64, HPUX и Windows NT/XP/2000/2003/2008.[6] Ganglia используется для связи кластеров в университетских кампусах по всему миру и может масштабироваться для обработки кластеров имеющих до 2000 узлов в своем составе.

Установка[править | править вики-текст]

Необходимые пакеты для установки системы Ganglia присутствуют в большинстве современных репозиториев операционных систем, построенных на базе ОС GNU Linux. Поэтому процесс установки не представляет особых сложностей. В Ubuntu необходимо выполнить команду:

sudo apt-get install ganglia-monitor ganglia-webfrontend chkconfig

Мы устанавливаем программу chkconfig для того чтобы иметь возможность управлять автоматическим запуском демонов при старте системы. В Fedora chkconfig как правило уже есть в системе, поэтому команда установки сокращается до:

sudo yum install ganglia
sudo yum install ganglia-gmond

Предполагается, что веб-сервер уже установлен. После установки вы можете открыть страницу статистики Ganglia, для это перейдите по адресу:

http://localhost/ganglia/

Если открыть страницу не удалось, то необходимо скопировать конфигурационный файл пакета ganglia-webfrontend в папку конфигурации виртуальных хостов Apache:

cp /etc/ganglia-webfrontend/apache.conf /etc/apache2/conf.d/ganglia-webfrontend.conf
service apache2 restart

Демоны gmetad и gmond должны запускаться автоматически при старте системы, для того чтобы проверить так ли это необходимо выполнить команду:

chkconfig --list|grep '^gm[etaon]*d'

gmetad 0:off 1:off 2:on 3:on 4:on 5:on 6:off

gmond 0:off 1:off 2:off 3:off 4:off 5:off 6:off

В результате выполнения команды мы должны увидеть gmetad и/илиgmond с опциями загрузки «on». Если на всех уровнях выставлено значение «off», то можно включить сервисы командой:

chkconfig --level 2345 gmetad on
chkconfig --level 2345 gmond on

это сработает только в том случае, если демоны зарегистрированы как сервисы. Если нет, то можно прописать старт демона вручную, скопировав скрипт запуска из директории с исходным кодом Ganglia в директорию инициализации системы:[6]

% cp ./gmond/gmond.init /etc/rc.d/init.d/gmond

% chkconfig --add gmond
% chkconfig --list gmond
gmond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
% /etc/rc.d/init.d/gmond start

Starting GANGLIA gmond: [ OK ]

Однако в Ubuntu вы увидите сообщение об ошибке, потому что в этой ОС используется отличная от других систем структура директорий инициализации системы. Поэтому иногда может понадобится создать несколько символических ссылок, для подмены несуществующих директорий, которые использует Ganglia:[7]

mkdir /etc/rc.d

mkdir /etc/rc.d/init.d

ln -s /lib/lsb/init-functions /etc/rc.d/init.d/functions

Настройка[править | править вики-текст]

Имя кластера прописывается в файле /etc/ganglia/gmond.conf. Если необходимо назначить кластеру имя clustername, то нужно прописать:

cluster { 
  name = "clustername" 
  owner = "unspecified" 
  latlong = "unspecified" 
  url = "unspecified" 
}

В качестве IP адреса по умолчанию используется 239.2.11.71, его можно прописывать как дополнительный для интерфейса который соединен с кластером.

route add -host 239.2.11.71 dev eth1

Источники данных указываются в конфигурационном файле демона gmetadgmetad.conf:

 data_source "Кластер 1" 127.0.0.1  1.2.3.4:8655  1.2.3.5:8625
 data_source "Кластер 2" 1.2.4.4:8655

Для того чтобы увидеть в каком виде Ganglia получает данные с хостов необходимо выполнить в терминале команду:

telnet localhost 8649

где 8649 стандартный порт Ganglia.

Демоны[править | править вики-текст]

Загрузка серверов Викимедиа, октябрь 2010 года
Отказ европейских серверов Викимедиа, второе сентября 2010 года

gmetad[править | править вики-текст]

gmetad (Ganglia метадемон) Для сбора информации и её отображения на стороне пользователя в системе Ganglia используется gmetad.[8] По умолчанию для получения данных от других клиентов используется 8651 порт. Конфигурационный файл можно найти в директории:

/etc/ganglia/gmetad.conf

Исполняемый файл самого демона находится в директории:

/usr/sbin/gmetad

gmond[править | править вики-текст]

gmond (англ. Ganglia monitoring daemon) — демон который запускается на всех узлах для которых необходимо собирать статистику. Конфигурационный файл можно найти в директории:

/etc/ganglia/gmond.conf

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

man gmond.conf

Исполняемый файл находится в директории:

/usr/sbin/gmond

Модули[править | править вики-текст]

gstat[править | править вики-текст]

gstat (англ. Ganglia Cluster Status Tool) — утилита командной строки, позволяющая импортировать информацию из Ganglia в другие приложения.[9]

/usr/bin/gstat

Для того чтобы отобразить список основных команд, используется команда:

 gstat --help

Для отображение полной справочной информации можно воспользоваться командой man:

man gstat

gmetric[править | править вики-текст]

Используется для ввода данных из сторонних источников в Ganglia.[10]

/usr/bin/gmetric

gexec[править | править вики-текст]

gexec (gexecd) — это масштабируемая система удаленного выполнения задач (программ) в кластерах, которая может работать совместно с системой Ganglia. Для удаленного выполнения параллельных (распределенных) заданий используется RSA аутентификация (демон authd).[11] Система прозрачно перенаправляет программные потоки (stdin, stdout, stderr) и события между распределенными процессами, что позволяет создавать распределенную среду переменных окружения и масштабировать систему до более чем 1000 узлов в составе, без потери надежности. Механизм работы основывается на создании древовидного массива всех TCP сокетов между узлами и распространении управляющей информации по всему дереву. С помощью иерархической системы управления, gexec распределяет как и вычислительные задания, так и ресурсы. Это позволяет устранить проблемы, связанные с ограничениями каждого из узлов, например, ограничение на количество открытых дескрипторов файлов.[12]

Для получения списка хостов в кластере gexec опрашивает узел на котором установлен модуль gmond:

# export LD_ASSUME_KERNEL="2.2.5"
# export GEXEC_GMOND_SVRS="host1 host2"
# gexec -n 0 hostname
1 host1
4 host4
3 host3
0 host0
2 host2

Если узлы на которых запущен gmond недоступны, то список входящих в кластер узлов берется из переменой окружения GEXEC_SVRS.

В gexec интегрирована возможность распределения нагрузки в кластере. Информация о степени загружености узлов запрашивается у gmond. Для балансировки нагрузки задание запускается на наименее загруженных узлах:

gexec -n 5 program

т.е. вышеописанная команда запустит на исполнение программу program на пяти наименее загруженных узлах кластера.[9]

Для включения поддержки gexec в Ganglia необходимо установить соответствующую переменную в конфигурационном файле gmond.conf:

globals{
•••
gexec = yes
•••
}

этот параметр означает, что каждая машина на которой запущен демон gmond будет рассылать специальное сообщение о том, что на машине установлена gexec.

Если вы компилируете Ganglia из исходных кодов, то необходимо явно включить поддержку gexec на стадии конфигурирования:

% ./configure—enable-gexec

gexec можно использовать для выполнения параллельных задач:[13]

gexec -n 12 parprog -in indata.${GEXEC_MY_VNN} -out outdata.${GEXEC_MY_VNN}

каждая из программ parprog получит свою часть данных и сформирует свой результат.

RRDtool[править | править вики-текст]

Хранение и визуализация данных (графики) осуществляется в Ganglia с помощью инструментария RRDtool.

См. также[править | править вики-текст]


Примечания[править | править вики-текст]

  1. Материалы Девятой международной конференции-семинара ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ПАРАЛЛЕЛЬНЫЕ ВЫЧИСЛЕНИЯ НА КЛАСТЕРНЫХ СИСТЕМАХ / С.М. Аракелян (ответственный редактор). — Владимир: Издательство Владимирского государственного университета, 2009. — С. 65. — 437 с. — 150 экз, экз. — ISBN 978-5-89368-958-7.
  2. 1 2 Ganglia Monitoring System (англ.). — официальный сайт. Проверено 17 мая 2011. Архивировано из первоисточника 7 июля 2012.
  3. Ganglia:: Wikimedia Wikimedia Cloud Report  (англ.)
  4. start [UC Berkeley Clustered Computing]
  5. Official TemplatePower Website
  6. 1 2 Ganglia 3.1.x Installation and Configuration – ganglia
  7. How to Install Altiris Agent on Ubuntu | Symantec Connect
  8. Ubuntu - Подробная информация о пакете gmetad в natty
  9. 1 2 ganglia_readme – ganglia
  10. Ganglia и Nagios: Часть 1. Мониторинг коммерческих кластеров с помощью Ganglia
  11. authd
  12. gexec
  13. http://www.cecalc.ula.ve/HPCLC/slides/day_06/Monitoring/Exercises_Monitoring/Ganglia_Cluster_Toolkit.pdf

Литература[править | править вики-текст]

Ссылки[править | править вики-текст]