首先两台服务器或者准备二台虚拟主机,这里我们以虚拟机为例
准备二台虚拟机,每个虚拟机都安装上二块网卡,每台虚拟机的网卡,一块网卡设置网桥接,一块设置为为虚拟网络的接法 比如设置为VMnet7。二台虚拟机的网卡一样,好了设置好了,我们启动虚拟机,
在虚拟机启动之前我们先来规划一下,如图这是我们的实验图谱
二台主机
环境搭建:
node1       eth0    192.168.0.154 
               eth1    10.0.23.1    心跳测试 
               提供web服务    
node2       eth0    192.168.0.164 
               eth1    10.0.23.2         心跳测试 
               提供web服务
接下来我们来配置name1:
首先根据图谱我们先配置name1的ip地址:
这里要配置静态ip地址
[root@ssss ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
InBlock.gifDEVICE=eth0
InBlock.gifBOOTPROTO=static
InBlock.gifIPADDR=192.168.0.154
InBlock.gifNETMASK=255.255.255.0
InBlock.gifONBOOT=yes
InBlock.gifHWADDR=00:0c:29:a4:bd:10
主机名更改
[root@node1 ~]# vim /etc/sysconfig/network
修改主机名字为
InBlock.gifHOSTNAME=node1.a.org
在用hostname 在进行修改 两件修改要保持一致
[root@node1 ~]# hostname node1.a.org
[root@node1 ~]# hostname 查看
InBlock.gifnode1.a.org
然后我们把web的服务停止让他开机不自动启动
[root@node1 ~]# service httpd stop
[root@node1 ~]# chkconfig httpd off
node2同上
修改/etc/hosts文件,添加以下内容
[root@node1 ~]# vim /etc/hosts
InBlock.gif192.168.0.154     node1.a.org         node1
InBlock.gif192.168.0.164     node2.a.org         node2
接下来我们用scp把这个文件copy到node2的主机上面
[root@node1 ~]# scp /etc/hosts node2:/root/
查看node2的主机你就可以看到node2里的hosts文件与node1主机的一样说明复制成功
如果我们想登陆node2的主机不用输入账号命名我们给node2主机一个密钥
[root@node1 ~]# ssh-keygen -t rsa[root@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node2
回车 使用node2的密码  等一下你登陆node2就不用再输入密码,直接可以进去,上传下载文件了。
反之,node2想要登陆node2不用输入密码账号,根据上面的办法就ok了。
安装软件
对了如果要安装软件包最好先配置好yum源 yum源的配置这里我们就不多说了,相信到了这一步我们学linxu的都背的滚瓜烂熟了。
配置好yum了我们就来安装一下web服务
[root@node1 ~]# yum install httpd
编辑web网页文件
[root@node1 ~]# vim /var/www/html/index.html
写入
InBlock.gif<h1>node1.a.org</h1>
同理node2下也要写入这样一个文件
InBlock.gif<h1>node2.a.org</h1>
下面是安装heartbeat
heartbeat所需的软件包有
InBlock.gifheartbeat-2.1.4-9.el5.i386.rpm
InBlock.gifheartbeat-devel-2.1.4-9.el5.i386.rpm
InBlock.gifheartbeat-gui-2.1.4-9.el5.i386.rpm
InBlock.gifheartbeat-pils-2.1.4-10.el5.i386.rpm
InBlock.gifheartbeat-stonith-2.1.4-10.el5.i386.rpm
InBlock.giflibnet-1.1.4-3.el5.i386.rpm
在家命令下新建一个heartbeaat的目录
[root@node1 ~]# mkdir heartbeat/
[root@node1 ~]# cd heartbeat/
[root@node1 heartbeat]# yum --nogpkcheck localintall *.rpm -y
把上面要安装的软件包安装
把自带的三种文件cp到/etc/ha.d/ 下
[root@node1 ha.d]# cp /usr/share/doc/heartbeat-2.1.4/ ha.cf ./
[root@node1 ha.d]# cp /usr/share/doc/heartbeat-2.1.4/ authkeys ./
设置authkyes的权限为400 或600
[root@node1 ha.d]# cp /usr/share/doc/heartbeat-2.1.4/ haresources ./
然后编辑ha.cf文件
InBlock.gifkeepalive2 //**line48 设定heartbeat之间的时间间隔为2秒    
InBlock.gif
InBlock.gifdeadtime30 //**line56 在30秒后宣布节点死亡    
InBlock.gif
InBlock.gifwarntime10 //**line61在日志中发出“late heartbeat“警告之前等待的时间,单位为秒    
InBlock.gif
InBlock.gifudpport694 //**line76 使用端口694进行bcast和ucast通信。这是默认的    
InBlock.gif
InBlock.gifbcasteth1        //**line90add 表示在eth1接口上使用广播heartbeat    
InBlock.gifnodeprimary.a.com //**line214add    
InBlock.gif
InBlock.gifnodestandby.a.com    //**line215add    
InBlock.gif
InBlock.gifrespawnhacluster/usr/lib/heartbeat/ipfail //**line255使Heartbeat以userid(这里为hacluster)的身份来执行ipfail进程    
InBlock.gif
InBlock.gif                                                                            并监视该进程的执行情况
生成节点域共享密钥
[root@node1 ha.d]# dd if=/dev/urandom bs=512 count=1 | openssl md5
InBlock.gif1+0 records in
InBlock.gif1+0 records out
InBlock.gif512 bytes (512 B) copied, 0.000819551 seconds, 625 kB/s
InBlock.gif2dedd048b4ec16b2977e80a5083ce379
编辑
[root@node1 ha.d]# vim authkeys
InBlock.gif#auth 1
InBlock.gif#1 crc
InBlock.gif#2 sha1 HI!
InBlock.gif#3 md5 Hello!
InBlock.gifauth 2
InBlock.gif2 sha1 2dedd048b4ec16b2977e80a5083ce379
定义资源
[root@node1 ha.d]# vim haresources
InBlock.gifnode1.a.org         192.168.0.100/24/eth0/192.165.0.255 httpd
node2的配置
node2的配置其实无node1的配置大致相同
上面已经配置了一些node2的配置了
第一还是要安装软件包,方法与node1主机的相同,
我们可以直接用命令得到我们想要的安装包
在node1的主机上
[root@server31 ~]# scp  heartbeat/ node2:/root/
就可以得到我们要node1上面的安装包了
node2中/etc/ha.d的文件也可以从node1中获得
[root@server31 ~]# cd /usr/lib/heartbeat
[root@server31 heartbeat]# ls
InBlock.gifapi_test                    crmd                                ha_propagate                 logtest                    ra-api-1.dtd
InBlock.gifapphbd                        crm.dtd                         haresources2cib.py     lrmadmin                 recoverymgrd
InBlock.gifapphbtest                 crm_primitive.py        haresources2cib.pyc    lrmd                         req_resource
InBlock.gifatest                         crm_primitive.pyc     haresources2cib.pyo    lrmtest                    ResourceManager
InBlock.gifattrd                         crm_primitive.pyo     hb_addnode                     mach_down                send_arp
InBlock.gifbase64_md5_test     crm_utils.py                hb_delnode                     mgmtd                        stonithd
InBlock.gifBasicSanityCheck    crm_utils.pyc             hb_setsite                     mgmtdtest                stonithdtest
InBlock.gifccm                             crm_utils.pyo             hb_setweight                 mlock                        tengine
InBlock.gifccm_testclient        cts                                 hb_standby                     ocf-returncodes    TestHeartbeatComm
InBlock.gifcib                             dopd                                hb_takeover                    ocf-shellfuncs     transient-test.sh
InBlock.gifcibmon                        drbd-peer-outdater    heartbeat                        pengine                    ttest
InBlock.gifclmtest                     findif                            ipctest                            pingd                        utillib.sh
InBlock.gifcrm_commands.py     ha_config                     ipctransientclient     plugins
InBlock.gifcrm_commands.pyc    ha_logd                         ipctransientserver     quorumd
InBlock.gifcrm_commands.pyo    ha_logger                     ipfail                             quorumdtest
[root@server31 heartbeat]# ./ha_propagate
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
就可以把ha.cf authkeys文件copy到node2上了
但是这个脚本文件不能把herecources拷贝到node1上 我们要手动的复制用scp命令,接下了 我们可以测试了 测试之前要想把heartbeat
[root@server31 ha.d]# /etc/init.d/heartbeat start
二个都要启动
测试 在本地机器上输入http://192.168.0.100 可以进行测试
打开的是node1上面的网页  当我们的node1的httpd服务停止了服务,就可以显示node2的网页内容。
好了实验基本完成,可能有点小毛病,求大家指点
这是我的论坛 http://51linux.5d6d.com