LVS+Keepalived介绍
lVS是Linux Virtual Server的简写,即Linux虚拟服务器,是一个虚拟的服务器集群系统,LVS项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)
。
Keepalived是一个类似于layer3,4&5交换机制的软件,主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现。高可用架
##简单负载均衡架构
IP信息列表:
名称 | IP |
---|---|
LVS-VIP | 172.16.7.55 |
LVS-Master | 172.16.7.56 |
LVS-Slave | 172.16.7.57 |
Web-RealServer | 172.16.7.16 |
Web-RealServer | 172.16.7.144 |
安装LVS和Keepalived
IPVS (IP Virtual Server)是整个负载均衡的基础,如果没有这个基础,故障隔离与切换就毫无意义。IPVS基本上是一种高效的Layer-4交换机,它提供负载平衡的功能。当一个TCP连接的初始SYN报文到达时,IPVS就选择一台服务器,将报文转发给它。此后通过查发报文的IP和TCP报文头地址,保证此连接的后继报文被转发到相同的服务器。这样,IPVS无法检查到请求的内容再选择服务器,这就要求后端的服务器组是提供相同的服务,不管请求被送到哪一台服务器,返回结果都应该是一样的。但是在有一些应用中后端的服务器可能功能不一,有的是提供HTML文档的Web服务器,有的是提供图片的Web服务器,有的是提供CGI的Web服务器。这时,就需要基于内容请求分发 (Content-Based Request Distribution),同时基于内容请求分发可以提高后端服务器上访问的局部性。IPVS具体实现是由Ipvsadm这个程序来完成,因此判断一个系统是否具备ipvs功能,只要查看Ipvsadm程序是否安装,最简单的办法便是执行命令ipvsadm。
下载相关软件包
|
|
安装LVS和Keepalived
|
|
报错:
解决:
安装Keepalive
|
|
配置LVS及Keepalived
编写配置脚本
绑定VIP地址到LVS_Master上,并设定LVS工作模式为dr(此脚本不适用在Keepalived方案中,只可单独使用),代码如下
|
|
- 用ipvsadm -Ln查看虚拟服务器IP
|
|
- 查看LVS_VIP 是否绑定到Master上
|
|
配置Keepalived
修改/etc/keepalived/keepalived.conf,以下是Master的配置文件,Backup的只需要将红色的子修改即可。
|
|
配置RealServer
|
|
测试LVS+Keepalived
在2台RealServer上面绑定LVS虚拟IP及抑制arp
|
|
启动LVS_Master的keepalived服务,并查看日志
|
|
启动backup的Keepalived服务,并查看日志
|
|
使用ipvsadm查看lvs状态
|
|
测试负载均衡
在172.16.7.16和172.16.7.144分别创建以本机IP命令的index.html文件,放到apache的DocumentRoot中(这里放置不同内容是为了方便测试,在生产环境中应该是相同文件)
12[root@comp ~]# echo "172.16.7.16" > /var/www/html/index.html[root@ssq-144 ~]# echo "172.16.7.144" > /var/www/html/index.html用两台不同机器访问VIP
1234[root@ssq-58-112 ~]# curl 172.16.7.55172.16.7.16[root@ssq-58-113 ~]# curl 172.16.7.55172.16.7.144
看到两台机器访问VIP,得到的内容不一样,说明负载均衡成功。
测试高可用
- 关闭master的Keepalived服务器,并查看backup日志
|
|
说明backup已经接管服务,测试访问
web访问并没有受到影响
- 启动master的Keepalived服务,并查看backup日志
|
|
在master工作后,backup又将工作交还给master