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



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

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

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

Оптимальным выходом будет использование специализированных решений для балансировки нагрузки, способных проводить мониторинг состояния серверов кластера. Технология распределения нагрузки реализуется как программное или как аппаратное решение. Последние могут базироваться либо на серверных платформах, либо на сетевых устройствах — коммутаторах или маршрутизаторах. Программные балансировщики представляют собой приложения, работающие в экономически привлекательных операционных средах Windows, Linux или UNIX. Но наилучшие возможности обеспечивают аппаратные балансировщики нагрузки, каждый из которых имеет свои преимущества.

В Украине устройства для выравнивания нагрузки применяет компания „Бигмир-Интернет”, владеющая рядом посещаемых веб-ресурсов, в числе которых интернет-портал bigmir)net и новостной ресурс korrespondent.net. Необходимость балансировки нагрузки возникла давно, и с 2004 по 2006 год в компании уже работало собственное программное решение для решения этой задачи.

Однако по мере развития интернет-проектов потребовался более серьезный подход, и с середины 2006 года в структуре веб-узла работает балансировщик нагрузки Equalizer E350si компании Coyote Point Systems.

Устройство представляет собой законченное программно-аппаратное решение для балансировки трафика на четвертом уровне протокола TCP/IP, а также для балансировки http/https трафика на седьмом уровне протокола TCP/ IP. Технически Equalizer E350si реализован в корпусе размером 1U. Внутри находится сервер с флеш-памятью вместо жесткого диска. Такое решение применено с целью достижения максимальной надежности системы. Программной частью эквалайзера является операционная система FreeBSD с доработанными модулями ядра и несколько дополнительных программ, реализованных компанией CoyotePoint.

Операции балансировки трафика производятся на уровне ядра системы, что, безусловно, положительно сказывается на скорости работы устройства. По словам Александра Яцюка, ведущего системного администратора компании „Бигмир-Интернет”, Equalizer E350si оказался достаточно эргономичным в конфигурации. Первоначальная настройка интерфейсов и паролей доступа производится с помощью консоли. Настройка виртуальных кластеров, добавление серверов в кластер, управление распределением нагрузки, просмотр статистики и т.д. осуществляется через веб-интерфейс.

Устройство поддерживает несколько алгоритмов распределения нагрузки на серверы:

1. Round Robin (новые соединения распределяются по очереди между серверами);
2. Static Weight (для каждого сервера устанавливается весовой коэффициент, и новые соединения распределяются с его учетом);
3. Adaptive (при распределении учитывается количество текущих сессий на сервер, время отклика сервера, а также начальный весовой коэффициент, который задал администратор);
4. Fastest Response (учитывается время отклика каждого сервера);
5. Least connections (учитывается количество текущих сессий на сервере);
6. Server Agent (используется дополнительный софт на стороне сервера для определения текущей нагрузки).

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

1. В работе.
2. Не в работе (сервер в кластере присутствует, но нагрузка на него не распределяется).
3. Горячий резерв (сервер в кластере присутствует, но нагрузка на него распределяется только в момент критической нагрузки, когда основные серверы не справляются).

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

Специалисты „Бигмир-Интернет” также отметили удачную реализацию протокола SSL — шифрование происходит на стороне балансировщика. Это экономит рабочее время администратора, поскольку достаточно лишь закачать сертификат через веб-интерфейс и соответствующим образом настроить виртуальный кластер, а изменять конфигурацию каждого сервера и дублировать между ними сертификат не требуется. Кроме того, в таком режиме не расходуются ресурсы серверов. В целях безопасности в „Бигмир-Интернет” задействовали режим работы E350si с включенным NAT, а серверы находятся в локальной сети с внутренними IP-адресами и снаружи не видны. В интернет запросы посетителей попадают на балансировщик, где реализована также защита от DOS-атак и открыты только те порты, на которых работают виртуальные кластеры.

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

При установке двух Coyote Point Systems Equalizer E350si появляется возможность работы в отказоустойчивом режиме (Fail Over), когда при отказе или сбое одного балансировщика второй берет на себя всю функциональность. Важно, что при проведении изменений на одном из устройств синхронизация настроек виртуальных кластеров проводится автоматически.

Coyote Point Systems Equalizer E350si поддерживает также установку плат расширения (например, SSL-акселератора), а также дополнительного ПО для организации распределения нагрузки по системам, расположенным в разных странах.

Заключение

Интернет-портал bigmir)net и новостной ресурс korrespondent.net являются в своих сегментах самыми посещаемыми в Украине. Например, ежедневное посещение портала превышает 4 млн. хитов, и это количество растет. Бесперебойную работу при такой нагрузке можно обеспечить только с применением специализированных решений по обработке трафика.

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


Технические характеристики Coyote Point Systems Equalizer E350si

Число соединений в сек, L4
80 000
Число запросов в сек, L7
45 000
Пропускная способность
775 Мбит/c
Число кластеров
неогр.
Количество серверов в кластере, макс.
32
Общее число серверов
неогр.
Макс. число одновременных соединений
2 млн.
Интерфейс
8 x 10/100
1 x 10/100/1000


КОММЕНТАРИЙ ЭКСПЕРТА

Сергей Бобок, технический консультант компании “Бигмир-Интернет”


Технология динамического распределения нагрузки по серверам кластера в нашей компании начала применяться три года назад. Тогда мы решили написать собственную программу, что и было реализовано. Однако позже мы столкнулись с тем, что наш программный балансировщик перестал справляться с нагрузкой, кроме того, его масштабируемость, функциональность и надежность перестали удовлетворять наши потребности. Поэтому в апреле 2006 года мы снова вернулись к этому вопросу, приняв решение применить специализированную аппаратную систему для балансировки нагрузки. При выборе рассматривались решения от многих компаний, в том числе от Cisco, Radware, F5 Networks, Сoyote Point Systems и других. Основной выбор происходил между устройствами от Сoyote Point Systems и F5 Networks, которые соответствовали нашим требованиям. Но в итоге выбор был сделан в пользу Сoyote Point Systems Equalizer E350si, причем важное значение имел критерий наилучшего сочетания цена/производительность+функциональность.

Решение полностью оправдало себя  — за 9 месяцев работы мы не сталкивались ни с какими проблемами. Балансировщик отлично распределяет нагрузку по 8 серверам кластера, позволяя при этом незаметно для посетителей веб-узлов осуществлять замену или обслуживание любого сервера. Единственным сервисным действием, которое от нас потребовалось, было обновление firmware. Несмотря на постоянное увеличение нагрузки на интернет-узел, выбранная нами модель E350si оставляет достаточный запас для роста, и в настоящее время вопрос балансировки трафика на повестке дня больше не стоит. В нашем распоряжении находятся 2  устройства, поэтому мы реализовали систему с Fail Over, при которой один E350si находится в работе, а другой — в режиме ожидания. Хорошо реализована в устройстве и другая функциональность, позволившая нам построить отлично защищенный, надежный и обладающий большим запасом нагрузочной способности веб-узел. Кроме того, мы убедились на собственном опыте, что применение этих устройств экономически выгодно. В дальнейшем, при необходимости расширения, в качестве более мощного устройства мы рассматриваем модель E550si.