文档章节

lvs与HA整合

小孩66
 小孩66
发布于 2014/07/31 21:59
字数 1676
阅读 52
收藏 0

server33和35当HA,server34和36当服务器,用户通过VIP访问两台HA-->调度器-->后端服务器,只有调度器轮寻调度,加权
lvs不知道后端应用服务器挂了,用户会一直访问后端挂了的服务器,所以后面要解决这个问题,但nginx会监控后端服务器状态,lvs就是

用户只能访问调度器上的vip,而不能访问服务器上的vip,服务器不对外相应外界的ip,调度器把服务器mac,LB 一直就是转换,arbtabs,屏蔽arp



(1)
############lvs
ngnix、haproxy和lvs都是可用来负载均衡,nginx和haproxy比较适合做网站,很灵活,haproxy并发量大,lvs适合做数据库之类的,因为他算法比较简单,主要应用在应用层上


系统环境:
server85和dekstop80作为HA,server234和desktop87作为服务器,主机dekstop来调度
yum源为dvd.repo,时间要同步,解析要做好,selinux和火墙刷掉

在server85上:
释放ip地址:
ip addr show   //发现之前测试的ip未被释放
/etc/init.d/heartbeat stop  
/etc/init.d/network restart  
ip addr show   //ip
已释放

在两台HA上:
yum install -y ipvsadm  //调度服务,在此之前保证heartbeat已经停掉
ipvsadm -l  //显示当前调度列表
ifconfig eth0:0 192.168.2.115 netmask 255.255.255.0 up   //添加虚拟ip:192.168.2.115,要保证虚拟ip是未占用的

ipvsadm -A -t 192.168.2.115:80 -s rr                        //A 添加,r 轮循 s 加权
ipvsadm -a -t 192.168.2.115:80 -r 192.168.2.87:80 -g        //g 直连 80端口是httpd服务端口
ipvsadm -a -t 192.168.2.115:80 -r 192.168.2.234:80 -g
ipvsadm -l     //
显示有server234和desktop87及192.168.2.115的httpd服务


在两台服务端:
yum install -y httpd
cd /var/www/html/
vim index.html    //
写入各自域名

ifconfig eth0:0 192.168.2.115 netmask 255.255.255.255 up  //四个255表示这个ip就他自己,只有他一个
yum install -y arptables_jf    //反arp服务,服务有点类似于火墙
arptables -A IN -d 192.168.2.115 -j DROP    //外部访问115这个vip时直接被忽略掉

arptables -A OUT -s 192.168.2.115 -j mangle --mangle-ip-s 192.168.2.87   //在desktop87上
arptables -A OUT -s 192.168.2.115 -j mangle --mangle-ip-s 192.168.2.234 //在server234上 内部服务器出去的时候用的是自己的真实ip地址,就是这两步当外部访问服务器时,外部知道的只是虚拟ip,访问的只是调度器,而调度器和服务器联通起来,用户和服务端不直接访问互通

/etc/init.d/arptables_jf save   //保存策略
/etc/init.d/httpd start          //开启httpd服务

浏览器:http://192.168.2.115/  //轮循显示234和87的网页发布目录内容,即他们各自的域名


在HA端:ipvsadm -l  //会显示轮循的次数
在服务端或调度的真机上:arp -a  //显示访问的所有ip地址,及网络接口,并且记录访问的ip地址对应的MAC地址,MAC地址有在调度器上被记录下来,当删除某个被记录的ip对应MAC时,再次访问后MAC地址又将被调度器所记录




(2)#############HA与lvs整合
调度器存在单点故障,因此要HA热备,

在HA端:
ifconfig eth0:0 down    //把vip暂时关闭
ipvsadm -C      //把arptables策略清除
lftp i:/pub/docs/heartbeat/rhel6> get ldirectord-3.9.2-1.2.x86_64.rpm
yum localinstall -y ldirectord-3.9.2-1.2.x86_64.rpm

在server86上:
rpm -ql ldirectord
cp /usr/share/doc/packages/ldirectord/ldirectord.cf /etc/ha.d/   //
把配置文件复制
vim /etc/init.d/ldirectord   //文件中说明主机读取配置文件位置在/etc/ha.d/ldirectord.cf ,所以有上一步复制
/etc/init.d/ldirectord status   //有依赖性问题未解决

yum install -y perl-IO-Socket-INET6
/etc/init.d/ldirectord status    //
显示正常,ldirectord是stop的

cd /etc/ha.d/
vim ldirectord.cf    //rr
表示算法为轮循调度
checkinterval=1  //每隔1秒检测
virtual=192.168.6.115:80            //vip
        real=192.168.2.87:80 gate   //
两个服务端
        real=192.168.2.234:80 gate
        fallback=127.0.0.1:80 gate  //
当所有的服务端都挂掉后,显示的界面是自己的发布目录,任何一个服务器再次激活后,1秒检测后立即回到服务器上

#       receive="Test Page"         //注释掉
#       virtualhost=www.x.y.z       //注释掉


vim haresources         //添加服务ldirectord
server86.example.com    IPaddr::192.168.2.115/24/eth0 httpd ldirectord

scp ldirectord.cf haresources 192.168.2.80:/etc/ha.d/   //把相同配置文件复制到另一个HA节点


在HA端:
/etc/init.d/heartbeat start   //只要启动心跳,集群负责把vip,httpd,ldirectord及arptables全部开启

ipvsadm -l
tail -f /var/log/messages   //
日志可以查看到相关服务的启动

浏览器:http://192.168.2.115/  //一直在轮循显示,当把一个HA端如desktop80的httpd服务down掉或把heartbeat停掉,ipvsadm -l显示服务已被另一个节点接管,调度列表只剩一台主机,当两个节点都down掉时,浏览器显示的是调度的主机的发布目录文件,调度列表里只剩本机。当任何一个节点恢复服务后,调度立马恢复正常;
没有进行上述步骤前,把HA任一节点down掉后,ipvsadm -l仍显示两个节点,调度仍在正常运行,这意味着用户会获取到错误的网页文件,因为lvs本身不能监控后台服务器状态。

把34down掉,调度列表里只有36,网页不再轮循,36也挂掉时,那就完了,这里没有failback
把其中服务down掉,vip发生改变,被接管,开启服务,不会回切,互为主备


(3)lvs图形化配置管理:  //就是(2)的图形化配置
在HA端:
/etc/init.d/heartbeat stop   //所有的服务都会被停掉
yum install -y piranha    //监控服务器状态软件
piranha-passwd     //设置为westos
/etc/init.d/piranha-gui start

浏览器:http://192.168.2.186:3636  用户名为piranha,密码就是刚刚设置的
westos
/etc/sysconfig/ha/lvs.cf   //网页图形化界面的配置文件


点击REDUNDANCY,enable,ip为192.168.2.186 ,第一项勾选,端口号不要改,ok
点击VIRTUAL SERVERS,edit,服务名www,vip 192.168.2.115,网卡eth0:0,选择第一个轮循,
ok
再点击REAL SERVER,add,name为
dekstop80.example.com,192.168.2.80,80,1
再点击REAL SERVER,add,name为
server234.example.com,192.168.2.234,80,1
MMONIT..ACCEPT ,把所有都点击up开启


scp lvs.cf 192.168.2.80:/etc/sysconfig/ha/

/etc/sysconfig/ha/lvs.cf   //
浏览器上的配置全部在这里
/etc/init.d/piranha-gui restart   //所有节点服务都开启
/etc/init.d/pulse restart  

浏览器:http://192.168.2.115/

(4)添加一个ftp服务

服务端:
yum install -y vsftpd
ifconfig eth0:1 192.168.2.53 netmask 255.255.255.255 up
arptables -A OUT -s 192.168.2.53 -j mangle --mangle-ip-s 192.168.2.87   //
在desktop87上
arptables -A OUT -s 192.168.2.53 -j mangle --mangle-ip-s 192.168.2.234  //在server234上
arptables -A IN -d 192.168.2.115 -j DROP


浏览器:
点击VIRTUAL SERVERS,add,服务名ftp,vip 192.168.2.53,网卡eth0:1,选择第一个轮循,300,ok
再点击REAL SERVER,add,name为
dekstop80.example.com,192.168.2.80,80,1
再点击REAL SERVER,add,name为
server234.example.com,192.168.2.234,80,1
MMONIT..ACCEPT ,这一项不管

全部激活

scp lvs.cf 192.168.2.80:/etc/sysconfig/ha/
/etc/init.d/vsftpd start
/etc/init.d/pulse restart

浏览器:ftp://192.168.2.53  //轮循,在负载均衡


























































































 

© 著作权归作者所有

共有 人打赏支持
上一篇: lvs+heartbeat
下一篇: 集群cluster
小孩66
粉丝 2
博文 31
码字总数 37665
作品 0
西安
架构师
私信 提问
加载中

评论(1)

lee_ypp
lee_ypp
你是西部来源的学生吧?请问你是谁
解决方案 VMware5安装集群LVS实战解析

一台做Directorserver(192.168.8.2) ,操作系统RedhatAS4 两台做realserver(192.168.8.5,192.168.8.6) 操作系统RedhatAS4 在配置lvs+heartbeat时,又添加了一台(192.168.8.3)做为备份主节点, 操...

红薯
2009/05/07
962
0
keepalived+haproxy双主高可用负载均衡

一、keepalived和haproxy 1、keepalived Keepalived的作用是检测服务器的健康状态,在所有可能出现单点故障的地方为其提供高可用。如果有一台服务器死机,或工作出现故障,Keepalived将检测到...

nmshuishui
2014/05/02
0
0
lvs + heatbeat +dr

环境描述:本文在配置 LVS时使用三台linux,虚拟VIP:192.168.62.111 一台做Directorserver(192.168.62.129 ),操作系统RedhatAS4 两台做realserver( 192.168.62 .5,192.168.62 .6 )操作...

三十那年
2012/08/20
0
0
piranha-基于web界面的HA配置管理平台

piranha构建高可用平台 使用piranha红帽配置lvs集群:(虚拟伺机服务器) 内网私有ip(心跳线,用来加强ha集群的健壮度) pulse和piranha进程 前者是启动服务的,后者是进行开启图形 nanny具有后...

Andy-xu
2014/05/31
0
4
Linux下keepalived+mysql实现高可用

首先在搭建前分析,想用keepalived实现mysql高可用,那么先的对keepalived+lvs跟mysql主主复制有所了解。因为mysql+keepalived架构是在keepalived+lvs跟mysql主主复制的基础上实现的lvs+kee...

duyunlong
2013/10/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Redis分布式锁的实现原理看这篇就够了~

一、写在前面 现在面试,一般都会聊聊分布式系统这块的东西。通常面试官都会从服务框架(Spring Cloud、Dubbo)聊起,一路聊到分布式事务、分布式锁、ZooKeeper等知识。 所以咱们这篇文章就来...

Java干货分享
5分钟前
0
0
Actor并发编程模型浅析

一.Actor模型介绍 在单核 CPU 发展已经达到一个瓶颈的今天,要增加硬件的速度更多的是增加 CPU 核的数目。而针对这种情况,要使我们的程序运行效率提高,那么也应该从并发方面入手。传统的多...

终日而思一
6分钟前
0
0
利用arthas实时定位线上性能问题

0. 场景及需求 我们线上5台solr读服务器,配置一样,但是相同的请求,其中一台响应时间明显比其他4台慢,我们想通过arthas来定位具体哪里执行慢。 1. arthas介绍 阿里开源的java调试工具,能...

andersChow
7分钟前
1
0
docker 启动策略

Docker run的时候使用--restart参数 no - Container不重启 on-failure - container推出状态非0时重启 always - 始终重启 例如: docker run --restart=always -itd -p 2222:22 -p 3306:3306......

colin_86
7分钟前
0
0
Thinkphp5开发OA办公系统之招聘申请

开发运行环境: 神舟笔记本K650D-G6D1 i5-6400 GTX950M Windows 10 专业版 Nginx 或 Apache Web 服务器软件 MySQL5.7.x 数据库 PHP7.1.0 PHPStrom 2017 PowerDesigner 16.5 Axure RP8 原型设......

乐兔CRM
10分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部