分享
 
 
 

RedHat 8.0/9.0 LVS安裝手冊(4)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

二、进阶的设定:

看完前面的设定,如果你有测试成功的话,一定会发现万一Real Server死掉了怎么办?负责转送封包的DR并不晓得Real Server已经故障无法使用,还是会将封包往故障的Real Server处送,这样会影响用户的使用权益,为了解决这个问题在LVS正式网站上有几种解法,而我安装过Piranha(RedHat的方法)与「mon、heartbeat、fake、coda」方法,发现piranha-gui需要apache 1.3的rpm档,而且还需要php 模块安装在上面,但是RedHat 8.0预设只提供apache 2.0.40 (httpd-2.0.40),因此在安装piranha-gui的时候一直安装不起来,我也试过将apache 1.3安装上去,但是还另外需要安装一堆有的没的RPM,所以我就决定放弃不用piranha,采用「mon、heartbeat、fake、coda」(http://www.linuxvirtualserver.org/HighAvailability.html )的解法。

那因为我只有三部机器,且只有一部要当Director,所以hearbeat、fake对我的情形来说并不需要,另外我的档案也不需要全部统一放置在同一个地方,所以coda对我而言并没有用,最后我只需要安装mon这个服务(Daemon)。

Mon的官方网站,在http://www.kernel.org/software/mon/,有兴趣可以去看看。废话不多说,开始进行安装。

1、安装服务

安装可以采用tarball或rpm安装,但是因为tarball安装需要花比较多时间,为了省时间,所以全部采用RPM安装,只有perl-Mon模块采用tarball安装。

2、下载源码

首先上http://rpmfind.net 搜寻下列档案,其中Mon-0.11.tar.gz请从Mon的正式网站上抓取。

fping-2.2b1-2.i386.rpm ------------------------ 可以一次Ping多个ip

perl-Convert-BER-1.31-3.i386.rpm---------- perl Convert::BER module

perl-Net-Telnet-3.01-9.i386.rpm-------------- perl Net::Telnet module

Mon-0.11.tar.gz---------------------------------- perl Mon module

perl-Period-1.20-9.i386.rpm ------------------ perl Period module

mon-0.99.2-8.i386.rpm------------------------- mon daemon rpm

然后

# rpm -ivh fping-2.2b1-2.i386.rpm

# rpm -ivh perl-Convert-BER-1.31-3.i386.rpm

# rpm -ivh perl-Net-Telnet-3.01-9.i386.rpm

# rpm -ivh perl-Period-1.20-9.i386.rpm

# gzip -dc Mon-0.11.tar.gz|tar xvf -

# cd Mon-0.11

# perl Makefile.PL && make && make test && make install

# cd ..

# rpm -ivh -nodeps mon-0.99.2-8.i386.rpm

用chkconfig -list mon 检查是否有安装mon daemon,

3、就这样安装完成了,接着进行mon的设定。

3.1、配置MON

Mon的设定档放在/etc/mon/mon.cf,而在我们的例子中需要针对LVS写一个(lvs.alert)程序。这个程序主要是用来新增移除Director的Routing Rule,如同在基本配置里面(这次的Director改为10.144.43.142这部机器),我们的设定:

ipvsadm -A -t 10.144.43.185:23 -s rr

ipvsadm -a -t 10.144.43.185:23 -r 10.144.43.175 -g

ipvsadm -a -t 10.144.43.185 :23 -r 10.144.43.142 -g

ipvsadm -a -t 10.144.43.185 :23 -r 10.144.43.187 -g

现在假设10.144.43.175网络断线,或机器当机不能正常工作,这时候mon daemon就会自动呼叫lvs.alert,

ipvsadm -d -t 10.144.43.185 :23 -r 10.144.43.175

将这笔拿掉,然后持续监控,直到10.144.43.175 又正常工作时,再呼叫lvs.alert将10.144.43.175加入Route中。

#!/usr/bin/perl

#

# lvs.alert - Linux Virtual Server alert for mon

#

# It can be activated by mon to remove a real server when the

# service is down , or add the server when the service is up

#

#

use Getopt::Std;

getopts("s:g:h:t:l:P:V:R:W:F:u");

$ipvsadm = "/sbin/ipvsadm";

$protocol = $opt_P;

$virtual_services = $opt_V;

$remote = $opt_R;

if($opt_u){

$weight = $opt_W;

if($opt_F eq "nat"){

$forwarding = "-m";

}elsif($opt_F eq "tun"){

$forwarding = "-i";

}else{

$forwarding = "-g";

}

if($protocol eq "tcp"){

system(

"$ipvsadm -a -t $virtual_services -r $remote -w $weight $forwarding");

} else {

system(

"$ipvsadm -a -u $virtual_services -r $remote -w $weight $forwarding");

}

} else {

if($protocol eq "tcp"){

system("$ipvsadm -d -t $virtual_services -r $remote");

} else {

system("$ipvsadm -d -u $virtual_services -r $remote");

}

}

3.2、mon daemon的设定

因为我是以telnet的服务为测试范例,我真正上线使用的系统将会是Web server的监测,因此下面的设定只针对telnet来作设定,需要其它Service的请自行更正,并请自己去看mon的一些设定说明,这儿只简单说明下列的意思。

#

# Extremely basic mon.cf file

# 除了lvs.alert外,事实上还可发送Email,只是我把他拿掉了,

# 因为我的Server并没有激活Sendmail..:)

# global options

#

cfbasedir = /etc/mon

pidfile = /var/run/mon.pid

statedir = /var/run/mon/state.d

logdir = /var/run/mon/log.d

dtlogfile = /var/run/mon/log.d/downtime.log

alertdir = /usr/lib/mon/alert.d

mondir = /usr/lib/mon/mon.d

maxprocs = 20

histlength = 100

randstart = 60s

authtype = userfile

userfile = /etc/mon/userfile

#

# group definitions (hostnames or IP addresses)

# 要监测的机器,一次可以一部也可以多部

# 为了减少麻烦,而且我设备也不多,所以我设定一个group只有一个Server

hostgroup server1 10.144.43.175

hostgroup server2 10.144.43.187

# 监测10.144.43.175

watch server1

# service 后面的telnet名称同/etc/services里面的名称,不是自己乱给的

service telnet

# 间隔多久测试一次,这儿设定20秒,也可以设定10m、1h。

interval 20s

# 用哪一个monitor程序去作,基本上telnet.monitor是用perl写的程。

# 所以如果有自己的monitor程序,也可以比照办理。

monitor telnet.monitor

# 监测的时间

period wd {Mon-Fri} hr {7am-10pm}

# alert:当有联机失败时会呼叫这个Event,执行后面lvs.alert程序

alert lvs.alert -P tcp -V 10.144.43.185:23 -R 10.144.43.175 -W 5 -F dr

# uplaert:当当联机失败后,又发现对方活过来时候,会呼叫这个event。

upalert lvs.alert -P tcp -V 10.144.43.185:23 -R 10.144.43.175 -W 5 -F dr -u 1

watch server2

service telnet

interval 20s

monitor telnet.monitor

period wd {Mon-Fri} hr {7am-10pm}

alert lvs.alert -P tcp -V 10.144.43.185:23 -R 10.144.43.187 -W 5 -F dr

upalert lvs.alert -P tcp -V 10.144.43.185:23 -R 10.144.43.187 -W 5 -F dr -u 1

# See /usr/doc for the original example...

3.3、修改完成后,就可以用service mon start,激活mon daemon,进行监测。

4、可以自己作一些测试,例如拔掉网络线,关掉Realserver上的服务,测试看看哪儿有问题。(呼!总算可以对老板交代了。^_^)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有