1.3.2. Весовой коэффициент сервера и работа планировщика
Администратор LVS может назначить весовой коэффициент каждому узлу пула реальных серверов. Этот коэффициент представляет собой целое число, которое используется в любом алгритме, основанном на весовых коэффициентах и способствует более равномерному распределению нагрузка LVS-маршрутизатором при наличии реальных серверов с различной производительностью.
Весовые коэффициенты работают как множители. Рассмотрим пример. Имеется два реальных сервера, весовой коэффициент первого - 5, весовой коэффициент второго - 1. В этом случае на каждый запрос, направленный второму серверу приходится 5 запросов, направленных первому. Значение весового коэффициента для реального сервера по умолчанию равно 1.
Хотя добавление весовых коэффициентов для различных аппаратных конфигураций в пуле реальных серверов может повысить эффективность балансировки нагрузки, оно также может привести к временной разбалансировке в случае добавления реального сервера в пул при использовании алгоритма "Минимум подключений c использованием весовых коэффициентов". Рассмотрим пример: в пуле 3 реальных сервера. Серверы A и B имеют весовой коэффициент 1, сервер С - весовой коэффициент 2. Если сервер C выходит из строя по каким-либо причинам, нагрузка равномерно распределяется между серверами A и B. Но как только сервер C начинает функционировать снова, LVS-маршрутизатор определяет, что подключения к серверу отсутствуют, и начинает все поступающие запросы направлять серверу C до тех пор, пока тот по количеству подключений не уравняется с серверами A и B.
Для предотвращения этого явления администратор может выполнить фиксацию виртуального сервера - каждый раз, когда включается узел в пуле реальных серверов таблица подключений обнуляется и LVS-маршрутизатор распределяет запросы как если бы все серверы были только что добавлены в пул.