LVS学习笔记--DR模式部署

一、部署环境:

  • 服务器版本: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.19
	192.168.2.20
)
GW=192.168.2.1

. /etc/init.d/functions

start(){
for ((i=0;i<${#VIP[*]};i++))
do
	ifconfig eth1:$i ${VIP[$i]} broadcast ${VIP[$i]} netmask 255.255.255.255 up
	# ifconfig eth1:$i
	route add -host ${VIP[$i]} dev eth1:$i
	# echo "1" >/proc/sys/net/ipv4/ip_forward
	ipvsadm -C
	ipvsadm -A -t ${VIP[$i]}:80 -s rr -p 600
	for ((j=0;j<${#RIP[*]};j++))
	do
		ipvsadm -a -t ${VIP[$i]}:80 -r ${RIP[$j]}:80 -g
	done
	# ipvsadm
done
}

stop(){
for ((i=0;i<${#VIP[*]};i++))
do
	ifconfig eth1:$i down
	# route del -host ${VIP[$i]} dev eth1:$i
	# ipvsadm -C
	ipvsadm -D -t ${VIP[$i]}:80
	for ((j=0;j<${#RIP[*]};j++))
	do
		arping -c 1 -I eth1 -s ${VIP[$i]} $GW >/dev/null 2>&1
	done
done
}

case "$1" in
start)
	action "ipvs started" /bin/true
	start
;;
stop)
	action "ipvs stopped" /bin/true
	stop
;;
*)
	echo "Usage:$0 {start|stop}"
;;
esac
  • 真实服务器配置脚本:
#!/bin/sh
# created by stephen#2014-07-01

# description: config real server lo and apply non-arp

VIP=(
	192.168.2.29
	# 192.168.2.28
)

. /etc/init.d/functions

start(){
	for ((i=0;i<${#VIP[*]};i++))
	do
		ifconfig lo:$i ${VIP[$i]} broadcast ${VIP[$i]} netmask 255.255.255.255 up
		ifconfig lo:$i
		route add -host ${VIP[$i]} dev lo:$i
	done
	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
}

stop(){
	for ((i=0;i<${#VIP[*]};i++))
	do
		ifconfig lo:$i down
	done
	if [ ${#VIP[*]} -le 1 ];then
		echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
		echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
		echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
		echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
	fi
}
case "$1" in
start)
	action "realserver vip is tied" /bin/true
	start
;;
stop)
	action "realserver vip is canceled" /bin/true
	stop
;;
*)
	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.19
	192.168.2.20
)
while true
do
	for ((i=0;i<${#RIP[*]};i++))
	do
		PORT_COUNT=`nmap ${RIP[$i]} -p $PORT|grep open|wc -l`
		if [ $PORT_COUNT -ne 1 ];then
			if [ `ipvsadm -Ln|grep ${RIP[$i]}|wc -l` -ne 0 ];then
				ipvsadm -d -t $VIP:$PORT -r ${RIP[$i]}:$PORT >/dev/null 2>&1
			fi
		else
			if [ `ipvsadm -Ln|grep ${RIP[$i]}|wc -l` -eq 0 ];then
				ipvsadm -a -t $VIP:$PORT -r ${RIP[$i]}:$PORT -g
			fi
		fi
	done
	sleep 10
done
  • 调度器高可用性配置脚本:
#!/bin/sh
#created by stephen#2014-07-02
DIP=192.168.2.21
VIP=192.168.2.29
PORT=22
while true
do
	PORT_COUNT=`nmap $DIP -p $PORT|grep open|wc -l`
	if [ $PORT_COUNT -ne 1 ];then
		if [ `ipvsadm -Ln|grep $VIP|wc -l` -eq 0 ];then
			/etc/init.d/ipvs_ctl start
		fi
	else
		if [ `ipvsadm -Ln|grep $VIP|wc -l` -eq 1 ];then
			/etc/init.d/ipvs_ctl stop
		fi
	fi
	sleep 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

LVS学习笔记--DR模式部署,布布扣,bubuko.com

时间: 2025-01-18 11:52:24

LVS学习笔记--DR模式部署的相关文章

LVS负载均衡DR模式部署

目录: 1. 拓扑图 2. 搭建环境 3. LVS服务器部署 4. 测试 1. 拓扑图 LVS-DR模式采的IP地址全部为外网IP. 本例中IP的设置全部采用临时设置IP的方式,重启后会失效. 用户请求VIP,会由LVS服务器响应,分配至Real-Server服务器,真实服务器处理完后直接返回给用户,不再通过LVS服务器. 2. 搭建环境 (系统为 Centon 6.4 ) (1).LVS-server  IP:192.168.36.101 (2).Real-Server1 IP: 192.16

《Head First 设计模式》学习笔记——模板方法模式

模板方法模式是类的行为模式.准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现.这就是模板方法模式的用意. 设计模式 模板方法模式:在一个方法中定义一个算法的框架,而将一些步骤延迟到子类中.模板方法使得子类可以在不改变算法结果的情况下,重新定义算法中的某些步骤. 模板就是一个方法,这个方法将算法定义成一组步骤,其中的任何步骤都可以是抽象的,由子类负责实现.这样可以确

《Head First 设计模式》学习笔记——单件模式

设计模式 单件模式:确保一个类只有一个实例,并提供一个全局访问点. 要点 单件模式确保程序中一个类最多只有一个实例. 在Java中实现单件模式需要私有的构造器.一个静态方法.一个静态变量. 确定在性能和资源上的限制,然后小心翼翼的选择适当的方案来实现单件,以解决多线程问题. 全局变量缺点 如果将对象赋值给一个全局变量,那么必须在程序一开始就创建好对象.万一对象非常耗费资源,而程序在这次执行过程中并没有使用它,就形成了浪费. 单件模式 public class Singleton { //利用一个

LVS学习笔记之DR模式详细部署

服务器以及软件规划: linux服务器 :3台 系统版本 : centos 6.5 x86_64(1台是lvs 调度器,安装lvs调度软件,2台是RS服务器,运行web服务) 2.IP地址规划: LVS Server:             eth0:0   VIP:192.168.1.222/24 eth0     DIP:192.168.1.134/24 RS1:                          RS2:                            eth0  

LVS(dr)模式部署指南

由于DR模式中,VS/DR只负责数据的转发,而数据的返回则是由后端服务器直接返回给客户端,从而降低了VS/DR的负载,所以DR模式是大多数公司的第一选择. 以下是DR模式的官方网络拓扑: 从上图可以看中,后端服务器与dr之间,必须处于同一物理网段.但是根据TCP层的协议,如果数据包是客户端传向VIP的,那么客户端收到的也必须是VIP地址,所以在配置LVS后端服务器的时候,也需要配置VIP.而仅仅配置VIP也不能满足负载均衡本身的要求(在有任意一台服务器宕机时,另外的服务器可以随时托管业务),假如

负载均衡LVS概述以及DR模式简易部署

前言: 在做这个实验之前,总觉得高可用负载均衡很高大上,很难理解.随性我自己也去试试,后来发现真的是这样!或许因为我是新手,所以实验多以失败告终.加上自己的虚拟机环境很恶心,经常故障,不过最后还是简单地搭建了一个LVS.以下内容是我总结了大多个博文而来,文后注有博文来源. LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org.现在LVS已经是 Linux标准内

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

转自: http://www.07net01.com/2015/10/944377.html 下图是我在跟随马哥的脚步学习LVS过程中的学习笔记,以此为蓝本总结的,若有不足之处请谅解!

LVS负载均衡-DR模式

环境: DIR:172.16.115.100.172.16.115.200(虚拟IP,用于转发) RS1:172.16.115.157 RS2:172.16.115.202 cilent:172.16.115.* DIR主机 1. 安装lvs软件包ipvsadm和nginx,编辑hosts文件/etc/hosts,修改hostname为dr 阿里云扩展源wget http://mirrors.aliyun.com/repo/epel-6.repo  -P /etc/yum.repos.d/ 命令

LVS负载均衡DR模式+keepalived

实验拓扑: 实验准备: CentOS6.5-x86-64 node1 10.0.0.11    软件:ipvsadm+keepalived    角色:Director1 node2 10.0.0.12    软件:ipvsadm+keepalived    角色:Director2 node3 10.0.0.13    软件:nginx    角色:Realerver1 node4 10.0.0.14    软件:nginx    角色:Realerver2 一.在两台Director上安装配