Распределитель нагрузки и все компьютеры объединяются в кластер, имеющий один IP-адресАппаратные распределители нагрузки подключаются напрямую к компьютерам, входящим в состав сервера.
А уже к ним присоединяются другие сетевые устройства — в частности, маршрутизатор. Все компьютеры и распределитель являются как бы логической группой, заменяющей обычный веб-сервер. Называется такая группа кластером. Как и простой сервер, весь кластер имеет один IP-адрес. Это большой плюс, поскольку в этом случае замена компьютеров не составит никакого труда, не вызовет проблем с закладками и ссылками в локальных DNS-серверах.
Ну, а теперь давайте разберем алгоритм работы аппаратного распределителя загрузки. Допустим, браузер пользователя присылает запрос на данный сервер. В этом случае устройство выполняет следующие действия:
- Выбирает компьютер, на который будет отправлен поступивший запрос (подробнее об этом ниже).
- Опрашивает выбранный компьютер и необходимые приложения на предмет их доступности.
- Осуществляет преобразование сетевого адреса. Фактически, устройство изменяет заголовки поступающих пакетов таким образом, чтобы они попали на нужный компьютер.
- Отправляет запрос на выбранный компьютер.
- Получает от компьютера ответ на запрос.
- Осуществляет обратное преобразование сетевого адреса. Таким образом, по IP-пакетам невозможно догадаться, что сервер состоит не из одного компьютера.
- Отправляет ответ браузеру пользователя.
Естественно, здесь приведена только самая общая схема работы аппаратного распределителя нагрузки. Некоторые устройства, помимо приведенных, выполняют еще ряд действий. Кроме того, многие операции достаточно сложные, а поэтому сами представляют собой интересные алгоритмы. Но подробно останавливаться на этом мы не будем.
Распределитель или переключатель?
Распределитель нагрузки функциональнее переключателя, но зато и дорожеДо этого момента, говоря об устройствах аппаратной балансировки нагрузки на компьютеры в составе распределенного веб-сервера, мы использовали два термина: распределитель и переключатель. Теперь же пришла пора разобраться, «что есть что». И для начала рассмотрим распределители. Это достаточно сложные и высокоинтеллектуальные устройства. В них заложены сразу несколько схем распределения нагрузки — простой круговой перебор (аналогично круговому DNS), круговой перебор с коэффициентами (каждому компьютеру присваивается весовой коэффициент) и так далее. Но, естественно, наиболее полезной является возможность распределителя самому выбирать наименее загруженный данный момент компьютер. Для этого он анализирует скорость получения ответа от сервера, объем идущего к нему и от него трафика, число соединений, а также некоторые другие параметры.
Кроме того, большим преимуществом аппаратных распределителей нагрузки является наличие функции привязки. Ведь ни для кого не секрет, что одной из самых больших проблем, связанных с распределенными веб-серверами, является сохранение состояния приложения между запросами одного и того же клиента. Обычно она решается с помощью сессий, когда на сервере сохраняются для каждого пользователя временные данные, восстанавливаемые при каждом запросе от него. Однако при использовании некоторых технологий балансировки нагрузки запросы от одного клиента в течение сессии могут отправляться и на другие компьютеры, на которых нет необходимой информации. Использование аппаратных распределителей позволяет легко обойти проблему. Эти устройства способны в течение сессии направлять все запросы от одного пользователя на один и тот же компьютер.
Но есть у распределителей нагрузки и недостатки. В первую очередь, это замедление общей пропускной способности всего веб-сервера в целом. Ведь во время своей работы это устройство проводит дополнительные опросы компьютеров, а также занимается преобразованием IP-пакетов. Все это отнимает дополнительное время, в результате чего максимальная пропускная способность системы снижается до пропускной способности распределителя. И хотя значение этого параметра обычно составляет никак не меньше 50 Мбайт/с, для некоторых особенно крупных серверов его будет явно недостаточно. Решение этой проблемы, конечно же, существует, однако оно требует весьма существенных дополнительных затрат.
Аппаратные переключатели нагрузки — более простые устройства. У них гораздо меньше функций. В частности, переключатели не поддерживают режим привязки. Да и работают они чаще всего только с двумя алгоритма балансировки: круговым и круговым с коэффициентом. Преимуществ у подобного решения два. Во-первых, переключатели стоят гораздо дешевле распределителей. А во-вторых, они практически не уменьшают пропускную способность всей системы веб-сервера. Недостатки этих устройств вполне очевидны — они не умеют делать многое из того, с чем легко справляются распределители.
Балансировка
По балансировке распределители нагрузки — самый лучший вариант для создания многокомпьютерного сервераА теперь перейдем к рассмотрению трех основных аспектов вопроса использования аппаратных распределителей и переключателей нагрузки. И первый из них — это балансировка. Собственно говоря, об этом речь уже шла в предыдущем разделе. И мы выяснили, что распределители действительно могут балансировать загрузку серверов и увеличивать тем самым производительность веб-сервера в целом. Эти устройства «освобождают» слишком медленно работающие компьютеры и не дают простаивать другим.
К сожалению, в некоторых случаях алгоритмы балансировки нагрузки оказываются неэффективными. Для примера рассмотрим следующую ситуацию. Запросы нескольких пользователей попали на один и тот же компьютер, для них начал работать режим привязки. При этом все запросы пользователей будут все время отправляться на один и тот же сервер — даже несмотря на то, что он может быть перегруженным. Другой проблемой могут оказаться базы данных, вынесенные на отдельные машины (собственно говоря, это обычная практика). В случае большой загрузки компьютера с базой сервер будет выдавать ответ с задержкой. Но распределитель отнесет эту задержку на счет машины, на которую отправлял запрос. А поэтому он посчитает ее загруженной, хотя на самом деле этот компьютер может простаивать.
Надежность
По надежности использование аппаратных распределителей превосходит все остальные способы создания распределенного сервера
По надежности использование аппаратных распределителей превосходит все остальные способы создания распределенного сервера. И действительно, устройство мгновенно определяет, что какой-то компьютер перестал отвечать, и не отправляет на него запросы, пока тот не возобновит нормальное функционирование. Таким образом, пользователи даже и не заметят выхода из строя одной части веб-сервера (за исключением разве что небольшого замедления скорости передачи данных). Единственной проблемой в этом случае остается возникновение неисправности в самом распределителе. Для ее решения все крупные сайты используют сразу два этих устройства, поддерживающих между собой связь с помощью последовательного соединения. Дело в том, что в распределителях существует практически автономный контрольный блок, который постоянно тестирует распределитель. Как только этот блок замечает какие-то отклонения, он отдает команду начала работы другому устройству. Когда же функциональность распределителя восстанавливается, он снова переходит в рабочее состояние, а резервный — в режим ожидания.
Удобство администрирования
Администрирование распределителя нагрузки не вызывает никаких сложностейАдминистрирование аппаратного распределителя нагрузки не требует каких-то специальных знаний. Правильно настроить устройство сможет любой грамотный системный администратор, способный справиться с маршрутизатором. Все действия осуществляются непосредственно на самом устройстве, сервера при этом работают в обычном режиме. Они «не видят» и даже не подозревают о существовании своих собратьев.
Кстати, распределители обычно обладают целым набором функций, существенно облегчающих администрирование всего кластера в целом. Так, например, среди них есть возможность удаленного управления через веб-интерфейс, генерация различных, в том числе, и статистических, отчетов о работе сети в целом, оповещение по указанному пейджеру о выходе из строя любого из компьютеров и так далее. Наверное, все понимают, что описанные функции присутствуют в распределителях нагрузки и отсутствуют в переключателях.
Вывод
Единственный недостаток аппаратных распределителей нагрузки — ценаИспользование аппаратных распределителей нагрузки — наиболее удобный и надежный способ обеспечения работоспособности веб-сервера, состоящего из нескольких компьютеров. Правда, необходимо учитывать, что стоимость одного такого устройства составляет не менее 15 тысяч долларов. Нужно ли говорить, что это существенно ограничивает круг их потенциальных пользователей до крупных компаний, оказывающих сетевые услуги, и систем электронной коммерции. Аппаратные переключатели нагрузки гораздо дешевле. Но и они доступны только для серьезных компаний и проектов. Остальным же приходится искать более дешевые способы реализации распределенного веб-сервера.
Ссылки по теме
- Преимущества и недостатки распределенных и мультипроцессорных веб-серверов
- Использование кругового DNS для создания распределенного веб-сервера
Статья получена: hostinfo.ru