关键词:LVS负载均衡 DR模式 Linux Centos7
1.基础说明
1.1.LVS负载均衡说明
LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统。在1998年5月由章文嵩博士成立,目前 LVS是Linux内核标准的一部分。
使用LVS可以达到的技术目标是:通过LVS达到的负载均衡技术和Linux操作系统实现一个高性能高可用的Linux服务器集群,它具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的性能。
LVS由2部分程序组成,包括ipvs和ipvsadm。ipvs(ip virtual server):一段代码工作在内核空间,叫ipvs,是真正生效实现调度的代码。ipvsadm:另外一段是工作在用户空间,叫ipvsadm,负责为ipvs内核框架编写规则,定义谁是集群服务,而谁是后端真实的服务器(Real Server)。
1.2.网络说明
LVS服务器有与RS真实服务器位于在同一局域网络,并能相互通信,为LVS服务器配置网络别名VIP,在每个RS真实服务器上绑定一个虚拟网卡IP地址lo:0,该虚拟IP地址为LVS服务器的VIP地址。用于RS真实服务器处理完LVS转发的请求后,使用该地址作为源IP返回给客户端。
1.3.Arp说明
ARP(地址解析协议)是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址。收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
arp_ignore和arp_announce参数都和ARP协议相关,主要用于控制系统返回arp响应和发送arp请求时的动作。arp_ignore参数的作用是控制系统在收到外部的arp请求时,是否要返回arp响应。arp_announce的作用是控制系统在对外发送arp请求时,如何选择arp请求数据包的源IP地址。
arp_ignore级别:只对指定级别的arp请求进行响应,当arp广播请求的目标ip不在同一个接口上就不予响应。
级别 | 说明 |
---|---|
0 | 只要本地配置的有相应地址,就给予响应(默认); |
1 | 仅在请求的目标地址配置请求到达的接口上的时候,才给予响应。 |
arp_announce级别:向外主动通告自己的通告级别。 | |
级别 | 说明 |
---- | ---- |
0 | 将本地任何接口上的任何地址向外通告(默认); |
1 | 试图仅向目标网络通告与其网络匹配的地址; |
2 | 仅向与本地接口上地址匹配的网络进行通告。 |
2.环境准备
2.1.硬件设备
准备位于3台同一局域网络、安装CentOS7版本Linux系统的服务器(此处使用VMware虚拟机搭建),1台用于作为LVS负载均衡服务器,2台作为真实业务服务器。
2.2.IP地址
设备 | 地址 |
---|---|
LVS服务端管理IP | 192.168.233.130 |
LVS服务端VIP | 192.168.233.132 |
RS真实1服务器IP | 192.168.233.135 |
RS真实2服务器IP | 192.168.233.136 |
3.LVS负载均衡端配置
3.1.网络环境配置
清除所有测试服务器防火墙
Iptables –F
配置VIP和静态路由
ifconfig ens33:0 192.168.233.132/24 #配置网络别名
route add -host 192.168.233.132 dev ens33:0 #配置静态路由
检查网络环境配置
ifconfig
3.2.ipvsadm安装
(1)离线安装
查看Linux内核版本
cat /proc/version
下载安装包
http://www.linuxvirtualserver.org/software/
依赖包:
yum -y install gcc gcc-c++ make popt popt-devel libnl libnl-devel popt-static openssl-devel kernel-devel
解压文件
tar -xzvf ipvsadm-1.26.tar.gz
编译并安装
make && make install
(2)在线安装
安装ipvsadm工具
yum -y install ipvsadm
检测安装情况
ipvsadm -v
3.3.LVS规则配置
检查当前ipvsadm软件规则
ipvsadm -Ln
配置LVS规则
echo "1" >/proc/sys/net/ipv4/ip_forward #启动路由转发功能
ipvsadm -C #清除内核虚拟服务器表中的所有记录
ipvsadm -A -t 192.168.233.132:80 -s wlc #使用ipvsadm安装LVS服务
ipvsadm -a -t 192.168.233.132:80 -r 192.168.233.135:80 -g -w 1 #增加第一台realserver
ipvsadm -a -t 192.168.233.132:80 -r 192.168.233.136:80 -g -w 1 #增加第二台realserver
检查当前ipvsadm软件规则
ipvsadm -Ln
将规则保存到/etc/sysconfig/ipvsadm文件中
ipvsadm -Sn > /etc/sysconfig/ipvsadm
4.RS真实服务端配置
4.1.网络环境配置
清除所有测试服务器防火墙
iptables –F
配置realserver的arp_ignore、arp_announce、网络VIP、静态路由
echo 2 > /proc/sys/net/ipv4/conf/ens33/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
ifconfig lo:0 192.168.233.132 broadcast 192.168.233.132 netmask 255.255.255.255 up #配置虚拟IP
route add -host 192.168.233.132 dev lo:0 #配置静态路由
检查网络环境配置
ifconfig
4.2.测试服务配置
清除所有测试服务器防火墙
iptables –F
在真实服务端安装HTTPD和httpd-manual软件包
yum -y install http httpd-manual
修改HTTPD配置文件:监听所有访问80端口的请求,允许所有地址访问;
vim /etc/httpd/conf/httpd.conf
Listen 80
# Controls who can get stuff from this server.
Order allow,deny
Allow from all
Require all granted
创建/var/www/html/index.htm暂时作为 web 服务的主页
echo 'Welcome to 192.168.233.135' > /var/www/html/index.html
重启HTTPD服务
systemctl restart httpd
测试是否允许访问
5.测试
通过实体机浏览器访问服务地址(多次刷新)
http://192.168.233.132:80
yunxi p.deng 2021/10/24