配置DR模式的LVS负载群集

一直接路由模式(LVS-DR)

在DR模式的群集中,LVS负载调度器作为群集的访问入口,但不作为网关使用;服务器池中的所有节点都各自接入internet,发送给客户端的WEB响应数据包不需要经过LVS负载调度器。如图所示:

11配置DR模式的LVS负载群集_高可用

这种方式入站,出站访问数据被分别处理,因此LVS负载调度器和所有的节点服务器都需要配置有VIP地址,以便响应对整个群集的访问。考虚到数据存储的安全性,共享存储设备会放在内部的专用网络中

二配置DR模式的LVS负载群集

·准备环境

四台以上RHEL6主机:一台配置为负载均衡调度器、一台配置为NFS共享存储服务器、其他的作为节点主机

负载均衡调度器:只需一块网卡即可,区别于NAT模式中的负载调度器

节点主机:为了存储服务器的安装,节点主机和存储服务器构成另一个局域网络,所以节点主机需要两块网卡,也可以用一块,但是会降低存储服务器的安全性

·配置负载调度器

1配置虚拟IP地址

采用虚拟接口的方式(eth0:0),为网卡eth0绑定VIP地址,以便响应群集访问

先配置好真实网卡地址

11配置DR模式的LVS负载群集_集群_02

复制一份配置文件作为虚拟IP的配置文件

11配置DR模式的LVS负载群集_集群_03

只需修改设备名称和IP地址

11配置DR模式的LVS负载群集_群集_04

重启网卡

11配置DR模式的LVS负载群集_lvs_05

如果无法重启,删除以下文件重启系统即可

11配置DR模式的LVS负载群集_高可用_06

2调整/proc响应参数

对于DR群集模式来说,由于LVS负载调度器和各节点需要共用VIP地址,为了避免网络内的ARP解析出现异常,应该关闭linux内核的ICMP重定向参数响应

ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。此类报文有可能用以攻击,所以系统应该拒绝接受ICMP重定向

在配置文件中添加以下内容

11配置DR模式的LVS负载群集_高可用_07

11配置DR模式的LVS负载群集_高可用_08

上图中参数的含义是发送重定向,0表示关闭此项功能。此处修改是为了安全考虑关闭重定向功能。如果具有 eth1、eth2 等多个接口,必须对所有接口执行该操作

执行sysctl -p使修改生效

11配置DR模式的LVS负载群集_集群_09

3配置负载分配策略

加载ip_vs模块并安装ipvsadm软件包

11配置DR模式的LVS负载群集_集群_10

创建分配策略

11配置DR模式的LVS负载群集_lvs_11

保存策略、设置开机自启动服务、配置防火墙策略

11配置DR模式的LVS负载群集_群集_12

调度器配置完毕

·配置共享存储服务器

配置如下

修改/etc/exports文件,内容如下:

/opt/wwwroot 192.168.7.0/24(rw,sync,no_root_squash)

允许192.168.7.0/24网段的主机访问NFS的共享

11配置DR模式的LVS负载群集_马向军_13

·配置节点服务器

使用DR模式时,节点服务器也需要配置VIP地址,并调整内核的ARP响应参数以阻止更新VIP的MAC地址,避免发生冲突。除此之外,WEB服务的配置与NAT方式类似

1调整/proc响应参数

添加以下内容

11配置DR模式的LVS负载群集_群集_14

11配置DR模式的LVS负载群集_马向军_15

上图中参数的含义:

net.ipv4.conf.default.arp_ignore = 1 net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.lo.arp_ignore = 1

arp_ignore:定义了网卡在响应外部ARP请求时候的响应级别

0:默认值,不管哪块网卡接收到了ARP请求,只要发现本机有这个MAC都给与响应

1:总是使用最合适的网卡来响应,一个主机有多块网卡,其中一块网卡接收到了ARP请求,发现所请求的MAC是本机另一块网卡的,这个时候接收到ARP请求的这块网卡就一定不响应,只有发现请求的MAC是自己的才给与响应。

net.ipv4.conf.default.arp_announce =2 net.ipv4.conf.all.arp_announce =2

net.ipv4.conf.lo.arp_announce = 2

定义了网卡在向外宣告自己的MAC-IP时候的限制级别

有三个值:

0:默认值,不管哪块网卡接收到了ARP请求,只要发现本机有这个MAC都给与响应

1:尽量避免响应ARP请求中MAC不是本网卡的,一个主机有多块网卡,其中一块网卡接收到了ARP请求,发现所请求的MAC是本机另一块网卡的,这个时候接收到ARP请求的这块网卡就尽量避免响应

2:总是使用最合适的网卡来响应,一个主机有多块网卡,其中一块网卡接收到了ARP请求,发现所请求的MAC是本机另一块网卡的,这个时候接收到ARP请求的这块网卡就一定不响应,只有发现请求的MAC是自己的才给与响应。

执行sysctl -p使修改生效

11配置DR模式的LVS负载群集_lvs_16

2配置虚拟IP地址

在每个节点服务器,同样需要具有VIP地址172.16.16.172,但此地址仅用作发送WEB响应数据包的源地址,并不需要监听客户机的访问请求(改由调度器监听并分发)。因此使用虚拟接口lo:0来承载VIP地址,并为本机添加一条路由记录,将访问VIP的数据限制在本地以避免通信紊乱

11配置DR模式的LVS负载群集_集群_17

修改为以下内容;特别注意:子网掩码必须为全1

11配置DR模式的LVS负载群集_lvs_18

重启网卡生效

11配置DR模式的LVS负载群集_群集_19

11配置DR模式的LVS负载群集_lvs_20

3添加VIP本地访问路由

11配置DR模式的LVS负载群集_lvs_21

4连接共享目录

且实现开机自动挂载

11配置DR模式的LVS负载群集_集群_22

11配置DR模式的LVS负载群集_高可用_23

5安装httpd服务,开启服务并创建测试页

11配置DR模式的LVS负载群集_群集_24

6配置防火墙策略

11配置DR模式的LVS负载群集_集群_25

配置完成

其他节点服务器同样的配置

为了快速,可使用一下命令,直接复制参数文件

11配置DR模式的LVS负载群集_高可用_26

·测试访问

使用VIP进行访问

11配置DR模式的LVS负载群集_马向军_27

然后可以在调度器上使用一下命令观察负载情况ipvsadm –Lnc