文档章节

lvs与HA整合

小孩66
 小孩66
发布于 2014/07/31 21:59
字数 1676
阅读 49
收藏 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  //轮循,在负载均衡


























































































 

© 著作权归作者所有

共有 人打赏支持
小孩66
粉丝 2
博文 31
码字总数 37665
作品 0
西安
架构师
加载中

评论(1)

lee_ypp
lee_ypp
你是西部来源的学生吧?请问你是谁
keepalived+haproxy双主高可用负载均衡

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

nmshuishui
2014/05/02
0
0
解决方案 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
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
Pacemaker + LVS/fullNAT(未完待续)

总结 HAIB RHCSlvs (4层) Hearteatnginx(7层) keepalived / Rule Server 单点client 连接是唯一的Rule Server VS / client ——> CDN ——> server /———Rule Server (cook) cache n ... ......

千树一木
2017/03/03
0
0
piranha-基于web界面的HA配置管理平台

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

Andy-xu
2014/05/31
0
4

没有更多内容

加载失败,请刷新页面

加载更多

day92-20180918-英语流利阅读-待学习

健身最大的敌人不是懒惰,而是逞强 Daniel 2018-09-19 1.今日导读 还记得 2008 年北京奥运会运动员刘翔的退赛风波吗?那天几乎所有中国人都将视线聚焦在了鸟巢体育馆 110 米栏的项目上,迫不...

飞鱼说编程
16分钟前
1
0
70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
3
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
6
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
55
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部