Ж у р н а л   о   к о м п ь ю т е р н ы х   с е т я х   и   т е л е к о м м у н и к а ц и о н н ы х   т е х н о л о г и я х
СЕТИ И СИСТЕМЫ СВЯЗИ on-line
  ПОИСК: ПОДПИСКА НА НОВОСТИ: НОМЕР:
    ДОМОЙ • Архив: Новостей | Конференций | НомеровПодписка
 
   
 
   
    
РЕДАКЦИЯ
 
Все о журнале
Подписка
Как проехать
Где купить
Отдел рекламы
График выхода журнала
Адреса в Интернет

РУБРИКАТОР
   
• Инфраструктура
• Информационные
   системы

• Сети связи
• Защита данных
• Кабельные системы
• Бизнес
• Колонка редактора
• Электронная
   коммерция

• Только на сервере
• Системы
   учрежденческой
   связи

• Новые продукты


Rambler's Top100

  

Распределение нагрузки Web-сервера

Грег Йеркса

По мере распространения Всемирной паутины и постоянного роста числа ее пользователей Web-узлы многих фирм перегружаются и становятся менее надежными. Нужно ли в этом случае фирмам модернизировать свои аппаратные и программные средства? Пусть не торопятся делать это!

Распределители Web-нагрузки, или балансировщики TCP/IP-сервиса, предоставят им более приемлемую альтернативу, чем постоянное обновление серверов, при котором минимальный выигрыш в производительности связан с высокими затратами. Принцип прост и уже находит применение (в той или иной форме). В частности, на многих узлах служба доменных имен (Domain Name Service - DNS) задействована в циклическом режиме с использованием нескольких Web-серверов для одного узла. Однако этот метод распределения нагрузки "балансирует" ее не полностью и не выявляет наиболее производительный сервер. Он к тому же не в состоянии поддерживать распределенное информационное наполнение на нескольких разнородных серверах.

Другое решение - "интеллектуальный распределитель Web-нагрузки", построенный таким образом, чтобы можно было направлять различные TCP/IP-запросы по конфигурируемой иерархии серверов и распределителей нагрузки.

В лаборатории сетевых вычислений Университета штата Висконсин мы легко и быстро внедрили в действующую конфигурацию нашего Web-узла распределитель Web-нагрузки. Его основу составляют два компьютера Pentium Pro с тактовой частотой 200 МГц и два компьютера Pentium с тактовой частотой 90 МГц, реализующие один и тот же Web-узел с идентичными каналами Ethernet. Определив длину кабеля, необходимую для работы с новым оборудованием, мы отключили подсеть серверов Web-узла от общей сети и, пропустив трафик через распределитель Web-нагрузки, вновь подсоединились к общей сети через другой сетевой порт. И серверы заработали вновь. Однако первоначально распределитель Web-нагрузки действовал всего лишь как мост.

Затем мы сконфигурировали распределитель Web-нагрузки. Обычно его первичная установка осуществляется через последовательный порт, но некоторые изготовители снабдили задние панели своих устройств разъемами для подключения видеомонитора и клавиатуры. Обозначив каждый из Web-серверов как физический сервер на распределителе нагрузки, мы задали виртуальные серверы и метод балансировки, т. е. указали отдельные IP-адреса для каждого виртуального сервера и еще несколько параметров. После этого мы выбрали метод весовых коэффициентов и присвоили более высокий приоритет машинам Pentium Pro, уменьшив загрузку менее производительных Pentium 90.

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

Зачем нужно распределять нагрузку?

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

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

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

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

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

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

Отказоустойчивость... в самом деле?

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

Но некоторые распределители Web-нагрузки достаточно "интеллектуальны", чтобы распознать неисправные службы. Local Director корпорации Cisco Systems был первым среди испытанных нами продуктов, который автоматически сделал это. Каждый порт с реализованным на нем виртуальным сервером считается отдельной службой и постоянно контролируется. Например, вышедший из строя Web-сервер может не отвечать на запросы, даже если Gopher- и FTP-серверы продолжают нормально функционировать. Некоторые из распределителей Web-нагрузки прекращают передачу Gopher- и FTP-запросов (а также Web-запросов) на "выключившийся" сервер. Напротив Local Director будет использовать и сервер с дефектной Web-службой для всех остальных служб, которые продолжают на нем функционировать нормально. Итак, распределители Web-нагрузки способны поддерживать все возможные службы в любое время.

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

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

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

Планируйте заранее

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

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

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

В случае применения CGI-запросов рекомендуется использовать каскадные распределители. Головной распределитель может направлять все CGI-запросы на устройство, которое "представляется" ему отдельным сервером, хотя фактически является еще одним распределителем, за которым установлено произвольное число серверов. Чтобы реализовать данный подход, достаточно разместить еще один распределитель за головным и сконфигурировать его и находящуюся за ним сеть.

"Высший пилотаж"

После инсталляции аппаратных средств может возникнуть необходимость переконфигурировать серверы таким образом, чтобы извне они казались единым виртуальным сервером. В свете сказанного нет необходимости что-либо делать в случае самых простых конфигураций, когда объявленный адрес Web-сервера является IP-адресом распределителя. Последний "перехватывает" весь сетевой трафик, направляемый по указанному IP-адресу, и обрабатывает его, пересылая запросы наиболее подходящим серверам. Серверы, входящие в состав виртуального сервера, могут сохранять свои оригинальные IP-адреса.

Для каждого виртуального балансируемого Web-сервера вашего узла необходимо задать две группы IP-адресов. Это IP-адреса физических Web-серверов и по крайней мере один виртуальный IP-адрес, доступный из внешнего мира. Для каждого последующего виртуального Web-сервера, который вы намерены установить, следует определить еще незадействованный IP-адрес и связать данный сервер с IP-адресами всех соответствующих физических Web-серверов. Такими адресами физических Web-серверов могут быть их текущие IP-адреса или присвоенные им "частные" адреса. Эти адреса, предназначенные для использования в интрасетях, перечислены в документе RFC 1918.

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

Сначала установите новый Web-сервер на физических серверах, сконфигурировав с этой целью альтернативный порт (скажем, 81-й). Затем "отобразите" 80-й порт нового виртуального сервера на 81-м порте любого физического сервера, где выполняется данный Web-сервер.

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


Смотрите ремонт пластиковых окон у нас на сайте.




  
12 '1997
СОДЕРЖАНИЕ

колонка редактора

• Старая песня о главном

локальные сети

• Средства кластеризации серверов Windows NT

• Главный недостаток Windows NT в России, или Почему я за архитектуру клиент—сервер

• Серверы NetWare в зеркальном отражении

• ЭМС и Европейская Директива

• Оценка эффективности работы персонала

• Novell Education: кузница сетевых инженеров

корпоративные сети

• Службы LANE — мост в XXI век?

• Новейшая история транзакционных технологий

• Внезапные потери связи

• Новейшие Интернет-технологии от Novell

услуги сетей связи

• Телефонные станции для быстро растущих и крупных предприятий

• CDMA — россиянам

• О пригодности телефонных каналов для передачи данных

• Тарификационные системы для учрежденческих АТС

• Маршрутизаторы ISDN со встроенными концентраторами

интернет и интрасети

• Распределение нагрузки Web-сервера

• Естественная эволюция индустрии Интернет

• Игры в Интернет

защита данных

• Управление ИБП

новые продукты

• Network Exchange 2550 фирмы Netrix

только на сервере

• Технология Dynamic HTML: "раздвоение личности"

• Тестируем АТМ-адаптеры



 Copyright © 1997-2007 ООО "Сети и Системы Связи". Тел. (495) 234-53-21. Факс (495) 974-7110. вверх