Pages 1 / Total 1 1
已被查看589次    只看楼主
在Linux上实现高可用服务?????
主题
天国恋歌




等级:终级天王
积分:262948
经验:123435
魅力:139513
威望:100000
财富:160301
金钱:0.00元
帖子:4040
注册:2007-05-29 08:57
楼主 资料 短消息
在Linux上实现高可用服务????? 2007-06-19 10:28

高可用服务可算是当前企业应用中的一个热门了。高可用服务(High-Availability Service)是指用两台或更多机器来运行服务(比如http、NFT、Oracle等),当主服务 器down机后,其它的副服务器就自动接管服务,当主服务器回复到正常状态时,再自动将服务从副服务器上接管回来。大家都知道在服务器领域中Linux操作系统本身就具有很高的稳定性,然而在实际应用中,可能会要求系统具备更高的稳定性。这时候就需要构建高可用服务来保证系统能提供不间断的服务。许多商家都提供了Linux上的高可用产品,比如:Rose HA、Turbo HA Cluster Server、SGI FailSafe Server等,不过Linux上也有免费的高可用产品,比如High-Availability Linux Project,它是一个高可用性Linux项目。利用它,我们可以在Linux上构建各种高可用的服务。本文就将利用heartbeat实现高可用的http服务。

下面先介绍一下这次实验的软硬件情况:

A. 硬件

服务器:2台, 都具有双网卡,一块用于连接到网络,一块用于双机互连。
心跳线:特殊的串口线,用于串口信息的检测。
网线:交叉网线,用于双机互连的。支持heartbeat的UDP协议通讯。

B. 软件

操作系统:RedHat 9.0
服务:Apache (两台服务器上的apache设置和内容完全一致)
HA软件:heartbeat 1.0.4 for RedHat 9.0

C. 网络信息

服务器1
主机名:ha1.bogus.sh.cn
eth0: 192.168.2.1(接入LAN)
eth1: 10.0.0.1(接心跳线)

服务器2
主机名:ha2.bogus.sh.cn
eth0: 192.168.2.2(接入LAN)
eth1: 10.0.0.2(接心跳线)

对外服务的IP:192.168.1.3

下面是具体的安装过程:

1、安装heartbeat

我们选择heartbeat1.0.4,它是2003/10/14更新的,也是当前最新的稳定版本。另外还有heartbeat-beta1.1.3,不过如果你是第一次安装,没有需要和以前的版本配合的话,就不要选这个。

因为我们使用的操作系统是Red Hat 9.0,所以我们直接用相应版本的rpm包来安装。


heartbeat 1.0.4 for RedHat 9.0主要包有以下4个:
heartbeat-1.0.4-2.rh.9.i386.rpm
heartbeat-ldirectord-1.0.4-2.rh.9.i386.rpm
heartbeat-pils-1.0.4-2.rh.9.i386.rpm
heartbeat-stonith-1.0.4-2.rh.9.i386.rpm

不过这些包都依赖其它的一些包,它们可以在这里中找到:

ipvsadm-1.21-1.rh.9.um.1.i386.rpm
libnet-1.1.0-1.rh.9.um.1.i386.rpm
perl-Authen-SASL-2.03-1.rh.9.um.1.noarch.rpm
perl-Convert-ASN1-0.16-2.rh.9.um.1.noarch.rpm
perl-IO-Socket-SSL-0.92-1.rh.9.um.1.noarch.rpm
perl-ldap-0.2701-1.rh.9.um.1.noarch.rpm
perl-Mail-IMAPClient-2.2.7-1.rh.9.um.1.noarch.rpm
perl-Net-SSLeay-1.23-1.rh.9.um.1.i386.rpm
perl-XML-NamespaceSupport-1.08-1.rh.9.um.1.noarch.rpm
perl-XML-SAX-0.12-1.rh.9.um.1.noarch.rpm

下面给出笔者的安装顺序:

rpm -ivh heartbeat-pils-1.0.4-2.rh.9.i386.rpm
rpm -ivh heartbeat-stonith-1.0.4-2.rh.9.i386.rpm
rpm -ivh heartbeat-1.0.4-2.rh.9.i386.rpm
rpm -ivh ipvsadm-1.21-1.rh.9.um.1.i386.rpm
rpm -ivh perl-Net-SSLeay-1.23-1.rh.9.um.1.i386.rpm
rpm -ivh perl-IO-Socket-SSL-0.92-1.rh.9.um.1.noarch.rpm
rpm -ivh perl-Convert-ASN1-0.16-2.rh.9.um.1.noarch.rpm
rpm -ivh perl-XML-NamespaceSupport-1.08-1.rh.9.um.1.noarch.rpm
rpm -ivh perl-XML-SAX-0.12-1.rh.9.um.1.noarch.rpm
rpm -ivh --nodeps perl-Authen-SASL-2.03-1.rh.9.um.1.noarch.rpm
rpm -ivh --nodeps perl-Mail-IMAPClient-2.2.7-1.rh.9.um.1.noarch.rpm
(注:以上两个包还有依赖关系,可以从cpan.org上找到tar包安装,然后就用--nodeps强行安装)
rpm -ivh perl-ldap-0.2701-1.rh.9.um.1.noarch.rpm
rpm -ivh heartbeat-ldirectord-1.0.4-2.rh.9.i386.rpm

2、配置heartbeat

heartbeat的配置有以下三个文件,它们是:
ha.cf主要配置文件
haresources 资源配置文件
authkeys 关于认证信息

前两个文件应该是所有人都可读的,而authkeys是只有root才可读可写的。

2.1. /etc/hd.d/ha.cf

这个文件主要负责定义媒体和设置参数,是heartbeat的主要配置文件。这里我们的ha.cf文件内容如下:

node ha1.bogus.sh.cn
node ha2.bogus.sh.cn
serial /dev/ttyS0
baud 19200
deadtime 5
keepalive 1
initdead 30
udp eth1
udpport 694



IP:125.*.*.*     顶部
论坛交流 ›› Linux ›› 在Linux上实现高可用服务?????