435rwe 发表于 2014-7-7 09:10:05

heartbeat httpd nfs 实现高可用web集群

一 环境准备
二 拓扑结构
三 前提条件
四 安装相关软件
五 配置heartbeat
六 测试web集群
七 问题汇总
八 共享存储
一 环境准备
操作系统
centos 6.4 x86_64 最小化安装
如使用yum 安装的方式 centos5.5 安装的是V2.X ,centos 6.4 安装的是V3.X
YUM 安装 Vim man ntp “development tools” “server platform development” “desktop platform development”
配置 epel YUM 源
关闭 防火墙 selinux
二 拓扑结构

三 前提条件(两个节点都有配置)
1 节点之间主机名可以互相解析
web1 ,web2
?

1
2
3
4
5
# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.200.132web1.daphne.comweb1
192.168.200.133web2.daphne.comweb2




2 节点之间时间同步
?

1
# ntpdate ntp.api.bz




3 节点之间配置SSH互信
?

1
2
3
4
# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
# ssh-copy-id -i .ssh/id_rsa.pub root@web2.daphne.com
# ssh web2
#




?

1





?

1
2
3
4
# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
# ssh-copy-id -i .ssh/id_rsa.pub root@web1.daphne.com
# ssh web1
#




四 安装相关软件
1 heartbeat 组件说明

[*]heartbeat 核心组件
[*]heartbeat-gui 图形管理接口
[*]heartbeat-ldirectord 为lvs高可用提供规则自动生成及后端realserver健康状态检查组件
[*]heartbeat-pils 装载库插件接口
[*]heartbeat-stonith
2 安装heartbeat
heartbeat-2.1.4-12.el6.x86_64.rpm
heartbeat-gui-2.1.4-12.el6.x86_64.rpm
heartbeat-pils-2.1.4-12.el6.x86_64.rpm
heartbeat-stonith-2.1.4-12.el6.x86_64.rpm
?

1
2
3
4
yum install PyXML libnet pygtk2-libglade net-snmp-libs
yum install libtool-ltd( 注要从源库安装 ,不可以epel)
lyum installlibnet
rpm -ivh heartbeat-*




3 安装httpd
?

1
2
3
4
5
# yum install httpd
# cd /var/www/html/
# vim index.html
web1
# service httpd start




测试

测试完毕 关闭服务 使其开机不要启动
?

1
2
3
4
# serivce httpd off
# chkconfig httpd of
# chkconfig --list httpd
httpd         0:off   1:off   2:off   3:off   4:off   5:off   6:off




以上操作在两个节点都要做
五 配置heartbeat
1配置文件说明
?

1
2
3
4
# cd /etc/ha.d/
# ls
authkeysharc         rc.d         resource.d
ha.cf   haresourcesREADME.configshellfuncs




说明 安装好的heartbeat 默认没有配置文件,但提供了配置文件样本
?

1
2
3
4
5
6
7
8
9
# cd /usr/share/doc/heartbeat-2.1.4/
# ls
apphbd.cf         faqntips.html      haresources         Requirements.html
authkeys          faqntips.txt         hb_report.html      Requirements.txt
AUTHORS         GettingStarted.htmlhb_report.txt       rsync.html
ChangeLog         GettingStarted.txt   heartbeat_api.htmlrsync.txt
COPYING         ha.cf                heartbeat_api.txt   startstop
COPYING.LGPL      HardwareGuide.html   logd.cf
DirectoryMap.txtHardwareGuide.txt    README




?

1
<font face="微软雅黑">我们需要authkeys ha.cf haresources 三个配置文件</font>




?

1
# cp authkeys ha.cf haresources /etc/ha.d/




2 配置authkeys
?

1
2
3
4
5
6
7
8
# openssl rand -hex 8 >> authkeys
# vim authkeys
auth 2
#1 crc
#2 sha1 HI!
#3 md5 Hello!
2 sha1 7c0f241959ee845d
# chmod 600 authkeys




3 配置ha.cf文件
?

1
# vim ha.cf




修改心跳信息的传播方式 可以采用 组播 广播 单播
?

1
bcasteth0




配置集群中的节点数
?

1
2
node web1.daphne.com
node web2.daphne.com




4 配置haresources
?

1
2
# vim haresources
web1.daphne.com 192.168.200.10/24/eth0 httpd




5 复制以上三个文件到web2上
?

1
# scp authkeys ha.cf haresources web2:/etc/ha.d/




6 启动web1与web2
先启动备份节点
?

1
2
# service heartbeatstart
# service heartbeatstart




六 测试web集群
查看IP
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# ifconfig
eth0      Link encap:EthernetHWaddr 00:0C:29:7D:C1:D7
          inet addr:192.168.200.132Bcast:192.168.200.255Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe7d:c1d7/64 Scope:Link
          UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
          RX packets:9069 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9159 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1707993 (1.6 MiB)TX bytes:1846141 (1.7 MiB)

eth0:0    Link encap:EthernetHWaddr 00:0C:29:7D:C1:D7
          inet addr:192.168.200.10Bcast:192.168.200.255Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1


lo      Link encap:Local Loopback
          inet addr:127.0.0.1Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNINGMTU:16436Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0




?

1



?

1





?

1
<font face="微软雅黑">故障演示</font>




?

1
<font face="微软雅黑">关闭web1上的heartbeat</font>




?

1
2
3
# service heartbeat stop
Stopping High-Availability services:
Done.




查看web2上的IP
?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ifconfig
eth0      Link encap:EthernetHWaddr 00:0C:29:61:E4:6B
          inet addr:192.168.200.133Bcast:192.168.200.255Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe61:e46b/64 Scope:Link
          UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
          RX packets:8230 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8164 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1698974 (1.6 MiB)TX bytes:1680369 (1.6 MiB)

eth0:0    Link encap:EthernetHWaddr 00:0C:29:61:E4:6B
          inet addr:192.168.200.10Bcast:192.168.200.255Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1


lo      Link encap:Local Loopback
          inet addr:127.0.0.1Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNINGMTU:16436Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)TX bytes:0 (0.0 b)




测试

?

1





七 问题汇总
节点间的文件同步
1Rsync+Inotify组合方案来解决节点之间的同步问题
2共享存储方案
八 共享存储
1 配置NFS服务器
?

1
2
3
4
5
6
7
8
9
10
# yum install nfs*

# mkdir -pv /web/html/
# vim /web/html/index.html

# vim /etc/exports
/web/html/ 192.168.200.0/24(rw,async)

# service rpcbind start
# service nfs start




节点测试 挂载
web1
?

1
2
3
4
5
# mount -t nfs 192.168.200.138:/web/html /mnt
# cd /mnt
# ls
index.html
# umount /mnt




修改haresource文件
?

1
2
# vim /etc/ha.d/haresources
web1.daphne.com 192.168.200.10/24/eth0 Filesystem::192.168.200.138:/web/html::/var/www/html::nfshttpd




同步haresource配置文件
?

1
2
# cd /etc/ha.d/
# scp haresources web2:/etc/ha.d/




重启heartbeat
?

1
2
# service heartbeat restart
# service heartbeat restart




测试web服务


页: [1]
查看完整版本: heartbeat httpd nfs 实现高可用web集群