Ganglia

Ganglia
Ganglia
Image-scalers problems 2010-08-22.png
Страница статистики серверов Викимедиа, сформированная системой Ganglia
Тип

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

Написана на

C, Perl, PHP, Python

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

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

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

Английский

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

3.2.0 (2011.07.7)

Лицензия

Лицензия BSD

Сайт

www.ganglia.info

График системы 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, MacOS 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 (английский). — официальный сайт. Архивировано из первоисточника 7 июля 2012. Проверено 17 мая 2011.
  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

Литература

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Полезное


Смотреть что такое "Ganglia" в других словарях:

  • ganglia — Latin plural of GANGLION (Cf. ganglion) …   Etymology dictionary

  • Ganglia — Ganglion Gan gli*on, n.; pl. L. {Ganglia}, E. {Ganglions}. [L. ganglion a sort of swelling or excrescence, a tumor under the skin, Gr. ?: cf. F. ganglion.] 1. (Anat.) (a) A mass or knot of nervous matter, including nerve cells, usually forming an …   The Collaborative International Dictionary of English

  • ganglia — noun /ˈɡæŋɡliə/ clusters of nerves ... the wonderfully diversified instincts, mental powers, and affections of ants are notorious, yet their cerebral ganglia are not so large as the quarter of a small pins head …   Wiktionary

  • ganglia — Plural of ganglion. * * * ganglia pl of GANGLION * * * gan·glia (gangґgle ə) [Gr.] plural of ganglion …   Medical dictionary

  • ganglia trunci sympathetici — ganglia trunci sympathici [TA] ganglia of sympathetic trunk: sympathetic ganglia that are arranged in a chainlike fashion along each sympathetic trunk, about twenty to twenty three on either side …   Medical dictionary

  • ganglia plexuum autonomicorum — ganglia of autonomic plexuses: groups of nerve cell bodies found in the autonomic plexuses, composed primarily of sympathetic postganglionic neurons; called also ganglia of visceral plexuses …   Medical dictionary

  • ganglia of autonomic plexuses — ganglia plexuum autonomicorum …   Medical dictionary

  • ganglia pelvina — ganglia pelvica …   Medical dictionary

  • ganglia plexuum visceralium — ganglia plexuum autonomicorum …   Medical dictionary

  • ganglia of sympathetic trunk — ganglia trunci sympathetici …   Medical dictionary


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»