Утилита ipvsadm#
Описание#
ipvsadm — утилита для администрирования сервисов IP Virtual Server (IPVS) в ядре Linux. ipvsadm используется для настройки, обслуживания и проверки таблицы виртуальных серверов в ядре Linux. Виртуальный сервер Linux может использоваться для создания масштабируемых сетевых сервисов на основе кластера из двух или более узлов. Активный узел кластера перенаправляет запросы на обслуживание набору серверных хостов, которые фактически будут предоставлять эти сервисы. Поддерживаемые функции включают три протокола (TCP, UDP и SCTP), три метода пересылки пакетов (NAT, туннелирование и прямая маршрутизация) и восемь алгоритмов балансировки нагрузки (циклический алгоритм, взвешенный циклический алгоритм, наименьшее количество подключений, взвешенное наименьшее количество подключений, наименьшее количество подключений с учетом локальности, наименьшее количество подключений с учетом локальности с репликацией, хеширование назначения и хеширование источника).
Примечание
IPVS (IP Virtual Server) — модуль ядра Linux, обеспечивающий балансировку нагрузки на транспортном уровне. IPVS работает на транспортном уровне модели OSI и может обрабатывать и распределять трафик TCP и UDP. Работает как балансировщик перед кластером реальных серверов, направляя запросы на сервисы на основе TCP/UDP на реальные серверы и делая услуги реальных серверов видимыми как виртуальные на одном IP-адресе.
Установка#
Установите утилиту ipvsadm с помощью команды:
dnf install ipvsadm
Форматы выполнения#
Утилита ipvsadm имеет два основных формата выполнения:
управление виртуальной службой и алгоритмом назначения запросов на обслуживание реальным серверам:
ipvsadm <command> <virtual-service> <scheduling-method> <persistence-options>Где:
<command>– команды утилиты, в данном формате используются верхнем регистре для управления виртуальными сервисами;<virtual-service>– виртуальная служба на основе протокола/адреса/порта или метки брандмауэра;<scheduling-method>– алгоритм балансировки TCP-соединений и UDP-дейтаграмм между реальными серверами. Указываемые алгоритмы реализованы в виде модулей ядра. 10 из них поставляются вместе с виртуальным сервером Linux;<persistence-options>– persistence-параметры, позволяющие направлять все запросы от одного клиента на один и тот же реальный сервер в течение заданного времени.
управление реальным сервером, связанным с существующей виртуальной службой. При указании реального сервера можно указать метод пересылки пакетов и вес реального сервера относительно других реальных серверов виртуальной службы, в противном случае будут использоваться значения по умолчанию:
ipvsadm <command> <virtual-service> <server-address> <packet-forwarding-method> <weight-options>Где:
<command>– команды утилиты, в данном формате используется в нижнем регистре для управления реальными серверами, связанными с виртуальной службой;<virtual-service>– идентификатор виртуального сервиса, к которому привязывается реальный сервер;<server-address>– IP-адрес и порт (опционально) виртуального сервера;<packet-forwarding-method>– задание метода пересылки пакетов от балансировщика к реальному серверу;<weight-options>– задание веса сервера при балансировке, задается целочисленным значением.
Примеры использования#
Для создания точки входа для HTTP-трафика, которая будет распределять запросы между реальными серверами с учетом их загрузки и сохранять привязку клиента к одному серверу в течение
5минут (300секунд), используйте команду:ipvsadm -A -t <IP_address>:80 -s wlc -p 300Где
<IP_address>– IP-адрес виртуального сервиса.Для добавления backend-сервера в пул балансировки с NAT-режимом и повышенным приоритетом, используйте команду:
ipvsadm -a -t <IP_address_1>:80 -r <IP_address_2>:80 -m -w 3Где
<IP_address_1>и<IP_address_2>– IP-адреса виртуального сервиса и реального сервера соответственно.
Дополнительная информация#
Дополнительную информацию можно получить, выполнив команду:
man ipvsadm