一、环境准备

lvs负载均衡器    系统:centos6.8 ip:192.168.2.203  vip:192.168.2.17

web服务器RS1   系统:centos6.8 ip:192.168.2.204

web服务器RS2   系统:centos6.8 ip:192.168.2.204    

二、安装LVS软件

可以编译安装也可以yum安装,编译安装需要创建一个超链接:ln -s /usr/src/kernels/2.6.18-238.el5-i686 /usr/src/linux

这里选择yum方式安装

[root@bogon ~]# yum -y install ipvsadm
已加载插件:fastestmirror
设置安装进程
Determining fastest mirrors
... ...
已安装:
ipvsadm.x86_64 :1.26-.el6 作为依赖被安装:
libnl.x86_64 :1.1.-.el6 完毕!

查看ipvs模块是否加载

[root@bogon ~]# lsmod | grep ip_vs
[root@bogon ~]#

因为此时系统还没有把ipvs模块加载进系统,需要我们执行ipvsadm命令才会加载进去或者modprobe ip_vs。

[root@bogon ~]# ipvsadm
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@bogon ~]# lsmod | grep ip_vs
ip_vs
libcrc32c ip_vs
ipv6 ip_vs,ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6
[root@bogon ~]#

三、手动配置LVS负载均衡器

正常工作中是不会手动配置的,也不会使用脚本配置的。最终我们是通过配置文件生效的,结合keepalived来进行部署的。

[root@bogon ~]# ifconfig eth1: 192.168.2.17 netmask 255.255.255.0
[root@bogon ~]# route add -host 192.168.2.17 dev eth1

ipvsadm命令参数:

-A
-A --add-service 添加一个带选项的虚拟服务。
Add a virtual service. A serviceaddress is uniquely defined by a triplet: IP address, portnumber, and protocol. Alternatively a virtualservice may be defined by a firewall-mark.
-t 指定虚拟服务器的IP地址和端口
-s -s,--scheduler scheduling-method 调度算法
-p 会话保持按秒计算
-a
-a在对应的VIP下添加RS节点
-g 指定此LVS的工作模式为-g -g为DR模式
-l
指定LVS的工作模式为-l -l为tunnel模式
-m 指定LVS的工作模式为NAT模式
-w 指定RS节点的权重
-D
删除虚拟服务
格式:ipvsadm-D -t|u|f service-address
Delete a virtual service, alongwith any associated real servers.
-C
-C, --clear Clear the virtual server table清空lvs原有的配置。
-set 设置tcp tcpfn udp 的连接超时时间(一般来说高并发的时候小一点点。

ipvsadm添加lvs服务

[root@bogon ~]# ipvsadm -C
[root@bogon ~]# ipvsadm -A -t 192.168.2.17: -s rr  #添加虚拟服务指定VIP
[root@bogon ~]#
[root@bogon ~]# ipvsadm -a -t 192.168.2.17: -r 192.168.2.204: -g  #针对虚拟服务添加RS节点
[root@bogon ~]# ipvsadm -a -t 192.168.2.17: -r 192.168.2.205: -g
[root@bogon ~]# ipvsadm -L -n  #查看VIP和RS是否已经配置成功
IP Virtual Server version 1.2. (size=)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.2.17: rr
-> 192.168.2.204: Route
-> 192.168.2.205: Route

LB上删除虚拟服务

ipvsadm -D -t 192.168.2.17:80

四、RS节点服务器手动配置

添加lo端口的VIP&路由

[root@bogon ~]# ifconfig lo: 192.168.2.17 netmask 255.255.255.255  (由于RS的VIP不是用来通讯,并且这里一定要设置24位掩码)
[root@bogon ~]# route add -host 192.168.2.17 dev lo

ARP抑制

[root@bogon ~]# echo "" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@bogon ~]# echo "" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@bogon ~]# echo "" > /proc/sys/net/ipv4/conf/all/arp_announce
[root@bogon ~]# echo "" > /proc/sys/net/ipv4/conf/all/arp_ignore

五、测试LVS是否生效

[root@www ~]# curl http://192.168.2.204/test.txt
it is web1
[root@www ~]# curl http://192.168.2.205/test.txt
it is web2
[root@www ~]# curl http://192.168.2.17/test.txt
it is web2
[root@www ~]# curl http://192.168.2.17/test.txt
it is web1
[root@www ~]# curl http://192.168.2.17/test.txt
it is web2
[root@www ~]# curl http://192.168.2.17/test.txt
it is web1
[root@www ~]#

至此我们的LVS DR模式负载均衡已经配置完成了。至于不同的调度算法啊-s  不同的工作模式-g(DR) -l(TUNNEL) -m(NAT)服务器端基本上没有什么差别。只是在客户端上有一定的差别。

NAT模式:

客户端同样需要配置VIP,进行ARP抑制,并且要服务器端开启内核转发功能,配置LB的DIP(内网IP地址)作为默认网关。

开启内核转发功能:vi /etc/sysctl  net.ipv4.ip_forword = 1

route add default gw  192.168.2.203

Tunnel模式:

客户端需要先开启Tunnel协议支持。

/sbin/modprobe ipip

/sbin/route add –host 192.168.2.17 devtun1

echo”1”>/proc/sys/net/ipv4/conf/tun1/arp-ignore

echo”2”>/proc/sys/net/ipv4/conf/tun1/arp_announce

echo”0” >/proc/sys/net/ipv4/conf/tun1/rp_filter

echo”1” >/proc/sys/net/ipv4/conf/tun1/forwarding

echo”1” >/proc/sys/net/ipv4/conf/all/arp_ignore

echo”2” >/proc/sys/net/ipv4/conf/all/ arp_announce

六、部署成功后的另一些问题

1)当我们的RS节点出现问题,LB如何知道。如果不知道是会把会话连接接续转发到RS上面。

2)如果LB出现故障,那么整个网络就出现故障。

针对上面的1问题,我们就需要一种RS节点健康检查机制。定时的去检测RS是否正常,如果出现不正常那么就把这个RS从VIP服务里面删除掉。如果恢复正常了,就再把RS添加进来。针对2问题,我们可以另外再架设一台LB服务器,作为备LB服务器。那么当主LB出现故障,备LB服务器就会启动接管主LB服务器的工作,接管它的资源(IP地址,在网络中的角色身份等)

而上面提到的这些我们就需要结合keepalived来完成。所以后续我们开始讲keepalived+lvs结合适用。完成RS节点健康检查和LVS的高可用性功能。

LVS_DR模式构建配置的更多相关文章

  1. keepalived深度结合lvs_dr模式

    keepalived与dr模式结合 keepalived介绍 keepalived可提供vrrp以及health-check功能,可以只用它提供双机浮动的vip(vrrp虚拟路由功能), 这样可以简单 ...

  2. LVS + Keepalived + Nginx基于DR模式构建高可用方案

    在大型网站中一般服务端会做集群,同时利用负载均衡器做负载均衡.这样有利于将大量的请求分散到各个服务器上,提升网站的响应速度.当然为了解决单点故障的问题,还会做热备份方案.这里演示利用LVS做负载均衡器 ...

  3. 新书出版《.NET框架设计—模式、配置、工具》感恩回馈社区!

    很高兴我的第一本书由图灵出版社出版.本书总结了我这些年来对框架学习.研究的总结,里面纯干货,无半句废话. 书的详情请看互动网的销售页面:http://product.china-pub.com/377 ...

  4. Castle IOC容器构建配置详解(二)

    主要内容 1.基本类型配置 2.Array类型配置 3.List类型配置 4.Dictionary类型配置 5.自定义类型转换 一.基本类型配置 在Castle IOC的配置文件中,大家可能都已经注意 ...

  5. linux网卡速率和双工模式的配置

    linux网卡速率和双工模式的配置 (2012-09-06 14:39:57) 转载▼ 标签: 科技 网络接口 协商 网卡 工具 it 分类: Linux 改变网络接口的速度和协商方式的工具miito ...

  6. Swift中使用构建配置来支持条件编译-b

    在Objective-C中,我们经常使用预处理指令来帮助我们根据不同的平台执行不同的代码,以让我们的代码支持不同的平台,如: 1 2 3 4 5 6 7 8 9 #if TARGET_OS_IPHON ...

  7. 使用Repository模式构建数据库访问层

    使用Repository模式构建数据库访问层 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程[二]——使用Repository模式构建数据库访问层 系列导航地址http:// ...

  8. LVS-NAT模式的配置详解

    由于实验室拟态存储的项目需要通过NAT模式来映射NFS服务器已实现负载均衡的目的,通过调研了多种负载均衡机制,笔者最终选择了LVS的NAT模式来实现需求,接下来通过博客来记录一下LVS-NAT模式的配 ...

  9. windows server 2012 R2 远程桌面授权模式尚未配置

    windows server 2012 R2 远程桌面授权模式尚未配置,远程桌面服务将在120天内停止工作.如何破解这个宽限期,目前企业7位协议号码均不包含2012 R2以上授权. 那么只能蛋疼的“破 ...

随机推荐

  1. 并发读写缓存实现机制(一):为什么ConcurrentHashMap可以这么快?

    大家都知道ConcurrentHashMap的并发读写速度很快,但为什么它会这么快?这主要归功于其内部数据结构和独特的hash运算以及分离锁的机制.做游戏性能很重要,为了提高数据的读写速度,方法之一就 ...

  2. jQuery学习笔记(控件位置定位、尺寸大小的获取等)

    想做一个幽灵按钮出来,效果大概如下图: 当点击按钮的时候,会有四根线条从四个方向飞入,经历从“无-有-无”的闪入过程. 那么我的设计想法是,先在HTML中定义一个按钮,然后在jQuery中设计按钮点击 ...

  3. java 分布式锁方案

    第一步,自身的业务场景: 在我日常做的项目中,目前涉及了以下这些业务场景: 场景一: 比如分配任务场景.在这个场景中,由于是公司的业务后台系统,主要是用于审核人员的审核工作,并发量并不是很高,而且任务 ...

  4. Nodejs+Express创建HTTPS服务器

    为了使我的Nodejs服务器提供HTTPS服务,学习了一下如何利用express创建https服务器,现记录如下.(一点一点的积累与掌握吧) 1. Http与Https 介绍 HTTP: 超文本传输协 ...

  5. java闭包

    闭包就是在一个外部类A中声明了一个内部类B,然后这个内部类可以访问他自己B的作用域和外部类A的作用域.然后现在用另外一个类C创建了一个内部类B,那么这个内部类B可以访问C的作用域. 如果没有闭包,那B ...

  6. bootstrap dialog 使用模态对话框

    bootstrap3-dialog 使用模态对话框 <div class="modal fade"> <div class="modal-dialog& ...

  7. Linux 之集群 LVS

    查看系统是否支持IPVS功能 [root@nginx ~]# grep -i 'ipvs' /boot/config-2.6.18-308.el5 # IPVS transport protocol ...

  8. 一个Tomcat多端口多项目部署

    为什么突然写这个呢,前两天面试了,被面试官给问住了,回来一查.....怎么这么简单,当时我就....你懂得. 我用的是Tomcat7,用Eclipse新建了两个简单的web项目,贴出web1的截图,w ...

  9. Redis从基础命令到实战之有序集合类型(SortedSet)

    有序集合类型是Redis五种数据类型中最高级的.也是最复杂的类型.有序集合具有集合类型的特性,在其基础上给每个元素关联了一个分值,或称为权重,操作时既可以在添加元素时指定分值,也可以单独修改集合中某一 ...

  10. spring启动component-scan类扫描加载过程---源码分析

    http://blog.csdn.net/xieyuooo/article/details/9089441#comments