Официальный логотип LVS | |
Первоначальный автор (авторы) | Венсонг Чжан |
---|---|
Разработчик (и) | и др. |
Первый выпуск | Май 1998 г.; 22 года назад (1998-05) |
Написано на | C |
Операционная система | Linux |
Тип | балансировка нагрузки |
Лицензия | Стандартная общественная лицензия GNU |
Веб-сайт | www.linuxvirtualserver.org |
Linux Virtual Server (LVS ) - это программное обеспечение для балансировки нагрузки для ядра Linux на основе операционной системы. системы.
LVS - это бесплатный проект с открытым исходным кодом, начатый Венсонг Чжан в мае 1998 г., в соответствии с требованиями Стандартной общественной лицензии GNU (GPL) версии 2. Миссия проекта - создать высокопроизводительный и высокодоступный сервер для Linux с использованием технологии кластеризации, которая обеспечивает хорошую масштабируемость, надежность и удобство обслуживания.
Основная работа проекта LVS сейчас заключается в разработке расширенного программного обеспечения IP для балансировки нагрузки (IPVS), программного обеспечения для балансировки нагрузки на уровне приложений (KTCPVS) и компонентов управления кластером.
LVS можно использовать для создания высокомасштабируемых и высокодоступных сетевых сервисов, таких как Интернет, электронная почта, мультимедиа и VoIP, а также для интеграции масштабируемых сетевых сервисов в большие -масштабируйте надежные приложения электронной коммерции или электронного правительства. Решения на основе LVS уже были развернуты во многих реальных приложениях по всему миру, включая Wikipedia.
Компоненты LVS зависят от среды Linux Netfilter, а ее исходный код доступен в net / netfilter / ipvs
подкаталог в исходном коде ядра Linux. LVS может обрабатывать протоколы UDP, TCP уровня 4, а также пассивное соединение FTP, проверяя пакеты уровня 7. Он обеспечивает иерархию счетчиков в каталоге / proc
.
Служебная программа userland, используемая для настройки LVS, называется ipvsadm, для работы которой требуются привилегии суперпользователя.
LVS реализует несколько планировщиков балансировки, перечисленных ниже с соответствующими исходными файлами:
ip_vs_rr.c
)ip_vs_wrr.c
)ip_vs_lc.c
)ip_vs_wlc.c
)ip_vs_lblc.c
)ip_vs_lblcr.c
)ip_vs_dh.c
)ip_vs_sh.c
)ip_vs_sed.c
)ip_vs_nq.c
)ip_vs_mh.c
)Обычно используемые термины включают следующее:
Настройка виртуального HTTP сервера с двумя реальными серверами:
ipvsadm -A -t 192.168.0.1:80 -s rr ipvsadm -a -t 192.168.0.1:80 -r 172.16.0.1:80 -m ipvsadm -a -t 192.168.0.1:80 -r 172.16.0.2:80 -m
первая команда назначает TCP порт 80 на IP-адресе 192.168.0.1 виртуальному серверу. Выбранный алгоритм планирования для балансировки нагрузки - циклический перебор (-s rr
). Вторая и третья команды добавляют IP-адреса реальных серверов в настройку LVS. Пересылаемые сетевые пакеты должны быть замаскированы (-m
).
Запрос статуса настроенной выше настройки LVS:
# ipvsadm -L -n Виртуальный IP-сервер версии 1.0.8 (размер = 65536) Prot LocalAddress: флаги планировщика портов ->RemoteAddress: Port Forward Weight ActiveConn InActConn TCP 192.168.0.1:80 rr ->172.16.0.2:80 Masq 1 3 1 ->172.16.0.1:80 Masq 1 4 0