моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Оглавление
1. Конфигурация планировщика (test1 192.168.233.10)
2. Конфигурация RS (nginx1 и nginx2)
3. Трансляция адреса (test1 192.168.233.10)
2. Когда сообщение возвращается, VIP-адрес все еще существует. Как клиент может получить ответ?
1. Конфигурация планировщика (test1 192.168.233.10)
2. Конфигурация RS (nginx1 и nginx2) [необходимо изменить оба раза]
Высокодоступная архитектура высокой доступности
Полное название — виртуальный сервер 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.
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 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
yum -y установить ipvsadm* -y
Настроить ens33
systemctl перезапустить сеть
Настроить ens36
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens36
vim ifcfg-ens36
systemctl перезапустить сеть
Настроить nginx1 192.168.233.20 Изменить шлюз
systemctl перезапустить сеть
Настроить nginx2 192.168.233.30 Изменить шлюз
systemctl перезапустить сеть
vim /usr/local/nginx/html/index.html
Изменить содержимое посещенной страницы
Проверьте, подключен ли доступ
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.
взвешенный опрос
это режим прямой маршрутизации
Режим 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 должны иметь сетевую карту, подключенную к одному и тому же физическому сегменту сети, и должны находиться в одной среде локальной сети.
Причина: Планировщик настроен с использованием VIP, и RS также настроен с использованием VIP-адреса. Конфликт VIP-адресов, поскольку планировщик и RS находятся в одном сегменте сети, приведет к нарушению связи ARP. Поскольку он транслируется по всей локальной сети, его принимают все устройства.
Как заблокировать ответ lo на обратную связь, чтобы отвечал только физический IP-адрес этой машины.
Решение: Измените параметры ядра:arp_ignore=1
На запросы ARP будет отвечать только физический IP-адрес системы, а интерфейс обратной связи lo не будет отвечать на запросы ARP.
Решение:arp_announce=2
Система не использует адрес источника IP-пакета для ответа на запрос ARP, а напрямую отправляет IP-адрес физического интерфейса.
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
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
Изменение отображаемого содержимого статических страниц
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
На основе вышеописанных экспериментов в режиме DR достигнуто динамическое и статическое разделение.
1. часть кота
1. Создайте динамические страницы в tomcat1 и tomcat2 соответственно.
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>Тест JSP1 страница</title>
</head>
<body>
<% out.println("Динамическая страница 1, http://www.test1.com");%>
</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.
НАТ ДОКТОР ТАН
Преимущества: трансляция адресов, простая конфигурация, лучшая производительность глобальной сети, возможность пересылки пакетов данных на большие расстояния.
Недостатки Узкое место в производительности. Не поддерживает выделенные каналы между сегментами сети, требует открытия 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-сохранить >/etc/sysconfig/ipvsadm
systemctl перезапустить ipvsadm
ipvsadm -ln
cd /etc/keepalive
vim keepalived.conf