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

www.karman.com.ua
портал о хостинге в Украине
Хостинг + Украина = Karman.com.ua

Еще глубже

/

Сайт на нескольких серверах


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

Еще по теме:
  wwjd.ru - христианская поисковая система
  Не гонят при нагрузке
  Борьба оптимизаторов и поисковых систем
  Информация о SEO – оптимизаци под поисковые системы.
  SEO для начинающих: роботы поисковых систем – это люди
  Различие между оптимизацией под поисковые системы (SEO) и поисковым маркетингом (SEM)
  Способы улучшения позиций в поисковых системах
  Построение системы ссылок для SEO

Намного более надежной альтернативой круговому 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-сайты целиком полагаются на это решение.


Чтобы обсудить это в форуме, нажмите здесь.


Хостинг-источник: http://karman.com.ua, htpp://www.webmascon.com/
  12 советов по оптимизации вашего веб-сайта для поисковых систем.
  Оптимизация страниц для поисковых систем.


Есть вопросы о хостинге и о сайтах?
и получи ответ от профессионалов, которые обожают помогать людям :).
Еще по теме:
  Позиции в поисковых системах, улучшите их
  Каталоги и поисковые системы – сравнительный анализ.
  В системе интернет-адресации ликвидирована важная ошибка
  Положительные стороны системы по имени CUNIC
  Почему доменные имена высшего уровня означают лучшую индексацию поисковыми системами
  Электронная платежная система Alertpay
  система интернет денег Liberty Reserve
  система электронных денег E-gold
  Создание чата, как увеличивается нагрузка на сервер
  Яндекс деньги (yandex money) достоинства и недостатки системы
  Улучшение положения в поисковых системах: недоразумения относительно рейтинга страниц Google
  Как добиться, чтоб Ваш сайт быстро проиндексировали поисковые системы
  Будни клиента систем контекстной рекламы.
© СПД Праведно-Счастливый Аладдин Ярославович, 2004-2008. Все права защищены. При цитировании материалов ссылка на www.karman.com.ua обязательна. Редакция "Кармана" может не разделять точку зрения авторов статей, сообщений и ответственности за их содержание не несет.

Быстрый переход к содержимому сайта Karman.com.ua:
Новости, советы, углубленные знания, знания для новичков, законодательство, интересные скрипты, фотогалереи, отчеты, статьи о хостинге: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24
Часто задаваемые общие вопросы о хостинге, про FTP, PHPMyAdmin и MySQL, CPanel, Предустановленные скрипты, WHM, Cron, .htaccess, SSH, Паролирование директорий, О доменах, о работе с сайтом, о Раскрутке сайта, об Электронной почте, про Основы web-программирования: 0, 1
Энциклопедия основных терминов хостинга, программного обеспечения, железной стороны хостинга, технологий, электронной почты и доменов: 0, 1, 2, 3, 4, 5, 6
Сайты о хостинге (форумы, хостинг-провайдеры, студии веб-дизайна, домен-регистраторы, инструментарии в помощь вебмастеру): 0, 1, 2

Rambler's Top100