Виртуальный сервер Linux
Оригинальный автор(ы) | Вэнсун Чжан |
---|---|
Разработчик(и) | и др. |
Первоначальный выпуск | май 1998 г |
Написано в | С |
Операционная система | Линукс |
Тип | балансировка нагрузки |
Лицензия | Стандартная общественная лицензия GNU |
Веб-сайт | www |
Linux Virtual Server ( LVS ) — это программное обеспечение для балансировки нагрузки для операционных систем на базе ядра Linux .
LVS — это бесплатный проект с открытым исходным кодом, начатый Вэнсуном Чжаном в мае 1998 года и отвечающий требованиям GNU General Public License (GPL) версии 2. Миссия проекта — создание высокопроизводительного и высокодоступного сервера. для Linux с использованием технологии кластеризации , обеспечивающей хорошую масштабируемость, надежность и удобство обслуживания.
Обзор
[ редактировать ]Основная работа проекта LVS в настоящее время заключается в разработке усовершенствованного программного обеспечения для балансировки нагрузки IP (IPVS), программного обеспечения для балансировки нагрузки на уровне приложений (KTCPVS) и компонентов управления кластером.
- IPVS : усовершенствованное программное обеспечение для балансировки нагрузки IP, реализованное в ядре Linux . Код IP Virtual Server объединен с версиями 2.4.x и новее основной ветки ядра Linux. [1]
- KTCPVS: реализует балансировку нагрузки на уровне приложений внутри ядра Linux по состоянию на февраль 2011 г. [update] все еще находится в разработке. [2]
LVS можно использовать для создания высокомасштабируемых и высокодоступных сетевых сервисов, таких как веб-сервисы, электронная почта, мультимедиа и VoIP , а также для интеграции масштабируемых сетевых сервисов в крупномасштабные надежные приложения электронной коммерции или электронного правительства . Решения на базе LVS уже используются во многих реальных приложениях по всему миру, включая Wikipedia .
Компоненты LVS зависят от платформы Linux Netfilter , а их исходный код доступен в net/netfilter/ipvs
подкаталог в исходном коде ядра Linux . LVS может обрабатывать протоколы UDP, TCP уровня 4, а также пассивное соединение FTP, проверяя пакеты уровня 7. Он обеспечивает иерархию счетчиков в /proc
каталог.
Утилита пользовательского пространства , используемая для настройки LVS, называется ipvsadm которой требуются права суперпользователя , для запуска .
Планировщики
[ редактировать ]LVS реализует несколько планировщиков балансировки, перечисленных ниже с соответствующими исходными файлами: [3]
- Круговой (
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
)
Глоссарий
[ редактировать ]Обычно используемые термины включают следующее: [4]
- Директор LVS : балансировщик нагрузки, который получает все входящие клиентские запросы на услуги и направляет их на определенный «реальный сервер» для обработки запроса.
- Реальные серверы : узлы, составляющие кластер LVS, которые используются для предоставления услуг от имени кластера.
- Клиентские компьютеры : компьютеры, запрашивающие услуги виртуального сервера.
- VIP (Виртуальный IP-адрес) : IP-адрес, используемый директором для предоставления услуг клиентским компьютерам.
- RIP (реальный IP-адрес) : IP-адрес, используемый для подключения к узлам кластера.
- DIP (IP-адрес директора) : IP-адрес, используемый директором для подключения к сети реальных IP-адресов.
- CIP (IP-адрес клиента) : IP-адрес, назначенный клиентскому компьютеру, который он использует в качестве исходного IP-адреса для запросов, отправляемых в кластер.
Примеры
[ редактировать ]Настройка виртуального 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
). Вторая и третья команды добавляют в настройку LVS IP-адреса реальных серверов. Пересылаемые сетевые пакеты должны быть замаскированы ( -m
). [5]
Запрос статуса настроенной выше настройки LVS:
# ipvsadm -L -n
IP Virtual Server version 1.0.8 (size=65536)
Prot LocalAddress:Port Scheduler Flags
-> 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
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Программное обеспечение IPVS — расширенная коммутация уровня 4» . linuxvirtualserver.org. 08 февраля 2011 г. Проверено 12 января 2014 г.
- ^ Вэнсун Чжан (08 февраля 2011 г.). «Программное обеспечение KTCPVS — балансировка нагрузки на уровне приложений» . Linuxvirtualserver.org . Проверено 25 марта 2014 г.
- ^ «Алгоритмы планирования заданий на виртуальном сервере Linux» . linuxvirtualserver.org. 08 февраля 2011 г. Проверено 24 ноября 2013 г.
- ^ «Виртуальный сервер Linux: балансировка нагрузки ваших сетевых служб» . bobcares.com. 2008 год . Проверено 24 ноября 2013 г.
- ^ Питер, Джефф. «Понимание виртуального сервера» . Проверено 18 июня 2023 г.
Внешние ссылки
[ редактировать ]- Официальный сайт
- Вики-страница конфигурации виртуального сервера Linux
- IBM eServer BladeCenter, Linux и открытый исходный код: проект электронного бизнеса по требованию. Архивировано 11 августа 2022 г. на Wayback Machine (включает LVS в качестве компонента).