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

18.11 LVS DR模式搭建
18.12 keepalived + LVS
18.13扩展
18.14课堂笔记 
 
18.11 LVS DR模式搭建
准备工做
三台机器
分发器,也叫调度器(简写为dir)
#将上个实验rs一、rs2的网关改回来
233.150
rs1
233.129
rs2
233.132
vip
233.200
 
DR模式搭建
一、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
 
二、两台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
 
三、分别在dir上和两个rs上执行这些脚本
dir上执行
sh /usr/local/sbin/lvs_dr.sh 
 
rs上执行
sh  /usr/local/sbin/lvs_rs.sh
 
四、测试
浏览器访问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的目的:
一、lvs的分发器宕机,给分发器作高可用
二、使用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
 
一、编辑keepalived配置文件 
vim /etc/keepalived/keepalived.conf
#须要更改里面的ip信息(将虚拟ip和虚拟serverip所有改为vip200的ip)
virtual_ipaddress和virtual_server的改成192.168.233.200(vip200)
而后修改两个rs(real_server)的ip
 
二、执行ipvsadm -C  把以前的ipvsadm规则清空掉
ipvsadm -C 
 
三、systemctl restart network 能够把以前的vip清空掉
两台rs上,依然要执行/usr/local/sbin/lvs_rs.sh脚本
systemctl restart network
 
sh /usr/local/sbin/lvs_rs.sh       #两台rs上都要执行
 
#keepalived有一个比较好的功能,能够在一台rs宕机时,再也不把请求转发过去
 
四、测试
浏览器访问vip200(192.168.233.200)
 
 
 
18.13扩展
nginx、lvs、haproxy比较  http://www.csdn.net/article/2014-07-24/2820837
keepalived中自定义脚本 vrrp_script  http://my.oschina.net/hncscwc/blog/158746
lvs dr模式只使用一个公网ip的实现方法  http://storysky.blog.51cto.com/628458/338726
 
 
18.14课堂笔记 
1、keepalived高可用
keepalived启动nginx失败的缘由主要在监控脚本上:
一、脚本是否能够成功运行
二、脚本文件是否有运行权限
 
2、负载均衡集群
 NAT模式经过iptables的nat表转发到rs; IP Tunnel模式经过修改目标ip地址到rs;DR模式经过修改MAC地址
 
 Tunnel模式: 分发器只负责收回数据包,不发送
 
LVS  DR模式
缺点:须要保证rs和分发器在同一物理网络里(跨机房局部性了)
 
 
3、拓展
高可用 keepalived
 
 
负载均衡 LVS
 
扩展:
VRRP协议
 
keepalived邮件告警
 
LVS 三种模式图解
 
LVS算法 DH
 
 
arp_ignore和arp_announce
相关文章
相关标签/搜索