第十八章、Linux及集群架构(下)

18.11 LVS DR模式搭建
18.12 keepalived + LVS
18.13扩展
18.14课堂笔记 
 
18.11 LVS DR模式搭建
准备工作
三台机器
分发器,也叫调度器(简写为dir)
#将上个实验rs1、rs2的网关改回来
233.150
rs1
233.129
rs2
233.132
vip
233.200
 
DR模式搭建
1、dir上编写脚本 
vim /usr/local/sbin/lvs_dr.sh 
#内容如下
#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.233.200
rs1=192.168.233.129
rs2=192.168.233.132
ifdown ens33
ifup  ens33
#注意这里的网卡名字(虚拟网卡)这条命令设置一个虚拟网卡
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev ens33:2
$ipv -C
$ipv -A -t $vip:80 -s wrr
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
 
2、两台rs上也编写脚本 
vim /usr/local/sbin/lvs_rs.sh
#内容如下
#/bin/bash
vip=192.168.233.200
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifdown lo
ifup lo
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
 
3、分别在dir上和两个rs上执行这些脚本
dir上执行
sh /usr/local/sbin/lvs_dr.sh 
 
rs上执行
sh  /usr/local/sbin/lvs_rs.sh
 
4、测试
浏览器访问vip200(192.168.233.200)
 
ipvsadm -ln       #查看ipvsadm的规则
[root@xinlinux-03 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.233.200:80 wrr
  -> 192.168.233.129:80           Route   1      0          4
  -> 192.168.233.132:80           Route   1      0          5
 
18.12 keepalived + LVS
keepalived + LVS的目的:
1、lvs的分发器宕机,给分发器做高可用
2、使用lvs时(无其他额外操作),如将一个rs机器关机,当用户访问到这个关机的rs时会出现问题;这说明lvs不够“聪明”,即使后端的rs宕机,也会继续把请求发送过去;当增加keepalived后,可以发送请求时能检测rs是否宕机,如果宕机了,便不再发送请求到宕机的rs上。
 
 
完整架构需要两台服务器(角色为dir)分别安装keepalived软件,目的是实现高可用,但keepalived本身也有负载均衡的功能,所以本次实验可以只安装一台keepalived
keepalived内置了ipvsadm的功能,所以不需要再安装ipvsadm包,也不用编写和执行那个lvs_dir的脚本
三台机器分别为:
dir(安装keepalived)233.150
rs1 233.129
rs2 233.132
vip 233.200
 
1、编辑keepalived配置文件 
vim /etc/keepalived/keepalived.conf
#需要更改里面的ip信息(将虚拟ip和虚拟serverip全部改成vip200的ip)
virtual_ipaddress和virtual_server的改为192.168.233.200(vip200)
然后修改两个rs(real_server)的ip
 
2、执行ipvsadm -C  把之前的ipvsadm规则清空掉
ipvsadm -C 
 
3、systemctl restart network 可以把之前的vip清空掉
两台rs上,依然要执行/usr/local/sbin/lvs_rs.sh脚本
systemctl restart network
 
sh /usr/local/sbin/lvs_rs.sh       #两台rs上都要执行
 
#keepalived有一个比较好的功能,可以在一台rs宕机时,不再把请求转发过去
 
4、测试
浏览器访问vip200(192.168.233.200)
 
 
 
18.13扩展
keepalived中自定义脚本 vrrp_script http://my.oschina.net/hncscwc/blog/158746
lvs dr模式只使用一个公网ip的实现方法 http://storysky.blog.51cto.com/628458/338726
 
 
18.14课堂笔记 
一、keepalived高可用
keepalived启动nginx失败的原因主要在监控脚本上:
1、脚本是否可以成功运行
2、脚本文件是否有运行权限
 
二、负载均衡集群
 NAT模式通过iptables的nat表转发到rs; IP Tunnel模式通过修改目标ip地址到rs;DR模式通过修改MAC地址
 
 Tunnel模式:分发器只负责收回数据包,不发送
 
LVS  DR模式
缺点:需要保证rs和分发器在同一物理网络里(跨机房局部性了)
 
 
三、拓展
高可用 keepalived
 
 
负载均衡 LVS
 
扩展:
VRRP协议
 
keepalived邮件告警
 
LVS 三种模式图解
 
LVS算法 DH
 
 
arp_ignore和arp_announce
 
 
 
posted @ 2018-10-18 08:56  最爱吃菜  阅读(175)  评论(0编辑  收藏  举报