关键词: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 | 仅向与本地接口上地址匹配的网络进行通告。 |
准备位于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 |
清除所有测试服务器防火墙
Iptables –F
配置VIP和静态路由
ifconfig ens33:0 192.168.233.132/24 #配置网络别名 route add -host 192.168.233.132 dev ens33:0 #配置静态路由
检查网络环境配置
ifconfig3.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 -v3.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/ipvsadm4.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 #配置静态路由
检查网络环境配置
ifconfig4.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
测试是否允许访问
通过实体机浏览器访问服务地址(多次刷新)
http://192.168.233.132:80
Yunxi.D 2021/10/24



