CentOS6.4 LVS+keepalived高可用负载均衡服务配置
Id Name State
----------------------------------------------------
1 SN-web01 running
2 SN-web02 running
3 SN-ipvs01 running
4 SN-ipvs02 running
网络环境:
Ipvs01:192.168.40.90
Ipvs02:192.168.40.91
Web01:192.168.40.86
Web02:192.168.40.87
Vip:192.168.40.6
系统版本:
物理机CentOS6.4 64bit
虚拟机CentOS6.4 64bit
二:服务配置
软件包6.4系统已经自带ipvs1.25和keepalived1.2.7 测试用yum自行安装。
主LVS服务器ipvs01配置:
[root@ipvs01 ~]# yum list yum.list
[root@ipvs01 ~]# cat yum.list|grep ipvs
ipvsadm.x86_64 1.25-10.el6 @base
[root@ipvs01 ~]# cat yum.list |grep keepalived
keepalived.x86_64 1.2.7-3.el6 @base
[root@ipvs01 ~]#yum install ipvsadm keepalived
[root@ipvs01 ~]#ipvsadm
[root@ipvs01 ~]#lsmod |grep ip_vs 查看模块是否加载成功
ip_vs_rr 1420 1
ip_vs_wrr 2179 0
ip_vs 115643 5 ip_vs_rr,ip_vs_wrr
libcrc32c 1246 1 ip_vs
ipv6 321422 11 ip_vs
[root@ipvs01 ~]#cd /etc/keepalived/
[root@ipvs01 ~]#cp -a keepalived.conf ./keepalived.bak
[root@ipvs01 ~]#vi 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_MASTER
}
vrrp_instance VI_1 {
state MASTER #角色主MASTER,备服务器改为BACKUP
interface eth0 #HA侦听接口
virtual_router_id 51 #虚拟路由标记ID,同一组vrrp一致
priority 100 #优先级自定义,MASTER高于BACKUP即可
advert_int 1 #HA 侦听间隔:1秒
authentication { #认证形式
auth_type PASS #认证类型PASS:PASS/AH 2种可选
auth_pass 1111 #认证密码,同一组vrrp密码一致
}
virtual_ipaddress { #虚拟服务地址,可以多个,分多行
192.168.40.6
}
}
virtual_server 192.168.40.6 80 { #虚拟服务地址和端口
delay_loop 6 #运行情况检查,单位秒
lb_algo rr #负载调度算法,RR为轮询
lb_kind DR #LVS负载工作模式为DR,三大模式NAT,TUN,DR
nat_mask 255.255.255.0 #网络掩码
#persistence_timeout 50 #会话保持时间,50秒内分配同一节点,测试时候为了查看均衡效果可以先注释掉
protocol TCP #协议类型TCP/UDP
real_server 192.168.40.86 80 { #配置真实服务器节点1 的IP和端口
weight 5 #权值大小,越大权值越高
TCP_CHECK { #realserver 状态检测时间,单位秒
connect_timeout 3 #连接超时时间3秒
nb_get_retry 3 #重试次数:3次
delay_before_retry 3 #重试间隔
connect_port 80 #连接端口
}
}
real_server 192.168.40.87 80 {
weight 5
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
备服务器ipvs02上将主服务器配置文件复制过去,然后修改2处:
state BACKUP
priority 100
其他保持不变。
三:服务节点配置:
Web01,web02 ,http服务安装略
[root@web01 ~]# cat /var/www/html/index.html
h1 WEB01/192.168.40.86 /h1
[root@web02 ~]# cat /var/www/html/index.html
h1 WEB02/192.168.40.87 /h1
在web01和web02上分别运行脚本
ifconfig lo:0 192.168.40.6 netmask 255.255.255.0 up
route add -host 192.168.40.6 dev lo:0
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
执行完毕后查看路由有一条虚拟IP的路由指向lo接口
[root@web01 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.40.6 0.0.0.0 255.255.255.255 UH 0 0 0 lo
四:测试LVS
将ipvs01,ipvs02 ,keepalived服务启动
将web01,web02, http服务启动
在主LVS服务器上查看lvs状态如下 说明配置生效
[root@ipvs01 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
- RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.40.6:80 rr persistent 50
- 192.168.40.86:80 Route 5 0 0
- 192.168.40.87:80 Route 5 0 0
从ip a 命令来看 虚拟IP现在是在ipvs01上的,而从服务器上ip a没有虚拟IP
[root@ipvs01 ~]# ip a
1: lo: LOOPBACK,UP,LOWER_UP mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:06:88:f4 brd ff:ff:ff:ff:ff:ff
inet 192.168.40.90/24 brd 192.168.40.255 scope global eth0
inet 192.168.40.6/32 scope global eth0
inet6 fe80::5054:ff:fe06:88f4/64 scope link
valid_lft forever preferred_lft forever
测试负载均衡效果:
打开浏览器测试:
刷新一下
测试一下HA效果
将ipvs01 keepalived服务器停掉,然后查看ipvs02 ip a状态
[root@ipvs01 ~]# /etc/init.d/keepalived stop
Stopping keepalived: [ OK ]
[root@SN349_ipvs02 ~]# ip a
1: lo: LOOPBACK,UP,LOWER_UP mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:45:f8:78 brd ff:ff:ff:ff:ff:ff
inet 192.168.40.91/24 brd 192.168.40.255 scope global eth0
inet 192.168.40.6/32 scope global eth0
inet6 fe80::5054:ff:fe45:f878/64 scope link
valid_lft forever preferred_lft forever
此时ipvs02绑定了虚拟IP 顶替了ipvs01的服务。
构建LVS负载均衡集群 LVS即Linux虚拟服务器,目前 LVS 已经被集成到 Linux 内核模块中,该项目在 Linux 内核实现了基于 IP 的数据请求负载均衡调度方案,LVS集群采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器.整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序.为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性.
相关文章
- 【K8S专栏】Kubernetes工作负载管理
- apache负载均衡配置_apache反向代理配置
- 服务器中”系统平均负载 Load average“含义学习
- 学完Nginx/OpenResty详解,反向代理与负载均衡配置,能涨薪多少
- 身为30K的程序员你还不懂四层与七层负载均衡以及负载均衡算法?
- nginx和keepalived实现nginx高可用_weblogic负载均衡
- 关于 Kubernetes中Service使用nginx-controller实现Ingress负载均衡器的一个Demo
- 详解Linux CPU负载和CPU使用率
- nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录详解程序员
- Nginx负载均衡配置说明详解程序员
- 掌握Linux服务器负载:查看负载优化机制(查看linux服务器负载)
- Linux服务器负载均衡配置指南(linux负载均衡配置)
- Nginx高性能Web服务器:Nginx HTTP负载均衡和反向代理的配置与优化(第六章)
- Nginx HTTP负载均衡和反向代理配置
- 深入解析:Linux LVS负载均衡配置指南(linuxlvs配置)
- 运维工程师必备之负载均衡集群及LVS详解【精】
- 在RedHat上实现集群负载均衡系统
- HAProxy负载均衡器的安装及配置
- 使用SQL Server实现高效负载均衡的集群技术简介(sqlserver的集群)
- 负载利用Oracle优化CPU利用率(oracle 使用cpu)
- Redis负载均衡有效的优化架构(什么是redis负载均衡)
- Win2003利用dfs(分布式文件系统)在负载均衡下的文件同步配置方案
- nginx负载均衡的简单配置方法
- 理解web服务器和数据库的负载均衡以及反向代理
- RedHatLinux,Apache2.0+Weblogic9.2负载均衡集群安装配置