Centos中lvs DR搭建配置方法详解

关于LVS DR(Direct Root)模式

 DR 模式要求Director 和 RealServer在同一个网段上边, 用户通过VIP来访问我们服务, Director 接到用户的请求后, 会将请求的目标mac改为其中的一台Realserver上边,这样RealServer接收到请求处理之后就直接将内容返回给用户, 不用再走DirectorServer了.

机器准备

DirectServer: 192.168.1.200  
RealServer1: 192.168.1.202
RealServer2: 192.168.1.203
VIP: 192.168.1.200

两台realserver 上边都配置好静态IP,搭好了 lnmp , 具体如何配置静态IP和搭建和本文关心重点没有太大关系, 暂且按下不表.

安装lvs

 代码如下 复制代码

wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
tar -zxvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
ln -s  /usr/src/kernels/2.6.32-431.11.2.el6.x86_64/ /usr/src/linux   #一定一定要加这么个软链, 否则编译的时候找不到linux内核会报错
make

make install
安装完成之后, 敲命令 ipvsadm
 
说明安装成功, 妥妥地
配置Director
创建文件 /etc/init.d/lvsdr, 并赋予执行权限:

 代码如下 复制代码
#!/bin/sh
 
VIP=192.168.1.201
RIP1=192.168.1.203
RIP2=192.168.1.202
. /etc/rc.d/init.d/functions
case "$1" in
start)
  echo " start LVS  of DirectorServer"
  # set the Virtual  IP Address
   ifconfig eth3:0 $VIP/24
   #/sbin/route add -host $VIP dev eth3:0
   #Clear IPVS table
   /sbin/ipvsadm -c
  #set LVS
  /sbin/ipvsadm -A -t $VIP:80 -s rr # (如果需要session保持添加-p 默认保持300秒)
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
  #/sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 –g
  #Run LVS
  /sbin/ipvsadm
  #end
;;
stop)
 echo "close LVS Directorserver"
/sbin/ipvsadm -c
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac

 
执行: /etc/init.d/lvsdr start  启动

再ifconfig 看一下 eth3 上边已经绑了两个IP: 192.168.1.200 和 192.168.1.201

配置RealServer
新建文件 /etc/init.d/realserver 并赋予执行权限

 代码如下 复制代码
#!/bin/sh
VIP=192.168.1.201
 
. /etc/rc.d/init.d/functions
case "$1" in
start)
  echo " start LVS  of RealServer"
  echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
  echo 2 > /proc/sys/net/ipv4/conf/eth2/arp_announce
  echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
  echo 1 > /proc/sys/net/ipv4/conf/eth2/arp_ignore
  service network restart
  ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
  route add -host $VIP dev lo:0
 
  #end
;;
stop)
echo "close LVS Realserver"
service network restart
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
/etc/init.d/realserver

 启动,   ifconfig 看一下 lo的网卡上边已经把虚IP给绑上去了!

测试

每一台realserver上放不同的内容, 然后通过vip访问: http://192.168.1.201

时间: 2024-10-24 15:08:18

Centos中lvs DR搭建配置方法详解的相关文章

Centos6.5系统中RHCS集群配置方法详解

需要用到的各组件功能: RHCS(Red Hat Cluster Suite):能够提供高可用性.高可靠性.负载均衡.存储共享且经济廉价的集群工具集合. LUCI:是一个基于web的集群配置方式,通过luci可以轻松的搭建一个功能强大的集群系统. CLVM:Cluster逻辑卷管理,是LVM的扩展,这种扩展允许cluster中的机器使用LVM来管理共享存储. CMAN:分布式集群管理器. GFS(Google File System):以本地文件系统的形式出现.多个Linux机器通过网络共享存储

Redhat/CentOS通过yum安装与配置方法详解

1 检查当前Linux系统是否安装了vsftp  代码如下 复制代码 [root@localhost ~]#rpm -qa|grep vsftpd //若没有任何输出内容,则表示当前linux系统未安装vsftp. 2 安装vsftpd服务器 从redhat或者centos的安装镜像包的server/文件夹中提取出rpm包.(RHEL5.3中的是vsftpd-2.0.5-12.el5.i386.rpm,通过vmtools把它复制到root's home中去,然后执行如下命令:  代码如下 复制代

YUM解决RPM包安装依赖关系及yum工具介绍本地源配置方法详解_Linux

1.背景概述 在实际生产环境下,对于在linux系统上安装rpm包,主要面临两个实际的问题 1)安装rpm包过程中,不断涌现的依赖关系问题,导致需要按照提示或者查询资料,手工安装更多的包 2)由于内外网的隔离,无法连接外网的yum源 鉴于上述因此,本文将详细介绍,yum工具以及配置本地yum源的方法 2.yum工具简介 •yum工具作为rpm包的软件管理器,可以进行rpm包的安装.升级以及删除等日常管理工作,而且对于rpm包之间的依赖关系可以自动分析,大大简化了rpm包的维护成本. •yum工具

Linux crontab定时任务配置方法(详解)_Linux

CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行. cron 系统调度进程. 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行.cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业.crontab命令允许用户提交.编辑或删除相应的作业.每一个用户都可以有一个crontab文件来保存调度信息.系统管理员可以通过cron.deny 和 cron

mysql 5.6.13 免安装版配置方法详解_Mysql

1. 下载mysql Community Server 5.6.13 2. 解压MySQL压缩包 将以下载的MySQL压缩包解压到自定义目录下,我的解压目录是: "D:\Program Files\MySQL\mysql-5.6.13-win32" 将解压目录下默认文件 my-default.ini 拷贝一份,改名 my.ini 复制下面的配置信息到 my.ini 保存 #如果没有my-default.ini,可自己新建my.ini或者从其他地方中获取 ################

linux网站服务Apache的安装与配置方法详解_Linux

这篇文章介绍下linux网站服务apache的安装与配置方法,包括挂载光盘,安装http服务,管理httpd服务,httpd的配置文件几大部分.具体详情可以参考下文. 1.挂载光盘 自己习惯将光盘挂载在/media/cdrom目录,在做本地yum源的时候此目录为默认目录之一 [root@localhost /]# mount /dev/cdrom /media/cdrom/ 2.安装httpd服务(如果本地yum源已经搭建好就直接进行这一步,没有的话需要搭建,前面的文章有提到yum源的搭建) [

Lua中break语句的使用方法详解

  这篇文章主要介绍了Lua中break语句的使用方法详解,是Lua入门学习中的基础知识,需要的朋友可以参考下 当循环中遇到break语句,循环立即终止,程序控制继续下一个循环语句后面. 如果您正在使用嵌套循环(即一个循环里面另一个循环),break 语句将停止最内层循环的执行并开始执行的下一行代码的程序后段. 语法 Lua break语句语法如下: 代码如下: break 例子: 代码如下: --[ local variable definition --] a = 10--[ while l

js基础之DOM中元素对象的属性方法详解_javascript技巧

在 HTML DOM (文档对象模型)中,每个部分都是节点. 节点是DOM结构中最基本的组成单元,每一个HTML标签都是DOM结构的节点. 文档是一个    文档节点 . 所有的HTML元素都是    元素节点 所有 HTML 属性都是    属性节点 文本插入到 HTML 元素是    文本节点 注释是    注释节点. 最基本的节点类型是Node类型,其他所有类型都继承自Node,DOM操作往往是js中开销最大的部分,因而NodeList导致的问题最多.要注意:NodeList是'动态的',

JavaScript中关键字 in 的使用方法详解_javascript技巧

for-in循环应该用在非数组对象的遍历上,使用for-in进行循环也被称为"枚举". 对于数组 ,迭代出来的是数组元素 但不推荐,因为不能保证顺序,而且如果在Array的原型上添加了属性,这个属性也会被遍历出来,所以 最好数组使用正常的for循环,对象使用for-in循环 对于对象 ,迭代出来的是对象的属性: var obj = { "key1":"value1", "key2":"value2", &q