Логотип

Linux Virtual Server (LVS) — широко распространённое средство управления кластерных систем для Linux систем. Этот свободный проект начал Wensong Zhang в мае 1998. Цель проекта — построение высоконадёжного и высокоскоростного сервера с использованием кластерной технологии, которая обеспечивает хорошую масштабируемость, надёжность и работоспособность.

Linux Virtual Server используется серверами Википедии.

Обзор

править
Использование LVS Фондом Викимедиа в 2022 году.

В настоящее время основная работа в рамках проекта LVS заключается в разработке передового программного обеспечения для IP-балансировки нагрузки (IPVS), программного обеспечения для балансировки нагрузки на уровне приложения (KTCPVS) и компонентов управления кластером.

  • IPVS: передовое программное обеспечение для балансировки нагрузки IP, реализованное внутри ядра Linux. Код IP Virtual Server включён в основную ветку ядра Linux версий 2.4.x и новее.[1]
  • KTCPVS: реализует балансировку нагрузки на уровне приложения внутри ядра Linux; Всё ещё находится в стадии разработки.[2]

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

Компоненты LVS зависят от фреймворка Linux Netfilter, и их исходный код доступен в подкаталоге net/netfilter/ipvs внутри исходного кода ядра Linux. LVS способен обрабатывать протоколы 4-го уровня (UDP, TCP), а также пассивные FTP-соединения путём проверки пакетов 7-го уровня. Проект предоставляет иерархию счётчиков в каталоге /proc.

Утилита пользовательского пространства (userland), используемая для настройки LVS, называется IP_Virtual_Server; для её запуска требуются привилегии суперпользователя.

Планировщики

править

LVS реализует несколько планировщиков балансировки, перечисленных ниже с указанием соответствующих исходных файлов:[3]

  • Циклический (Round-robin) (ip_vs_rr.c)
  • Взвешенный циклический (Weighted round-robin) (ip_vs_wrr.c)
  • Наименьшее количество соединений (Least-connection) (ip_vs_lc.c)
  • Взвешенное наименьшее количество соединений (Weighted least-connection) (ip_vs_wlc.c)
  • Наименьшее количество соединений на основе локальности (Locality-based least-connection) (ip_vs_lblc.c)
  • Наименьшее количество соединений на основе локальности с репликацией (Locality-based least-connection with replication) (ip_vs_lblcr.c)
  • Хеширование назначения (Destination hashing) (ip_vs_dh.c)
  • Хеширование источника (Source hashing) (ip_vs_sh.c)
  • Кратчайшая ожидаемая задержка (Shortest expected delay) (ip_vs_sed.c)
  • Без очередей (Never queue) (ip_vs_nq.c)
  • Хеширование Maglev (Maglev hashing) (ip_vs_mh.c)

Глоссарий

править

К часто используемым терминам относятся следующие:[4]

  • LVS-директор (LVS director): балансировщик нагрузки, который принимает все входящие клиентские запросы к службам и направляет их на определённый «реальный сервер» для обработки.
  • Реальные серверы (Real servers): узлы, составляющие кластер LVS, которые используются для предоставления услуг от имени кластера.
  • Клиентские компьютеры (Client computers): компьютеры, запрашивающие услуги у виртуального сервера.
  • VIP (Virtual IP address) — Виртуальный IP-адрес: IP-адрес, используемый директором для предоставления услуг клиентским компьютерам.
  • RIP (Real IP address) — Реальный IP-адрес: IP-адрес, используемый для подключения к узлам кластера.
  • DIP (Directors IP address) — IP-адрес директора: IP-адрес, используемый директором для подключения к сети реальных IP-адресов.
  • CIP (Client IP address) — 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

Первая команда назначает порт 80 протокола TCP на IP-адресе 192.168.0.1 виртуальному серверу. Выбранный алгоритм планирования для балансировки нагрузкициклический (round-robin) (-s rr). Вторая и третья команды добавляют IP-адреса реальных серверов в конфигурацию LVS. Пересылаемые сетевые пакеты будут маскироваться (-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

Недостатки

править

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

См. также

править

Примечания

править
  1. IPVS Software - Advanced Layer-4 Switching. linuxvirtualserver.org (8 февраля 2011). Дата обращения: 12 января 2014.
  2. Wensong Zhang. KTCPVS Software - Application-Level Load Balancing. Linuxvirtualserver.org (8 февраля 2011). Дата обращения: 25 марта 2014.
  3. Job Scheduling Algorithms in Linux Virtual Server. linuxvirtualserver.org (8 февраля 2011). Дата обращения: 24 ноября 2013.
  4. Linux Virtual Server: Load Balance Your Networked Services. bobcares.com (2008). Дата обращения: 24 ноября 2013.
  5. Peter, Jeff. Understanding Virtual Server. Дата обращения: 18 июня 2023.

Ссылки

править

📚 Artikel Terkait di Wikipedia

Proxmox Virtual Environment

Proxmox Virtual Environment (Proxmox VE) — система виртуализации с открытым исходным кодом, основанная на Debian GNU/Linux. Разрабатывается австрийской

VPS

в виде сносок. (2 октября 2018) VPS (англ. virtual private server) или VDS (англ. virtual dedicated server), виртуальный выделенный сервер — вид сервера

Википедия

направляются на балансирующие нагрузку сервера с запущенным ПО англ. Linux Virtual Server, который, в свою очередь, передаёт запрос на один из веб-серверов

SUSE Linux Enterprise Server

SUSE Linux Enterprise Server (SLES) — коммерческий дистрибутив Linux, основанный на свободном дистрибутиве SUSE, выпускаемом одноимённой германской компанией

Кластер (группа компьютеров)

Cluster Scheduler), так и бесплатным (OpenMosix, Sun Grid Engine, Linux Virtual Server). Кластеры используются в вычислительных целях, в частности в научных

Hyper-V

систем Windows Server и Linux увеличено с четырех до 64. Windows Admin Center Hv Manager Hyper-V, как Virtual Server 2005 и Virtual PC 2004/2007, хранит

IP Virtual Server

(IP Virtual Server) реализует балансировку нагрузки на транспортном уровне, которую часто называют коммутацией 4-го уровня, в составе ядра Linux. Настройка

Virtual PC

поставляла Virtual PC с различными гостевыми ОС, включая Linux и OS/2. В феврале 2003 года права на продукты Virtual PC и Virtual Server были куплены