Webmasterpro.com.ua - первый украинский сайт о поисковых системах. Оптимизация сайта в поисковиках, поисковая раскрутка. Хостинг

Реклама на сайте

WebmasterPro рекомендует:
Платная оптимизация
Создание сайтов
Обмен ссылками
 
Общение на WebmasterPro
Яндекс, Рамблер, Апорт
Google и другие
Общие вопросы поисковых систем
Продвижение сайта
Покритикуем Ваш сайт?
HTML, CSS, JavaScript
Вопросы хостинга
Хостинг
Платный хостинг
Бесплатный хостинг

Регистрация доменов

Статьи
Яндекс
Google
Все поисковые системы
Баннерная реклама
Общие вопросы рекламы
Реклама в интернет
Маркетинг в интернет
Website management
Email-маркетинг
Почтовые рассылки
Спам и борьба с ним
Разработка сайта
Веб-дизайн
Usability
Каскадные таблицы стилей
HTML
Базы данных
Таблицы
MySQL
CGI
xDSL
Партнерские программы
Электронная коммерция
Выбор хостинга
Доменные имена
Провайдеры
Сервера
А также
Каталог сайтов
Партнерские программы
Платный хостинг
Регистрация доменов
Платный хостинг


 Хотите, чтобы Ваш сайт покритиковали? - добро пожаловать на форум WebmasterPro!

Чем примечателен форум? Здесь Вы можете:
- обсудить вопросы продвижения сайта в поисковых системах: разделы Яндекс... и Google...;
- позволить другим покритиковать Ваш сайт - раздел критика сайтов;
- найти или предложить работу для вебмастера, а также обсудить потенциал бизнеса в интернет
- просто поговорить с хорошими людьми :-)

Аппаратное распределение нагрузки во многомашинной системе

Дата публикации: 16/07/2003
Категория: Веб-сервера
Версия для печати

Автор - Александр Качанов сайт Webmascon

Намного более надежной альтернативой круговому DNS является использование для распределения нагрузки специальных устройств. См. рис. ниже:

В сеть между другим сетевым оборудованием (сетевым экраном, маршрутизатором и т.д.) и web-серверами вставляется новый прибор, который называется аппаратным распределителем нагрузки (Hardware Load Balancer). Все запросы пользователей, адресованные на определенный URL проходят через распределитель. К нему подключается группа Web-серверов, которые ведут себя, как один сервер. Эта конфигурация называется кластером (cluster). Для всего внешнего мира весь кластер серверов имеет один IP-адрес.

При получении TCP/IP пакетов предназначенных для кластера, распределитель делает следующее:

- принимает решение, какому из серверов кластера следует направить следующий запрос

- опрашивает все сервера и приложения (т.е. определенный TCP/IP порт) - доступны ли они

- в некоторых случаях проверяет, возвращает ли сервер корректные данные. Это особенно критично в тех случаях, когда сервер отвечает, но вот в ответ он все время выдает "HTTP Error 404"

- переделывает IP-заголовок пакета так, что он уходит определенному серверу. Эта переделка называется "преобразованием сетевого адреса" (network address translation).

- Отправляет пакет на сервер

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

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

Балансировка

Как определяет распределитель, какому из серверов направить запрос? Всякий раз это зависит от распределителя, хотя алгоритмы почти всегда одинаковы. Распределитель нагрузки собирает огромное количество информации об активности в сети. В том числе объем трафика, идущие к серверу или от него, скорость, с которой отвечает сервер на TCP/IP запросы, количество соединений, которое поддерживает в данный момент времени каждый сервер, история ответов на предыдущие запросы. В распределитель нагрузки заложено несколько алгоритмов, из которых администратор системы может выбирать любой. Алгоритмы включают в себя и круговое переключение адресов и пропорциональный перебор (круговой перебор адресов с коэффициентами). Благодаря этим алгоритмам распределитель может принять "умное" и эффективное решение по распределению нагрузки. Посмотрим снова на схему:

Использование процессора на сервере А достигло 100% из-за выполнения какого-то особенного запроса. Процессор же сервера В используется только на 10-15%. Распределитель нагрузки заметит, сервер А слишком медленно отвечает на запросы, и перенаправит все последующие запросы на сервер В. Он будет продолжать это делать до тех пор, пока уровень загрузки сервера А не вернется на приемлемый уровень. Таким образом мы получаем гораздо более эффективный результат, чем при использовании кругового DNS.

Отказоустойчивость

Обратимся опять к примеру кластера из двух серверов. Если сервер А "падает", аппаратный распределитель нагрузки не будет посылать ему данные. Машина сама по себе может работать, но если web-сервер на этой машине не отвечает (скажем вы остановили его), то распределитель удалит сервер А из своего списка серверов и направит весь трафик на сервер В. В результате устойчивость , как видите, тоже намного выше, чем при использовании кругового DNS.

Еще одно замечание об использовании распределителей. Ведь сам распределитель тоже может выйти из строя. Для решения этой проблемы обычно устанавливают второй распределитель, который работает как "всегда готовый резерв" (hot spare). См. рис.

Эта конфигурация с избыточной надежностью как правило очень устойчива. Распределители соединяются обычно через последовательное соединение, например через кабель RS-232. В каждом из приборов есть контрольное устройство (watchdog processor), которые постоянно поддерживают связь друг с другом. В каждый конкретный момент работает только один распределитель, а второй вступает в строй, если основной "упадет". В случае выхода прибора из строя или его необычного поведения, одно контрольное устройство "жалуется" другому и принимается решение, кто возьмет на себя операции по распределению нагрузки. Даже после выхода из строя первого распределителя, второй - выполняя работу - постоянно проверяет первый. Если первый распределитель вернулся в строй, второй возвращает все обязанности первому и переходит в режим ожидания.

Администрирование

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

Как правило аппаратные распределители нагрузки - высокоинтеллектуальные приборы. Цена на них начинается от 20 тысяч долларов - то есть примерно столько же, сколько стоит хороший маршрутизатор: или 10 хороших серверов. Из-за того, что работа распределителя связана с преобразованием заголовков всех TCP/IP пакетов, пропускная способность системы уменьшается. Предел скорости работы распределите 45-50 Мбс на момент написания статьи. Казалось бы, скорость невероятная, но крупные сайты могут превысить (и превышают) этот предел в период пиковой нагрузки. При этом дополнительные пакеты просто игнорируются. Неприятно, конечно, но большинству Web-севреров это не грозит.

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

Обычно в набор функций распределителя входит возможность приписывать одному серверу один определенный IP-адрес или целое пространство адресов класса С. Эта функция называется "привязкой" ("affinity"). Но об этом позже. Также среди функций могут быть удаленное администрирование с помощью web-интерфейса, оповещение администратора о неполадках по пейджеру, генерация отчетов о работе сети в реальном времени и многое другое.

В качестве более экономичного, но менее функционального решения можно воспользоваться "усеченным" вариантом распределителя, который называется "переключателем нагрузки" (load director). Его интеллектуальность несколько пониже (например в них нет поддержки "привязки" (affinity), но зато и стоит он дешевле.

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



Статьи по теме:

  страницы: 1


WebmasterPro.com.ua - интернет-маркетинг и реклама. Поисковые системы. Хостинг, партнерские программы, разработка сайта

 

Новости, статьи и пресс-релизы присылайте на news@webmasterpro.com.ua 
При перепечатке материалов ссылка на WebmasterPro обязательна

Rambler's Top100

Rating@Mail.ru


Copyright © 1999-2003 webmaster@webmasterpro.com.ua
Система публикаций Sanitarium WebLoG