34fw 发表于 2015-1-14 09:00:08

Heartbeat+httpd+NFS 实现高可用的Web服务器

准备工作
1、实验拓扑图


2、实验时最好事先关闭防火墙与SELinux (两节点都要配置)
node1,node2:
# service iptables stop
# vim /etc/selinux/config
SELINUX=disabled


3、节点之前主机名互相解析:一定确保主机名和uname -n一致
# vim /etc/hosts
10.10.0.224node1.test.comnode1
10.10.0.225node2.test.comnode2

4、节点时间必须同步node1,node2: # ntpdate 10.10.0.11
# date Tue Jan 13 16:41:30 CST 2015
5、节点之间配置SSH互信node1:# ssh-keygen-t rsa -f ~/.ssh/id_rsa-P ''
# ssh-copy-id -i .ssh/id_rsa.pub root@node2.test.com
# ssh node2
# ifconfig

node2:
# ssh-keygen-t rsa -f ~/.ssh/id_rsa-P ''
# ssh-copy-id -i .ssh/id_rsa.pub root@node1.test.com
# ssh node1
# ifconfig

一、安装相关软件(两节点都需要安装)1.heartbeat   安装组件说明
heartbeat   核心组件*   heartbeat-devel   开发包   heartbeat-gui   图形管理接口 *   heartbeat-ldirectord   为lvs高可用提供规则自动生成及后端realserver健康状态检查的组件   heartbeat-pils   装载库插件接口 *   heartbeat-stonith   爆头接口 *注:带*表示必须安装
2.安装heartbeat (node1,node2)
# yum -y install heartbeat*
3.安装httpd
node1:
# yum install -y httpd
# service httpd start
启动 httpd:                                              [确定]
# echo "node1.test.com" > /var/www/html/index.html测试访问页面测试完成之后需要停用httpd,并禁止开机启动# service httpd stop
停止 httpd:                                              [确定]
# chkconfig httpd off

node2:
# yum install -y httpd
# service httpd start
# echo "node2.test.com" > /var/www/html/index.html测试访问页面测试完成之后需要停用httpd,并禁止开机启动# service httpd stop   
# chkconfig httpd off
二、配置heartbeat1、配置文件说明
# cd /etc/ha.d/
# ls
harcrc.dREADME.configresource.dshellfuncsshellfuncs.rpmsave、说明:安装好的heartbeat默认是没有配置文件的,但提供了配置文件样本
# cp /usr/share/doc/heartbeat-3.0.4/{authkeys ha.cf haresources} /etc/ha.d/说明:三个配置文件是我们需要的分别为,authkeys、ha.cf、haresources
authkeys #是节点之间的认证key文件,我们不能让什么服务器都加入集群中来,加入集群中的节点都是需要认证的ha.cf #heartbeat的主配置文件haresources #集群资源管理配置文件(在heartbeat所有版本中都是支持haresources来配置集群中的资源的)
2.配置authkeys文件
# openssl rand -base64 8   #生成密钥随机数
# vim authkeys
#auth 1
#1 crc
#2 sha1 HI!
#3 md5 Hello!
auth 1
1 md5 a4ef87crg# chmod 600 authkeys      #修改密钥文件的权限为600

3.配置ha.cf文件
# vim ha.cf主要修改两处(其它都可以默认):
(1).修改心跳信息的传播方式(这里是广播)
bcast   eth0(2).配置集群中的节点数
node    node1.test.com
node    node2.test.com4.配置haresources文件
# vim haresources
node1.test.com IPaddr::10.10.0.11/24/eth0 httpd5.复制以上三个配置文件到node2上
# scp authkeys ha.cf haresources node2:/etc/ha.d/
6.启动node1与node2# ssh node2 "service heartbeat start"
# service heartbeat start         

三、测试web集群1.查看启动的服务
# netstat -ntulp
2.查看IP
# ifconfig
3.测试4.故障演示
1).关闭node1上的heartbeat
# service heartbeat stop   #将node1中的heartbeat关闭
2).查看node2上的IP
# ifconfig # 查看node2的IP,可以看到立即转移到node2上
3).测试大家可以看到,集群已经转移到node2上,从而实现了Web高可用。
四、共享存储1.配置NFS服务器
# mkdir -pv /web
# vim /etc/exports
/web/      10.10.0.0/16(ro,async)
# echo 'NFS Server' > /web/index.html
# service portmap start
# service nfs start
# showmount -e 10.10.0.226
Export list for 10.10.0.226:
/web 10.10.0.0/122.节点测试挂载
node1:
# mount -t nfs 10.10.0.226:/web /mnt   
# mount
# umount /mnt
# mount
node2:
# mount -t nfs 10.10.0.226:/web /mnt
# mount
# umount /mnt
# mount 3.修改haresource文件
# vim /etc/ha.d/haresources
node1.test.com IPaddr::10.10.0.11/12/eth0 Filesystem::10.10.0.226:/web::/var/www/html::nfshttpd4.同步haresource配置文件
# cd /etc/ha.d/
# scp haresources node2:/etc/ha.d/
5.重启一下heartbeat
# ssh node2 "service heartbeat restart"
# service heartbeat restart         
6.查看一下端口
# netstat -ntulp
7.测试一下Web服务# mount
/dev/sda2 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
10.10.0.226:/web on /var/www/html type nfs (rw,addr=10.10.0.226)
页: [1]
查看完整版本: Heartbeat+httpd+NFS 实现高可用的Web服务器