Конфигурирование агентов и балансировка нагрузки в распределенной системе мониторинга

УДК 681.3

А.В. Бабич, Г.Б. Берсенев КОНФИГУРИРОВАНИЕ АГЕНТОВ И БАЛАНСИРОВКА НАГРУЗКИ В РАСПРЕДЕЛЕННОЙ СИСТЕМЕ МОНИТОРИНГА

Дается описание архитектуры и функций распределенной динамически конфигурируемой системы активного мониторинга корпоративной сети. Предложено формальное описание и алгоритмы решения задачи физического и логического конфигурирования агентов и задачи балансировки нагрузки.

Корпоративная сеть, распределенная система мониторинга, конфигурирование агентов, балансировка нагрузки

A.V. Babich, G.B. Bersenev AGENTS’ CONFIGURING AND LOAD BALANCING IN DISTRIBUTED MONITORING SYSTEM

Description of architecture and functions of distributed dynamically configured active network monitoring system is given. Formal description and algorithms of the task of phisycal and logical configuring of agents and the task of load balancing are proposed.

Network, distributed monitoring system, configuring of agents, load balancing

Активный рост размеров компьютерных сетей предприятий приводит к необходимости создания распределенных систем для их мониторинга. Существующие системы предполагают наличие выделенных станций мониторинга. Большинство таких систем рассчитаны на статическую балансировку нагрузки, проводимую администратором сети на основе собственного опыта. Имеющиеся распределенные системы с возможностью динамической балансировки нагрузки, например, Ganglia [1] или Nagios с модулем Distributed Nagios eXecutor [2], обеспечивают равное распределение нагрузки между станциями мониторинга. В настоящее время актуальной становится задача создания распределенных «гостевых» систем мониторинга, агенты которых используют свободные ресурсы серверов корпоративной сети. Поскольку ресурсы, предоставляемые агентам серверами сети, будут изменяться со временем, возникает необходимость динамического конфигурирования агентов и балансировки нагрузки в зависимости от состояния сети.

Распределенная динамически конфигурируемая система активного мониторинга, разрабатываемая авторами, состоит из набора агентов и системы управления [3]. Система управления осуществляет функции взаимодействия с пользователем, конфигурирования агентов и назначения источников данных агентам. Отметим, что размещение агентов на существующих серверах и использование их свободных ресурсов позволяет значительно сократить расходы на мониторинг.

В качестве протокола для активного мониторинга система использует наиболее распространенный протокол для активного сетевого оборудования второго и третьего уровней мо-

дели взаимодействия открытых систем (OSI): протокол SNMP (Simple Network Management Protocol). Использование этого протокола предполагает запуск SNMP-агентов на объектах мониторинга. В большинстве случаев эта задача решается производителем активного сетевого оборудования на аппаратном уровне. Агенты системы, размещаемые на существующих серверах сети, выполняют функции опроса объектов мониторинга, хранения данных мониторинга в виде RRD (Round Robin Database) файлов и балансировки нагрузки перед опросом.

Для получения данных о производительности серверов предлагается использовать методы, как и для получения данных об объектах мониторинга: будем запускать на серверах SNMP-агенты и опрашивать их при помощи системы управления. Система управления использует таблицы серверов, производительности и источников данных. Таблица серверов содержит данные о загрузке процессора и количестве свободного дискового пространства на каждом сервере. Таблица производительности хранит данные о ресурсах и характеристиках производительности серверов сети, на которых запущены агенты. Таблица источников данных предоставляет информацию об источниках данных. Копии последних двух таблиц хранятся на всех агентах и используются при балансировке нагрузки и выполнении процедуры опроса.

Рассмотрим задачу балансировки нагрузки системы мониторинга. Множество ресурсов серверов °пр°са обозначим через R = {RІ, R2,..., Rna }, где Rm =(RmІ, Rm2 , Rm3, Rm4 ) - рЄ-

сурсы m-го сервера сети четырех типов (процессор, память, сеть, диск), NSA - количество

агентов. Параметр, значение которого будет считываться из MIB объекта мониторинга, назовем источником данных. Пусть D - множество источников данных корпоративной сети, Nd = D . Соответствующие ресурсы четырех типов, требуемые для опроса k-го источника

данных, обозначим Zk = (Zk1,Zk2,Zk3,Zk4), k = 1,ND .

При назначении источников данных агентам определяется место хранения RRD-файлов с данными (каждый файл хранит информацию об одном источнике данных). При этом учитываются "расстояния" до источников данных и средняя производительность серверов. Пусть матрица назначений: x = (x11,..., x1Na , x21,..., x2Na ,..., xNdNa ), где xij = 1 при назначении i-го источника данных j-му агенту, иначе xij = 0 . Расстояния до источников представлены в матрице маршрутизации r = (r11, r12,..., r1Nffl, r21,..., r2Na ,..., rNoNsA), где величина rtj характеризует количество маршрутизаторов, которые необходимо пройти пакету мониторинга к источнику данных i от агента j.

Ограничения задачи: Z!: xkm = 1, k = 1, Nd ; Zi (Zk 4 • xkm) ^ ^, m = 1, Nsa . Критерии оптимальности: m!n(Rmi - (Zki  Ун )) ^ maX i = 1,3 m = 1, NSA ; Zi Z^ (rkm ' xkm ) ^ min .

Вторая задача балансировки нагрузки - распределение источников данных, выполняется для балансировки нагрузки на серверы сети непосредственно перед очередным опросом. Матрица распределения источников: y = (yn, У12,---, y1NSA, У21,-, У2Nsa ,-, yNDNSA ), где

yjj = 1 при распределении i-го источника данных на j-й агент, иначе yj = 0. Ограничения

задачи: Z!A ykm = Ь k = 1, ND ; Zi (Zki  у km ) ^ Rmi , ! = 1, NSA , i = 1,3 . Критерии оптимальности: ZN=D Zi (xkm - ykm ) ^ min , mmn(Rmi ~ Z^ (Zki ' ykm )) ^ maX i = 1,3, m = 1 NSA

Для эффективного решения последней задачи агенты необходимо объединить в определенную логическую структуру. Таким образом, необходимо различать физическое и логическое конфигурирование агентов. При физическом конфигурировании решается задача определения серверов сети, на которых следует запустить программы-агенты системы мониторинга, либо определяется сервер, на котором будет работать новый агент. Ресурсы, предоставляемые агентам серверами сети, будут изменяться со временем, поэтому необходимо пе-

ред очередным опросом перераспределить нагрузку между агентами, т.е. выполнять балансировку нагрузки. Для решения этой задачи агенты логически конфигурируются в определенную структуру. Воспользуемся подходом, предложенным в [4], где агенты объединяются в иерархическую структуру.

Рассмотрим задачу размещения в сети нового агента или агента, сервер которого оказался перегружен. Введем обозначения: £ = {я} - множество серверов сети, ЫБ = |Б|;

БЛ = {я,} - множество серверов с агентами, БЛ е £ , ЫБЛ = |БЛ|; Ц = {Ьа, Ц2}, si е £ - характеристики г-го сервера, где Ьц - текущая загрузка (коэффициент использования) процессора сервера, Ь,2 - занятая часть дискового пространства сервера. Пусть Ьг1 = ^^ЛЬц/ЫБЛ -средняя загрузка процессоров серверов, на которых расположены агенты, а Ц2 = ^15еБЛЬ 2/ЫБЛ - средняя степень использования дискового пространства на серверах с

агентами. Введем 7\, Т2 - граничные значения возможного использования ресурсов серверов в

долях единицы. Если Зя,, я, е БЛ; 3/, / е {1,2}: Т- - Ь- < 0 , то все агенты, у которых Т- - Ь- < 0 ,

должны быть заново размещены в сети. При выборе сервера для размещения на нем агента необходимо выбирать сервер, у которого имеются наибольшие резервы по каждому ресурсу, т.е. можно использовать следующий максиминный критерий: тах тт(Т. - Ц-).

(я^еБ \БЛ / 1 1

Рассмотрим задачу построения иерархии агентов. Возможны два случая: построение новой иерархической структуры из набора агентов, либо его включение в существующую иерархию. Предлагается использовать иерархию агентов с заданным максимальным числом потомков В . Пусть для каждого агента я, имеем: я- = р(я,), БС, = с^,) где я- - родитель

для агента я,, а БС, - множество агентов - прямых потомков агента я,. Обозначим через БО/ множество агентов, включающее поддерево с корнем - агентом я-. Требуется построить иерархическое дерево агентов, такое, что У/рС 1 < В , тт БС . ^ тах. Таким образом,

I 11 / I 11

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

Построение дерева агентов начинается с выбора агента як в качестве корня дерева. Для простоты изложения положим, что к = 1. Назовем множество БЫ = БЛ \ {як} текущим, а агент як - текущим родителем. Если |БЫ| < В, родителем всех элементов текущего множества становится текущий родитель, т.е. У я,, я е БЫ : р(я{ ) = як и построение дерева завершается. В противном случае из текущего множества выделяется произвольное подмножество £В из В элементов. Их родителем становится текущий родитель р(я/ )= як, я- е БВ. Остается подмножество агентов БЬ, БЬ = БЫ \ БВ , которым не назначен родитель. Множество БЬ разбивается на более мелкие подмножества БМ по следующему принципу. Если ]бь| / в[> В, то множество БЬ разбивается на В подмножеств БМ , при этом |БМ| = ]бь| / в[ , в одном из подмножеств БМ количество элементов может быть меньше величины ]|БЬ| / В[. В противном случае ( ]бь| / в[ < В ) множество БЬ делится на множества БМ , в которых содержится по В элементов (в последнем подмножестве их может быть меньше). На следующем этапе каждый член множества БВ поочередно становится текущем родителем, а соответствующее подмножество БМ текущим множеством. Алгоритм рекурсивный. Если элементу из множества БВ не соответствует подмножество БМ , этап для текущего родителя завершается.

Задача включения агента в существующую иерархию решается назначением ему родителя с числом потомков, меньшим B , или, если отсутствуют, то с числом потомков, равным нулю.

Для решения задач балансировки нагрузки разработан алгоритм на основе простого генетического алгоритма. В качестве начальной популяции выбраны решения (хромосомы), когда все источники данных распределяются на один агент, т.е. число членов популяции равно nsa . Селекция хромосом осуществляется методом рулетки. Величина сектора на колесе рулетки определяется на основе значений критериев оптимальности для хромосомы. При этом предложено не проводить скрещивание между схожими хромосомами. Степень похожести определяется на основании радиуса скрещивания (расстояния Хемминга). Для адаптации алгоритма к большим размерностям авторами предложено нормировать радиус скрещивания относительно числа источников данных Nd . Проводить редукцию на каждом шаге решено в три этапа редукцией: близких родственников, на основе ограничений задачи оптимизации, редукция на основе значений целевой функции. Основное достоинство использования данного алгоритма - возможность поиска решения для заданного критерия оптимальности и высокое быстродействие, практически не зависящее от количества объектов мониторинга (длительность работы не превышает 5 с при Nd < 4 -104). Выполнены исследования эффективности алгоритма для решения различных задач.

Также разработаны эвристические алгоритмы физического конфигурирования агентов, нацеленные на одновременное выполнение требований как системы мониторинга, так и корпоративной сети. Они основаны на использовании дискретных уровней разрешенной дополнительной нагрузки. На каждом шаге алгоритма разрешается загружать серверы только до строго определенного уровня. Алгоритм заканчивает работу, когда все объекты мониторинга будут распределены по серверам или уровень загрузки превысит допустимый. Быстродействие алгоритма зависит от количества уровней. Показано, что лучшей считается дискретность уровней в 10%.

Таким образом, рассмотрены вопросы использования распределенной динамически конфигурируемой системы активного мониторинга корпоративной сети, разработано формальное описание задач физического и логического конфигурирования агентов и задачи балансировки нагрузки, предложены алгоритмы для решения этих задач.

ЛИТЕРАТУРА

1. Matthew L. Massie, Brent N. Chun, David E. Culler. The ganglia distributed monitoring system: design, implementation, and experience // Parallel Computing. №30. 2004.

2. Distributed Nagios eXecutor. [Электронный ресурс] Режим доступа

http://dnx.sourceforge.net/, Intellectual Reserve, Inc, 2010.

3. Бабич А.В., Берсенев Г.Б. Задача динамического конфигурирования системы мониторинга корпоративной сети // XLVI Всероссийская конференция по проблемам математики, информатики, физики и химии: тез. доклад. М.: РУДН, 2010. С.92.

4. B. Yagoubi, Y. Slimani. Task Load Balancing Strategy for Grid Computing // Journal of Computer Science. 3 (3). 2007. P.186-194.

Бабич Алексей Васильевич —

аспирант кафедры электронных вычислительных машин Тульского государственного университета Берсенев Геннадий Борисович —

кандидат технических наук, доцент кафедры «Электронные вычислительные машины» Тульского государственного университета

Статья поступила в редакцию 13.02.12, принята к опубликованию 12.03.12