Диплом: Балансировка трафика в условиях территориально распределенных дата-центров

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
22
Каждая автономная система в списке AS_SEQUENCE считается 1 автономной
системой.
ORIGIN. IGP маршруты (i), приоритетнее EGP (e), которые, в свою
очередь, приоритетнее incomplete (?).
Наименьшее значение Multi-Exit Discriminator(MED). Данный
атрибут обычно используют в ситуации, когда между двумя автономными
системами используется несколько BGP соседств, для выбора канала, через
который будет передаваться трафик для той или иной подсети. Чем ниже
значение, тем маршрут приоритетнее.
Тип соседа. Маршруты пришедшие от eBGP соседа приоритетнее
маршрутов, пришедших от iBGP соседа.
Метрика IGP для достижения NEXT_HOP. Сравнивается метрика IGP
для каждого маршрута. Чем ниже значение, тем маршрут приоритетнее.
Идея, скрывающаяся за этим 9-ти ступенчатым процессом, заключается
в том, чтобы определить единственный, наилучший маршрут для каждой
подсети. Если, при сравнении между двух маршрутов, какой-то из этих
параметров оказался лучше, BGP не продолжает сравнивать последующие
атрибуты. Например, у R1 есть пять маршрутов до подсети 9.0.0.0/10, два с
длиной AS_PATH равной трём, а остальные с длиной равной пяти. На
четвёртом шаге (длина AS_PATH) будут отброшены маршруты с длиной
AS_PATH равной пяти. Для оставшихся маршрутов процесс сравнения будет
продолжаться до того момента, пока не будет определён наилучший маршрут.
[2]
В случае, если все атрибуты в 9-ти ступенчатом процессе оказались
одинаковыми, BGP использует так называемые “tiebreakers”. Это ряд
параметров, которые сравниваются в случае, если основной механизм не смог
выбрать лучший маршрут.
Самый старший маршрут. В случае, если сравниваются маршруты,
полученные от eBGP соседей, и один из этих маршрутов уже считается
лучшим, BGP не будет считать последний пришедший маршрут лучшим.
Наименьший RID. Выбирает маршрут от соседа с наименьший Router
id.
Наименьший neighbor id. Выбирает наименьшее значение адреса, с
которым устанавливается соседство. Данный шаг возможен только в
ситуации, когда используются несколько соседств между одной парой
маршрутизаторов.
23
Балансировка трафика
2.1 Технологии и методы балансировки нагрузки
Поскольку бизнес и информационные технологии в современных
компаниях становятся всё ближе друг к другу, сети больше не
воспринимаются как набор каналов передачи данных. В современном мире,
сетевая инфраструктура – это элемент, позволяющий значительно ускорить
рост компании и внедрение бизнес идей. Помимо простой сетевой
доступности между приложениями, сетевые устройства способны
предоставлять решения, которые позволяют сохранить финансы и уменьшить
репутационные риски.
Балансировщики нагрузки стали часто использоваться, начиная с
второй половины 1990-х. Они были разработаны для масштабирования
производительности вебсайтов, и частота их использования в ЦОД только
увеличивалась с появлением новых возможностей и функций.
Современная модель балансировки нагрузки стала возможна с
изобретением аппаратных балансировщиков нагрузки. Это устройства,
которые могут перенаправлять трафик основываясь на данных 4-7 уровня
модели OSI. Эти данные включают в себя:
TCP порт назначения
UDP порт назначения
HTTP URL
HTTP cookie
24
Рисунок 2.1: Преимущества установки балансировщика нагрузки
Использование балансировщиков нагрузки имеет некоторые
преимущества перед использованием программно-ориентированных
серверных решений с той же функцией:
Конфигурация балансировщика нагрузки не зависит от операционной
системы, установленной на сервере.
Программные решения необходимо настраивать и поддерживать на
каждом сервере, где осуществляется балансировка.
Решения такого типа делят ресурсы сервера с самим приложением,
установленным на сервере.
Балансировщики также могут предложить более высокие показатели
доступности для приложений, в которых изначально не подразумевалась
отказоустойчивость. Балансировщику нагрузки могут работать в Hot-standby
режиме, что позволяет значительно сократить время решения проблемы в
случае возникновения неполадок на одном из балансировщиков. Также, как
25
централизованное решение, балансировщики нагрузки имеют доступ к такой
статистике, как количество запросов в день и количество переданной
информации, что упрощает работу с клиентской статистикой по сравнению с
её анализом независимо, на каждом отдельном сервере. [1]
2.2 Описание функций балансировщиков нагрузки
Когда производится настройка балансировщика нагрузки,
необходимо определить ряд элементов:
Реальные сервера. Реальные сервера представляют собой ip-адреса
серверов, которые будут принимать входящие соединения через
балансировщик.
Кластер серверов. Кластер серверов представляет из себя набор
реальных серверов, на которых запущено одно и то же приложение. Реальный
сервер может принадлежать ряду серверных кластеров, как сервер 3 на
рисунке 1.9.
Тип проверки. Проверками (или Probe) называют искусственные
запросы от балансировщика, которые создаются для того, чтобы
балансировщик мог понять доступно ли приложение на конкретном сервере.
Они могут быть простыми, как, например, ICMP echo запросы, или сложными,
как HTTP GET запросы, в которых передаётся запрос в базу данных
приложения.
Виртуальный IP-адрес, или VIP. Это адрес, который использует
балансировщик, чтобы принимать входящие от клиентов соединения. Как
правило, именно этот ip-адрес присутствует в ответах DNS-сервера для
доменного имени приложения.
26
Рисунок 2.2: Процесс балансировки трафика
Таблица привязки. Таблица привязки является опциональным
элементом, который позволяет запомнить информацию о первичном
подключении пользователя. Балансировщик может использовать эту
информацию, чтобы всегда направлять последующие пользовательские
подключения на один и тот же сервер. Примером такой информации может
являться ip-адрес клиента, или, например, HTTP cookie.
Механизм балансировки. Механизмом балансировки (или Predictor)
называется метод балансировки нагрузки между серверами в кластере
серверов. В данный момент существует целый ряд алгоритмов, позволяющих
эффективно выбирать реальный сервер для пользовательского трафика. На
рисунке 1.10 показан ряд таких алгоритмов. На данном рисунке стрелкой
показаны новые клиентские соединения, которые пока ещё не являются
частью таблицы привязки.
27
Рисунок 2.3: Методы балансировки нагрузки
На рисунке 2.3 показаны следующие методы балансировки:
Round-robin. Или балансировка нагрузки “по очереди”. Данный
механизм просто отправляет каждое новое соединение на следующий сервер
в списке реальных серверов. Когда список заканчивается, балансировщик
возвращается в начало списка.
Наименьшее количество соединений. В данном случае,
балансировщик нагрузки направляет каждое новое соединение на сервер, на
сервер с наименьшим активным кол-вом соединений.
Хеширование. Когда происходит новое соединение, балансировщик
производит операцию хеширования на предустановленных параметрах, таких
как ip-адрес, HTTP cookie, URL. Диапазон возможных результатов
назначается реальным серверам, чтобы для следующего соединения с
аналогичными параметрами всегда выбирался тот же реальный сервер.
28
Наименее загруженный. Данный алгоритм использует информацию о
загрузке ЦПУ реального сервера для балансировки. Обычно, данный метод
основан на протоколе SNMP, который, в данном случае, применяется для
сбора информации о загрузке сервера.
Выбор метода целиком основан на характеристиках трафика
приложения. В реальных условиях, обычно тестируются несколько методов,
чтобы понять какой из них работает наилучшим образом.
В Таблице 2.1 описаны лучшие практики для разных типов
пользовательского трафика.
Характеристики трафика
Наилучший механизм
балансировки
Однородный пользовательский
трафик по времени и количеству
пересылаемых данных
Непредсказуемый трафик
Round-robin
Разнородный пользовательский
трафик по времени соединения и
количеству пересылаемых данных.
Понятно максимальное
количество соединений приводящих к
увеличению времени ответа.
Наименьшее количество
соединений
Необходимость выбора одного и
того же реального сервера для всех
последующих соединений
пользователя.
Балансировка трафика на
фаерволы.
Хеширование
На сервер установлен SNMP
агент.
Информация полученная от
SNMP агента может быть
использована как переменная для
балансировки.
Наименее загруженный
Таблица 2.1: Использование механизмов балансировки с учётом
характеристик трафика
Настройка балансировки включает в себя установку весов и лимита
количества соединений для каждого реального сервера в кластере.
В случае, если для настройки балансировки используются веса,
балансировщик нагрузки использует их, для определения пропорций в
которых он будет перенаправлять трафик на каждый сервер. Например, в
29
случае использования round-robin механизма, балансировщик посылает в 2
раза больше клиентов на один из серверов, если его вес в два раза больше чем
у остальных серверов в пуле. Также, для алгоритма “Наименьшее количество
соединений”, вес описывает соотношение соединений, которые будут
направлены на каждый сервер. Данное соотношение очень легко определить с
помощью формулы: вес сервера / сумма весов всех серверов в пуле. [17]
Установка максимального порога соединений для серверов может быть
использовано для того, чтобы избежать нежелательного увеличения времени
ответа, вызванного большим количеством соединений. На рисунке 2.4
показана зависимость поведения сервера от количества обрабатываемых им
клиентский сессий.
Рисунок 2.4: Зависимость поведения сервера от кол-ва клиентских
сессий
Оптимальная точка для работы, показанная на рисунке 1.12,
зависит от разных факторов, таких как CPU, оперативная память,
операционная система, объём чтения/записи на диск и т.д. Тем не менее, если
эта точка всё же будет определена эмпирическим путём, на балансировщике
может быть настроен лимит количества соединений для того, чтобы избежать
увеличенного времени ответа. После достижения данного лимита,
балансировщик перестанет отправлять новые соединения, пока количество
соединений не снизится.
30
Тем не менее, сложность в измерении точки для оптимальной
работы сервера привела к ещё одному типу балансировки нагрузки:
балансировка в зависимости от времени ответа сервера. Используя этот
алгоритм, балансировщик может посылать новые соединения серверу с
наименьшим временем ответа. Однако, в таком случае, необходимо точно
понимать какой параметр используется для измерения времени ответа.
Обычно, балансировщики измеряют время между:
TCP SYN посланным балансировщиком серверу и SYNACK
полученным балансировщиком от сервера обратно.
HTTP GET сообщения и его ответом от сервера.
Установка TCP соединения и его разрыв.
Выбор метода измерения скорости отклика сервера напрямую зависит
от того, какой тип балансировки балансировщику необходимо выполнять.
Подробнее данный вопрос будет рассмотрен в последующих главах.
2.3 Балансировка четвёртого и седьмого уровня модели OSI
Когда клиентский трафик приходит на VIP, балансировщик
выбирает сервер из пула в зависимости от параметров соединения и настройки
механизма балансировки. Если при вычислении сервера назначения
используется такая информация, как ip-адреса и TCP/UDP порты, то говорят,
что балансировщик производит балансировку на четвёртом уровне. На
рисунке 2.5 показано как происходит балансировка трафика на четвёртом
уровне модели OSI.
Когда балансировщик нагрузки производит балансировку на четвёртом
уровне, вся информация, которая ему необходима для принятия решения о
том, на какой сервер балансировать трафик находится в TCP SYN сообщении
(или в первой UDP дейтаграмме).
31
Рисунок 2.5: Балансировка трафика на четвёртом уровне модели OSI
При балансировке на 7-м уровне, выбор сервера назначения происходит
на основании информации из 5,6 или 7-го уровня модели OSI. На рисунке 2.6
описано как происходит балансировка трафика на 7-м уровне для этого же
соединения.
В случае, когда балансировка происходит на основе 7-го уровня,
балансировщик должен принять решение о перенаправлении трафика на
сервер уже после того, как установится соединение транспортного уровня (для
TCP). Балансировщик должен дождаться, пока клиент не пошлёт информацию
на основе которой можно будет проводить балансировку. В этом случае,
балансировщик становится прозрачным tcp-прокси, устанавливая соединение
с клиентом от имени сервера. [35]

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)