12.6. VIRTUAL SERVERS

На панели VIRTUAL SERVERS (Виртуальные сервера) отображается информация о каждом определённом в данный момент виртуальном сервере. В каждой строке таблицы показано состояние виртуального сервера, его имя, назначенный ему виртуальный IP-адрес, маска сети виртуального IP, номер порта, на котором работает служба, используемый протокол, и интерфейс виртуального устройства.

Рисунок 12-5. Панель VIRTUAL SERVERS

Каждый сервер, отображаемый на панели VIRTUAL SERVERS, можно настроить на последующих экранах или подразделах.

Для добавления службы нажмите кнопку ADD. Чтобы удалить службу, выберите её, щёлкнув переключатель рядом с виртуальным сервером, и нажмите кнопку DELETE.

Чтобы включить или отключить виртуальный сервер, щёлкните его переключатель и нажмите кнопку (DE)ACTIVATE.

Добавив виртуальный сервер, вы можете настроить его, щёлкнув его переключатель слева, и нажав кнопку EDIT для перехода к подразделу VIRTUAL SERVER.

12.6.1. Подраздел VIRTUAL SERVER

Подраздел VIRTUAL SERVER (Виртуальный сервер), показанный на рисунке 12-6, позволяет вам настроить отдельный виртуальный сервер. Ссылки на подразделы, относящиеся к этому виртуальному серверу, расположены вверху страницы. Но прежде чем настраивать один из подразделов этого виртуального сервера, заполните эту страницу и нажмите кнопку ACCEPT.

Рисунок 12-6. Подраздел VIRTUAL SERVERS

Имя (Name)

Введите осмысленное имя, определяющее виртуальный сервер. Это имя не является именем компьютера, поэтому сделайте его описательным и легко узнаваемым. Вы можете даже указать протокол, используемый виртуальным сервером, например HTTP.

Порт приложения (Application port)

Введите номер порта, на котором служба будет принимать входящие подключения. В примере со службой HTTP, используется порт 80.

Протокол (Protocol)

Выберите в выпадающем списке UDP или TCP. Веб-сервера обычно используют протокол TCP, поэтому он выбран и в показанном примере.

Виртуальный IP-адрес (Virtual IP Address)

Введите в это поле плавающий IP-адрес виртуального сервера.

Маска подсети (Virtual IP Network Mask)

Выберите из выпадающего меню маску сети этого виртуального сервера.

Метка брандмауэра (Firewall Mark)

Не вводите в это поле целочисленное значение метки, если только вы не группируете многопортовые протоколы или многопортовые виртуальные сервера различных, но связанных протоколов. В этом примере упомянутый выше виртуальный сервер имеет метку брандмауэра 80, так как выполняется объединение соединений HTTP (порт 80) и HTTPS (порт 443), с использованием метки 80. В сочетании с сохранением соединения этот алгоритм гарантирует, что пользователи, запрашивающие небезопасные и безопасные веб-страницы, будут отправлены к одному реальному серверу, сохраняя состояние.

ПредупреждениеПредупреждение
 

Определив в этом поле метку межсетевого экрана, вы позволите IPVS распознавать пакеты, с этой отметкой, но чтобы назначить такие метки, вы должны выполнить дополнительные настройки за рамками Piranha Configuration Tool. В разделе 11.3 Службы, использующие несколько портов и LVS кластеры вы найдёте указания по созданию многопортовых служб, а в разделе 11.4 Использование FTP в LVS кластере – по созданию FTP сервера с высокой степенью доступности.

Устройство (Device)

Введите имя сетевого устройства, к которому вы хотите привязать плавающий IP адрес, заданный в поле Virtual IP Address.

Вы должны сопоставить внешний плавающий IP-адрес с сетевым интерфейсом Ethernet, подключённым к внешней сети. В этом примере, внешняя сеть подключена к интерфейсу eth0, поэтому в качестве имени устройства следует ввести eth0:1.

Время возврата (Re-entry Time)

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

Ожидание службы (Service Timeout)

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

Quiesce server

Если установлен переключатель Спокойный сервер (Quiesce server), каждый раз, когда новый реальный сервер включается в работу, таблица количества соединений очищается, и активный LVS маршрутизатор перенаправляет запросы, как если бы все реальные сервера были добавлены в кластер заново. Этот вариант предотвращает перегрузку нового сервера большим числом соединений при включении в кластер.

Способ слежения за нагрузкой (Load monitoring tool)

LVS маршрутизатор может наблюдать за нагрузкой на реальных серверах, используя rup или ruptime. Если вы выберете в выпадающем меню rup, на всех реальных серверах должна работать служба rstatd. Если вы выберете ruptime, на всех серверах должна работать служба rwhod.

ВниманиеВнимание
 

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

Алгоритм планировщика (Scheduling)

Выберите в выпадающем меню предпочитаемый вами алгоритм. По умолчанию выбран алгоритм Weighted least-connection (Минимум соединений с весовыми коэффициентами). За дополнительной информацией об алгоритмах распределения нагрузки обратитесь к разделу 9.3.1 Алгоритмы распределения.

Сохранение соединений (Persistence)

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

ВажноВажно
 

Если вы ввели значение в поле Метка брандмауэра (Firewall Mark), вы также можете определить время сохранения соединения. Также убедитесь в том, что если вы используете метки межсетевых экранов и сохранение соединения одновременно, время сохранения соединения одинаково для каждого виртуального сервера с одной меткой. Подробнее сохранение соединения и метки межсетевого экрана рассматриваются в разделе 9.5 Сохранение соединения и метки межсетевого экрана.

Маска подсети для сохранения соединений (Persistence Network Mask)

Чтобы ограничить сохранение определённой подсетью, выберите в выпадающем меню подходящую маску сети.

ЗамечаниеЗамечание
 

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

ПредупреждениеПредупреждение
 

Не забудьте нажать кнопку ACCEPT после внесения изменений на этой панели. Убедитесь в том, что вы не потеряете изменения при переходе на другую панель.

12.6.2. Подраздел REAL SERVER

Щёлкнув ссылку подраздела REAL SERVER в верхней части панели, вы перейдете к подразделу EDIT REAL SERVER. В нём показано состояние физического сервера, несущего определённую виртуальную службу.

Рисунок 12-7. Подраздел REAL SERVER

Нажмите кнопку ADD для добавления нового сервера. Чтобы удалить существующий сервер, установите расположенный рядом переключатель и нажмите кнопку DELETE. Нажмите кнопку EDIT, чтобы перейти к панели EDIT REAL SERVER, показанной на рисунке 12-8.

Рисунок 12-8. Панель настройки REAL SERVER

Эта панель состоит из трёх полей:

Name

Имя данного реального сервера.

ПодсказкаПодсказка
 

Это имя не является именем компьютера, поэтому сделайте его описательным и легко узнаваемым.

Address

IP-адрес реального сервера. Так как порт службы уже указан в настройках связанного виртуального сервера, здесь он не указывается.

Weight

Целочисленный коэффициент, определяющий мощность узла в сравнении с другими узлами набора. Значение может быть любым, оно рассматривается только относительно других серверов кластера. Больше узнать о коэффициенте сервера вы можете в разделе 9.3.2 Весовой коэффициент сервера и распределение.

ПредупреждениеПредупреждение
 

Не забудьте нажать кнопку ACCEPT после внесения изменений на этой панели. Убедитесь в том, что вы не потеряете изменения при переходе на другую панель.

12.6.3. Подраздел EDIT MONITORING SCRIPTS

Щёлкните ссылку MONITORING SCRIPTS в верхней части страницы. В подразделе EDIT MONITORING SCRIPTS администратор может указать последовательности строк "посылать/ждать", для проверки корректности работы служб на всех реальных серверах. Также здесь администратор может задать настраиваемые сценарии, опрашивающие службы, требующие динамического изменения данных.

Рисунок 12-9. Подраздел EDIT MONITORING SCRIPTS

Программа опроса (Sending Program)

Для более сложной проверки службы задайте в этом поле путь к сценарию, опрашивающему службу. Эта возможность особенно полезна для служб, требующих динамически изменяемые данные, например HTTPS или SSL.

Для использования этой возможности вы должны написать сценарий, возвращающий текстовый ответ, сделать его исполняемым, и задать путь к нему в поле Программа опроса (Sending Program).

ПодсказкаПодсказка
 

Чтобы выполнить проверку каждого реального сервера в наборе, используйте специальный знак %h после пути к сценарию в поле Программа опроса (Sending Program). При вызове сценария демоном nanny этот знак будет заменяться IP-адресом опрашиваемого реального сервера.

Ниже приведён пример сценария, который можно использовать в качестве основы для создания внешнего сценария проверки службы:

#!/bin/sh

TEST=`dig -t soa example.com @$1 | grep -c dns.example.com

if [ $TEST != "1" ]; then
	echo "OK
else
	echo "FAIL"
fi

ЗамечаниеЗамечание
 

Если в поле Программа опроса (Sending Program) определён путь к внешней программе, поле Посылка (Send) будет проигнорировано.

Посылка (Send)

Введите в это поле строку, которую демон nanny будет посылать каждому реальному серверу. По умолчанию в этом поле находится строка для протокола HTTP. Вы можете изменить это значение, как посчитаете нужным. Если вы оставите это поле пустым, демон nanny просто попытается подключиться к порту, и, если ему это удастся, будет считать, что служба работает.

В этом поле допускается только одна отправляемая последовательность, которая может содержать только печатаемые ASCII символы, а также приведенные ниже спецсимволы:

  • \n – новая строка.

  • \r – перевод строки.

  • \t – табуляция.

  • \ – определяет начало спецсимвола.

Ожидание (Expect)

Введите текстовый ответ, который сервер должен вернуть, если он работает корректно. Если вы напишите свою посылающую программу, введите ответ, который она должна возвращать в случае успеха.

ПодсказкаПодсказка
 

Чтобы определить, что же можно послать данной службе, вы можете с помощью telnet подключиться к порту реального сервера и посмотрите, что будет возвращено. Например, когда устанавливается FTP-соединение, возвращается 220, так что вы можете ввести quit в поле Посылка (Send) и 220 в поле Ожидание (Expect).

ПредупреждениеПредупреждение
 

Не забудьте нажать кнопку ACCEPT после внесения изменений на этой панели. Убедитесь в том, что вы не потеряете изменения при переходе на другую панель.

Настроив виртуальные сервера с помощью Piranha Configuration Tool, вы должны скопировать определённые файлы на резервный LVS маршрутизатор. Подробности вы найдёте в разделе 12.7 Синхронизация файлов конфигурации.