Описание и назначение
Балансировка нагрузки — это способ распределения нагрузки между несколькими сетевыми устройствами, такими как серверы, маршрутизаторы, межсетевые экраны. Такой подход обеспечивает оптимальное использование мощностей, а также увеличение скорости реагирования серверов на запросы и обеспечение отказоустойчивости. Можно настроить балансировку нагрузки на многоуровневые коммутаторы, DNS-серверы, серверные кластеры, прокси-серверы, веб-серверы, сетевые адаптеры, виртуальные машины, приложения и сервера инспектирования содержимого.
Балансировка нагрузки может выполняться на различных уровнях модели OSI:
- Сетевой. Такой метод подразумевает использование одного IP-адреса на различных сетевых устройствах, серверах. Существует несколько способов балансировки нагрузки на сетевом уровне:
- DNS-балансировка, когда одному доменному имени присвоено несколько IP-адресов.
- NLB-кластер, или объединение нескольких серверов в кластер.
- По территориальному признаку, когда в различных регионах настраиваются одинаковые сервисы, которые имеют одинаковые IP-адреса.
- Транспортный. Такой способ подразумевает централизованное распределение запросов к серверу между различными устройствами. При такой балансировке нагрузки могут использоваться разные алгоритмы (например, запрос будет направляться наименее загруженному серверу или тому серверу, который находится следующим в очереди, так называемый круговой перебор).
- Прикладной. При такой балансировке нагрузки существует определенное приложение, которое самостоятельно принимает решение о перенаправлении клиентского запроса на соответствующий сервер в зависимости от того, к чему обращается клиент. Этот способ применяется при работе с базами данных (приложение может перенаправлять запросы на чтение к одному серверу, а запросы на запись — к другому).
Балансировка нагрузки может использоваться для реализации следующих целей:
- Исключение возможности выделения ресурсов сервера на единственный запрос в то время, как остальные запросы будут отклоняться.
- Эффективное использование ресурсов, когда не допускается простаивание сервера, в то время как загружены остальные.
- Увеличение производительности или уменьшение времени, необходимого для выполнения запроса.
- Уменьшение времени, которое требуется для предоставления ответа на запрос клиента.
При разработке вариантов балансировки нагрузки следует учитывать, что администратор должен полностью понимать, каким образом будет отрабатываться балансировка нагрузки, каким образом можно будет в дальнейшем масштабировать архитектуру.
Балансировка нагрузки обеспечивает:
- управление трафиком.
- увеличение скорости работы приложений.
- защиту приложений и сохранность информации.
- мониторинг трафика.
Балансировка нагрузки широко используется в корпоративных системах защиты, обеспечивая равномерную нагрузку на серверы, для защиты веб-сервисов и сайтов, системах фильтрации веб-контента и т. п. Также существуют различные онлайн-сервисы по организации балансировки по определенному методу.