Upload
kuchinskaya
View
638
Download
10
Embed Size (px)
Citation preview
Матвей Елютин
Внедрение балансировки нагрузки на основе Linux IPVS
Тяжело? Что можно сделать?
Что такое хорошо и что такое плохо
DNS Round-Robin Проксирование
Пропускная способность
Аппаратные решения
Linux Virtual Server
quagga
БалансерVIP
RealRealRealReal
IPVSИнтернет
БалансерVIP — 100.100.100.100
Real172.16.2.5
Real172.16.2.7
IP — 100.2.3.4
src: 100.100.100.100:80 dst: 100.2.3.4:45678
src: 100.2.3.4:45678dst: 100.100.100.100:80
src: 100.2.3.4:45678dst: 172.16.2.7:80
src: 172.16.2.7:8080dst: 100.2.3.4:45678
NATИнтернет
БалансерVIP 100.100.100.100
RealVIP alias 100.100.100.100
Общая сеть
DirectRoutingdata frame
dst mac: bal data frame
dst mac: real data frame
RealVIP alias 100.100.100.100
Интернет
БалансерVIP
RealVIP alias
RealVIP alias
tunnel
Tunnelingipip encapsulation
Интернет
Сеть
src: vip dst: client datasrc: client dst: vip data
Original
Src: bal dst real
БалансерVIP
realRealIP VIP
src: client dst: vip data
Original Packet
Added IP Headersrc: client dst: vip datasrc: client dst: vip data
Answer to client
Инкапсуляция внутри
● последовательно● по числу соединений● lblc,lblcr,sh,dh...
Выбор real-сервера
● Железо (cpu, msi-x net)● Настройки igb● irqbalance ● Настройки bond● MTU● Настройки arp
Внутри балансера
БалансерVIP
Real Real Real
Database Cache Storage
СинхронизацияТопология
● Настройки arp● ip_forward = 1● MTU● Туннели● Сервисы
Внутри real-сервера
Создать: root@balancer:ipvsadm -A -t 90.91.92.93 -s wrrroot@balancer:ipvsadm -a -t 90.91.92.93 -r 30.30.30.30 -w 5 -iroot@balancer:ipvsadm -a -t 90.91.92.93 -r 30.30.30.31 -w 1 -i Изменить:root@balancer: ipvsadm -e -t 90.91.92.93 -r 30.30.30.31 -w 5 -i
Запускаем балансировку
Посмотреть:root@balancer:ipvsadm -Ln -> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 100.100.100.100:110 wlc -> 25.35.45.50:110 Tunnel 2 1171 23120 -> 35.45.55.65:110 Tunnel 6 3096 67802 -> 45.55.65.75:110 Tunnel 0 183 12144
Что происходит на балансере
Балансер
VIP
Real
keepalived
database cache
Код ответаСодержимое Время ответа
Живой?
● HTTP + SSL● TCP + STMP● MISC● ICMP (MTU)● POP
Проверки keepalived
БалансерVIP
БалансерVIP
Real
virtual_server 100.100.100.100 110 { delay_loop 2 lb_algo wrr lb_kind TUN protocol TCP
real_server 30.40.50.60 110 { weight 10 TCP CHECK { connect_port 11111 nb_get_retry 1 delay_before_retry 2 connect_timeout 2 } ICMP_CHECK { size 1520 }}
Делаем keepalived.conf
vrrp
Интернет
Router
БалансерVIP
quagga
Real
rip update
проверка
Подключаем quagga
БалансерVIP
Router
quaggaБалансер
VIP
quagga
ЦОД1
Real Real Real Real. . .
Интернет
БалансерVIP
Router
quaggaБалансер
VIP
quagga
ЦОД2
Мониторим все
● Сервис● Балансеры● Real-сервера
Получилось!
● Гибкость● Деньги● Быстродействие● Отказоустойчивость