首页 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
资讯 业界资讯 软件杂谈 编程开发 网站建设 网络观查 搜索引擎 移动应用 网站运营 网络地图
开发 移动开发 Web前端 架构设计 编程语言 互联网 数据库 系统运维 云计算 开发杂谈
[系统运维] heartbeat+ldirectord+lvs nat
heartbeat+ldirectord+lvs nat

ldirectord来管理lvs,可以定时检查后端realserver,发现故障后自动清除,恢复后自动加入lvs表,让我们来感受下吧。
lvs端:
node1
eth0:192.168.3.124
eth0:192.168.8.124用于heartbeat心跳
node2
eth0:192.168.3.126
eth0:192.168.8.126用于heartbeat心跳
realserver端:
web1
eth0:192.168.3.128
eth0:0:192.168.8.128 
web2
eth0:192.168.3.129
eth0:0:192.168.8.129 
一.建议先配置lvs,没问题后再继续配置其他部分
在node1和node2上配置lvs nat模式,以node1为例
注:先在node1上建一个vip做lvs测试用,测试无误后再删掉,然后使用heartbeat的vip,这样可以给我们降低错误率
lvs端node1配置:
ifconfig eth0:1 192.168.3.233 netmask 255.255.255.0
ipvsadm -A -t 192.168.3.233:80 -s wrr
ipvsadm -A -t 192.168.3.233:80 -r 192.168.8.128:80 -g
ipvsadm -A -t 192.168.3.233:80 -r 192.168.8.129:80 -g
realserver端web1,web2配置:
ip route add 192.168.3.0 via 192.168.3.233
注:将realserver的网关指向vip 192.168.2.233
配置完成后测试:
[root@usvr-126 ha.d]# curl 192.168.3.233/1.html
hello,192.168.3.128
[root@usvr-126 ha.d]# curl 192.168.3.233/1.html
hello,192.168.3.129
以上说明lvs配置成功,取消eth0:1即可,ifdown eth0:1;需要在node2上做同样配置。
二.配置ldirectord
rpm -ql heartbeat-ldirectord
cp /usr/share/doc/ldirectord-1.0.4/ldirectord.cf /etc/ha.d
vim /etc/ha.d/ldirectord.cf
# Global Directives
checktimeout=20           #判定real server出错的时间间隔。
checkinterval=10          #指定ldirectord在两次检查之间的间隔时间。
fallback=127.0.0.1:80     #当所有的real server节点不能工作时,web服务重定向的地址。
autoreload=yes            #是否自动重载配置文件,选yes时,配置文件发生变化,自动载入配置信息。
logfile="/var/log/ldirectord.log"   #设定ldirectord日志输出文件路径。
quiescent=no              #当选择no时,如果一个节点在checktimeout设置的时间周期内没有响应,ldirectord将会从LVS的路由表中直接移除real server,此时,将中断现有的客户端连接,并使LVS丢掉所有的连接跟踪记录和持续连接模板,如果选择为yes,当某个real server失效时,ldirectord将失效节点的权值设置为0,新的连接将不能到达,但是并不从LVS路由表中清除此节点,同时连接跟踪记录和程序连接模板仍然保留在Director上。

# Sample for an http virtual service
virtual=192.168.3.233:80        #指定虚拟的IP地址和端口号,注意,在virtual行后面的行必
   real=192.168.8.128:80 masq      #指定Real Server服务器地址和端口,同时设定LVS工作模式,用gate表示DR模式,ipip表示TUNL模式,masq表示NAT模式。
   real=192.168.8.129:80 masq
   fallback=127.0.0.1:80 masq       
   service=http                     #指定服务的类型,这里是对http服务做负载均衡。
   request="ipvsadm.html"             #ldirectord将根据指定的Real Server地址,结合该选项给出的请求路径,发送访问请求,检查Real Server上的服务是否正常运行,确保这里给出的页面地址是可访问的,不然ldirectord会误认为此节点已经失效,发生错误监控现象。
   receive="test ok"              #指定请求和应答字串。
   scheduler=wrr                     #指定调度算法,这里是rr(轮jiào)算法。
   protocol=tcp                     #指定协议的类型,LVS支持TCP和UDP协议。
   checktype=negotiate              #指定Ldirectord的检测类型,默认为negotiate。
   checkport=80                     #指定监控的端口号。
#  virtualhost=www.gaojf.com        #虚拟服务器的名称,随便指定。

需要在web1,web2上设置ipvsadm.html
echo "test ok" > ipvsadm.html
node1上ldirectord配置好后,copy到node2上一份即可。
三.配置heartbeat
heartbeat配置参见前面的博文“heartbeat实现nginx热备”,在此只需改下/etc/ha.d/haresources资源,其他不需要动。如下:
nod1端/etc/ha.cf
logfile	/var/log/ha-log
logfacility	local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport	694
ucast eth0 192.168.8.126
auto_failback on
node	usvr-124.cityre.cn
node	usvr-126.cityre.cn
ping 192.168.3.1
respawn hacluster /usr/lib64/heartbeat/ipfail

node2端/etc/ha.cf
logfile	/var/log/ha-log
logfacility	local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport	694
ucast eth0 192.168.8.124
auto_failback on
node	usvr-124.cityre.cn
node	usvr-126.cityre.cn
ping 192.168.3.1
respawn hacluster /usr/lib64/heartbeat/ipfail

node1和node2端的/etc/ha.d/haresources
usvr-124.cityre.cn IPaddr::192.168.3.233/24/eth0 ldirectord::ldirectord.cf
注:需要在node1和node2中写入对方的host
192.168.3.124 usvr-124.cityre.cn
192.168.3.126 usvr-126.cityre.cn
注:这里的vip就是我们lvs的vip,这样才能实现vip的漂移。
四.测试
heartbeat配置完成后启动service heartbeat start
1.查看vip是否启动
[root@usvr-124 ha.d]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:50:56:89:a2:16 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.124/24 brd 192.168.3.255 scope global eth0
    inet 192.168.8.124/24 brd 192.168.8.255 scope global eth0:0
    inet6 fe80::250:56ff:fe89:a216/64 scope link 
       valid_lft forever preferred_lft forever
[root@usvr-124 ha.d]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:50:56:89:a2:16 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.124/24 brd 192.168.3.255 scope global eth0
    inet 192.168.8.124/24 brd 192.168.8.255 scope global eth0:0
    inet 192.168.3.233/24 brd 192.168.3.255 scope global secondary eth0
    inet6 fe80::250:56ff:fe89:a216/64 scope link 
       valid_lft forever preferred_lft forever
2.查看lvs表
[root@usvr-124 ha.d]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.3.233:80 wrr
  -> 192.168.8.128:80             Masq    1      0          0         
  -> 192.168.8.129:80             Masq    1      0          0
3.将web1端的nginx停掉,大约20秒,继续查看lvs表
[root@usvr-124 ha.d]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.3.233:80 wrr
  -> 192.168.8.129:80             Masq    1      0          0  
 
发现node1端192.168.8.128:80已经从lvs表中清楚,说明ldirectord起作用了。
4.将web1端的nginx重新启动,继续查看lvs表
[root@usvr-124 ha.d]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.3.233:80 wrr
  -> 192.168.8.128:80             Masq    1      0          0         
  -> 192.168.8.129:80             Masq    1      0          0 

发现node1又重新加入到lvs表中。
5.将web1,web2端的nginx全部停掉,继续查看lvs表
[root@usvr-124 nginx1.6]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.3.233:80 wrr
  -> 127.0.0.1:80                 Local   1      0          0  
当所有的lvs的realserver节点全部down掉,会有node1上的127.0.0.1:80启动,当访问vip时
curl 192.168.3.233/1.html 会出现“页面正在维hù”,来提高用户体验。
6.若node1宕机,node2会接管vip
在node1上service heartbeat stop
在node2上查看ip
[root@usvr-126 ha.d]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:50:56:89:91:a0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.126/24 brd 192.168.3.255 scope global eth0
    inet 192.168.8.126/24 brd 192.168.8.255 scope global eth0:0
    inet 192.168.3.233/24 brd 192.168.3.255 scope global secondary eth0
    inet6 fe80::250:56ff:fe89:91a0/64 scope link 
       valid_lft forever preferred_lft forever
7.在node2上查看lvs表
[root@usvr-126 ha.d]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.3.233:80 wrr
  -> 192.168.8.128:80             Masq    1      0          0         
  -> 192.168.8.129:80             Masq    1      0          0  

总结:
1.node1和node2上lvs不会同时运行,当vip在node1上时,lvs在node2上是停止的;当vip在node2上时,lvs在node1上是停止的。
2.ldirectord不必非配对使用,我们也可以单独使用来管理lvs,也就是说在heartbeat资源文件中不用加入ldirectord


 此文从网络中自动搜索生成,不代表本网站赞成被搜索网站的内容或立场    查看原文
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 新闻资讯 小游戏 Chinese Culture 股票 三丰软件 开发 中国文化 网文精选 阅读网 看图 日历 万年历 2018年10日历
2018-10-16 11:59:22
 
  网站联系 软件世界网-www.sjsjw.com ©2014 蜀ICP备06016416号 三峰网旗下网站