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

[root@web1 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.200.132  web1.daphne.com  web1
192.168.200.133  web2.daphne.com  web2

2 节点之间时间同步

[root@web1 ~]# ntpdate ntp.api.bz

3 节点之间配置SSH互信

[root@web1 ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ‘‘
[root@web1 ~]# ssh-copy-id -i .ssh/id_rsa.pub [email protected]
[root@web1 ~]# ssh web2
[root@web2 ~]# 
 
[root@web2 ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ‘‘
[root@web2 ~]# ssh-copy-id -i .ssh/id_rsa.pub [email protected]
[root@web2 ~]# ssh web1
[root@web2 ~]# 

 

四 安装相关软件

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

yum install PyXML libnet pygtk2-libglade net-snmp-libs
yum install  libnet
rmp -ivh heartbeat-*

 

3 安装httpd

[root@web1 ~]# yum install httpd
[root@web1 ~]# cd /var/www/html/
[root@web1 html]# vim index.html 
web1
[root@web1 ~]# service httpd start

 

测试

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

[root@web1 ~]# serivce httpd off
[root@web1 ~]# chkconfig httpd of
[root@web1 ~]# chkconfig --list httpd
httpd          	0:off	1:off	2:off	3:off	4:off	5:off	6:off

 

以上操作在两个节点都要做

 

五 配置heartbeat

1配置文件说明

[root@web1 ~]# cd /etc/ha.d/
[root@web1 ha.d]# ls
authkeys  harc         rc.d           resource.d
ha.cf     haresources  README.config  shellfuncs

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

[root@web1 ha.d]# cd /usr/share/doc/heartbeat-2.1.4/
[root@web1 heartbeat-2.1.4]# ls 
apphbd.cf         faqntips.html        haresources         Requirements.html
authkeys          faqntips.txt         hb_report.html      Requirements.txt
AUTHORS           GettingStarted.html  hb_report.txt       rsync.html
ChangeLog         GettingStarted.txt   heartbeat_api.html  rsync.txt
COPYING           ha.cf                heartbeat_api.txt   startstop
COPYING.LGPL      HardwareGuide.html   logd.cf
DirectoryMap.txt  HardwareGuide.txt    README
我们需要  authkeys ha.cf haresources 三个配置文件
[root@web1 heartbeat-2.1.4]# cp authkeys ha.cf haresources /etc/ha.d/

 

2 配置authkeys

[root@web1 ha.d]# openssl rand -hex 8 >> authkeys 
[root@web1 ha.d]# vim authkeys 
auth 2
#1 crc
#2 sha1 HI!
#3 md5 Hello!
2 sha1 7c0f241959ee845d
[root@web1 ha.d]# chmod 600 authkeys 

 

3 配置ha.cf文件

[root@web1 ha.d]# vim ha.cf 

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

bcast  eth0

配置集群中的节点数

node web1.daphne.com
node web2.daphne.com

 

4 配置haresources

[root@web1 ha.d]# vim haresources 
web1.daphne.com 192.168.200.10/24/eth0 httpd

 

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

[root@web1 ha.d]# scp authkeys ha.cf haresources web2:/etc/ha.d/

 

6 启动web1与web2

先启动备份节点

[root@web2 ~]# service heartbeat  start
[root@web1 ~]# service heartbeat  start

 

六 测试web集群

查看IP

[root@web1 ha.d]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:7D:C1:D7  
          inet addr:192.168.200.132  Bcast:192.168.200.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe7d:c1d7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric: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:Ethernet  HWaddr 00:0C:29:7D:C1:D7  
          inet addr:192.168.200.10  Bcast:192.168.200.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1


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

 

故障演示
关闭web1上的heartbeat
[root@web1 ~]# service heartbeat stop
Stopping High-Availability services: 
Done.

 

查看web2上的IP

ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:61:E4:6B  
          inet addr:192.168.200.133  Bcast:192.168.200.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe61:e46b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric: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:Ethernet  HWaddr 00:0C:29:61:E4:6B  
          inet addr:192.168.200.10  Bcast:192.168.200.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1


lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric: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)

测试

 

七 问题汇总

节点间的文件同步

1Rsync+Inotify组合方案来解决节点之间的同步问题

2共享存储方案

 

八  共享存储

1 配置NFS服务器

[root@bogon ~]# yum install nfs*

[root@bogon ~]# mkdir -pv /web/html/
[root@bogon ~]# vim /web/html/index.html 

[root@bogon ~]# vim /etc/exports 
/web/html/ 192.168.200.0/24(rw,async)

[root@bogon ~]# service rpcbind start
[root@bogon ~]# service nfs start

 

节点测试 挂载

web1

[root@web1 ~]# mount -t nfs 192.168.200.138:/web/html /mnt
[root@web1 ~]# cd /mnt
[root@web1 mnt]# ls
index.html
[root@web1 ~]# umount /mnt

 

修改haresource文件

[root@web1 ha.d]# vim /etc/ha.d/haresources
web1.daphne.com 192.168.200.10/24/eth0 Filesystem::192.168.200.138:/web/html::/var/www/html::nfs  httpd

 

同步haresource配置文件

[root@web1 ha.d]# cd /etc/ha.d/
[root@web1 ha.d]# scp haresources web2:/etc/ha.d/

 

重启heartbeat

[root@web2 ~]# service heartbeat restart
[root@web1 ~]# service heartbeat restart

 

测试web服务

 

 

 

 

 
 
 
 
 
 
 
 
 

 

 

heartbeat + httpd + nfs 实现高可用web服务器,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。