标签:server8 全局配置 config 学习 客户端 测试 table connect 术语
LVS介绍
LVS是Linux Virtual Server的缩写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统,属于4层负载均衡
ipvs和ipvsadm的关系
我们使用配置LVS的时候,不能直接配置内核中的ipvs,需要使用ipvs的管理工具ipvsadm进行管理
LVS术语
LVS转发原理
LVS负载均衡器接受所有入站请求,并根据调度算法决定哪个realserver处理该请求
LVS调度算法
LVS调度算法生产环境选型
一般的网络服务,如:http、mail、MySQL等,常用的调度算法为:
LVS转发模式
LVS-DR模式
转发流程
将所有入站请求转发给后端realserver,后端realserver处理完直接将结果发给客户端
原理
当用户请求到达Direct Server,此时报文的源IP为CIP、MAC为CIP-MAC,目标IP为VIP、MAC为VIP-MAC
Direct Server根据调度算法确定一台处理请求的realserver,将请求转发给对应的realserver,此时源IP和目标IP均未改变,仅修改了源MAC为DIP-MAC,目标MAC为RIP-MAC
对应的realserver处理完请求,直接将结果发给客户端,此时源IP为VIP、MAC为VIP-MAC,目标IP为CIP、MAC为CIP-MAC
特性
为什么要抑制ARP请求
优势
只有请求报文经过调度器,而Real-Server响应处理后无需经过调度器,因此并发量大的时候效率很高
LVS-NAT模式
转发流程
将所有入站请求转发给后端Real-Server,后端Real-Server处理完再发给Direct-Server,Direct-Server再发给客户端
特性
优势
只需要一个公网IP给Direct-Server,Direct-Server始终跟外接打交道
劣势
需要依赖Direct-Server把请求转发给Real-Server,Real-Server处理完把结果发给Direct-Server,Direct-Server再把结果转发出去,并发高的时候会成为瓶颈
LVS三种模式对比
ipvsadm参数
添加虚拟服务器 语法:ipvsadm -A [-t|u|f] [vip_addr:port] [-s:指定算法] -A:添加 -t:TCP协议 -u:UDP协议 -f:防火墙标记 -D:删除虚拟服务器记录 -E:修改虚拟服务器记录 -C:清空所有记录 -L:查看 添加后端RealServer 语法:ipvsadm -a [-t|u|f] [vip_addr:port] [-r ip_addr] [-g|i|m] [-w 指定权重] -a:添加 -t:TCP协议 -u:UDP协议 -f:防火墙标记 -r:指定后端realserver的IP -g:DR模式 -i:TUN模式 -m:NAT模式 -w:指定权重 -d:删除realserver记录 -e:修改realserver记录 -l:查看 通用: ipvsadm -ln:查看规则 service ipvsadm save:保存规则
ipvsadm配置LVS负载均衡
需求
用LVS实现后端两台httpd的负载均衡
环境说明
lb01 | 192.168.0.91 | lvs |
realserver-1 | 192.168.0.92 | httpd |
realserver-2 | 192.168.0.93 | httpd |
test | 192.168.0.94 | 用来测试负载均衡 |
负载均衡器端
安装LVS [root@lb01 ~]#yum -y install ipvsadm [root@lb01 ~]#ipvsadm 添加绑定VIP [root@lb01 ~]#ip addr add 192.168.0.89/24 dev eth0 label eth0:1 配置LVS-DR模式 [root@lb01 ~]#ipvsadm -A -t 192.168.0.89:80 -s rr [root@lb01 ~]#ipvsadm -a -t 192.168.0.89:80 -r 192.168.0.93 -g [root@lb01 ~]#ipvsadm -a -t 192.168.0.89:80 -r 192.168.0.94 -g
Real-Server端
配置测试后端realserver 配置httpd省略 [root@realserver-1 ~]#curl 192.168.0.93 #测试realserver-1网站是否正常 192.168.0.93 [root@realserver-2 ~]#curl 192.168.0.94 #测试realserver-2网站是否正常 192.168.0.94 绑定VIP到lo网卡 [root@realserver-1 ~]#ip addr add 192.168.0.89/32 dev lo label lo:1 #由于DR模式需要realserver也有VIP 抑制ARP [root@realserver-1 ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce [root@realserver-1 ~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce [root@realserver-1 ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore [root@realserver-1 ~]#echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore
客户端测试
[root@test ~]#curl 192.168.0.89 192.168.0.93 [root@test ~]#curl 192.168.0.89 192.168.0.94
需求
环境说明
lb01 | 192.168.0.91 | lvs keepalived-master |
lb02 |
192.168.0.92 | lvs keepalived-backup |
realserver-1 | 192.168.0.93 | httpd |
realserver-2 | 192.168.0.94 | httpd |
在负载均衡器端配置lvs+keepalived
lb01节点
[root@lb01 ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived ##################全局配置########################## global_defs { #如有故障,发邮件地址 notification_email { 9618154@qq.com #收件人 } notification_email_from Alexandre.Cassen@firewall.loc #keepalived报警邮件,发件人 smtp_server 192.168.200.1 #邮件服务器地址 smtp_connect_timeout 30 #邮件服务器超时时间 router_id LVS_01 #类似于MySQL的server-id,每个keepalived节点不能相同 } #################keepalived配置##################### vrrp_instance VI_1 { state MASTER #keepalived角色,MASTER和BACKUP interface eth0 #通信接口,下面的virtual_ipaddress(VIP)绑定到这个网卡 virtual_router_id 51 #vrrp_instance的唯一标识 priority 150 #keepalived权重,数值越大权重越大,MASTER应大于BACKUP advert_int 1 #发送心跳间隔,如果backup1秒收不到心跳就接管,单位是秒 authentication { #每个keepalived节点通过这里设置的验证通信,必须得设置成一样 auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.0.89/24 #VIP } } ##################LVS配置############## #添加虚拟服务器 #相当于 ipvsadm -A -t 192.168.0.89:80 -s wrr virtual_server 192.168.0.89 80 { delay_loop 6 #服务健康检查周期,单位是秒 lb_algo wrr #调度算法 lb_kind DR #模式 nat_mask 255.255.255.0 persistence_timeout 50 #回话保持时间,单位是秒 protocol TCP #TCP协议转发 #添加后端realserver #相当于 ipvsadm -a -t 192.168.0.89:80 -r 192.168.0.93:80 -w 1 real_server 192.168.0.93 80 { #realserver的真实IP weight 1 #权重 #健康检查 TCP_CHECK { connect_timeout 8 #超时时间 nb_get_retry 3 #重试次数 delay_before_retry 3 #重试间隔 connect_port 80 #检查realserver的80端口,如果80端口没监听,就会从集群中剔除 } } real_server 192.168.0.94 80 { weight 1 TCP_CHECK { connect_timeout 8 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }
lb02节点
[root@lb01 ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived ################全局配置########################### global_defs { notification_email { } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id LVS_02 } ################keepalived配置##################### vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.0.89/24 } } ################lvs配置########################## virtual_server 192.168.0.89 80 { delay_loop 6 lb_algo wrr lb_kind DR nat_mask 255.255.255.0 persistence_timeout 50 protocol TCP real_server 192.168.0.93 80 { weight 1 TCP_CHECK { connect_timeout 8 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 192.168.0.94 80 { weight 1 TCP_CHECK { connect_timeout 8 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }
配置后端Real-Server
确保网站服务是正常的 curl 192.168.0.93 192.168.0.93 curl 192.168.0.94 192.168.0.94 绑定VIP到lo网卡 ip addr add 192.168.0.89/32 dev lo label lo:0 抑制ARP [root@realserver-1 ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce [root@realserver-1 ~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce [root@realserver-1 ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore [root@realserver-1 ~]#echo 1 >/proc/sys/net/ipv4/conf/lo/arp_ignore
客户端测试
标签:server8 全局配置 config 学习 客户端 测试 table connect 术语
原文地址:http://www.cnblogs.com/zhaijunming5/p/6019885.html