Lvs - DR

一、vs/DR通过直接路由实现虚拟服务器

*lVS/DR模式:***VS/DR 利用大多数 Internet 服务的非对称特点,负载调度器中只负责调度请求,而服务器直接将响应返回给客户,可以极大地提高整个集群系统的吞吐量调度器和服务器组都必须在物理上有一个网卡通过不分断的局域网相连,如通过交换机或者高速的HUB 相连。VIP 地址为调度器和服务器组共享,调度器配置的 VIP 地址是对外可见的,用于接收虚拟服务的请求报文;所有的服务器把 VIP 地址配置在各自的Non­ARP 网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP的网络请求。

操作开始前,最好保持一个干净的环境。

这里写图片描述

步骤1:

1)server1 安装ipvsadm 安装前得先修改server1的yum源

[root@server1 ~]# cd /etc/yum.repos.d/
[root@server1 yum.repos.d]# ls
rhel-source.repo
[root@server1 yum.repos.d]# vim rhel-source.repo

这里写图片描述
这里写图片描述

2)给server1绑定虚拟网卡;真实ip为172.25.254.1

ip addr add 172.25.66.100/24 dev eth0添加VIP网卡

这里写图片描述

3)加载rule并保存:

ipvsadm ­-A -­t 172.25.66.100:80 ­-s rr
ipvsadm -­a ­-t 172.25.66.100:80 ­-r 172.25.66.3:80 ­-g
ipvsadm ­-a -­t 172.25.66.100:80 ­-r 172.25.66.4:80 -­g

这里如果添加错误了,可以用-C全部清除,再重新添加

这里写图片描述

在真机访问

[root@foundation66 Desktop]# curl 172.25.66.100
^C  ##会卡住,出不来.因为:1、server2,server3上没有.100的ip地址.所以,加
[root@foundation66 Desktop]#

5)server2和server3 设置ip addr add 172.25.254.100/32 dev eth0

这里写图片描述
这里写图片描述


因为server2,server3都有172.25.66.100的ip地址,所以根据arp协议,三个IP均是100在同一个局域网(vlan)会有偶然性,谁先访问就是谁的mark地址。不管当server2还是server3与外界所访问的makr地址相同(如果与server2的mark地址相同那么外界访问时一直出现的都是server2在httpd默认发布目录下所写的内容),都会影响到调动器的访问。
现在我们只允许让server1调动器上的172.25.66.100 对外访问,其他的不可以:
有两种办法
第一、控制内核响应
第二、在server2,和server3上丢弃.100的ip

6)在上面的基础上 将server2和server3的100全部不对外访问 用arptables_jf规则实现;

这里写图片描述
这里写图片描述
7)curl 172.25.66.100真机测试查看通过server1调度器实现访问server2和server3轮询
这里写图片描述

在网页进行测试每刷新一次就会发生轮询:(记得在/etc/hosts增加解析)

这里写图片描述
这里写图片描述

步骤二:上面的操作无法实现健康检查;如何实现

1)server1安装ldiretord服务

[root@server1 ~]# cd /home/
[root@server1 home]# ls
ldirectord-3.9.5-3.1.x86_64.rpm
[root@server1 home]# yum install -y ldirectord-3.9.5-3.1.x86_64.rpm 

2)复制配置文件到指定目录cp /usr/share/doc/ldirectord版本号/ldirectord.cf /etc/ha.d/
这里写图片描述
3)更改这个配置文件,如下图
这里写图片描述

4)将server2或者server3的apache服务停止一个 ,在真机测试的时候不会进行轮询,server2的阿帕其已经关闭:但是缺少健康检查

[root@foundation66 Desktop]# curl 172.25.66.100
curl: (7) Failed connect to 172.25.66.100:80; Connection refused
[root@foundation66 Desktop]# curl 172.25.66.100
bbs.westos.org

5)为了清楚访问效果,填写server1文件
这里写图片描述
这里写图片描述
6)将apache端口由8080改为80
这里写图片描述
这里写图片描述
7)在真机测试已经有了健康维护
这里写图片描述

步骤三:通过keepalived实现健康检查和高可用(高可用集群和负载均衡集群)
安装keepalived软件的原因就是防止调度器出现错误导致整个系统崩溃

1)网上找到keepalived安装包

2)tar解压 源码编译./configure –prefix=/usr/local/keepalived –with-init=SYSV
这里写图片描述
编译过程中缺少什么就去网上查看相应的包
make
make&&make insatll完成安装

如果出现了error
[root@server1 keepalived-2.0.6]# make
make: *** No targets specified and no makefile found.  Stop.
[root@server1 keepalived-2.0.6]# make install
make: *** No rule to make target `install'.  Stop.
则
[root@server1 keepalived-2.0.6]# yum install openssl -y
[root@server1 keepalived-2.0.6]# yum install openssl-devel -y

[root@server1 keepalived-2.0.6]# ./configure --prefix=/usr/local/keepalived --with-init=SYSV
[root@server1 keepalived-2.0.6]# make
[root@server1 keepalived-2.0.6]# make install

就可以了。

3)为了方便调用,我们建立四个连接,并赋予执行权限,并把这个文件直接发送给之后高可用要使用的server4
这里写图片描述
这里写图片描述
这里写图片描述
4)server4同样执行上面的操作4个连接1个执行权限
这里写图片描述
这里写图片描述
5)编辑/etc/keepalived/keepalived.conf配置文件,并将之前添加的虚拟ip移除,因为一会会自动生成;
这里写图片描述
这里写图片描述
这里写图片描述
6)server1作为MASTER(优先级设为100),server4作为BACKUP(优先级设为50)

这里写图片描述
这里写图片描述

7)在server1关闭服务破坏内核使其不能工作

这里写图片描述

8)此时,server4会接管server1的 调动器的工作。

这里写图片描述

9)当关掉server2和server3的apache服务的时候,在真机测试本地不会接替让VS访问。

猜你喜欢

转载自blog.csdn.net/janenancy/article/details/81286441
今日推荐