Способ диспетчеризации опроса устройств для считывания данных
Иллюстрации
Показать всеИзобретение относится к способу диспетчеризации опроса для считывания данных с устройств. Способ включает в себя следующие этапы: сортировку обслуживаемых устройств по их типам, сортировку различных типов данных каждого устройства с образованием различных модулей и назначение каждому модулю атрибута приоритета и атрибута периодичности опроса; разделение обслуживаемых устройств на две группы: группу, состоящую из устройств, подлежащих опросу, и группу, состоящую из устройств, состояние соединения которых необходимо определить; периодический опрос каждого модуля группы, состоящей из устройств, подлежащих опросу, в соответствии с его приоритетом и периодом опроса, причем можно задавать различные периоды опроса и применять различные алгоритмы опроса в зависимости от скорости изменения данных, а также алгоритмы опроса можно изменять в режиме реального времени в зависимости от состояния устройств. При этом обеспечивается достижение технического результата - возможность эффективного управления общей нагрузкой системы и сетевой нагрузкой системы управления сетью, а также рационального использования системных ресурсов. 9 з.п. ф-лы, 2 ил.
Реферат
Область техники
Изобретение относится к области управления сетями, в частности к способу диспетчеризации опроса для считывания данных с сетевых устройств в системе управления сетью.
Уровень техники
В системе управления сетью, основанной на простом протоколе управления сетью (Simple Network Management Protocol - SNMP), необходимо своевременно получать сообщения об изменениях состояний и конфигурации сетевых устройств. Во многих системах управления сетью используется способ периодического считывания данных с устройств, т.е. периодического опроса устройств. При большом количестве устройств опрос занимает значительную часть сетевых ресурсов, что вызывает потребность в создании способа диспетчеризации опроса.
Согласно существующим способам диспетчеризации устройство или даже тип устройств обычно рассматривают как один блок для диспетчеризации. Если в качестве блока рассматривается устройство, то для каждого такого устройства задают период опроса, его данные считывают один раз за период и вводят в систему управления сетью. Если в качестве блока рассматривается тип устройств, то для каждого типа устройств задают период опроса и выполняют за этот период последовательный опрос устройств данного типа для считывания данных с каждого устройства.
Если число устройств невелико, т.е. их всего несколько штук или несколько десятков штук, упомянутый способ вполне подходит, и его применение не вызывает затруднений. Однако при наличии большого числа устройств, измеряемого сотнями или тысячами, возникает ряд проблем.
Если при диспетчеризации в качестве блока рассматривается одно устройство, то, во-первых, управление каждым устройством будет занимать значительную часть системных ресурсов и система будет перегружена, что отрицательно скажется на выполнении других функций сетевого управления. Во-вторых, в этом случае будет невозможно обеспечить координацию между устройствами, поэтому в один и тот же промежуток времени может опрашиваться несколько устройств, что приведет к резкому увеличению трафика и нагрузки на сеть, а в наиболее тяжелых случаях - и к блокировке сети. Таким образом, работа системы управления сетью будет нарушена из-за перегрузки, и процедуры сетевого обслуживания будут выполняться не должным образом, если сеть управляется на внутреннем уровне. В-третьих, при наличии множества устройств необходимость независимой конфигурации периода опроса для каждого устройства значительно увеличивает объем работы системного администратора и усложняет его задачи с технической и административной точек зрения.
Если при диспетчеризации в качестве блока используется группа устройств, то пиковая нагрузка, связанная с управлением опросом, до некоторой степени находится под контролем, а конфигурация периодов опроса упрощается, однако с учетом последовательного характера опроса всех устройств период опроса получается длительным, из-за чего снижаются возможности системы по работе в режиме реального времени, а ее ресурсы и полоса пропускания не могут быть в достаточной мере использованы. В случае когда запросы пользователей направлены на изменение системы управления сетью, и при этом система управления сети должна быть хорошо приспособлена к работе в режиме реального времени, данный способ не может соответствовать предъявляемым требованиям. Поскольку степень координации между устройствами различных типов является слабой, а все устройства обрабатываются совместно, индивидуальный подход становится невозможен.
Кроме того, скорость изменения данных на устройстве неодинакова, тогда как существующие способы диспетчеризации предусматривают считывание всех данных устройства с одинаковой периодичностью, что исключает возможность индивидуального контроля различных данных по одному и тому же устройству. Поэтому оказывается невозможным задать более короткий период для считывания данных, изменяющихся с большей частотой, и более длинный - для данных, изменяющихся с меньшей частотой.
К тому же существующие способы диспетчеризации позволяют управлять только периодичностью опроса, но не временем опроса, поэтому невозможно перенести опрос на те периоды, когда сеть свободна, в случае если она управляется на внутреннем уровне.
Сущность изобретения
В данном изобретении предложен способ диспетчеризации опроса для считывания данных с устройств, лишенный недостатков известного уровня техники.
Предложенный способ диспетчеризации опроса для считывания данных с устройств включает в себя следующие этапы:
1) сортировку обслуживаемых устройств по их типам, сортировку различных типов данных каждого устройства с образованием различных модулей и назначение каждому модулю атрибута приоритета и атрибута периодичности опроса;
2) разделение обслуживаемых устройств на две группы: группу, состоящую из устройств, подлежащих опросу, и группу, состоящую из устройств, состояние соединения которых необходимо определить;
3) периодический опрос каждого модуля группы, состоящей из устройств, подлежащих опросу, в соответствии с его приоритетом группы и периодом опроса.
Этап 3) может в свою очередь включать в себя:
формирование очередности текущих задач опроса в соответствии с упомянутой периодичностью опроса и диспетчеризация опроса согласно очередности текущих задач опроса; причем при описании очередности текущих задач опроса используют следующие данные: идентификатор задачи, флаг "занято", идентификатор модуля, идентификатор устройства, время активации и приоритет; упомянутое время активации является текущим временем в случае постановки задачи на очередь и подлежит обновлению при получении от демонов отчета о состоянии выполнения задачи; упомянутый флаг "занято" переключается на "свободно" после получения сообщения о завершении задачи на опрос, либо сообщения о превышении времени, отведенного для выполнения этой задачи на опрос.
Кроме того, предложенный способ может включать этап задания максимального числа задач опроса. В этом случае очередь текущих задач опроса генерируют с учетом заданного максимального числа задач опроса.
Кроме того, предложенный способ может включать этап установки времени инициирования опроса в системе. В этом случае периодический опрос проводится в соответствии со временем инициирования опроса, суммированным с интервалом опроса.
Упомянутый выше атрибут периодичности опроса модуля может представлять собой величину, кратную интервалу между опросами и равной кратному значению интервалов между периодическими опросами системы на этапе 3).
Упомянутая выше группа устройств, подлежащих опросу, может быть текущей рабочей группой устройств, а группа устройств, состояние соединения которых необходимо определить, может быть текущей демонстрационной группой устройств. В этом случае этап диспетчеризации опроса с помощью очереди текущих задач опроса включает в себя:
a) задание времени инициирования опроса как суммы текущего значения времени и интервала опроса;
b) проверку по флагу "занято", существует ли свободная задача в очереди текущих задач опроса; если да - продолжение процесса, в противном случае - возврат к этапу b;
с) выбор из текущей рабочей группы устройств следующего модуля устройства для опроса;
d) проверку, имеет ли информация, полученная на этапе с, значение NULL или нет; если нет - присвоение идентификатора задачи выбранному модулю устройства и вставку идентификатора задачи в очередь текущих задач опроса с одновременной отправкой сообщения об инициировании опроса указанного модуля устройства соответствующему демон-процессу, и возвратом к этапу b; если да - проверку, все ли задачи в очереди задач опроса находятся в состоянии "свободно", если да - завершение процесса, в противном случае - возврат к этапу b.
Способ может также включать:
4) последовательный выбор устройства из группы устройств, состояние соединения которых необходимо определить, и выполнение для данного устройства PING-операции; причем успешное выполнение PING-операции показывает, что устройство соединено с системой управления сетью, а невыполнение PING-операции показывает, что устройство не соединено с системой управления сетью; если состояние соединения указанного устройства изменилось - уведомление об этом, направляемое другим демонам и процессам более высокого приоритета.
Согласно настоящему изобретению все устройства делят на группы в зависимости от их типа и внутренних модулей, кроме того, им присваивают соответствующие значения приоритета и периодичности опроса, поэтому различными типами данных одного и того же устройства можно управлять индивидуально в зависимости от скорости их изменения. Например, считывание данных, изменяющихся чаще, можно производить с большей частотой, а опрос данных, изменяющихся реже, можно производить с меньшей частотой.
Согласно настоящему изобретению все устройства делятся на две группы: текущую демонстрационную группу устройств и текущую рабочую группу устройств. Таким образом, опрашиваются только устройства, управляемые пользователями. Кроме того, для различных данных одного и того же устройства индивидуально задаются различные периоды опроса в зависимости от скорости изменения этих данных. Число заданий на опрос можно изменять в зависимости от конфигурации системы управления сетью и полосы пропускания сети с тем, чтобы системные ресурсы расходовались более экономно, а все опросы были бы должным образом координированы.
Согласно настоящему изобретению диспетчеризация всех устройств в системе управления сетью производится совместно. Вместе с тем, обработку данных, относящихся к устройствам, и обработку состояния соединений устройств производят индивидуально. Благодаря этому можно эффективно контролировать общую системную нагрузку и сетевую нагрузку системы управления сетью.
Краткое описание чертежей
Фиг.1 изображает блок-схему, иллюстрирующую архитектуру системы управления сетью.
Фиг.2 изображает блок-схему, иллюстрирующую порядок выбора модуля опроса.
Подробное описание изобретения
Далее приводится более подробное описание изобретения со ссылкой на сопутствующие чертежи.
Согласно настоящему изобретению все обслуживаемые устройства текущей системы управления сетью сгруппированы по их типам, причем различные типы данных для каждого устройства сгруппированы с образованием различных модулей; кроме того, каждому модулю присвоен атрибут приоритета и периодичность опроса. Атрибут приоритета показывает в какой последовательности будет проводиться опрос устройств. Если два модуля имеют одинаковый приоритет, то это значит, что их взаимные отношения не регламентированы, иначе говоря, любому из них может быть разрешено быть опрошенным первым. Под периодом опроса подразумевается интервал опроса данного модуля. Следовательно, в соответствии с настоящим изобретением могут быть заданы разные периоды опроса для получения различных данных с одного и того же устройства, а также определены различные алгоритмы опроса в зависимости от скорости изменения данных. Например, опрос данных, изменяющихся чаще, может производиться с большей частотой, а опрос данных, изменяющихся реже, может производиться с меньшей частотой.
Кроме того, в соответствии с настоящим изобретением все обслуживаемые устройства делятся на две группы: группу, состоящую из устройств, подлежащих опросу, и группу, состоящую из устройств, состояние соединения которых необходимо определить. Что касается первых, то считывание с них данных производится периодически, а что касается последних, то для них периодически выполняют процедуру PING, но данные не считывают. Тем самым обеспечивается возможность гибко и в режиме реального времени изменять алгоритм опроса с учетом текущей ситуации, например, с учетом приоритета опроса устройств, задействованных в данное время. Если устройство не находится в данный момент в активном окне, но его желательно включить в опрос, для этого необходимо будет лишь добавить данное устройство в группу, состоящую из устройств, опрашиваемых программой-демоном.
В результате разделения всех обслуживаемых устройств на две группы становится возможным осуществлять совместную диспетчеризацию всех устройств в системе управления сетью, причем совместную диспетчеризацию для опроса можно проводить с учетом возможного максимального числа опрашиваемых устройств и пропускной способности сети, благодаря чему обеспечивается возможность эффективного управления общей нагрузкой системы и сетевой нагрузкой системы управления сетью, а также более рационального использования системных ресурсов.
Далее приводится описание конкретного варианта выполнения изобретения. Следует отметить, что данный вариант приведен исключительно в иллюстративных целях и никоим образом не ограничивает объем притязаний изобретения. Напротив, изобретение охватывает самые различные модификации и эквивалентные варианты, отвечающие сущности изобретения и подпадающие под его объем притязаний, установленный в приложенной формуле изобретения.
В общем случае система управления сетью состоит из множества пользовательских терминалов и множества серверных программ (демон процессов). В соответствии с настоящим изобретением к оригинальной архитектуре системы добавлена специальная программа диспетчеризации опроса, т.е. демон-процесс 4, как это показано на фиг.1. Разумеется, в настоящем изобретении могут быть использованы и другие системные структуры.
Для способа диспетчеризации опроса определены следующие структуры данных:
1. Описание типа устройства
Тип устройства | Идентификатор модуля | Приоритет | Кратность интервала опроса | Идентификатор соответствующего демона |
(по умолчанию равна единице) | ||||
В данной таблице сочетание типа устройства и идентификатора модуля представляет собой индекс блока. Кратность интервала опроса представляет собой атрибут периодичности опроса данного модуля, который равен отношению периода опроса модуля к периоду опроса системы (базовому периоду опроса). Например, если кратность интервала опроса модуля равна двум, то период опроса данного модуля в два раза больше периода опроса модуля, у которого кратность интервала опроса равна единице.
2. Текущая рабочая группа устройств (РабочийСписок)
Идентификатор устройства | Идентификатор модуля | Тип устройства | Время последнего опроса |
Устройство 1 | Модуль 1 | Группировка в памяти по этому признаку | |
Устройство 1 | Модуль 2 | ||
Устройство 1 | Модуль 3 | ||
Устройство 1 | Модуль 4 | ||
Устройство 2 | |||
Устройство 3 | |||
... |
В данной таблице сочетание идентификатора идентификатора модуля представляет собой индекс блока.
3. Текущая демонстрационная группа (ДемонстрационныйСписок)
Идентификатор устройства | Состояние соединения |
Согласно данному варианту изобретения группа, состоящая из устройств, подлежащих опросу, и группа, состоящая из устройств, состояние соединения которых необходимо определить, именуются соответственно РабочийСписок и ДемонстрационныйСписок. ДемонстрационныйСписок представляет собой группу устройств, которые могут быть обнаружены абонентами. Если в других окнах интерфейса информация об устройстве скрыта, значит данное устройство в эту группу не входит. РабочийСписок представляет собой группу устройств, которые включены в интерфейс, управляемый абонентами, т.е. устройств, присутствующих в активном окне пользовательского терминала. Информация о двух упомянутых выше группах устройств приходит на сервер от абонентов, а сервер обобщает эту информацию и на ее основе формирует ДемонстрационныйСписок и РабочийСписок для всей системы управления сетью.
4. Очередь текущих задач опроса
Идентификатор задачи | Флаг занятости | Идентификатор модуля | Идентификатор устройства | Время активации | Приоритет |
1 | занято/свободно | ||||
2 | |||||
3 | |||||
... | |||||
n (n = максимальное число задач опроса) |
Каждый раз при своем инициировании задача опроса помещается в приведенную выше таблицу с флагом "занято" и указанием времени ее инициирования. Флаг "занято" снимается после того, как будет получена информация о завершении задачи или будет превышено время, отведенное для выполнения задачи. Факт превышения времени, отведенного для выполнения задачи, определяется по промежутку времени между текущим временем и временем активации. Если этот промежуток превысит допустимое время, заданное в числе указанных ниже глобальных данных, то считается, что время? отведенное для выполнения данной задачи, превышено. Время активации устанавливается равным текущему времени в момент активации задачи, затем после получения сообщений о выполнении задачи, периодически посылаемых другими демон-процессами, время активации обновляется.
5. Глобальные данные
Интервал опроса | Показывает ожидаемый интервал между данным временем инициирования и последующим временем инициирования |
опроса для всей системы; если для однократного опроса всех устройств этого времени недостаточно, то опрос устройств с данным интервалом невозможен. | |
Время инициирования опроса (часы/минуты/секунды) | Время инициирования заносится в память как абсолютное с указанием года, месяца и дня. |
Максимальное число задач опроса | Показывает максимальное число одновременно выполняемых задач опроса, поддерживаемое системой управления сетью. |
Период превышения времени, отведенного на опрос | Если другие демон-процессы получили команду на проведение опроса от процесса диспетчеризации, они должны периодически сообщать процессу диспетчеризации, завершена ли задача опроса; если сообщение не поступило в течение времени, отведенного на опрос, процесс диспетчеризации будет считать, что операция завершена. |
Период превышения времени, отведенного на PING-процесс | |
Число повторов PING-процесса |
На основании вышеперечисленных данных диспетчеризация задач опроса происходит в следующей последовательности.
На этапе 1, во-первых, инициируются все виды параметров; происходит считывание данных, описывающих типы устройств, и периода превышения времени, отведенного на опрос. Затем через интерфейсы других демон-процессов генерируются ДемонстрационныйСписок и РабочийСписок; генерируется очередь текущих задач опроса на основании максимального числа задач опроса. Если известен момент инициирования опроса, таймер устанавливается таким образом, чтобы инициировать подпроцесс опроса в момент инициирования, в противном случае таймер устанавливается таким образом, чтобы инициировать подпроцесс опроса немедленно, и процесс переходит к этапу 2. Тем временем инициируется подпроцесс определения состояния соединения, и процесс переходит к этапу 3.
На этапе 2 по очереди опрашивается каждый модуль каждого устройства в зависимости от его приоритета по опросу и кратности интервала опроса. Более подробно, данный этап включает в себя следующие этапы:
а) задание времени инициирования следующего опроса равным времени инициирования текущего запроса, суммированному с интервалом опроса;
b) проверку, существует ли свободная задача в очереди текущих задач опроса; если да - продолжение процесса, в противном случае - возврат к этапу b;
с) выбор из РабочийСписок следующего блока (идентификатор устройства + идентификатор модуля) для опроса, причем данный этап включает в себя следующие проиллюстрированные на фиг.2 этапы:
с1) выбор следующего блока из РабочийСписок;
с2) проверку не меньше ли величина [(текущее время - время последнего опроса)/кратность интервала опроса модуля] интервала опроса; если да - постоянное выполнение этапа с3, в противном случае - переход к этапу с4;
с3) проверку, существует ли блок с более высоким приоритетом, опрашиваемый при выполнении задач опроса другого модуля для того же текущего устройства; если да - то возврат к этапу 1, в противном случае - возврат информации по блоку и завершение этапа с;
с4) проверку, превышает ли кратность интервала опроса блока единицу; если да - то возврат к этапу с1, в противном случае - возвращение значения NULL, чтобы показать, что больше не осталось модулей, подлежащих опросу, и завершение этапа с.
d) если информация, возвращаемая на этапе с, равна NULL, проверку, находятся ли все объекты, входящие в РабочийСписок, в состоянии "свободно"; если да - то, поскольку это свидетельствует об окончании одного цикла опроса системы, завершение этапа 2, в противном случае - возвращение к этапу b.
e) если информация, возвращаемая на этапе с, не равна NULL, присвоение выбранному блоку идентификатора задачи, ввод идентификатора задачи в РабочийСписок, одновременную отправку соответствующему демон-процессу информации для инициирования опроса модуля устройства и возвращение к этапу b.
На этапе 3 выбор устройств происходит поочередно в соответствии с ДемонстрационныйСписок, и в отношении выбранных устройств проводят PING-операции. Если состояние соединения устройства изменилось, то другие демоны и процессы более высокого приоритета будут об этом проинформированы.
Во время выбора из РабочийСписок следующего блока для опроса на этапе с процесс диспетчеризации также получает от других демонов сообщения о том, завершена ли задача опроса. Если задача опроса завершена, то флаг "занято", которым данная задача отмечена в списке текущих задач опроса, снимается и задача переводится в состояние "свободно". Если задача опроса не завершена, то время активации задачи обновляется и становится равным значению текущего времени. Аналогичным образом флаг "занято" снимается и задача переводится в состояние "свободно" в случае превышения времени, отведенного для выполнения задачи.
1. Способ диспетчеризации опроса устройств для считывания данных, включающий в себя следующие этапы:
1) сортировку обслуживаемых устройств по их типам, сортировку различных типов данных каждого устройства с образованием различных модулей и назначение каждому модулю атрибута приоритета и атрибута периодичности опроса;
2) разделение обслуживаемых устройств на две группы: группу, состоящую из устройств, подлежащих опросу, и группу, состоящую из устройств, состояние соединения которых необходимо определить;
3) периодический опрос каждого модуля группы, состоящей из устройств, подлежащих опросу, в соответствии с его приоритетом и периодом опроса, и определение состояния соединения каждого устройства, входящего в группу устройств, состояние соединения которых необходимо определить.
2. Способ по п.1, этап 3) которого дополнительно включает в себя формирование очередности текущих задач опроса в соответствии с периодичностью опроса, которую описывают с использованием данных, включающих идентификатор задачи, флаг "занято", идентификатор модуля, идентификатор устройства, время активации и приоритет; диспетчеризацию опроса согласно очередности текущих задач опроса, причем упомянутое время активации является текущим временем в случае постановки задачи на очередь и подлежит обновлению при получении от демонов отчета о состоянии выполнения задачи; упомянутый флаг "занято" переключают на "свободно" после получения сообщения о завершении задачи на опрос либо сообщения о превышении времени, отведенного для выполнения этой задачи на опрос.
3. Способ по п.2, дополнительно включающий в себя задание максимального числа задач опроса, причем очередь текущих задач опроса генерируют в соответствии с заданным максимальным числом задач опроса.
4. Способ по п.2, дополнительно включающий в себя задание времени инициирования опроса в системе, причем при периодическом опросе время инициирования следующего опроса принимают равным времени инициирования текущего опроса, суммированному с интервалом опроса.
5. Способ по п.4, в котором атрибут периодичности опроса модуля является величиной, кратной интервалу между опросами и равной кратному значению интервалов между периодическими опросами системы на этапе 3).
6. Способ по п.5, этап 1) которого дополнительно включает в себя этап генерирования структуры данных для описания типа устройств после сортировки обслуживаемых устройств по типам и сортировки различных данных по каждому устройству для формирования различных модулей, причем при описании структуры данных используют следующие данные: тип устройства, идентификатор модуля, приоритет, кратность интервала опроса и идентификатор соответствующего демона.
7. Способ по п.6, в котором указанная группа устройств, подлежащих опросу, является текущей рабочей группой устройств и при описании этой группы используют следующие данные: идентификатор устройства, идентификатор модуля, тип устройства и время последнего опроса; указанная группа устройств, состояние соединения которых необходимо определить, является текущей демонстрационной группой устройств и при описании этой группы используют следующие данные: идентификатор устройства и состояние соединения.
8. Способ по п.7, в котором этап диспетчеризации опроса с помощью очереди текущих задач опроса включает в себя
а. задание времени инициирования следующего опроса равным времени инициирования текущего запроса, суммированному с интервалом опроса;
b. проверку по флагу "занято", существует ли свободная задача в очереди текущих задач опроса; если да - продолжение процесса, в противном случае - возврат к этапу b;
с. выбор из текущей рабочей группы устройств следующего модуля устройства для опроса;
d. проверку, имеет ли информация, полученная на этапе с, значение NULL или нет; если нет - присвоение идентификатора задачи выбранному модулю устройства и вставку идентификатора задачи в очередь текущих задач опроса, с одновременной отправкой сообщения об инициировании опроса указанного модуля устройства соответствующему демон-процессу, и возвратом к этапу b; если да - проверку, все ли задачи в очереди задач опроса находятся в состоянии "свободно", если да - завершение процесса, в противном случае - возврат к этапу b.
9. Способ по п.8, этап с которого дополнительно включает в себя
с1. выбор следующего модуля устройства;
с2. проверку не меньше ли величина [(текущее время - время последнего опроса)/кратность интервала опроса модуля] величины интервала опроса системы; если да - продолжение процесса, в противном случае - переход к этапу с4;
с3. проверку, есть ли модуль с более высоким приоритетом того же устройства, опрашиваемого при выполнении текущих задач в очереди на опрос; если да - то возврат к этапу с1, в противном случае - возврат информации по модулю устройства и завершение этапа с; или
с4. проверку, превышает ли указанная кратность интервала опроса единицу; если да - то возврат к этапу с1, в противном случае - возврат сообщения со значением NULL и завершение этапа с.
10. Способ по п.1, дополнительно включающий в себя
4) последовательный выбор устройства из группы устройств, состояние соединения которых необходимо определить, и выполнение для данного устройства PING-операции; причем успешное выполнение PING-операции показывает, что устройство соединено с системой управления сетью, а невыполнение PING-операции показывает, что устройство не соединено с системой управления сетью; если состояние соединения указанного устройства изменилось - уведомление об этом, направляемое другим демонам и процессам более высокого приоритета.