最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

CentOS7---基于 CentOS 7 构建 LVS-DR 群集_世界热点

来源:博客园


(相关资料图)

一、对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势

NAT模式(地址转换)原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址 并发至此RS来处理,RS处理完后把数据交给负载均衡器,负载均衡器再把数据包原IP地址改为自己的IP,将目的地址改为客户端IP地址即可期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器(原路返回,只改变了Mac地址)

优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址;

缺点:扩展性有限。当服务器节点(普通PC服务器)增长过多时,负载均衡器将成为整个系统的瓶颈 因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,大量的数据包都交汇在负载均衡器,速度就会变慢!

2、 直接路由(DR模式)原理:负载均衡器和RS都使用同一个IP对外服务,但只有DR对ARP请求进行响应。所有RS对本身这个IP的ARP请求保持静默也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC(因为IP一致),并将请求分发给这台RS这时RS收到这个数据包。处理完成之后,由于IP一致,可以直接将数据返给客户,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端,由于负载均衡器要对二层包头进行改换,所以负载均衡器和RS之间必须在一个广播域也可以简单的理解为在同一台交换机上

优点:和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。

缺点:(不能说缺点,只能说是不足)要求负载均衡器的网卡必须与物理网卡在一个物理段上。

二、 基于 CentOS 7 构建 LVS-DR 群集

1、环境准备

主机名    IP              作用node01   192.168.11.21  clientnode02   192.168.11.22    LVSnode03   192.168.11.23    LVSnode04   192.168.11.24  RS-web1node05   192.168.11.25  RS-web2

2、关闭防火墙和selinux

[root@node01 ~]# systemctl stop firewalld.service[root@node01 ~]# systemctl disable firewalld.service[root@node01 ~]# sed -i "/^SELINUX=/ c SELINUX=disabled" /etc/selinux/config

3、修改主机名和设置为静态IP

4、先在节点node04 node05准备俩个web服务器访问页面---4和5一样的配置

# 安装Apache软件,做web服务器[root@node04 ~]# yum install httpd -y# 提供测试页,为了区分用IP标识[root@node04 ~]# echo "web test page...host is `hostname -I`." > /var/www/html/index.html# 重启服务[root@node04 ~]# systemctl start httpd.service # 本地测试访问[root@node04 ~]# curl 192.168.11.24web test page...host is 192.168.11.24 .[root@node04 ~]# curl 192.168.11.25web test page...host is 192.168.11.25 .

5、配置LVS负载均衡服务

第一种LVS配置方式:node02上配置

# 下载负载均衡工具[root@node02 ~]# yum install ipvsadm.x86_64 -y

6、添加VIP地址,注意掩码

[root@node02 ~]# nmcli connection modify ens32 +ipv4.addresses 192.168.11.100/24[root@node02 ~]# nmcli connection up ens32 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/4)[root@node02 ~]# ip a1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00    inet 127.0.0.1/8 scope host lo       valid_lft forever preferred_lft forever    inet6 ::1/128 scope host        valid_lft forever preferred_lft forever2: ens32:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    link/ether 00:0c:29:3c:41:bb brd ff:ff:ff:ff:ff:ff    inet 192.168.11.22/24 brd 192.168.11.255 scope global noprefixroute ens32       valid_lft forever preferred_lft forever    inet 192.168.11.100/24 brd 192.168.11.255 scope global secondary noprefixroute ens32       valid_lft forever preferred_lft forever    inet6 fe80::9543:bb74:6781:68d6/64 scope link noprefixroute        valid_lft forever preferred_lft forever

7、配置LVS策略

# 清除策略[root@node02 ~]# ipvsadm -C# 对TCP80端口提供负载分流服务,使用的调度为轮询[root@node02 ~]# ipvsadm -A -t 192.168.11.100:80 -s rr # 查看本地规则[root@node02 ~]# ipvsadm -LnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags  -> RemoteAddress:Port           Forward Weight ActiveConn InActConnTCP  192.168.11.100:80 rr# 添加节点服务器RS[root@node02 ~]# ipvsadm -a -t 192.168.11.100:80 -r 192.168.11.24:80 -g[root@node02 ~]# ipvsadm -a -t 192.168.11.100:80 -r 192.168.11.25:80 -g[root@node02 ~]# ipvsadm -LnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags  -> RemoteAddress:Port           Forward Weight ActiveConn InActConnTCP  192.168.11.100:80 rr  -> 192.168.11.24:80             Route   1      0          0           -> 192.168.11.25:80             Route   1      0          0 

8、保存配置,重启服务即失效

[root@node02 ~]# ipvsadm-save -A -t node02:http -s rr-a -t node02:http -r 192.168.11.24:http -g -w 1-a -t node02:http -r 192.168.11.25:http -g -w 1

9、配置说明

[删除方法]# ipvsadm -D -t 192.168.11.100:80-s wrr# ipvsadm -d -t 192.168.11.100:80 -r 192.168.11.24:80[相关参数说明][root@node02 ~]# ipvsadm –help-A 添加虚拟服务器-t 设置群集地址(VIP,Virtual IP)-s 指定负载调度算法-a 添加真实服务器-d 删除真实服务器-r 指定真实服务器(Real Server)的地址-m 使用NAT模式;-g、-i分别对应DR、TUN模式-w 为节点服务器设置权重,默认为1

10、手工在RS端绑定VIP,添加本机访问VIP的路由信息

[root@node04 ~]# ifconfig lo:110 192.168.11.110 netmask 255.255.255.255 up[root@node04 ~]# route add -host 192.168.11.100 dev lo

11、手工在RS端抑制ARP响应

[root@node05 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore[root@node05 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce[root@node05 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore[root@node05 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

PS:也可以使用arptables实现抑制arp

arptables -A INPUT -d $VIP -j DROParptables -A OUTPUT -s $VIP -j mangle --mangle-ip-s $RIP# arptables-save > /etc/sysconfig/arptables# systemctl enable --now arptables

12、测试

# 在LVS上监控 [root@node02 ~]# watch  ipvsadm -Ln# 在客户端上测试[root@node01 ~]# for ((i=1;i<=10;i++)); do curl 192.168.11.100; done;

关键词: