登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

herb

喜欢写博,喜欢安静,喜欢挑战!

 
 
 

日志

 
 

LVS ipvsadm+heartbeat+ldirecrtord(TUN)  

2011-01-10 16:48:45|  分类: Linux Cluster |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

一、软件包安装

[root@localhost ~]# rpm -qa|grep heart

heartbeat-ldirectord-2.1.3-3.el5.centos

heartbeat-pils-2.1.3-3.el5.centos

heartbeat-stonith-2.1.3-3.el5.centos

heartbeat-2.1.3-3.el5.centos

[root@localhost ~]# rpm -qa|grep ipvs

ipvsadm-1.24-10

[root@localhost ~]# rpm -qa|grep arp

arptables-noarp-addr-0.99.2-1.rh.el.um.1

arptables_jf-0.0.8-8

[root@localhost ~]# rpm -qa|grep perl-Mail

perl-Mail-POP3Client-2.17-1.el5.centos

perl-MailTools-1.77-1.el5.centos

[root@localhost ~]# cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/

[root@localhost ~]# cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/

[root@localhost ~]# cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d/

[root@localhost ~]# cp /usr/share/doc/heartbeat-ldirectord-2.1.3/ldirectord.cf /etc/ha.d/

 

 

LVS ipvsadm+heartbeat+ldirecrtord(TUN) - herb - herb
 

二、LVS IPIP模式配置

1)加载ipip模块

[root@LVS-master ~]# modprobe ipip

[root@LVS-master ~]# lsmod |grep ipip

ipip 14501 0

tunnel4 7365 1 ipip

2)调度器配置

[root@LVS-master ~]# ifconfig tunl0 192.168.2.253 broadcast 192.168.2.253 netmask 255.255.255.255 up

添加路由

[root@LVS-master ~]# route add -host 192.168.2.253 dev   tunl0

如上设置可编写成shell 如下( /etc/ha.d/resource.d/tunip


设置调度方法

[root@LVS-master ~]# ipvsadm -A -t 192.168.2.253:8601 -s lc

设置RS

[root@LVS-master ~]# ipvsadm -a -t 192.168.2.253:8601 -r 192.168.2.123 -i

[root@LVS-master ~]# ipvsadm -a -t 192.168.2.253:8601 -r 192.168.2.124 -i

[root@LVS-master ~]# ipvsadm -a -t 192.168.2.253:8601 -r 192.168.2.122 -i


相当如下脚本:(可以和上面的脚本放一起的)


#!/bin/sh

VIP=192.168.15.253

RIP1=192.168.15.122
RIP2=192.168.15.123
RIP2=192.168.15.124

  /sbin/ipvsadm -A -t $VIP:8601 -s lc
  /sbin/ipvsadm -a -t $VIP:8601 -r $RIP1:8601 -i
  /sbin/ipvsadm -a -t $VIP:8601 -r $RIP2:8601 -i
  /sbin/ipvsadm -a -t $VIP:8601 -r $RIP3:8601 -i


查看配置

[root@LVS-master ~]# ipvsadm

[root@LVS-master ha.d]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.2.252:8601 wlc
-> 192.168.2.110:8601 Route 1 843 0
-> 192.168.2.109:8601 Route 1 843 0
-> 192.168.2.119:8601 Route 1 843 0
TCP 192.168.2.253:8601 wlc
-> 192.168.2.105:8601 Route 3 529 0
-> 192.168.2.104:8601 Route 3 528 0
-> 192.168.2.126:8601 Route 2 2606 0
-> 192.168.2.106:8601 Route 2 2480 0
-> 192.168.2.27:8601 Route 1 1166 0
-> 192.168.2.125:8601 Route 2 2672 0

 

3)真实服务器配置

[root@localhost ~]# ifconfig tunl0 192.168.2.253 netmask 255.255.255.255 broadcast 192.168.2.253 up

[root@localhost ~]# route add -host 192.168.2.253 dev tunl0

echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_announce

echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

 

(真实机配置也可以写脚本)

 

 

 

三、配置ldirectord

[root@LVS-master ~]# vi /etc/ha.d/ldirectord.cf

checktimeout=3 #超时间隔为秒

checkinterval=1

autoreload=yes #是否自动重载

logfile="/var/log/ldirectord.log"

quiescent=yes #yes时,设置真实机器权值为0即不可达,设置为no时,则删除不可达的真实机器

virtual=192.168.2.253:8601

real=192.168.2.122:8601 ipip 1 #ipiptun模式gateDR模式 1为权值不设置时权值为1

real=192.168.2.123:8601 ipip

real=192.168.2.124:8601 ipip

# fallback=127.0.0.1:80 gate #是否设置当真实机器全部不可达时,由其它机器接替

scheduler=wlc #调度方法加权最少链接

protocol=tcp

# checktype=negotiate

checktype=connect #检测端口是否可达

checkport=8601

注:此服务可代替上面的第三个步骤配置LVS的调度器

 

 

四、配置热备,heartbeat实现调度器冗余

[root@LVS-master ~]# vi /etc/ha.d/authkeys

auth 2

#1 crc

2 sha1 thssee10jqka

#3 md5 Hello!

配置认证为sha安全性最高的,1的认证是明码,2的是秘钥,3的是md5加密

[root@LVS-master ~]# chmod 600 /etc/ha.d/authkeys

警告:如果你不能使用chmod命令修改这个文件的安全属性,Heartbeat程序将不能启动,它会在/var/log/messages文件中产生记录,提示你没有正确设置这个文件的安全属性。

 

 ha.cf配置

[root@LVS-master ~]# vi /etc/ha.d/ha.cf

debugfile /var/log/ha-debug

logfile /var/log/ha-log

#定义日志文件的位置,如果两个都没有定义,默认会写入/var/log/message

logfacility local0

keepalive 2

#指定心跳间隔时间即每隔2秒钟在eth0上发送一次广播

deadtime 30

#指定若备用节点在30内没有收到主节点的心跳信号,则立即接管主节点的服务资源

warntime 10

#指定心跳延迟的时间为10秒。当10秒钟内备份节点不能接收到主节点的心跳信号时,就会往日志中写入一个警告日志,但此时不会切换服务

initdead 120

#在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。取值至少为deadtime的两倍

udpport 694

#开放防火墙694端口

baud 19200

#设置串行通信的波特率

bcast eth0 # Linux

#采用udp广播来通知心跳

 

mcast eth0 225.0.0.1 694 1 0

#采用udp多播来通知心跳,建议主副使用

ucast eth0 192.168.2.121

 #单播eth0IP,此处从为从的IP

auto_failback on

 #主节点恢复后,是否自动切回,主可设置恢复后切回,从设置为off

watchdog /dev/watchdog

 #看门狗,如果本节点在超过一分钟后还没有发出心跳,那么本节点自动重启

node LVS-master

node LVS-slave

#uname -n保持一致,第一个为主节点,第二个为副节点

ping_group group1 192.168.2.121 192.168.2.127

respawn root /usr/lib/heartbeat/ipfail

#pingrespawn用来测试网络连接,ping后面接外网网关或者其他可靠的设备的IP,如果这个IP一旦ping不通了(意味该机的外网down了),则利用respawn调用/usr/lib/heartbeat/ipfail来主动进行切换。

apiauth ipfail gid=root uid=root

 

 haresources配置

haresources脚本调用路径是/etc/ha.d/resource.d/

[root@localhost ~]# vi /etc/ha.d/haresources

LVS-master tunip

# LVS-master为节点名与uname -n相同tunip为脚本,这个文件是heartbeat启动后会调用tunip这个脚本,当start时则向该脚本传递一个start参数,当为stop时则向该脚本传递一个stop参数,如果该脚本没有接收stop参数时,而在使用heartbeat stop时,会导致系统重启完成heartbeat的关闭,如下日志

Oct 2 22:50:57 localhost ResourceManager[10966]: info: Retrying failed stop operation [IPaddr2::192.168.3.254/24/tunl0]

Oct 2 22:50:57 localhost ResourceManager[10966]: info: Running /etc/ha.d/resource.d/IPaddr2 192.168.3.254/24/tunl0 stop

Oct 2 22:50:58 localhost IPaddr2[12083]: INFO: ip -f inet addr delete 192.168.3.254/24 dev tunl0

Oct 2 22:50:58 localhost IPaddr2[12054]: ERROR: Generic error

Oct 2 22:50:58 localhost ResourceManager[10966]: ERROR: Return code 1 from /etc/ha.d/resource.d/IPaddr2

Oct 2 22:50:58 localhost IPaddr2[12142]: INFO: Running OK

Oct 2 22:50:58 localhost ResourceManager[10966]: CRIT: Resource STOP failure. Reboot required!

Oct 2 22:50:58 localhost ResourceManager[10966]: CRIT: Killing heartbeat ungracefully!

 

 tunip脚本配置

[root@localhost ~]# vi /etc/ha.d/resource.d/tunip

#/bin/sh
#/sbin/ifconfig tunl0 192.168.2.253 broadcast 192.168.2.253 netmask 255.255.255.255 up
#
# description: Start DirectorServer of LVS
# chkconfig: - 08 92
#
# Start LVS TUNL in Directorserver
VIP=192.168.2.253
VIP8602=192.168.2.252
/etc/rc.d/init.d/functions

case "$1" in
start)
echo " Start LVS of DirectorServer"
# set the Virtual IP Address
  /sbin/modprobe ipip
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/ifconfig lo:1 $VIP8602 broadcast $VIP8602 netmask 255.255.255.255 up
;;
stop)
echo "Close LVS Directorserver"
#/sbin/modprobe -r ipip
#/sbin/ifconfig tunl0 down
/sbin/ifconfig lo:0 down
/sbin/ifconfig lo:1 down
;;
*)
echo "Usage: $0 {start|stop}"

 

 slave机器配置

把主调度器121上的配置文件及脚本拷贝至从127机器上,并开放694端口

更改ha.cf配置文件

ucast eth0 192.168.2.127 #eth0IP,此处从为从的IP

auto_failback off

 

 

 

五、ldirectordVIP结合至heartbeat

[root@LVS-master ~]# vi /etc/ha.d/haresources

LVS-master \

        ldirectord::ldirectord.cf \

        tunip

 

开启关闭LVS

[root@LVS-master ~]# service heartbeat start

[root@LVS-master ~]# service heartbeat stop 

 

  评论这张
 
阅读(2188)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018