lvs DR配置

LVS负载均衡:三种负载均衡模式:DR,TUN(ip隧道),NAT,这里我们介绍DR模式

server1:

首先,配置server机yum源 方便后期实验流畅
vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.8.250/rhel6.5
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.8.250/rhel6.5/LoadBalancer
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.8.250/rhel6.5/HighAvailability
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.8.250/rhel6.5/ResilientStorage
gpgcheck=0
[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.8.250/rhel6.5/ScalableFileSystem
gpgcheck=0

yum install ipvsadm -y
ipvsadm -A -t 172.25.8.100:80 -s rr         ##添加策略 指定vip 172.25.8.100:80,-t指tcp,-s rr 指定轮询

ipvsadm -a -t 172.25.8.100:80 -r 172.25.8.2:80 -g   ##将虚拟ip映射到真实的ip,-r指定realserver -t指定tcp协议 -g指dr模式
ipvsadm -a -t 172.25.8.100:80 -r 172.25.8.3:80 -g
ipvsadm -l                  #列出策略
[root@server1 html]# ipvsadm -l
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.8.100:http rr
  -> server2:http                 Route   1      0          0        
  -> server3:http                 Route   1      0          0        

 

server2:

yum install httpd
vim /var/www/html/index.html
/etc/init.d/httpd start

 
server3:yum install httpd
vim /var/www/html/index.html
/etc/init.d/httpd start
server1:
ip addr add  172.25.8.100/24 dev eth0        #添加一个虚拟ip
ip addr

server2:

ip addr add 172.25.8.100/32  dev lo
ip addr

 

server3:

ip addr add 172.25.8.100/32  dev lo
ip addr

物理机测试:

curl 172.25.8.100

[root@foundation8 ~]# curl 172.25.8.100
<h1>server3</h1>
[root@foundation8 ~]# curl 172.25.8.100
<h1>server2</h1>
[root@foundation8 ~]# curl 172.25.8.100
<h1>server3</h1>
[root@foundation8 ~]# curl 172.25.8.100
<h1>server2</h1>

为防止客户端在访问vip时直接访问到realserver,需要在realserver设置一定的策略

server2:

yum install arptables_jf            

arptables -A IN -d 172.25.8.100 -j DROP      ##访问realserver的100ip时的请求直接丢弃                               
arptables -A OUT -s 172.25.8.100 -j mangle --mangle-ip-s 172.25.8.2      ##realserver发出的信息全部转换为指定的真实ip
/etc/init.d/arptables_jf save        ##保存策略

server3:

yum install arptables_jf
arptables -A IN -d 172.25.8.100 -j DROP
arptables -A OUT -s 172.25.8.100 -j mangle --mangle-ip-s 172.25.8.3
/etc/init.d/arptables_jf save

测试:

在物理机中
arp -d 172.25.8.100
curl 172.25.8.100
测试结果
[root@foundation8 ~]# curl 172.25.8.100
<h1>server3</h1>
[root@foundation8 ~]# curl 172.25.8.100
<h1>server2</h1>
[root@foundation8 ~]# curl 172.25.8.100
<h1>server3</h1>
[root@foundation8 ~]# curl 172.25.8.100
<h1>server2</h1>

 
 
但是此时无法实现健康检查,我们需要用ldirectord服务实现
Ldirector是一个监控集群服务节点运行状态的插件。Ldirector如果监控到集群节点中某个服务出现故障,就屏蔽此节点的对外连接功能,同时将后续请求转移到正常的节点提供服务,这个插件经常用在LVS负载均衡集群中

server1:

yum install ldirectord-3.9.5-3.1.x86_64.rpm
cp /usr/share/doc/ldirectord-3.9.5/ldirectord.cf /etc/ha.d
cd /etc/ha.d/
vim ldirectord.cf

ipvsadm -C       ##清空策略
/etc/init.d/ldirectord start
yum install httpd
vim /var/www/html/index.html
/etc/init.d/httpd start

此时,当server3关闭httpd服务
测试结果如下
[root@foundation8 ~]# curl 172.25.8.100
<h1>server2</h1>
[root@foundation8 ~]# curl 172.25.8.100
<h1>server2</h1>
[root@foundation8 ~]# curl 172.25.8.100
<h1>server2</h1>

此时,当server2也关闭httpd服务
结果如下
[root@foundation8 ~]# curl 172.25.8.100
维护中。。
[root@foundation8 ~]# curl 172.25.8.100
维护中。。

 
 

keepalived:

Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器

主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现。

server1:

/etc/init.d/ldirectord stop
chkconfig  ldirectord off            ##关闭ldirectord服务
下载keepalived-2.0.6.tar.gz
tar zxf keepalived-2.0.6.tar.gz     ##解压
yum install rpm-build -y
yum install gcc -y
yum install openssl-devel -y
cd keepalived-2.0.6
[root@server1 keepalived-2.0.6]# ./configure --prefix=/usr/local/keepalived --with-init=SYSV     ##编译
[root@server1 keepalived-2.0.6]# make
[root@server1 keepalived-2.0.6]# make install      ##安装
cd /usr/local/keepalived/
[root@server1 keepalived]# ls        ##软链接的制作
bin  etc  sbin  share
cd sbin/
ln -s /usr/local/keepalived/sbin/keepalived  /sbin/
cd etc/rc.d/init.d
chmod +x keepalived
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cd etc/sysconfig
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cd etc/keeplived
ln -s /usr/local/keepalived/etc/keepalived/ /etc/

cd /usr/local/
scp -r keepalived/ server4:/usr/local/       ##将定制好的策略发送到server4中
yum install mailx -y
cd /etc/keeplived
vim keepalived.conf 

server4:

cd /usr/local/keeplived
ls

[root@server4 keepalived]# ln -s /usr/local/keepalived/sbin/keepalived  /sbin/
[root@server4 keepalived]# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
[root@server4 keepalived]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
 
mkdir /etc/keeplived
cd /etc/keepalived/
vim keepalived.conf 
 

scp server1:/etc/yum.repos.d/rhel-source.repo /etc/yum.repos.d/rhel-source.repo

yum install ipvsadm -y
 ipvsadm -l

物理机测试

for i in range{1..6}; do curl 172.25.8.100;  done

;

将server1中keepalived关闭
server4会自动获取ip,同时访问正常

此时再将server1打开,ip又会回到server1中,因为server1的优先级比较高

server2:

yum install vsftpd -y
/etc/init.d/vsftpd start

server3:

yum install vsftpd -y
/etc/init.d/vsftpd start
cd /var/ftp
touch file

server1:
vim /etc/keepalived/keepalived.conf
在最下方添加

ipvsadm -l

server4:

vim /etc/keepalived/keepalived.conf
在最下方添加

ipvsadm -l

测试

物理机
for i in range{1..6}; do curl 172.25.8.100; done;

lftp 172.25.8.100

互备:

server1:

vim /etc/keepalived/keepalived.conf

server4:

vim /etc/keepalived/keepalived.conf

 
 
对server2,3需要添加新的策略

server2:

[root@server2 ftp]# ip addr add 172.25.8.200/32 dev lo
[root@server2 ftp]# arptables -A IN -d 172.25.8.200 -j DROP
[root@server2 ftp]# arptables -A OUT -s 172.25.8.200 -j mangle --mangle-ip-s 172.25.8.2
[root@server2 ftp]# /etc/init.d/arptables_jf save

server3:

[root@server3 ftp]# ip addr add 172.25.8.200/32 dev lo

[root@server3 ftp]# arptables -A IN -d 172.25.8.200 -j DROP
[root@server3 ftp]# arptables -A OUT -s 172.25.8.200 -j mangle --mangle-ip-s 172.25.8.3
[root@server3 ftp]# /etc/init.d/arptables_jf save

测试

for i in range{1..6}; do curl 172.25.8.100; done;

 
此时server1和server2互为主备
当server1或server4任意一个over时
另一台会自动获取ip并提供服务
 
 
 
 
 
 

lvs 中DR模式负载均衡及keepalived的更多相关文章

  1. LVS的DR模式负载均衡

    参考项目:http://www.cnblogs.com/along21/p/7833261.html#auto_id_3 LVS的DR模式实现负载均衡 1.环境 lvs-server :192.168 ...

  2. LVS DR模式 负载均衡服务搭建

    LVS 负载均衡 最近在研究服务器负载均衡,阅读了网上的一些资料,发现主要的软件负载均衡方案有nginx(针对HTTP服务的负载均衡),LVS(针对IP层,MAC层的负载均衡).LVS模式工作在网络层 ...

  3. lvs中dr模式配置脚本

    1 dr模式介绍 1.1 lvs的安装 安装具体解释:http://blog.csdn.net/CleverCode/article/details/50586957. 1.2 lvs模式 lvs有三 ...

  4. CentOS下LVS DR模式负载均衡配置详解

    一安装LVS准备: 1.准备4台Centos 6.2 x86_64 注:本实验关闭 SELinux和IPtables防火墙. 管理IP地址 角色 备注 192.168.1.101 LVS主调度器(Ma ...

  5. LVS+Keepalived-DR模式负载均衡高可用集群

    LVS+Keepalived DR模式负载均衡+高可用集群架构图 工作原理: Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能. VRRP,虚拟路由冗余协议,是针对路由器的 ...

  6. LVS实现(VS/DR)负载均衡和Keepalived高可用

    LVS是Linux Virtual Server的简写即Linux虚拟服务器,是一个虚拟的服务器集群系统一组服务器通过高速的局域网或者地理分布的广域网相互连接,在它们的前端有一个负载调度器(Load ...

  7. centos7下通过LVS的DR模式实现负载均衡访问

    一.两台服务器作为real server ,一台作为director director:172.28.18.69 vip:172.28.18.70 real server1:172.28.18.71 ...

  8. Keepalived+lvs 搭建高可用负载均衡

    本站点停止更新,请访问:blog.coocap.com 不了解负载均衡高可用的童鞋,强烈建议先看keepalived+nginx高可用负载均衡: 传送门(求粉):http://www.cnblogs. ...

  9. LVS集群中的IP负载均衡技术

    LVS集群中的IP负载均衡技术 章文嵩 (wensong@linux-vs.org) 转自LVS官方参考资料 2002 年 4 月 本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集 ...

随机推荐

  1. 在JAVA中,String,Stringbuffer,StringBuilder 的区别

    首先是,String,StringBuffer的区别 两者的主要却别有两方面,第一是线程安全方面,第二是效率方面 线程安全方面: String  不是线程安全的,这意味着在不同线程共享一个String ...

  2. 线段树教做人系列(3) HDU 4913

    题意及思路看这篇博客就行了,讲得很详细. 下面是我自己的理解: 如果只有2,没有3的话,做法就很简单了,只需要对数组排个序,然后从小到大枚举最大的那个数.那么它对答案的贡献为(假设这个数排序后的位置是 ...

  3. Swing简介

    ---------------siwuxie095                         Swing 简介:     Java Swing 是 Java Foundation Classes ...

  4. Luogu 1979 [NOIP2013] 华容道

    要优先安排历年NOIP题 考虑到要移动,肯定要先把空的格子移动到起点旁边,所以我们对于每一个询问都先bfs一次求出把空格移到起点的四个位置的最短路,而且要保证不能移动起点的方块. 只有空的格子在一个格 ...

  5. hmset()

    以哈希表方式存放数据

  6. 《Head First Servlets & JSP》-7-使用JSP

    学习的知识点 JSP,最后会变成一个servlet JSP最终或变成一个完整的servlet在Web应用中运行,只不过这个servlet类会由容器写好. JSP中的scriptlet 所谓script ...

  7. ServletContext接口(六)

    javax.servlet.ServletContext接口 ServletContext(上下文)是公用的,就是.net中的application,主要用到的就是全局set设置值,get获取值,ja ...

  8. 【转,整理】C# 非托管代码

    .Net Framework 是由彼此独立又相关的两部分组成:CLR 和 类库, CLR是它为我们提供的服务,类库是它实现的功能..NET的大部分特性----垃圾收集,版本控制,线程管理等,都使用了C ...

  9. Exception in thread "main" brut.androlib.err.UndefinedResObject: resource spec: 0x01030200

    Exception in thread "main" brut.androlib.err.UndefinedResObject: resource spec: 0x01030200 ...

  10. SPC-Light显示正常的日期与时间

    SPC-Light的日期值与时间值显示正常的日期与时间.在读取到它的日期值: 得到的结果,如: 读取时间: 得到的结果如0.556678240740741. 要把它们显示正常的日期与时间格式.在VB. ...