LVS
健康检测
对于一台后端服务器来说,它不可能永远是可以使用的,有自己的寿命或者会出现其它问题
当LVS集群中的一台后备服务器挂了之后,为了不影响客户的正常访问,应该将它从集群当中踢出去,让客户不再轮询访问
调度器只把客户端的请求转发给状态好的那台服务器,否则客户端是一会可以访问,一会不能访问
实际的企业当中,一个集群的服务器上面的资源一模一样,访问哪个客户根本感觉不到
如果LVS集群当中所有的后备服务器都挂了,为了不影响客户的正常访问,在调度器上面也安装一个http服务
当客户端访问调度器的时候,调度器直接通过自己的http服务告诉客户服务器坏了
搭建DR模式环境
lVS主服务器(server1): 192.168.1.1/24 192.168.1.100/24
修改server1的ip地址,并且添加虚拟ip地址
server2: 192.168.1.2/24 192.168.1.100/32
修改server2的ip地址,并且添加虚拟ip地址
server3: 192.168.1.3/24 192.168.1.100/32
修改server3的ip地址,并且添加虚拟ip地址
lVS备服务器(server4): 192.168.1.4/24 192.168.1.100/24
修改server4的ip地址,并且添加虚拟ip地址
systemctl stop firewalld
关闭 firewall
setenforce 0
关闭 SELinux
server1
yum install -y ipvsadm
安装 ipvsadm
vim /etc/sysconfig/ipvsadm-config
修改LVS服务的配置文件:no->yes
重启服务的时候保存策略
systemctl start ipvsadm
首次开启会报错,无法开启服务
cat /var/log/messages
在日志里面查看服务启动错误的原因
touch /etc/sysconfig/ipvsadm
建立编写策略的文件
systemctl start ipvsadm
再次开启服务,正常
systemctl enable ipvsadm
开启自启
设置DR模式的访问策略
ipvsadm -A -t 192.168.1.100:80 -s rr
添加vip
-A
:添加虚拟服务器
-t
:指定vip及tcp端口
-s
:指定算法
rr
:轮询
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2:80 -g -w 1
ipvsadm -a -t 1192.168.1.100:80 -r 192.168.1.3:80 -g -w 1
-a
:添加节点
-t
:指定vip和端口
-r
:指定节点ip及端口
-m
:表示使用NAT模式
-w
:设置权重
ipvsadm -ln
查看当前节点信息
systemctl restart ipvsadm
重启服务
server2
yum install -y http
安装 http
systemctl start httpd
开启
systemctl enable httpd
开机自启
vim /var/www/html/index.html
建立测试页面
server2.example.com
测试页面内容
yum install -y arptables
安装 arptables
arptables -nL
查看策略
设置arptables的访问策略
arptables -A INPUT -d 192.168.1.100 -j DROP
192.168.1.100来源输入全部丢弃
arptables -A OUTPUT -s 192.168.1.100 -j mangle --mangle-ip-s 192.168.1.2
192.168.1.100输出转化为192.168.1.2
cat /etc/sysconfig/arptables
查看规则
arptables-save > /etc/sysconfig/arptables
保存策略
cat /etc/sysconfig/arptables
再次查看,策略已保存
systemctl restart arptables
重启服务
server3
yum install -y http
安装 http
systemctl start httpd
开启
systemctl enable httpd
开机自启
vim /var/www/html/index.html
建立测试页面
server3.example.com
测试页面内容
yum install -y arptables
安装 arptables
arptables -nL
查看策略
设置arptables的访问策略
arptables -A INPUT -d 192.168.1.100 -j DROP
192.168.1.100来源输入全部丢弃
arptables -A OUTPUT -s 192.168.1.100 -j mangle --mangle-ip-s 192.168.1.3
192.168.1.100输出转化为192.168.1.3
cat /etc/sysconfig/arptables
查看规则
arptables-save > /etc/sysconfig/arptables
保存策略
cat /etc/sysconfig/arptables
再次查看,策略已保存
systemctl restart arptables
重启服务
server1
安装 ldirectord-*.rpm
该安装包需要高可用 HighAvailability 安装源
rhel7.X版本光盘镜像中的 /addons/HighAvailability 下面
搭建 HighAvailability yum 源
yum ldirectord-*.rpm -y
安装
rpm -qpl ld
查看
cp /usr/share/doc/ldirectord-*/ldirectord.cf /etc/ha.d/
复制 ldirectord 配置文件模板到 /etc/ha.d/ 下面
vim /etc/ha.d/ldirectord.cf
编辑配置文件
/etc/init.d/ldirectord start脚本方式启动服务(企业6)
virtual=192.168.1.100:80
real=192.168.1.2:80 gate
real=192.168.1.3:80 gate
fallback=127.0.0.1 gate
service=http
scheduler=rr
protocol=tcp
checktype=negotiate
checkport=80
request="index.html"
yum install -y http
安装 http
vim /var/www/html/index.html抱歉~网页无法打开,请稍后访问!!!
systemctl start httpd
开启
systemctl enable httpd
开机自启
systemctl restart httpd
重启
测试
server2
systemctl stop httpd
server3
systemcrl stop httpd
curl 192.168.1.100
访问显示结果(显示server1中 http服务 页面内容):抱歉~网页无法打开,请稍后访问!!!