Обмен технологиями

кластер lvs, режим NAT и режим DR, поддержка активности

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Оглавление

концепция кластера lvs

Типы кластеров: три типа

Индекс надежности системы

Терминология в кластере lvs

Как работает лвс

режим NAT

инструменты лвс

алгоритм

эксперимент

поток данных

шаг

1. Конфигурация планировщика (test1 192.168.233.10)

2. Конфигурация RS (nginx1 и nginx2)

3. Трансляция адреса (test1 192.168.233.10)

Результаты эксперимента

режим DR

концепция

Схема потока данных

вопрос:

1.Конфликт VIP-адресов

2. Когда сообщение возвращается, VIP-адрес все еще существует. Как клиент может получить ответ?

Реализация режима DR

шаг

1. Конфигурация планировщика (test1 192.168.233.10)

2. Конфигурация RS (nginx1 и nginx2) [необходимо изменить оба раза]

Результаты эксперимента

Подведем итог

Итоговый эксперимент

LVS реализует четырехуровневую переадресацию + nginx реализует семиуровневую переадресацию (динамическую). Доступ к VIP-адресу LVS позволяет добиться динамического и статического разделения.

Схема потока данных

Экспериментальные этапы

Результаты эксперимента

Три режима работы lvs

Высокодоступная архитектура высокой доступности

концепция

поддерживающий эксперимент

Экспериментальные этапы

хозяин

Редактировать

Подготовить

Результаты экспериментов


концепция кластера lvs

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

Основная функция: сформировать несколько серверных серверов в высокодоступный и высокопроизводительный кластер серверов и распределить клиентские запросы на внутренние серверы с помощью алгоритмов балансировки нагрузки для достижения высокой доступности и балансировки нагрузки.

Баланс нагрузки SLB-сервера Alibaba реализуется с помощью lvs+keepalive.

Кластеризованный и распределенный

Как расширить систему:

Вертикальное масштабирование: масштабирование вверх для создания более мощных компьютеров.Узкое место: ограничения производительности собственного оборудования компьютера;

Горизонтальное расширение: расширяйтесь и добавляйте оборудование.Запускайте несколько сервисов параллельно и полагайтесь на сеть для решения внутренних проблем связи, кластерного кластера

Кластер: единая система, образованная путем объединения нескольких компьютеров для решения конкретной проблемы.

Типы кластеров: три типа

ФУНТ: кластер балансировки нагрузки, состоящий из нескольких хостов, каждый хост передает только часть запросов доступа.

ГА : высокая доступность: При проектировании системы принимаются определенные меры, гарантирующие, что в случае выхода из строя компонента или части системы вся система по-прежнему сможет работать нормально.Для поддержания доступности, надежности и отказоустойчивости системы.

HPC: высокопроизводительный вычислительный кластер с более высокими требованиями ко времени отклика и вычислительной мощности.

Индекс надежности системы

МБФ: Среднее время между отказами Среднее время между отказами

MTTR: Среднее время восстановления. Среднее время восстановления.

A=MTBF/(MTBF+MTTR)

Индекс A должен находиться в диапазоне от 0 до 1. Индекс A является мерой доступности системы. 0 означает, что система менее доступна, 1 означает, что система более доступна.

Показатель А должен быть бесконечно близок к 1 (98%-99% квалифицированных; 90%-95% неквалифицированных)

Все в часах (8760 часов за 1 год, 365 дней)

Время простоя и запланированное время не включены

Незапланированное время, то есть время отказа, — это общее время от возникновения отказа до его устранения. Незапланированное время — это показатель, на который мы должны обратить внимание.

Применимые сценарии LVS:

Маленькие кластеры не должны использовать lvs, используйте nginx, большие кластеры используют lvs.

Терминология в кластере lvs

VS: логическое имя службы lvs виртуального сервера, которое представляет собой IP-адрес и порт, которые мы используем при внешнем доступе к кластеру lvs.

DS: Главный сервер в кластере lvs серверов-директоров, то есть планировщик (то есть прокси-сервер nginx), является ядром кластера. Планировщик используется для приема клиентских запросов и пересылки их на серверную часть. сервер.

RS: Реальный сервер в кластере реальных серверов lvs, внутренний сервер, используется для приема запросов, пересылаемых DS, и ответа на результаты.

CIP: client ip Адрес клиента, то есть адрес клиента, инициировавшего запрос.

VIP: виртуальный IP-адрес, используемый кластером lvs, виртуальный IP-адрес, обеспечивающий доступ к внешнему кластеру.

DIP: ip директора — адрес планировщика в кластере, используемый для связи с RS

RIP: реальный IP-адрес IP-адрес внутреннего сервера в кластере.

Как работает лвс

Режим NAT: планировщик сообщает режим клиенту (трансляция адресов).

Режим DR (режим прямой маршрутизации): реальный сервер отвечает напрямую клиенту.

Режим TUN: Туннельный режим

Часто используемые режимы: режим NAT и режим DR.

режим NAT

В режиме NAT LVS изменит целевой IP-адрес и порт в сообщении запроса от клиента на IP-адрес и порт в LVS, а затем перенаправит запрос на внутренний сервер.

Когда результат ответа возвращается клиенту, ответное сообщение обрабатывается lvs, а целевой IP-адрес и порт изменяются на IP-адрес и порт клиента.

Принцип: во-первых, когда балансировщик нагрузки получает пакет запроса клиента, он определяет, на какой внутренний серверный сервер (RS) отправить запрос, на основе алгоритма планирования.
Затем балансировщик нагрузки меняет целевой IP-адрес и порт пакета запроса, отправленного клиентом, на IP-адрес (RIP) внутреннего реального сервера.
После того, как реальный сервер отвечает на запрос, он проверяет маршрут по умолчанию и отправляет пакет данных ответа балансировщику нагрузки. После получения пакета ответа балансировщик нагрузки.
Измените исходный адрес пакета на виртуальный адрес (VIP) и отправьте его обратно клиенту.

Преимущества: серверы в кластере могут использовать любую операционную систему, поддерживающую TCP/IP, при условии, что балансировщик нагрузки имеет законный IP-адрес.

Недостатки: Ограниченная масштабируемость. Когда серверные узлы слишком сильно разрастаются, поскольку все запросы и ответы должны проходить через балансировщик нагрузки.
Поэтому балансировщик нагрузки станет узким местом всей системы.

Характеризуется трансляцией адреса

Трансляция адресов: внутренняя сеть – внешняя сеть, исходный IP-адрес преобразуется SNAT

Внешняя сеть-внутренняя сеть преобразует IP-адрес назначения DNAT

инструменты лвс

ipvsadmИнструменты для настройки и управления lvs-кластерами

-A добавляет виртуальный сервер vip

-D удалить адрес виртуального сервера

-s указывает алгоритм планирования балансировки нагрузки

-a добавляет реальный сервер

-d удалить реальный сервер

-t указывает VIP-адрес и порт

-r указывает адрес и порт рипа

-m Использовать режим NAT

-g Использовать режим DR

-i Использовать туннельный режим

-w устанавливает вес

-p 60 удерживает соединение в течение 60 с Установить время удержания соединения

-l просмотр списка

-n цифровой дисплей

алгоритм

Опрос rr

Взвешенный опрос

Минимальное подключение лк

взвешенная наименьшая ссылка wlc

эксперимент

поток данных

nginx 1 RS1 192.168.233.20

nginx2 RS2 192.168.233.30

Планировщик test1 ens33 192.168.233.10 ens36 12.0.0.1

клиент test2 12.0.0.10

шаг
1. Конфигурация планировщика (test1 192.168.233.10)

yum -y установить ipvsadm* -y

Настроить ens33

systemctl перезапустить сеть

Настроить ens36

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-ens36

vim ifcfg-ens36

systemctl перезапустить сеть

2. Конфигурация RS (nginx1 и nginx2)

Настроить nginx1 192.168.233.20 Изменить шлюз

systemctl перезапустить сеть

Настроить nginx2 192.168.233.30 Изменить шлюз

systemctl перезапустить сеть

vim /usr/local/nginx/html/index.html

Изменить содержимое посещенной страницы

Проверьте, подключен ли доступ

3. Трансляция адреса (test1 192.168.233.10)

iptables -t nat -vnL Проверить, имеет ли таблица nat политику

1.

iptables -t nat -A POSTROUTING -s 192.168.233.0/24 -o ens36 -j SNAT --to 12.0.0.1

Адрес устройства из 192.168.233.0/24 преобразуется в 12.0.0.1.

2.

ipvsadm -C очищает исходную политику

ipvsadm -A -t 12.0.0.1:80 -s rr Укажите VIP-адрес и порт

Сначала добавьте VIP, IP и порт виртуального сервера, а затем добавьте реальный сервер.

3.

ipvsadm -a -t 12.0.0.1:80 -r 192.168.233.20:80 -m

- добавить реальный сервер

-t указывает vip-адрес

-r указывает адрес и порт реального сервера

-m указывает режим как режим nat

ipvsadm -ln просмотр

4.

ipvsadm-save сохранить

ipvsadm -D -t 192.168.233.10:80 удалить политику

ipvsadm -d -r 192.168.233.20: -t 12.0.0.1:80 удалить сервер узла

5. Включите функцию маршрутизации и пересылки.

vim /etc/sysctl.conf

net.ipv4.ip_forward=1

4. Клиент (test2 12.0.0.10)

Измените IP-адрес и шлюз test2.

Результаты эксперимента

взвешенный опрос

режим DR

концепция

это режим прямой маршрутизации

Режим NAT: Планировщик является самым важным во всем кластере LVS. В режиме NAT он отвечает за прием запросов, пересылку трафика в соответствии с алгоритмом балансировки нагрузки и отправку ответов клиенту.

Режим DR: Планировщик по-прежнему отвечает за прием запросов, а также пересылает трафик на RS в соответствии с алгоритмом балансировки нагрузки, а ответ напрямую отправляется клиенту через RS.

Прямая маршрутизация: это режим пересылки уровня 2. Уровень 2 пересылает кадры данных и пересылает их на основе MAC-адреса источника и MAC-адреса назначения без изменения IP-адреса источника и IP-адреса назначения пакета данных. Пересылка на основе MAC-адреса пакета данных.

В режиме DR LVS также поддерживает виртуальный IP-адрес, и все запросы отправляются на этот VIP. Поскольку используется переадресация уровня 2, когда запрос клиента достигает планировщика, RS выбирается в соответствии с алгоритмом балансировки нагрузки и VIP-сервером. Мак-адрес назначения становится мак-адресом RS. После того, как RS обработает запрос, он может напрямую отправить ответ клиенту в соответствии с исходным mac-адресом клиента в сообщении, минуя планировщик.

Принцип: во-первых, когда балансировщик нагрузки получает пакет запроса клиента, он определяет, на какой внутренний серверный сервер (RS) отправить запрос, на основе алгоритма планирования.
Затем балансировщик нагрузки меняет MAC-адрес назначения пакета запроса, отправленного клиентом, на MAC-адрес (R-MAC) внутреннего реального сервера.
После того как реальный сервер отвечает на запрос, он проверяет маршрут по умолчанию и отправляет ответный пакет непосредственно клиенту, минуя балансировщик нагрузки.

Преимущества: балансировщик нагрузки отвечает только за распространение пакетов запросов на серверы внутренних узлов, в то время как RS отправляет пакеты ответов непосредственно пользователям.
Таким образом, сокращается большой объем потока данных через балансировщик нагрузки. Балансировщик нагрузки больше не является узким местом системы и может обрабатывать огромное количество запросов.

Недостатки: И балансировщик нагрузки, и реальный сервер RS должны иметь сетевую карту, подключенную к одному и тому же физическому сегменту сети, и должны находиться в одной среде локальной сети.

Схема потока данных

вопрос:
1.Конфликт VIP-адресов

Причина: Планировщик настроен с использованием VIP, и RS также настроен с использованием VIP-адреса. Конфликт VIP-адресов, поскольку планировщик и RS находятся в одном сегменте сети, приведет к нарушению связи ARP. Поскольку он транслируется по всей локальной сети, его принимают все устройства.

Как заблокировать ответ lo на обратную связь, чтобы отвечал только физический IP-адрес этой машины.

Решение: Измените параметры ядра:arp_ignore=1

На запросы ARP будет отвечать только физический IP-адрес системы, а интерфейс обратной связи lo не будет отвечать на запросы ARP.

2. Когда сообщение возвращается, VIP-адрес все еще существует. Как клиент может получить ответ?

Решение:arp_announce=2

Система не использует адрес источника IP-пакета для ответа на запрос ARP, а напрямую отправляет IP-адрес физического интерфейса.

Реализация режима DR

nginx1 RS (реальный ip) 192.168.233.20

nginx2 RS 192.168.233.30

вип 192.168.233.100

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

Клиент 192.168.233.40

шаг
1. Конфигурация планировщика (test1 192.168.233.10)

yum -y установить ipvsadm* -y

Добавить виртуальную сетевую карту ens33:0

Измените параметры ответа планировщика

vim /etc/sysctl.conf

net.ipv4.ip_forward=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects=0
 

sysctl-p

Добавить политику

компакт-диск /опт

ipvsadm -A -t 192.168.233.100:80 -s rr

ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.20:80 -g

ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.30:80 -g

ipvsadm-сохранить >/etc/sysconfig/ipvsadm

systemctl перезапустить ipvsadm

ipvsadm -ln

2. Конфигурация RS (nginx1 и nginx2) [необходимо изменить оба раза]

Изменение отображаемого содержимого статических страниц

vim /usr/local/nginx/html/index.html

systemctl перезапустить nginx

Добавить адрес обратной связи

cd /etc/sysconfig/network-scripts/

cp ifcfg-lo ifcfg-lo:0

vim ifcfg-lo:0

Добавить интерфейс lo:0 как VIP

route add -host 192.168.233.100 dev lo:0

Установите IP-адрес 192.168.233.100 и добавьте его в интерфейс обратной связи в качестве VIP для lvs. Он пересылается на RS через режим маршрутизации, что позволяет VIP идентифицировать реальный сервер.

Измените ответ ядра реального сервера RS.

vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2

Результаты эксперимента

Изменить алгоритм опроса VIP

Изменить вес в опросе политики

Подведем итог

Разница между lvs и nginx для балансировки нагрузки

LVS представляет собой четырехуровневую пересылку с использованием ip + порта в режиме ядра и может использоваться только в качестве четырехуровневого прокси.

четырехуровневый прокси nginx или семиуровневый прокси

Итоговый эксперимент

lvs (режим DR)+nginx+tomcat

LVS реализует четырехуровневую переадресацию + nginx реализует семиуровневую переадресацию (динамическую). Доступ к VIP-адресу LVS позволяет добиться динамического и статического разделения.

Схема потока данных

Экспериментальные этапы

На основе вышеописанных экспериментов в режиме DR достигнуто динамическое и статическое разделение.

1. часть кота

1. Создайте динамические страницы в tomcat1 и tomcat2 соответственно.

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>Тест JSP1 страница</title>
</head>
<body>
&lt;% out.println("Динамическая страница 1, http://www.test1.com");%&gt;
</body>
</html>

2. Добавьте сайты в tomcat1 и tomcat2 соответственно.

компакт-диск конф

vim сервер.xml

Сначала удалите исходный сайт

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
    <Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />

Проверьте, запущен ли порт

Посетите 192.168.233.40:8080/index.jsp.

2. часть nginx

Настройте nginx2 и nginx3.

cd /usr/local/nginx/conf/

cp nginx.conf nginx.conf.bak.2024.07.08

vim nginx.conf

восходящий tomcat {
сервер 192.168.233.40:8080 вес=1;
сервер 192.168.233.50:8080 вес=1;
}

местоположение ~ .*.jsp$ {
proxy_pass http://tomcat;
proxy_set_header ХОСТ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

Затем systemctl перезапустите nginx

Настроить прокси-сервер nginx1

Будьте четырехуровневым агентом

cd /usr/local/nginx/conf

vim nginx.conf

Затем systemctl перезапустите nginx

Результаты эксперимента

Посетите статическую страницу 192.168.100:81.

Посетите динамическую страницу 192.168.233.100:82/index.jsp.

Три режима работы lvs

НАТ ДОКТОР ТАН

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

Недостатки Узкое место в производительности. Не поддерживает выделенные каналы между сегментами сети, требует открытия VPN (стоит денег).

Требования RS: не должно быть отключено никаких ограничений. Ответы ARP на нефизических интерфейсах должны поддерживаться.

Количество РС 10-20 шт. 100 шт. 100 шт.

Вопросы на собеседовании:

1. Кратко опишите три режима и различия lvs.

таблица выше

2. Как решить проблему разделения мозга в Keepalive

Высокодоступная архитектура высокой доступности

концепция

Это архитектура высокой доступности в кластере vs, предназначенная только для высокой доступности планировщика.

Реализуйте основной и резервный планировщики на базе vrp.

Основной планировщик и резервный планировщик (несколько устройств)

Когда основной планировщик работает нормально, резервный полностью находится в резервном состоянии (standby) и не участвует в работе кластера. Только в случае сбоя основного планировщика резервный сервер возьмет на себя работу основного планировщика. Если основной планировщик возобновит свою работу, то основной планировщик продолжит служить входом в кластер, а резервный продолжит находиться в резервном состоянии, что не обязательно зависит от приоритета.

Keepalive основан на протоколе vrp для реализации решения высокой доступности lvs.

1. Многоадресный адрес

224.0.0.18 осуществляет связь на основе многоадресного адреса и отправляет сообщения между основным и дополнительным устройствами.Определить, жив ли противник

2. Определите позиции первичного и вторичного в зависимости от приоритета.

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

4. Переключение между первичным и вторичным — это переключение VIP-адреса.

Keepalive появляется специально для LVS, но не является эксклюзивным для LVS.

основной модуль: основной модуль поддержки активности, отвечающий за запуск и обслуживание основного процесса, а также загрузку файлов глобальной конфигурации.

Модуль vrrp: модуль, реализующий протокол vrrp, который является основным функциональным модулем.

модуль проверки: отвечает за проверку работоспособности, а также может проверять состояние реального сервера в фоновом режиме.

поддерживающий эксперимент

test1 192.168.233.10 主

test2 192.168.233.50

вип 192.168.233.100

nginx1 192.168.233.20

nginx2 192.168.233.30

Клиент 192.168.233.40

Экспериментальные этапы

1. Как первичные, так и вторичные операции должны выполняться одинаково.

yum -y install ipvsadm keepalived

vim /etc/sysctl.conf

net.ipv4.ip_forward=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects=0

sysctl-p

ipvsadm -C

ipvsadm -A -t 192.168.233.100:80 -s rr

ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.20:80 -g

ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.30:80 -g

ipvsadm-сохранить &gt;/etc/sysconfig/ipvsadm

systemctl перезапустить ipvsadm

ipvsadm -ln

хозяин

cd /etc/keepalive

vim keepalived.conf

Подготовить

Результаты эксперимента