Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного WEB-сервера Зар Ней Лин

Разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного WEB-сервера
<
Разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного WEB-сервера Разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного WEB-сервера Разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного WEB-сервера Разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного WEB-сервера Разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного WEB-сервера Разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного WEB-сервера Разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного WEB-сервера Разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного WEB-сервера Разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного WEB-сервера Разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного WEB-сервера Разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного WEB-сервера Разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного WEB-сервера
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Зар Ней Лин. Разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного WEB-сервера : диссертация ... кандидата технических наук : 05.13.06 / Зар Ней Лин; [Место защиты: Моск. гос. ин-т электронной техники].- Москва, 2009.- 130 с.: ил. РГБ ОД, 61 09-5/1210

Содержание к диссертации

Введение

1. Анализ архитектуры кластерных web-cepbepob Особенности архитектуры кластерных web-серверов 12

1.1.1. Архитектура кластерных систем 13

1.1.2. Области применения кластерных систем 15

1.1.3. Преимущества кластерных web-серверов 17

1.2. Классификация кластерных web-серверов 19

1.2.1. Классификация по способам маршрутизации 19

1.2.2. Классификация по способам распределения нагрузки 23

1.2.3. Классификация по способам кэширования данных 26

Выводы 31

2. Контентно-зависимыи алгоритм распределения на грузки для кластерного web-cepbepa

2.1. Анализ алгоритмов распределения нагрузки кластерных web-серверов

2.1.1. Общая характеристика алгоритмов распределения нагрузки—33

2.1.2. Алгоритмы распределения нагрузки четвертого уровня модели OSI 35

2.1.3. Алгоритмы распределения нагрузки седьмого уровня модели OSI 37

2.2. Разработка контентно-зависимого алгоритма распределения нагрузки

2.2.1. Общая характеристика алгоритма 39

2.2.2. Формальное описание алгоритма 41

2.2.3. Анализ сценариев работы алгоритма 43

2.3. Анализ производительности контентно-зависимого алгоритма распределения нагрузки

2.3.1. Аналитическая модель алгоритма 46

Выводы 50

3. Подсистема распределения нагрузки для кластерного web-cepbepa

3.1. Структура подсистемы распределения нагрузки 51

3.1.1. Общая структура 51

3.1.2. Узел распределения нагрузки 57

3.1.3. Узел предварительного кэширования 62

3.2. Реализация подсистемы распределения нагрузки на кластере компьютеров

3.2.1. Требования к формальному протоколу для представления подсистемы распределения нагрузки 65

3.2.2. Общие процедуры MPI (Интерфейс передачи сообщения)-- 66

3.2.3. Реализация подсистемы распределения нагрузки 75

Выводы 78

4. Исследование показателей функционирования web- cepbepa на имитационной модели

4.1. Математический аппарат имитационного моделирования 79

4.1.1. Сети Петри 81

4.1.2. Расширенные сети Петри 86

4.2. Имитационная модель входной нагрузки

4.2.1. Характеристика входной нагрузки web-сервера 80

4.2.2. Имитационная модель входной нагрузки 88

4.3. Имитационная модель подсистемы распределения нагрузки

4.3.1. Модель диспетчера web-сервера 91

4.3.2. Модель узла web-сервера 92

4.3.3. Результаты имитационных экспериментов 93

Выводы 99

Заключение 102

Литература 104

Введение к работе

Актуальность проблемы. В настоящее время эффективное функционирование любой автоматизированной системы управления производством и, в частности, автоматизированной системы управления технологическим процессом (АСУТП), возможна только с применением информационных технологий. Это приносит значительные преимущества с точки зрения производительности труда и конкурентоспособности.

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

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

Теоретическим исследованиям и разработке фундаментальных основ распределения нагрузки, созданию математического аппарата, моделей и методов для автоматизированного распределения нагрузки в кластерных web-серверах посвящены труды видных ученых R. Mukherjee, G. Banga, V. Cardellini, Е. Casalicchio и многих других.

Однако существующие алгоритмы распределения нагрузки web-сервера обладают рядом недостатков, в частности: низкое быстродействие, низкая интеллектуальность распределения нагрузки, не учитывающая динамические файлы. В связи с этим актуальной является разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного web-сервера.

Целью диссертационной работы является разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного web-сервера, обеспечивающей повышенную отказоустойчивость, производительность и надежность кластерного web-сервера.

В соответствии с указанной целью в работе решаются следующие задачи:

- анализ архитектуры кластерных web-серверов;

- разработка контентно-зависимого алгоритма (КЗА) распределения нагрузки;

- анализ производительности КЗА распределения нагрузки;

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

- имитационное моделирование и экспериментальное исследование показателей функционирования кластерного web-сервера.

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

Научная новизна. Разработанные алгоритмы и программные средства учитывают специфику построения информационных систем на кластере компьютеров, а также обеспечивают повышенную отказоустойчивость, производительность и надежность web-сервера. В отличие от большинства существующих, разработанные алгоритмы являются интеллектуальными, поскольку учитывают при распределении нагрузки не только текущее распределение соединений по компьютерам кластера, но и содержание запросов пользователей. Кроме того, разработанные алгоритмы дают выигрыш снижения времени ответа кластерного Web-сервера.

В процессе работы над диссертацией получены следующие новые научные результаты:

1. Разработан и реализован эффективный интеллектуальный контентно-зависимый алгоритм распределения нагрузки для кластерного web-сервера, учитывающий запросы не только к статическим, но и к динамическим web-страницам.

2. Разработана имитационная модель подсистемы распределения нагрузки для кластерного web-сервера на основе математического аппарата расширенных сетей Петри. Результаты работы имитационной модели подтверждают, что разработанный алгоритм обеспечивает повышение производительности на 35 % по сравнению с алгоритмом WRR и на 55 % по сравнению с алгоритмом LARD.

3. Разработана имитационная модель Интернет-трафика на основе математического аппарата расширенных сетей Петри, которая может быть использована для задания входной нагрузки при имитационном моделировании web-серверов с целью разработки алгоритмов диспетчиро-вания и распределения нагрузки.

4. Предложена методика расчета времени обслуживания для различных категорий ресурсов web-систем.

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

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

Разработанный алгоритм обеспечивает повышенную отказоустойчивость, производительность и надежность Web-сервера, а также снижение времени ответа кластерного Web-сервера. Разработанный алгоритм даёт выигрыш производительности на 35 % по сравнению с алгоритмом WRR (Weighted Round Robin) и на 55 % по сравнению с алгоритмом LARD (Locality Aware Request Distribution). Фактически, при использовании разработанного алгоритма время ожидания не превышает 2-х секунд, в то время как для алгоритма WRR оно составляет приблизительно 7 секунд, а для алгоритма LARD -приблизительно 20 секунд.

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

Личный вклад автора. Все основные результаты диссертационной работы получены лично автором, в частности:

1. Исследованы архитектуры кластерных web-серверов и проведена их классификация.

2. Разработан контентно-зависимый алгоритм распределения нагрузки кластерного web-сервера.

3. Разработана математическая модель для расчета времени обслуживания предлагаемого алгоритма.

4. Создана программа реализации подсистемы распределения нагрузки на кластере компьютеров.

5. Разработана имитационная модель входной нагрузки web-сервера.

6. Разработана имитационная модель распределения нагрузки для кластерного web-сервера.

Внедрение результатов работы. Все работы по реализации и внедрению проводились при непосредственном участии автора. Результаты диссертационной работы используются в учебном процессе кафедры ИПОВС Московского государственного института электронной техники.

В результате проведенных исследований получены и выносятся на защиту следующие основные научные результаты:

1. Контентно-зависимый алгоритм распределения нагрузки для кластерного web-сервера.

2. Формализованное представление входной нагрузки кластерного web-сервера.

3. Программная реализация алгоритма распределения нагрузки кластерного web-сервера.

4. Имитационная модель подсистемы распределения нагрузки кластерного web-сервера.

5. Результаты внедрения, экспериментальных исследований и апробация материалов диссертационной работы.

Апробация работы и публикации. Основные положения диссертационной работы докладывались и обсуждались на следующих конференциях:

1. Международная школа-конференция (по приоритетному направлению «Информационно-телекоммуникационные системы» с участием молодых ученых, аспирантов и студентов стран-членов СНГ) - Москва, МИЭТ, 2005.

2. 13-я Всероссийская межвузовская научно-техническая конференция студентов и аспирантов "Микроэлектроника и информатика - 2006" -Москва, МИЭТ, 2006.

3. 14-я Всероссийская межвузовская научно-техническая конференция студентов и аспирантов "Микроэлектроника и информатика - 2007" -Москва, МИЭТ, 2007.

4. XI Московская международная телекоммуникационная конференция студентов и ученых «Молодежь и наука» - Москва, МИФИ, 2008.

По результатам исследований опубликовано 9 печатных работ, в том числе одна статья в издании, входящем в перечень ВАК.

Структура и объем работы. Диссертация состоит из введения, 4 глав, заключения, списка литературы и приложений, содержащих листинги про грамм и акты о внедрении результатов работы. Общий объем диссертационной работы 129 страниц машинописного текста и 19 рисунков.

В первой главе дана общая характеристика кластерного сервера, способы построения кластерных Web-серверов и целы применения кластерных серверов.

Во второй главе представлена описание контентно-зависимый алгоритма распределения нагрузки прикладного уровня и общая характеристика алгоритма, анализ сценариев работы алгоритма и сравнение с существующими алгоритмами распределение нагрузки.

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

В четвертой главе приведено описание имитационной модели и среда имитационного моделирования для алгоритма распределения нагрузки на основе сетей Петри при помощи программного средства моделирования Winsim и проведение имитационных экспериментов и результаты.

В приложениях приведены языки сетевых моделей MDL и MCL, текс программирования на языке МРІ для реализации алгоритма на кластере компьютеров.

Автор выражает искреннюю благодарность научному консультанту Илю-шечкина Л.В. и научному руководителю профессору Л.Г. Гагариной за помощь при работе над диссертацией.

Классификация по способам распределения нагрузки

Один из наиболее простых способов разделения нагрузки между несколькими серверами состоит в использовании циклической дисциплины Round-Robin DNS (RR-DNS). Этот способ не требует наличия выделенного распределителя нагрузки, функцию которого выполняет DNS-сервер [13, 14]. Сервер, обслуживающий зону, в которой расположен кластер, циклически производит разрешение одного и того же доменного имени на различные IP-адреса, соответствующие хостам из кластера. Данный подход достаточно хорошо изучен и наряду с главным достоинством, простотой, обладает рядом очевидных недостатков [7]. - RR-DNS не учитывает текущие характеристики серверов (загрузка, доступность, время отклика) и не может динамически подстроиться к меняющемуся состоянию системы. - Наличие промежуточных кэширующих DNS-серверов, которые обслуживают запрос на разрешение доменного имени и возвращают предыдущий IP-адрес, а не измененный RR-DNS, подрывает саму идею разделения нагрузки, приводя к дисбалансу. Действительно, при этом в течение длительного времени последовательности запросов могут направляться на один и тот же сервер.

Бороться со вторым недостатком можно путем настройки управляющего параметра TTL (Timeo-Live), задающего время существования записи в DNS-кэше. Установка TTL равным нулю исключает эффект кэширования, но тогда DNS-сервер может стать узким местом сетевого трафика. В [15] показано, что без кэширования время разрешения доменного имени становится на два порядка выше. Можно подстраивать TTL для каждой записи с учетом частоты запросов, но далеко не очевидно как это делать с максимальным эффектом. Замечен еще один недостаток DNS-подхода - явное предположение, что клиент и его локальный DNS-сервер расположены поблизости. Однако это не всегда так. Поэтому временная задержка на DNS-сервере не всегда правильно отражает задержку клиента. DNS-подход в условиях большой загрузки и разнообразия типов запросов сам по себе не может гарантировать решения проблемы балансировки; для этого нужны более тонкие дисциплины.

Различают три класса кластерных систем — с горячим резервированием, с распределенной нагрузкой и балансировкой нагрузки. Описываемые кластеры относятся к классу кластерных систем с распределенной нагрузкой. Универсальная схема распределения нагрузки, работающая для всех видов сервисов, выглядит следующим образом. Распределение сервисов по узлам выполняет администратор кластера в процессе конфигурирования заданий для кластер-менеджера каждого из узлов. Живучесть сервисов в ходе эксплуатации обеспечивается кластерным ПО прозрачным для клиентов образом. Принцип переключения сервисов и поведение клиентов по этой схеме в момент отказа одного из узлов иллюстрирует

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

Первый специальный случай относится к сервису DNS. Как известно, в DNS существуют встроенные средства репликации данных доменных зон между первичными и вторичными серверами. Сведения о серверах, обслуживающих и ответственных за каждую доменную зону хранятся в самом ее описании, и известны DNS-серверам вышестоящих уровней. Это позволяет при отказе первичного сервера выполнять запросы на разрешение имен для клиентов из других доменов через вторичные серверы. На клиентах родного домена приоритетность обращения к DNS серверам регулируется порядком их перечисления.

Второй специальный случай относится к почтовой службе SMTP. Для SMTP сервиса также возможно через службу DNS указать несколько IP-адресов серверов, исполняющих SMTP-запросы. Этот сервис относится к типу ничего не разделяющих в кластерной терминологии (все данные на отправку временные и хранятся в очередях пересылки), поэтому для него не нужны какие либо средства репликации.

Третий специальный случай относится к службе прокси. Обеспечивать службы прокси, кэширующий все HTTP, FTP и другие URL-запросы пользователей к web [16]. Основной эффект от использования прокси заключается в ускорении обслуживания запросов клиентов и сокращении Интернет-трафика за счет использования промежуточного кэша данных, полученных ранее из Интернета. Использование универсальной схемы в данном случае неэффективно, т.к. зеркалировались бы по существу временные данные. Более эффективным является решение на базе архитектуры масштабируемого кэширую-щего прокси-кластера (Scalable Caching Proxy Cluster). Это решение известно также, как "Super Proxy Script", потому что базируется на использовании кэ-ширующего Java Script на стороне клиента для выбора нужного сервера прокси из N, входящих в кластер. Основная идея заключается в том, что для каждого заданного URL вычисляется некоторая уникальная контрольная сумма checksum, затем от нее определяется хэш-функция і = Module (checksum(URL),N), собственно значение і и используется для выбора нужного прокси. Запросы к одному и тому же URL всегда маршрутизируются на тоже самый прокси, таким образом, исключается дублирование данных в кэшах разных прокси, обеспечивается быстрый и надежный способ прокси без использования протокола ІСР для прокси, входящих в кластер. Данный метод позволяет вводить элементы балансировки нагрузки в кластере.

Алгоритмы распределения нагрузки четвертого уровня модели OSI

Web-распределители уровня 4 работают на уровне TCP/IP. Так как пакеты, имеющие отношение к тому же самому соединение TCP должны быть назначены на тот же самый узел web-сервера, назначение клиента выполняется на уровне TCP (session level). Web-маршрутизатор поддерживает таблицу связи, чтобы соединять каждый сеанс клиента TCP с целевым сервером.

Так как web-распределители уровня 4 являются распределителями с неизвестным содержанием состояния клиента, то информация о клиенте ограничена информацией пакетов TCP/IP, то есть адресом источника IP и номерами порта TCP. Эту информацию о клиенте можно использовать для алгоритмов диспетчеризации, которые статически разделяют узлы сервера и приписывают одних и тех же клиентов к тем же серверам. Обычно это осуществляется через hash-функцию, использующую IP-адрес клиента.

Информация о клиенте немедленно передаётся на web-распределитель, потому что он получает все запросы для связи. С другой стороны, при рассмотрении алгоритмов диспетчеризации, которые используют некоторую информацию о состоянии сервера, возникают следующие проблемы: какой индеке нагрузки сервера? Как и когда вычислить его? Как и когда передавать его на web-распределитель? Это известные проблемы в сетевой системе [29, 30].

Как только подобран индекс нагрузки сервера, web-распределитель может использовать различные алгоритмы диспетчеризации. Общая схема состоит в том, чтобы назначить новую связь с сервером, имеющим индекс самой низкой нагрузки. "Наименьший загруженный" - этот подход обозначает класс методов, которые зависят от выбранного индекса нагрузки сервера.

Например, в алгоритме "Наименьшее количество связей", который обычно принимается в коммерческих изделиях (например, LocalDirector [31], BIG IP [32]), web-распределитель назначает новый запрос на сервер с наименьшим количеством активных связей. Простое расширение, которое назначает статические нагрузки на серверы согласно их нагрузочной способности, позволяет учитывать разнородность в способности серверов [33]. Здесь дело в том, что серверы с большей нагрузочной способностью должны поддерживать большее число активных связей: это можно просто достигнуть, разделив число активных связей на нагрузку сервера.

Метод наименьшего времени ответа (например, LocalDirector [31] и Serverlron [34]) — это ещё один пример метода наименьшей нагрузки, когда web-распределитель назначает новую связь с сервером, который отвечает быстрее всех, то есть показывает наименьшее время задержки объекта в последнем интервале наблюдения.

Динамический взвешенный циклический алгоритм - это вариант, когда используется статическая информация. Этот метод связывает каждый сервер с динамически оцененной нагрузкой, которая пропорциональна состоянию нагрузки сервера [35]. Периодически web-распределитель собирает информацию индекса нагрузки от серверов и вычисляет нагрузки, которые динамически увеличиваются для каждого нового назначения связи.

В методе "Пакет с одинарной перезаписью" маршрутизация на целевой сервер достигается путем перезаписи IP-адрес адресата каждого прибывающего пакета: web-распределитель заменяет его VIP-адрес адресом IP выбранного сервера и повторно вычисляет IP и контрольные проверки заголовка TCP. Таким образом, приватные адреса узлов сервера определяются на уровне IP. Отличие от двухсторонней архитектуры проявляется в модификации исходного адреса исходящих пакетов. Web-сервер перед посылкой пакетов ответа клиенту, заменяет его IP-адрес на VIP-адреса, и повторно вычисляет IP и контрольные проверки заголовка TCP.

Метод "Пакет отправления" предполагает, что web-распределитель и узлы сервера должны иметь один из их сетевых интерфейсов, физически связанных в единый сегмент локальной сети. Тот же самый виртуальный ІР-адрес разделен web-коммутатором и серверами в кластере с помощью первичных и вторичных ІР-адресов.

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

Web-маршрутизаторы, работающие на прикладном уровне (уровень 7), знают содержание запроса. Механизмы маршрутизации для уровня 7 более сложны, чем для уровня 4, потому что для диспетчеризации необходимо анализировать заголовок HTTP. Для этого web-коммутатор должен сначала установить соединение TCP с клиентом и затем получить запрос HTTP. С другой стороны, web-маршрутизаторы уровня 4 определяют целевой сервер, как только они получает начальный пакет SYN [36].

Общие процедуры MPI (Интерфейс передачи сообщения)--

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

В самих серверах-узлах, как правило, используют отказоустойчивые блоки питания, резервные вентиляторы, ЕСС модули памяти и т.д., однако особенно важно обеспечить аппаратное резервирование в общих подсистемах кластера.

Подсистемы внутрикластерных коммуникаций строятся аналогично обычной локальной сети работающей по стандарту Ethernet на витой паре. В каждый узел требуется установить стандартный Ethernet-адаптер, и если в кластере только два узла, то для организации межузлового канала, достаточно перекрестного (crossover) кабеля. В случае трех и более узлов, для создания внутрикластерной сети потребуется концентратор или коммутатор. Требования по производительности адаптеров определяет конкретная реализация системы. Выбор концентратора в качестве активного сетевого оборудования оправдан при построении кластера, не разделяющего доступ к общим дискам, так как при этом взаимодействие узлов обычно осуществляется по схеме многие к одному.

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

Общая дисковая подсистема кластера обычно строится на базе избыточной RAID [44] технологии, с использованием отказоустойчивого уровня RAID (КАШ 0 или 7 отказоустойчивости не обеспечивают). При использовании RAID в дисковой подсистеме имеет смысл предусмотреть возможность горячей замены дисков, для чего разместить их в специальных съемных картриджах (removable rack). Количество и объем дисков общей подсистемы определяется исходя из применяемого уровня RAID и особенностей конкретной кластерной архитектуры.

Физически общая дисковая подсистема может быть доступна узлам через параллельный SCSI интерфейс или через последовательный интерфейс Fibre Channel (FC). Использование SCSI [45] интерфейса обходится дешевле, но ограничивается слабой масштабируемостью решений и, обычно, применяется в недорогих кластерах содержащих не более двух узлов. FC является фактическим стандартом при создании, так называемых, сетей хранения данных - Storage Area Network (SAN). В таких сетях, устройства хранения данных могут соединяться с узлами, подобно традиционной ЛВС, через концентраторы и коммутаторы.

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

Следует отметить, что SCSI не идеально приспособлен для создания кластеров. Например, для включения и выключения питания одного из узлов кластера (или физического его отсоединения), в то время как другой узел продолжает нормально функционировать. Для успешной работы широкое распространение получили специальные устройства, которые можно назвать терминирующими переключателями. Устройства подобного типа при выключении питания на одном из серверов (возможно, вследствие серьезной аппаратной неисправности) изолируют SCSI-сегмент этого сервера от остатков кластера. В то же время переключатель начинает работать как терминатор, функции которого до сбоя выполнял SCSI-адаптер сервера. При включении сервера терминирующий переключатель определяет его присутствие и восстанавливает соединение между кластером и вновь прибывшим участником. Существует несколько распространенных подходов в организации распределения нагрузки. Это: - круговой DNS, когда для распределения нагрузки используется DNS-сервер; - аппаратное распределение нагрузки, когда используется прибор, схожий по своим функциям с маршрутизатором; - программное распределение нагрузки. Например программа "TCP/IP Network Load Balancing" от Microsoft; - смешанные схемы, когда используется комбинация аппаратных и программных средств. Круговой DNS Круговой DNS - это самый простой способ перенаправления HTTP-запросов на несколько серверов. Как вы знаете, любой DNS-сервер хранит пару "имя хоста/ІР-адрес" для каждой машины в определенном домене. Этот список выглядит примерно так:

Математический аппарат имитационного моделирования

Сетевой трафик имеет пульсирующий характер [50, 51, 52]. "Пульсирующий" относится к тому факту, что данные передаются случайным образом, с пиковыми скоростями, превышающими средние скорости в 8-10 раз [53]. Также считается, что сетевой трафик пульсирует в нескольких масштабах времени. Этот феномен может быть описан статистически с использованием идеи о самоподобии (автомодельности), предполагающей существование корреляционной структуры в пульсациях трафика, которые сохраняются на протяжении нескольких масштабов времени. Практическое следствие пульсирующего характера состоит в том, что управление web-сайтами имеет несогласованность возможностей сервера, определяющих размерность и пропускную способность ля поддержки спроса, порожденного пиками нагрузки. В результате пользователи чувствуют ухудшение качества обслуживания в течение периодов пульсации. Пики могут быть охарактеризованы с помощью пикового коэффициента трафика (peak traffic ratio), определенного как отношение пиковой нагрузки сайта к среднему трафику сайта.

Последствия пиков трафика и нагрузки оказались катастрофическими в отношении производительности web-сайтов. В традиционных сетевых разработках предполагается, что линейное увеличение размера буфера приводит к практически экспоненциальному уменьшению утери пакетов, а увеличение размера буфера — к пропорциональному увеличению эффективности использования пропускной способности канала передачи. Для самоподобного трафика эти предположения неверны. Уменьшение потерь с ростом размера буфера меньше, чем ожидалось, а небольшое увеличение эффективности использования канала передачи требует значительного увеличения размера буфера. В самоподобном трафике небольшое увеличение числа активных подключений на коммутаторе может привести к значительному увеличению утери пакетов.

Автомодельный процесс выглядит «пульсирующим» при использовании различных временных окон. В [51] показан, что общий трафик (байт/с или пакетов/с) сетей Ethernet и глобальных сетей является автомодельным. В [50] показано, что web-трафик содержит выбросы, превышающие средние значения на более чем 4 порядка. На рис. 4.1 видно, что количество запросов, поступающих на web-сайт, при использовании различных временных окон (т.е. интервалов измерения различной длины), пульсирует с большой степенью изменчивости. Если не учитывать пульсацию нагрузки, это может приводить к ухудшению пропускной способности и производительности web-сайта.

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

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

Протокол передачи гипертекстовых файлов (HTTP) - основополагающий протокол Интернета, который может использоваться в любых клиент/серверных приложениях, работающих с гипертекстом. Чаще всего протокол HTTP используется при обмене информацией между Интернет-браузером и Интернет-сервером. Для обеспечения надежности HTTP использует протокол TCP. Но при этом протокол HTTP не хранит информацию о своем состоянии: каждая транзакция рассматривается независимо от остальных. Соответственно, в типичной реализации создается новое TCP-соединение между клиентом и сервером для каждой транзакции, которое прерывается сразу поле ее завершения, хотя спецификация не диктует связь один к одному между продолжительностью транзакции и соединения.

Такая природа протокола HTTP вполне соответствует типичной сфере его применения. Нормальный сеанс связи пользователя с Интернет-браузером включает в себя извлечение последовательности страниц и документов. Извлечение последовательности страниц в идеальном случае выполняется быстро, а различные страницы и документы могут размещаться на большом количестве распределенных серверов.

Другая важная особенность HTTP - гибкость при обработке различных форматов. Когда клиент делает запрос к серверу, то он включает список приоритетных форматов, которые он может обрабатывать, и сервер отвечает в надлежащем формате. Например, браузер lynx не может обрабатывать изображения, поэтому Интернет-серверу не нужно передавать какие-либо изображения на страницах. Это предотвращает передачу ненужной информации и дает основу для расширения набора форматов с новыми стандартными спецификациями.

Имитационная модель самоподобного Интернет-трафика была разработана на базе прерываемого пуассоновского процесса (IPP) [53]. Этот процесс имеет два состояния: ON и OFF. При состоянии ON IPP генерирует пакеты, а при состоянии OFF IPP не генерирует пакеты. Интенсивность перехода с, это число переходов в единицу времени от состояния ON к состоянию OFF. Интенсивность переходов с2 - число переходов в единицу времени от состояния OFF к состоянию ON. X - интенсивность генераций пакетов в состоянии ON. На рис. 4.1 показана модель прерываемого пуассоновского процесса.

Похожие диссертации на Разработка методов и алгоритмов для автоматизированного распределения нагрузки производственного кластерного WEB-сервера