找回密码
 注册
查看: 396|回复: 0

Linux-HA安裝手冊... 之三

[复制链接]
发表于 2004-11-27 18:18:31 | 显示全部楼层 |阅读模式
==========================================================
==Saker新一代IT资源智能集中监管系统 (www.sakersoft.org) ==
==========================================================
###得知您负责管理本单位的IT设备,贵单位的IT设备可能包括多种UNIX系统、NT(包括Windows2000)等系统;网络设备可能包括交换机、路由器等;数据库可能有ORACLE、MsSql等的数据库产品;提供的网络服务有WWW、DNS、FTP、EMAIL等多种服务。
------------------------------------------------------------
###通过我们的Saker系统可以统一进行7×24小时的监控,短信、邮件报警,故障自动处理。这样可以大大降低您工作量的同时提高工作效率。并且本软件回报丰厚,请您考虑!
-----------------------------------------------------------
###优秀的跨平台性, Saker支持当今全部主流的操作系统,包括:Windows NT/Windows 2000/Windows 2003/Windows XP,linux,Aix,HP-UX,Irix, SunOS/Solaris,SCO ,Novell Netware,BSD,MacOS等;
-----------------------------------------------------------
###超强的监控功能:Saker拥有数百种监控模块,可以实现对网络服务(SMTP, POP3, HTTP, TCP,SNMP,NNTP,BGP等)、网络设备(路由器,交换机,Modem,UPS等)主机(CPU,内存,硬盘,文件,进程,用户等)、数据库(Oracle,MS SQl,DB2, INFORMIX,SYBASE,MYSQL, PostgreSQL等)、机房环境(温度等)和用户自己的应用程序的集中监控和管理。
----------------------------------------------------------
###丰富的报警功能:Saker支持非常丰富的报警手段,包括邮件,手机短信,呼机,电话、弹出窗口,声音,ICQ等多种技术手段。
-------------------------------------------------------------------------------------------
###强大的事件处理功能:Saker为每个受自己监管的服务分配一个事件处理器(Event Handler),用户可以根据需要,自定义事件处理模块(如:重启进程, 重启主机,备份数据等等)。比如:当检测到web进程停止服务时,Saker会按照用户的定义自动的重启进程;又如,当硬盘的使用率超过用户设定的阀值时,Saker会按照用户的定义自动的进行数据的压缩或者备份。从而实现真正的自动化管理。
-----------------------------------------------------------
Saker是一套功能全面、技术国际领先、运行稳定、实用的IT资源监管系统。
=========================================
==Saker系统--使IT管理更轻松         ===
==http://www.sakersoft.org/           ===
==========================================

11.重新开机(shutdown –i 6 now)
12.选择linux_new(lilo)或Red Hat Linux (2.4.20-19.8custom)开机,看看开机过程有没有错误发生。然后检查/proc/sys/net/ipv4/conf/all/hidden是不是存在?
13.如果都没有错误,安装下列rpm
rpm –ivh ipvsadm-1.21-4.i386.rpm

14.试验一下 输入:
[root@nbaa boot]# ipvsadm
IP Virtual Server version 1.0.9 (size=65536)
Prot LocalAddressort Scheduler Flags
-> RemoteAddressort Forward Weight ActiveConn InActConn

出现上面画面就是成功啦!!!

15.后续的动作就依照你的网路状态,去作规划了,后续进行中。

PART II:LVS设定


系统架构

一、简易设定:
1.IP Tunnel的设定:
Load Balance : 10.144.43.175(nb804
Real Server:10.144.43.142(linux142)、10.144.43.187(linux187)
Virtual IP :10.144.43.185(VIP)

Nb8048上面的设定:
1.先建立一个Subinterface
# ifconfig eth0:0 10.144.43.185 netmask 255.255.255.255 broadcast 10.144.43.185 up
2.建立IP Tunnel的Rule
2.1先打开IP Forwarding
# echo 1 > /proc/sys/net/ipv4/ip_forward
2.2 建立IP Tunnel的Rule,先建立Service
# ipvsadm –A –t 10.144.43.185:23 –s wlc
2.3 加入两台Real Server的IP
# ipvsadm –a –t 10.144.43.185:23 –r 10.144.43.187 –i
# ipvsadm –a –t 10.144.43.185:23 –r 10.144.43.142 -i

linux142与linux187上面的设定:
1. 另外建立一个Tunnel0
# ifconfig tunl0 10.144.43.185 netmask 255.255.255.255 broadcast 10.144.43.185
2. 将host加入routing table
# route add –host 10.144.43.185 dev tunl0
3.将介面的hidden属性打开:
# echo 1 > /proc/sys/net/ipv4/ip_forward
# echo 1 > /proc/sys/net/ipv4/conf/all/hidden
# echo 1 > /proc/sys/net/ipv4/conf/tunl0/hidden

2.Direct Routing的设定
Load Balance:10.144.43.175
Virtual IP: 10.144.43.185
RealServer1:10.144.43.175(nb804
RealServer2:10.144.43.142(linux142)
RealServer3:10.144.43.187(linux187)

网路架构图如上所示,其中DR与RealServer1、RealServer2在同一个网段,其IP Address配置如附图,基本设定如下,包含避免ARP Problem的设定:
DR(Direct Routing Server):
# ifconfig eth0 10.144.43.175 netmask 255.255.255.0 broadcast 10.144.43.255
# route add –net 10.144.43.0 dev eth0
# ifconfig eth0:0 10.144.43.185 netmask 255.255.255.255 broadcast 10.144.43.185
# echo 1 > /proc/sys/net/ipv4/ip_forward
# ipvsadm –A –t 10.144.43.185:23 –s rr (用Round Robin方式)
# 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

RealServer1 与RealServer2的设定:
# ifconfig eth0 10.144.43.142 netmask 255.255.255.0 broadcast 10.144.43.255
# route add –net 10.144.43.0 dev eth0
# ifconfig lo:0 10.144.43.185 netmask 255.255.255.255 broadcast 10.144.43.185
# route add –host 10.144.43.185 dev lo:0
# echo 1 > /proc/sys/net/ipv4/ip_forward
# echo 1 > /proc/sys/net/ipv4/conf/all/hidden
# echo 1 > /proc/sys/net/ipv4/conf/lo/hidden

测试:
从10.16.1.16机器上,对10.144.43.185作telnet 测试,三次连线三次都连到不同的Server,所以测试正常。

二、进阶的设定:
看完前面的设定,如果你有测试成功的话,一定会发现万一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的设定档放在/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: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");
}
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-9-6 10:33 , Processed in 0.021661 second(s), 16 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表