LVS DR模型
1,环境
VMWare10, CentOS6.3
2,LVS DR网络规划

所有机器都只需要一张网卡,给Director的eth0网卡起个别名eth0:1即VIP的值;给RealServer的lo网卡起个别名lo:0,地址指向VIP
VIP: 虚拟IP,终端用户在浏览器端输入VIP,Director通过lvs调度算法将请求转给Real Server
RIP: Real Server的IP
3,Director配置
3.1,lvs软件安装
检查内核是否加载了ipvs模块:
# lsmod | grep ip_vs如果没有加载,则手动加载:
# modprobe ip_vs安装ipvsadm
sudo yum install ipvsadm
3.2,配置网卡
# setup
setup之后最终效果如下:
网卡eth0: (使用VMware NAT模式连接网络)
ip : 192.168.22.128
mask: 255.255.255.0
gateway: 192.168.22.2(VMware NAT的网关IP)网卡eth0别名: eth0:1 (别名是通过后面的脚本来配置)
ip: 192.168.22.222 (VIP)
mask: 255.255.255.0设置Director路由转发
net.ipv4.ip_forward=1
3.3,ipvsadm命令、启动脚本
ipvsadm命令
1, 添加/编辑集群服务
-A|E -t|u|f vip:port -s SCHEDULE_METHOD
A|E: 添加|编辑
-t|u|f: tcp|udp|firewall
vip:port: 集群服务
-s: 指定调度算法(默认wlc)wlc | wrr | rr2, 删除集群服务
-D -t|u|f vip:port3, 添加/编辑Real Server
-a|e -t|u vip:port -r rip:port -g|i|m -w weight
-a|e: 添加|修改realserver
-t|u: tcp|udp
vip:port 同上
-r rip:port: 指定Real Server的ip及服务端口
-g|i|m: 指定lvs模型, g: 默认gateway直接路由(director routing); i: internet turn隧道; m: nat地址伪装
-w weight: 指定此Real Server的权重4, 删除realserver
-d -t|u vip:port -r rip:port5, 查看当前的规则
-L -n --stats/rate6, 清空规则
-C7, 保证机器重启依然生效
service ipvsadm save
编写一个shell脚本,避免每次都输入命令:
director.sh
#!/bin/bash
#description: Config director
VIP=192.168.22.222
RIP1=192.168.22.131
RIP2=192.168.22.132
case "$1" in
start)
#**配置别名保存vip, vip只跟自己通信**
ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up
route add -host $VIP dev eth0:1 #如果目标是vip,则通过eth0:1出去。
echo 1 > /proc/sys/net/ipv4/ip_forward #打开路由转发
/sbin/iptables -F #清空iptables,iptables与ipvsadm不能同时用
/sbin/iptables -Z #重置iptables
/sbin/ipvsadm -C #清空ipvsadm
ipvsadm -A -t $VIP:80 -s wrr
ipvsadm -a -t $VIP:80 -r $RIP1:80 -w 1 -g
ipvsadm -a -t $VIP:80 -r $RIP2:80 -w 1 -g
echo "ipvsadm start ok"
;;
stop)
ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 down
echo 0 > /proc/sys/net/ipv4/ip_forward
/sbin/ipvsadm -C
echo "ipvsadm stoped"
;;
status)
isrunning=`ipvsadm -L -n | grep $VIP`
if [ ! "$isrunning" ]; then
echo "ipvsadm is stoped..."
else
echo "ipvsadm is running..."
ipvsadm -L -n
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0
start: sh director.sh start
stop: sh director.sh stop
status: sh director.sh status
4,Real Server配置
4.1, 配置网卡
这里只把Real Server 1的配置列出来,Real Server 2配置步骤与此相同。
# setup
setup之后最终效果如下:
网卡eth0: (使用VMware NAT模式连接网络)
ip: 192.168.22.131
mask: 255.255.255.0
gateway: 192.168.22.2(VMware NAT的网关IP)
4.2, 安装web服务
安装nginx/apache/...,步骤省略
安装完后启动web服务
查看服务是否启动
# netstat -tnlp
4.3, 启动脚本
用脚本完成对lo网卡的别名操作:
director.sh
VIP=192.168.22.222
case "$1" in
start)
/sbin/ifconfig lo down
/sbin/ifconfig lo up
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
echo "realserver start ok"
;;
stop)
/sbin/ifconfig lo:0 down
/sbin/route del $VIP >/dev/null 2>&1
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo "realserver stoped"
;;
status)
islothere=`/sbin/ifconfig lo:0 | grep $VIP`
isrothere=`netstat -rn | grep "lo" | grep $VIP`
if [ ! "$islothere" -o ! "$isrothere" ]; then
echo "LVS-DR real server stopped."
else
echo "LVS-DR real server running."
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0
start: sh realserver.sh start
stop: sh realserver.sh stop
status: sh realserver.sh status
5, 测试
至此LVS NAT环境搭建完成,我们来测试一下:
在浏览器中输入VIP来访问:
http://192.168.22.222/index.html使用linux提供的并发测试命令来测试lvs调度情况:
ab -c 100 -n 1000 http://192.168.22.222/index.html可以修改lvs调度算法
ipvsadm -E -t 192.168.22.222:80 -s wrr
ipvsadm -E -t 192.168.22.222:80 -s rr查看lvs调度情况
ipvsadm -L -n --stats|rate
LVS DR模型的更多相关文章
- lvs dr 模型配置详解
前期准备: 两台服务器 note01(lvs服务器) note02(real sever) 1 首先在note01配置子网卡: ifconfig eth0: :2意思是eth0的子接口,随便一个数字就 ...
- LVS DR模型RS端修改配置脚本
#!/bin/bash vip=x.x.x.x in start) > /proc/sys/net/ipv4/conf/all/arp_ignore > /proc/sys/net/ipv ...
- LVS简单实现NAT&DR模型
LVS:Linux Virtual Server 一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org. 现在LVS已经是Linux标准内核的一部分 ...
- 负载均衡集群之LVS的DR模型详解(Diretor Routing)
LVS的默认模型:默认模型DR DR模型原理图--> 在讲DR模型要点之前,需要了解网络的相关知识: 接收的报文拆解顺序:帧(MAC)-->数据包(IP)-->数据报文(port) ...
- LVS的DR模型配置
LVS的DR模型配置 介绍 下图为DR模型的通信过程,图中的IP不要被扑结构中的IP迷惑,图里只是为了说明DR的通信原理,应用到本例中的拓扑上其工作原理不变. 拓扑结构 服务器 IP地址 角色 Srv ...
- LVS负载均衡器DR模型的实现
概述: 在大规模互联网应用中,负载均衡设备是必不可少的一个节点,源于互联网应用的高并发和大流量的冲击压力,我们通常会在服务端部署多个无状态的应用服务器和若干有状态的存储服务器(数据库.缓存等等) 一. ...
- LVS之NAT模型、DR模型配置和持久连接
前言:继LVS概述,本篇实现NAT模型和DR模型下的负载均衡. NAT模型: LVS-NAT基于cisco的LocalDirector.VS/NAT不需要在RealServer上做任何设置,其只要能提 ...
- LVS跨网段DR模型
客户端IP地址:172.16.8.147 路由器服务器IP地址:172.16.8.167内网IP地址:192.168.1.3 一.将客户端的网关修改为路由服务器IP地址 vim ifcfg-ens33 ...
- LVS nat模型+dr模型
nat模型 在 rs1 和 rs2 安装httpd 并配置测试页,启动 [root@rs1 ~]# yum install httpd -y[root@rs1 ~]# echo "thi ...
随机推荐
- php 连接字符串. ZEND_ASSIGN_CONCAT/ZEND_CONCAT原理
0.php代码 <?php $a='abc'; $b='def'; $c='ghi';$d='jkl'; $a.=$b.$c.$d; 1.BNF范式(语法规则) expr_without_var ...
- C# 分布式缓存服务器方案
- (转载)关于gcd的8题
发现其实有关gcd的题目还是挺多的,这里根据做题顺序写出8题. [bzoj2818: Gcd] gcd(x,y)=质数, 1<=x,y<=n的对数 做这题的时候,懂得了一个非常重要的转化: ...
- HDU 5874 Friends and Enemies 【构造】 (2016 ACM/ICPC Asia Regional Dalian Online)
Friends and Enemies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ...
- [Bhatia.Matrix Analysis.Solutions to Exercises and Problems]ExI.3.6
If $A$ is a contraction, show that $$\bex A^*(I-AA^*)^{1/2}=(I-A^*A)^{1/2}A^*. \eex$$ Use this to sh ...
- UMDF
看了一周的UMDF,今天就将这些天的心得记下来. 一开始,老大推荐看<竹林蹊径:深入浅出Windows驱动开发完美补全版.张佩马勇董鉴源.扫描版>.这本书看了前三章,这本书讲的太细,作者又 ...
- delphi通过OLE对word进行单元格合并操作
uses comobj, word2000procedure TForm1.Button2Click(Sender: TObject);var WordApp, WordDoc,table: OleV ...
- java语言实现简单接口工具--粗简版
2016注定是变化的一年,忙碌.网红.项目融资失败,现在有点时间整整帖子~~ 目标: 提高工作效率与质量,能支持平台全量接口回归测试与迭代测试也要满足单一接口联调测试. 使用人员: 测试,开发 工具包 ...
- e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (一) 京东 商品搜索
之前有发布一篇文章“e2e 自动化集成测试 环境搭建 Node.js Selenium WebDriverIO Mocha Node-Inspector”, 主要是讲了,如何搭建环境, 其中开发环境使 ...
- Crash的旅行计划
除草了.. Crash的旅行计划 [问题描述] 过不了多久,Crash就要迎来他朝思暮想的暑假.在这个暑假里,他计划着到火星上旅游.在火星上有N个旅游景点,Crash用1至N这N个正整数对这些景点标号 ...