[svc][op]LVS+keepalived
lvs是一种负载均衡技术.注意区分负载均衡和高可用的区别.
keepalive是lvs的管理工具
ipvsadm也是lvs的管理工具
keepalive借助ipvsadm管理lvs.所以通常说lvs+keepalive
lvs支持多种负载方式.
理论及配置说明:
http://www.cnblogs.com/edisonchou/p/4281978.html
lvs:DR模式wrr负载:
拓扑
KA1 LAMP-1
pc------|
KA2 LAMP-2
VIP:192.168.14.100
KA1:192.168.14.134
KA1:192.168.14.135
LAMP-1:192.168.141
LAMP-2:192.168.142
安装软件:
lvs:
yum install ipvsadm -y
rpm -qa ipvsadm
KA:
yum install keepalived -y
lamp:配置
RS绑定VIP: ip addr add 192.168.14.100/32 dev lo label lo:1 route add -host 192.168.14.100 dev lo 抑制ARP: echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
前期准备:
KA的配置文件:主KA
/etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs { router_id LVS_19 vrrp_mcast_group4 224.0.1.18 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 199 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 1098 } virtual_ipaddress { 192.168.14.100/24 dev eth0 label eth0:1 } } #ipvsadm -A -t 192.168.14.100:80 -s rr -p 300 virtual_server 192.168.14.100 80 { delay_loop 6 lb_algo wrr lb_kind DR nat_mask 255.255.255.0 persistence_timeout 50 protocol TCP #ipvsadm -a -t 192.168.14.100:80 -r 10.0.1.6:80 -g real_server 192.168.14.141 80 { weight 1 TCP_CHECK { connect_timeout 8 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 192.168.14.142 80 { weight 1 TCP_CHECK { connect_timeout 8 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }
备:KA:
! Configuration File for keepalived global_defs { router_id LVS_19 vrrp_mcast_group4 224.0.1.18 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 199 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1098 } virtual_ipaddress { 192.168.14.100/24 dev eth0 label eth0:1 } } #ipvsadm -A -t 192.168.14.100:80 -s rr -p 300 virtual_server 192.168.14.100 80 { delay_loop 6 lb_algo wrr lb_kind DR nat_mask 255.255.255.0 persistence_timeout 50 protocol TCP #ipvsadm -a -t 192.168.14.100:80 -r 10.0.1.6:80 -g real_server 192.168.14.141 80 { weight 1 TCP_CHECK { connect_timeout 8 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 192.168.14.142 80 { weight 1 TCP_CHECK { connect_timeout 8 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }
检查:如果一台down了,另一台通过ifconfig就会出现绑定的VIP了
ip add |egrep "134|135"
理论笔记:
集群--一组服务器
lvs harproxy nginx,keepalive heartbeat
负载均衡 高可用
负载模型:
nginx 7层负载
lvs 4层负载
lvs---nginx---webserver
负载:
1,7*24h服务
2,一台机器扛不住
lvs底层原理底层原理:
ipvs
ipvsadm自带
keepalive
名词介绍:
CIP(Client ip address)
DIP(Director IP address)
VIP(virtual ip address)
RIP(Real Server Ip address)=RS
负载的3种模式:
NAT
DR(direct route)
TUN(ip tunnel)
fullnat
DR
RIP
1,绑定VIP
2,抑制arp回应
主要:
LB通过修改目的mac,因此无法改写端口
2000W pv
请求10000一下都可以用haproxy/nginx
NAT模式:
LB要打开转发:
net.ipv4_forward=1