发表于 2019-1-7 11:39:13

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
  二 拓扑结构
http://168322.blog.运维网.com/attachment/201407/6/158322_1404636731IBRK.png
  三 前提条件(两个节点都有配置)
  1 节点之间主机名可以互相解析
  web1 ,web2
# 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 节点之间时间同步
# ntpdate ntp.api.bz
  3 节点之间配置SSH互信
# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
# ssh-copy-id -i .ssh/id_rsa.pub root@web2.daphne.com
# ssh web2
## 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
yum install PyXML libnet pygtk2-libglade net-snmp-libs
yum install libtool-ltd( 注要从源库安装 ,不可以epel)
lyum installlibnet
rpm -ivh heartbeat-*
  3 安装httpd
# yum install httpd
# cd /var/www/html/
# vim index.html
web1
# service httpd start
  测试
http://168322.blog.运维网.com/attachment/201407/6/158322_1404636731cLDQ.png
  测试完毕 关闭服务 使其开机不要启动
# serivce httpd off
# chkconfig httpd of
# chkconfig --list httpd
httpd          0:off1:off2:off3:off4:off5:off6:off
  以上操作在两个节点都要做
  五 配置heartbeat
  1配置文件说明
# cd /etc/ha.d/
# ls
authkeysharc         rc.d         resource.d
ha.cf   haresourcesREADME.configshellfuncs
  说明 安装好的heartbeat 默认没有配置文件,但提供了配置文件样本
# 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我们需要authkeys ha.cf haresources 三个配置文件# cp authkeys ha.cf haresources /etc/ha.d/
  2 配置authkeys
# 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文件
# vim ha.cf

  修改心跳信息的传播方式 可以采用 组播 广播 单播
bcasteth0
  配置集群中的节点数
node web1.daphne.com
node web2.daphne.com
  4 配置haresources
# vim haresources
web1.daphne.com 192.168.200.10/24/eth0 httpd
  5 复制以上三个文件到web2上
# scp authkeys ha.cf haresources web2:/etc/ha.d/
  6 启动web1与web2
  先启动备份节点
# service heartbeatstart
# service heartbeatstart
  六 测试web集群
  查看IP
# 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
http://168322.blog.运维网.com/attachment/201407/6/158322_1404636731GD3u.png故障演示关闭web1上的heartbeat# service heartbeat stop
Stopping High-Availability services:
Done.

  查看web2上的IP
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)
  测试
http://168322.blog.运维网.com/attachment/201407/6/158322_1404636732lYsH.png

  七 问题汇总
  节点间的文件同步
  1Rsync+Inotify组合方案来解决节点之间的同步问题
  2共享存储方案
  八 共享存储
  1 配置NFS服务器
# 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
# mount -t nfs 192.168.200.138:/web/html /mnt
# cd /mnt
# ls
index.html
# umount /mnt
  修改haresource文件
# 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配置文件
# cd /etc/ha.d/
# scp haresources web2:/etc/ha.d/
  重启heartbeat
# service heartbeat restart
# service heartbeat restart

  测试web服务
http://168322.blog.运维网.com/attachment/201407/6/158322_1404636732XmIF.png


         



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