一、部署环境:

  • 服务器版本:CentOS6.5(Finnal)

  • 网络拓扑:

二、需求分析:调度服务器与网页服务器均在同一网段局域网环境,用户提交的请求会经过调度器的分配指定到网页服务器,同时保证服务高可用性(任意一台网站服务器宕机后调度器会剔除它直至服务器恢复至正常;主调度器宕机后从调度器会接管它直至其恢复正常。)。

三、相关配置:

  • 部署调度器LVS服务脚本:

#!/bin/sh
mkdir tools
cd tools/
# yum install lrzsz
# rz
# ls
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
# ls -lrt
tar zxvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
# ls
# uname -r
ln -s /usr/src/kernels/2.6.32-431.17.1.el6.x86_64 /usr/src/linux
# ll /usr/src/ |grep linux
# ls
make
make install
ipvsadm
# lsmod|grep ip_vs
  • 调度器配置脚本:

#!/bin/sh
# ipvs_ctl  Start/Stop ipvsadm portmapper
#
# chkconfig: 345 96 97
#
# description: IPVSadm
#
# processname: ipvs_ctl#create by stephen#2014-07-01
VIP=(192.168.2.29# 192.168.2.28
)
RIP=(192.168.2.19192.168.2.20
)
GW=192.168.2.1. /etc/init.d/functionsstart(){
for ((i=0;i<${#VIP[*]};i++))
doifconfig eth1:$i ${VIP[$i]} broadcast ${VIP[$i]} netmask 255.255.255.255 up# ifconfig eth1:$iroute add -host ${VIP[$i]} dev eth1:$i# echo "1" >/proc/sys/net/ipv4/ip_forwardipvsadm -Cipvsadm -A -t ${VIP[$i]}:80 -s rr -p 600for ((j=0;j<${#RIP[*]};j++))doipvsadm -a -t ${VIP[$i]}:80 -r ${RIP[$j]}:80 -gdone# ipvsadm
done
}stop(){
for ((i=0;i<${#VIP[*]};i++))
doifconfig eth1:$i down# route del -host ${VIP[$i]} dev eth1:$i# ipvsadm -Cipvsadm -D -t ${VIP[$i]}:80for ((j=0;j<${#RIP[*]};j++))doarping -c 1 -I eth1 -s ${VIP[$i]} $GW >/dev/null 2>&1done
done
}case "$1" in
start)action "ipvs started" /bin/truestart
;;
stop)action "ipvs stopped" /bin/truestop
;;
*)echo "Usage:$0 {start|stop}"
;;
esac
  • 真实服务器配置脚本:

#!/bin/sh
# created by stephen#2014-07-01# description: config real server lo and apply non-arpVIP=(192.168.2.29# 192.168.2.28
). /etc/init.d/functionsstart(){for ((i=0;i<${#VIP[*]};i++))doifconfig lo:$i ${VIP[$i]} broadcast ${VIP[$i]} netmask 255.255.255.255 upifconfig lo:$iroute add -host ${VIP[$i]} dev lo:$idoneecho "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announce
}stop(){for ((i=0;i<${#VIP[*]};i++))doifconfig lo:$i downdoneif [ ${#VIP[*]} -le 1 ];thenecho "0" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "0" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/all/arp_announce   fi
}
case "$1" in
start)action "realserver vip is tied" /bin/truestart
;;
stop)action "realserver vip is canceled" /bin/truestop
;;
*)echo "Usage:$0 {start|stop}"
;;
esac
  • 真实服务器高可用性配置脚本:

#!/bin/sh
#created by stephen#2014-07-02
VIP=192.168.2.29
PORT=80
RIP=(192.168.2.19192.168.2.20
)
while true
dofor ((i=0;i<${#RIP[*]};i++))doPORT_COUNT=`nmap ${RIP[$i]} -p $PORT|grep open|wc -l`if [ $PORT_COUNT -ne 1 ];thenif [ `ipvsadm -Ln|grep ${RIP[$i]}|wc -l` -ne 0 ];thenipvsadm -d -t $VIP:$PORT -r ${RIP[$i]}:$PORT >/dev/null 2>&1fielseif [ `ipvsadm -Ln|grep ${RIP[$i]}|wc -l` -eq 0 ];thenipvsadm -a -t $VIP:$PORT -r ${RIP[$i]}:$PORT -gfifidonesleep 10
done
  • 调度器高可用性配置脚本:

#!/bin/sh
#created by stephen#2014-07-02
DIP=192.168.2.21
VIP=192.168.2.29
PORT=22
while true
doPORT_COUNT=`nmap $DIP -p $PORT|grep open|wc -l`if [ $PORT_COUNT -ne 1 ];thenif [ `ipvsadm -Ln|grep $VIP|wc -l` -eq 0 ];then/etc/init.d/ipvs_ctl startfielseif [ `ipvsadm -Ln|grep $VIP|wc -l` -eq 1 ];then/etc/init.d/ipvs_ctl stopfi  fisleep 5
done
  • 其他

1. 开启80端口:

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart

2. 配置完调度器后,修改其执行权限并把配置文件添加到自启动项:

cp ipvs_ctl /etc/init.d/ipvs_ctl
chmod 700 /etc/init.d/ipvs_ctl
chkconfig --add ipvs_ctl
chkconfig --list|grep ipvs

3. 由于我们是通过查看服务器端口开启状况来实现探测的,在这里会使用到nmap:

yum install nmap -y

4. 修改调度器高可用性配置文件执行权限,并在后台执行,以及查看、取消后台进程命令:

chmod 700 check_lb.sh
sh check_lb.sh &
watch ipvsadm -Ln --stats
jobs
fg

5. 使用tcpdump抓包分析网络流量:

tcpdump -i eth1 tcp port 80 -s 1500

转载于:https://blog.51cto.com/zhoufwind/1433684

LVS学习笔记--DR模式部署相关推荐

  1. LVS负载均衡DR模式部署

    目录: 1. 拓扑图 2. 搭建环境 3. LVS服务器部署 4. 测试 1. 拓扑图 LVS-DR模式采的IP地址全部为外网IP. 本例中IP的设置全部采用临时设置IP的方式,重启后会失效. 用户请 ...

  2. LVS+Keepalived之DR模式配置

    LVS+Keepalived之DR模式配置 理论基础 LVS直接配置DR模式,会存在一个问题,LVS负载均衡器是单点,容易发生单点故障,这样就会造成所有的服务都无法访问,这是不能容忍的. 解决单点故障 ...

  3. OGG学习笔记04-OGG复制部署快速参考

    OGG学习笔记04-OGG复制部署快速参考 源端:Oracle 10.2.0.5 RAC + ASM 节点1 Public IP地址:192.168.1.27 目标端:Oracle 10.2.0.5 ...

  4. php lvs,LVS(四)LVS集群DR模式

    LVS集群DR模式 系统:CentOS-7-x86_64-Minimal-1611.iso 三台虚拟机网络规划: Director (桥接网卡) enp0s3DIP:192.168.43.201 19 ...

  5. CAS单点登录学习笔记二之部署CAS Server

    CAS Server 服务器部署 [b]简介[/b] CAS Server 是一套基于 Java 实现的服务,该服务以一个 Java Web Application 单独部署在与 servlet2.3 ...

  6. 设计模式 - 学习笔记 - 工厂模式Factory Pattern

    设计模式 - 学习笔记 - 工厂模式Factory Pattern 1. 简单工厂 1.1 应用场景 1.2 UML 1.3 优劣分析 好处 缺点 1.4 代码示例 抽象产品 AbstractProd ...

  7. LVS学习笔记--概念

    最近在学习南非蚂蚁大大的博客上的一些文章,主要在学习LVS,现在就是将自己学习到的内容记录下来,做一个学习笔记与大家分享. 南非蚂蚁大大的博客是http://ixdba.blog.51cto.com ...

  8. Python学习笔记:Day15 部署Web App

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  9. LVS学习笔记及总结(思维导图版)

    下图是我在跟随马哥的脚步学习LVS过程中的学习笔记,以此为蓝本总结的,若有不足之处请谅解! 转载于:https://blog.51cto.com/kalaguiyin/1703954

最新文章

  1. CSVHelper在Asp.Net MVC中的使用
  2. C#进行MapX二次开发之鹰眼实现
  3. STM32开发 -- PMIC、I2C详解
  4. 防火墙(10)——禁止含有某些敏感字段发出去、限制连接数量(单ip地址)
  5. where is page layout xml template being initialized - hard code in ctr
  6. 为对抗训练的理论工作添砖加瓦:选择核心子集进行训练,大大缩短训练时间...
  7. 基于报文大小的策略路由
  8. 如何修复MySQL配置文件?
  9. Siemens M65...
  10. 20172301 2017-2018-2 《程序设计与数据结构》第十周学习总结
  11. Windows10无法修改图标字体和菜单栏字体问题 —— regedit注册表修改
  12. Ubuntu本地hosts泛解析
  13. 所发生的分手快乐东风
  14. 北大igem生物计算机,北京大学iGEM团队在2018国际大赛中再获佳绩
  15. 深度测评Skype和有话通网络电话哪个好
  16. (原创、不是重复文章)xxx GiB reserved in total by PyTorch的问题
  17. vue3中不支持filters过滤器
  18. 关于RxJava防抖操作
  19. 基于Xilinx XCZU9EG与ADRV9009 开源无线通信算法验证平台
  20. 计算机等级考试二级office考点教材+课程资料+考试题库软件

热门文章

  1. Docker容器镜像删除不掉解决办法?
  2. php和js搜索框,利用PHP+JS实现搜索自动提示(实例)_php技巧
  3. [Ext JS6] Grid 某些行不允许删除和选择的实现
  4. Java 数字签名原理及产生
  5. Windows下使用taskkill 命令批量结束进程
  6. ShardingSphere RAW JDBC 分布式事务XA 代码示例
  7. ensp期末综合实验_时间表来了!洛阳中小学期末考试25日开始
  8. idea 添加servlet依赖_详解如何使用IntelliJ IDEA新建一个Servlet项目
  9. android没有蓝牙设备,【Android】没有触发LeScanCallback导致无法搜索到蓝牙设备
  10. IDEA代码自动换行