文档章节

lvs与HA整合

小孩66
 小孩66
发布于 2014/07/31 21:59
字数 1676
阅读 53
收藏 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
你是西部来源的学生吧?请问你是谁
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
红帽 Piranha 方案实现 WEB 负载均衡

利用红帽 Piranha 方案实现 WEB 负载均衡 系统环境: RHEL6.5x86_64 small install selinux and iptables disabled Virtual IP 192.168.2.253 192.168.2.162 server62.exampl.com (主节点) 1......

lee_ypp
2014/07/26
0
17
利用红帽 Piranha 方案实现 WEB 负载均衡

Piranha 方案优点: 1.1.1 配置简洁高效: 配置简便一个 lvs.cf 配置文件即可搞定(类 keepalived 方案.) 1.1.2 WEB 配置界面. WEB 配置对于那些不懂 LVS 配置的人员来说非常吸引力,你几乎只要花...

joansun
2014/06/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7 下安装 Nginx

1、添加Nginx存储库 要添加CentOS 7 EPEL仓库,请打开终端并使用以下命令 yum install epel-release 2、安装Nginx 现在Nginx存储库已经安装在您的服务器上,使用以下yum命令安装Nginx yum i...

Oo若离oO
16分钟前
0
0
漏洞防御与修复工作

漏洞管理工作是企业安全建设必不可少的一环,在风险管理工作中,漏洞管理能够防患于未然,企业对漏洞管理有着广泛的基础建设和实践经验。但随着攻防技术的发展,传统漏洞管理的安全技术和管理...

linuxprobe16
今天
1
0
MicroPython技术及应用前景

1 Micropython技术是什么? MicroPython极精简高效的实现了Python3语言。它包含Python标准库的一小部分,能在单片机和受限环境中运行。 1.1 MicroPython发展 由剑桥大学的理论物理学家乔治....

bodasisiter
今天
7
0
跟我学Spring Cloud(Finchley版)-13-通用方式使用Hystrix

本节详细讲解使用Hystrix的通用方式。 简介 Hystrix是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。Hystrix主要...

周立_ITMuch
今天
2
0
🛠️Hanjst/汉吉斯特更新加JavaScript运行时优化等

这是 Hanjst/汉吉斯特 发布以来的首个主要升级更新版本。这次的主要升级更新的内容包括移除HTML Comments注释行, 优化在 Hanjst include模板文件时的JavaScript运行时环境。 Hanjst 在设计和...

wadelau
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部