Чӣ бояд кард, агар қудрати як сервер барои коркарди ҳама дархостҳо кофӣ набошад ва истеҳсолкунандаи нармафзор мувозинати сарбориро таъмин накунад? Имкониятҳои зиёде мавҷуданд, аз харидани баланси сарборӣ то маҳдуд кардани шумораи дархостҳо. Кадомаш дуруст аст, бояд вазъиятро бо назардошти шароити мавчуда муайян кард. Дар ин мақола мо ба шумо мегӯям, ки шумо чӣ кор карда метавонед, агар буҷаи шумо маҳдуд бошад ва сервери ройгон дошта бошед.
Ҳамчун системае, ки барои он кам кардани сарбории яке аз серверҳо лозим буд, мо аз InfoWatch DLP (системаи пешгирии ихроҷи иттилоот) -ро интихоб кардем. Хусусияти татбиқ ин ҷойгиркунии функсияи мувозинат дар яке аз серверҳои "ҷанговар" буд.
Яке аз мушкилоте, ки мо дучор шудем, ин имконнопазирии истифода аз Source NAT (SNAT) буд. Чаро ин лозим буд ва чӣ гуна мушкилот ҳал карда шуд, мо минбаъд шарҳ медиҳем.
Ҳамин тариқ, дар аввал диаграммаи мантиқии системаи мавҷуда чунин менамуд:
Трафики ICAP, SMTP, рӯйдодҳои компютерҳои корбар дар сервери Traffic Monitor (TM) коркард карда шуданд. Дар айни замон, сервери пойгоҳи додаҳо пас аз коркарди рӯйдодҳо дар ТМ бо осонӣ сарборӣ мекард, аммо бори худи ТМ вазнин буд. Ин аз пайдоиши навбати паёмҳо дар сервери Device Monitor (DM) ва инчунин аз CPU ва сарбории хотира дар ТМ маълум буд.
Дар назари аввал, агар мо ба ин схема сервери дигари ТМ илова кунем, он гоҳ ICAP ё DM-ро метавон ба он иваз кард, аммо мо тасмим гирифтем, ки ин усулро истифода набарем, зеро таҳаммулпазирии хатогиҳо коҳиш ёфт.
Тавсифи ҳалли
Дар ҷараёни ҷустуҷӯи ҳалли мувофиқ, мо ба нармафзори озод паҳншуда қарор гирифтем
Он чизе ки мо мехостем ба даст оварем (кам кардани сарбории ТМ ва нигоҳ доштани сатҳи кунунии таҳаммулпазирии хатоҳо) бояд мувофиқи нақшаи зерин кор мекард:
Ҳангоми санҷиши функсия маълум шуд, ки маҷмӯаи фармоишии RedHat, ки дар серверҳо насб шудааст, SNAT-ро дастгирӣ намекунад. Дар ҳолати мо, мо нақша доштем, ки SNAT-ро истифода барем, то бастаҳои воридотӣ ва посухҳо ба онҳо аз як суроғаи IP фиристода шаванд, вагарна мо тасвири зеринро мегирем:
Ин ғайри қобили қабул аст. Масалан, сервери прокси, ки бастаҳоро ба суроғаи IP виртуалӣ (VIP) фиристодааст, посухи VIP-ро интизор мешавад, аммо дар ин ҳолат он аз IP2 барои сессияҳои ба нусха фиристодашуда меояд. Як роҳи ҳал ёфт шуд: зарур буд, ки ҷадвали дигари масирро дар нусхабардорӣ созед ва ду сервери ТМ-ро бо шабакаи алоҳида пайваст кунед, тавре ки дар зер нишон дода шудааст:
Танзимотҳо
Мо нақшаи ду серверро бо хидматҳои ICAP, SMTP, TCP 9100 ва дар яке аз онҳо тавозуни сарборӣ насб мекунем.
Мо ду сервери RHEL6 дорем, ки аз онҳо анборҳои стандартӣ ва баъзе бастаҳо хориҷ карда шудаанд.
Хидматҳое, ки мо бояд мувозинат кунем:
• ICAP – tcp 1344;
• SMTP – tcp 25.
Хидмати интиқоли трафик аз DM - tcp 9100.
Аввалан, мо бояд шабакаро ба нақша гирем.
Суроғаи IP виртуалӣ (VIP):
• IP: 10.20.20.105.
Сервер TM6_1:
• IP берунӣ: 10.20.20.101;
• IP-и дохилӣ: 192.168.1.101.
Сервер TM6_2:
• IP берунӣ: 10.20.20.102;
• IP-и дохилӣ: 192.168.1.102.
Сипас, мо интиқоли IP-ро дар ду сервери TM фаъол мекунем. Чӣ тавр ин корро кардан дар RedHat тавсиф шудааст
Мо қарор медиҳем, ки кадоме аз серверҳое, ки мо дорем, сервери асосӣ ва кадоме аз серверҳои эҳтиётӣ хоҳад буд. Бигзор усто TM6_1 бошад, нусха TM6_2 бошад.
Ҳангоми нусхабардорӣ мо ҷадвали нави масир ва қоидаҳои масирро эҷод мекунем:
[root@tm6_2 ~]echo 101 balancer >> /etc/iproute2/rt_tables
[root@tm6_2 ~]ip rule add from 192.168.1.102 table balancer
[root@tm6_2 ~]ip route add default via 192.168.1.101 table balancer
Фармонҳои дар боло зикршуда то аз нав оғоз шудани система кор мекунанд. Барои боварӣ ҳосил кардани он, ки масирҳо пас аз бозоғозӣ нигоҳ дошта мешаванд, шумо метавонед онҳоро ворид кунед /etc/rc.d/rc.local, балки тавассути файли танзимот беҳтар аст /etc/sysconfig/network-scripts/route-eth1 (эзоҳ: дар ин ҷо синтаксиси гуногун истифода мешавад).
Keepalived -ро дар ҳарду серверҳои TM насб кунед. Мо ҳамчун манбаи паҳнкунӣ rpmfind.net-ро истифода мебарем:
[root@tm6_1 ~]#yum install https://rpmfind.net/linux/centos/6.10/os/x86_64/Packages/keepalived-1.2.13-5.el6_6.x86_64.rpm
Дар танзимоти нигоҳдорӣ, мо яке аз серверҳоро ҳамчун устод таъин мекунем, дигареро ҳамчун нусхабардорӣ. Сипас, мо VIP ва хидматҳоро барои мувозинати сарборӣ муқаррар кардем. Файли танзимот одатан дар ин ҷо ҷойгир аст: /etc/keepalived/keepalived.conf.
Танзимот барои сервери TM1
vrrp_sync_group VG1 {
group {
VI_1
}
}
vrrp_instance VI_1 {
state MASTER
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 51
priority 151
advert_int 1
authentication {
auth_type PASS
auth_pass example
}
virtual_ipaddress {
10.20.20.105
}
}
virtual_server 10.20.20.105 1344 {
delay_loop 6
lb_algo wrr
lb_kind NAT
protocol TCP
real_server 192.168.1.101 1344 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 1344
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.1.102 1344 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 1344
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 10.20.20.105 25 {
delay_loop 6
lb_algo wrr
lb_kind NAT
protocol TCP
real_server 192.168.1.101 25 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 25
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.1.102 25 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 25
nb_get_retry 3
delay_before_retry 3
}
}
}
virtual_server 10.20.20.105 9100 {
delay_loop 6
lb_algo wrr
lb_kind NAT
protocol TCP
real_server 192.168.1.101 9100 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 9100
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.1.102 9100 {
weight 1
TCP_CHECK {
connect_timeout 3
connect_port 9100
nb_get_retry 3
delay_before_retry 3
}
}
}
Танзимот барои сервери TM2
vrrp_sync_group VG1 {
group {
VI_1
}
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass example
}
virtual_ipaddress {
10.20.20.105
}
}
Мо LVS-ро дар усто насб мекунем, ки трафикро мувозинат мекунад. Барои сервери дуюм насб кардани мувозинат маъно надорад, зеро мо дар конфигуратсия ҳамагӣ ду сервер дорем.
[root@tm6_1 ~]##yum install https://rpmfind.net/linux/centos/6.10/os/x86_64/Packages/ipvsadm-1.26-4.el6.x86_64.rpm
Мувозинат аз ҷониби keepalived идора карда мешавад, ки мо онро аллакай танзим кардаем.
Барои ба итмом расонидани тасвир, биёед нигоҳдории автоматиро дар ҳарду сервер илова кунем:
[root@tm6_1 ~]#chkconfig keepalived on
хулоса
Санҷиши натиҷаҳо
Биёед keepalived-ро дар ҳарду сервер иҷро кунем:
service keepalived start
Санҷиши мавҷудияти суроғаи виртуалии VRRP
Биёед боварӣ ҳосил кунем, ки VIP дар усто аст:
Ва дар нусхаи эҳтиётӣ VIP вуҷуд надорад:
Бо истифода аз фармони ping, мо мавҷудияти VIP-ро тафтиш мекунем:
Акнун шумо метавонед устодро хомӯш кунед ва фармонро дубора иҷро кунед ping
.
Натиҷа бояд бетағйир боқӣ монад ва ҳангоми нусхабардорӣ мо VIP-ро мебинем:
Тафтиши мувозинати хидмат
Масалан, SMTP-ро гирем. Биёед ду пайвастро ба 10.20.20.105 ҳамзамон оғоз кунем:
telnet 10.20.20.105 25
Дар усто мо бояд бубинем, ки ҳарду пайвастшавӣ фаъоланд ва ба серверҳои гуногун пайвастанд:
[root@tm6_1 ~]#watch ipvsadm –Ln
Ҳамин тариқ, мо конфигуратсияи ба хатогиҳои хидматрасонии ТМ-ро тавассути насб кардани мувозинат дар яке аз серверҳои ТМ амалӣ кардем. Барои системаи мо, ин бори TM-ро ду баробар кам кард, ки ин имкон дод, ки бо истифода аз система масъалаи набудани миқёси уфуқӣ ҳал карда шавад.
Дар аксари мавридҳо, ин ҳалли зуд ва бе хароҷоти иловагӣ амалӣ карда мешавад, аммо баъзан дар конфигуратсия як қатор маҳдудиятҳо ва мушкилот вуҷуд доранд, масалан, ҳангоми мувозинати трафики UDP.
Манбаъ: will.com