双机热备配置(Heartbeat)引用
:)前言:
一.安装前环境设定
===================================================================
两台主机硬件环境可以不一样,本人用的是vmware来做的实验,还没有在真实的在两台机
器上安装。
硬件环境:dell1800(虚拟2个机器)
软件环境:vmware5redhatas4heartbeat2.0.4
环境描述:
两台计算机(两个节点),一个共享SCSI硬盘盒(用于存储共享,参考下边"添加硬件")。每
个节点都安装支持共享总线的
SCSI卡;每个节点有自己的系统磁盘;每个分别带有两块以太网卡,(其中一块用于网络通
讯,另一块用于心跳功能。)
。两个节点的网络设置如下:
节点1:主机名为:www1,第一块网卡(eth0)的IP地址:192.168.0.197(用于网络通讯)。
第二块网卡(eth1)的IP地址:
192.168.1.1(用于心跳通讯)。
节点2:主机名为:www2,第一块网卡(eth0)的IP地址:192.168.0.198(用于网络通讯)。
第二块网卡(eth1)的IP地址:
192.168.1.2(用于心跳通讯)。
vm里用eth1做心跳(只要互相可以ping就可以了)。实际安装时,两台主机的eht1使用双
机对联线直接连接。
vmware下快速安装双系统!^_^
1.在d:vmfile目录下新建目录linuxha2,在把d:vmfilelinuxha1里面刚才安装好的虚拟操作
系统复制一份到linuxha2
这样子,我们就得到了两个虚拟的RedHatAdvancedServer4了,当然,他们是一样的,我
们需要进行些修改。
2.进入d:vmfilelinuxha2,用写字板打开,修改displayName="Linuxha1"为
displayName="Linuxha2",
这样子,在vmware控制台,你就看到两个不同的名字了。尽管如此,如果你同时启动两个虚
拟机,这两个虚拟系统还是一样
的,所以,我们需要修改他们的ip地址,主机名字等。
3.将linuxha2目录中的系统启动,修改主机名字
#vi/etc/sysconfig/network
将HOSTNAME=www1改为HOSTNAME=www2
接下来修改ip地址:
#vi/etc/sysconfig/network-scripts/ifcfg-eth0
将IPADDR=192.168.1.1改为IPADDR=192.168.1.2
修改/etc/hosts,参考下边的步骤
4.Poweroff这个虚拟机,这个样子,我们就得到了两个不同的系统,一个是linuxha1,位于
d:vmfilelinuhxad1,一个是
linuxha2位于d:vmfilelinuxha2
添加硬件
在两个系统都poweroff的状态下。我们需要分别给两个系统添加一块网卡,还要添加一个
共享磁盘
1.用vmware打开linuxha1,注意不是poweron哦。在tting菜单下选择configurationedtior
,点击add,添加一块网卡,这个就不需要讲了吧。还需要添加一个虚拟磁盘,还是点add,硬
件类型是Harddisk,然后”
Creatanewvirtualdisk”,大小我分配了0.5G,并选择上下面的“Allocatealldiskspace”.下一步
是给共享磁盘起
名字叫””,然后确定。这样子就添加好了。
2.用vmware打开linuxha2,注意不是poweron哦。同样添加一块网卡。接着添加虚拟磁
盘,这次是”Uanexisting
virtualdisk”,然后选择我们刚才在linuxone中创建的,按照提示就可以了。
3.磁盘和网卡都添加好了。这里,还需要注意,由于vmware中的系统启动后会锁定磁盘,
所以当你启动linuxha1后共享磁
盘被锁定了,你的linuxha2就起不来了。因此,我们需要处理一下先。首先,到
d:vmfilelinuxha1下,用写字板打开
,在最后一行加入
g=fal
然后到d:vmfilelinuxha2,同样修改,在最后一行加入
g=fal
保存退出。
4.好了,到此为止,两个系统的硬件都配置好了.
分区方式:
[root@www1ha.d]#df-h
FilesystemSizeUdAvailU%Mountedon
/dev/mapper/VolGroup00-LogVol00
7.4G2.8G4.3G40%/
/dev/sda199M9.0M85M10%/boot
*安装启动服务后
[root@www1ha.d]#df-h
FilesystemSizeUdAvailU%Mountedon
/dev/mapper/VolGroup00-LogVol00
7.4G2.8G4.3G40%/
/dev/sda199M9.0M85M10%/boot
none94M094M0%/dev/shm
/dev/sdb1008M34M924M4%/ha##由ha自动加载
二.安装前网络环境设定:
========================================================
node1:主机名:www1(HA01)
eth0:192.168.0.197//对外IP地址
eth1:192.168.1.1//HA心跳使用地址
node2:主机名:www2(HA02)
eth0:192.168.0.198//对外IP地址
eth1:192.168.1.2//HA心跳使用地址
特别注意要检查以下几个文件:
/etc/hosts
/etc/
/etc/
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/
#vi/etc/hosts
node1的hosts内容如下:
omainlocalhost
192.168.0.197www1HA01
192.168.1.1HA01
192.168.1.2HA02
192.168.0.198www2
node2的hosts内容如下:
omainlocalhost
192.168.0.198www2HA02
192.168.1.2HA02
192.168.1.1HA01
192.168.0.197www1
#cat/etc/
orderhosts,bind
#cat/etc/
namerver202.98.0.68//DNS地址
#cat/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=www1//主机名
#cat/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.197
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
#cat/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.1.1
NETMASK=255.255.255.0
[node1]与[node2]在上面的配置中,除了
/etc/hosts
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
要各自修改外,其他一致。
配置完成后,试试在各自主机上ping对方的主机名,应该可以ping通:
/root#pingHA02
PINGHA02(192.168.1.2)56(84)bytesofdata.
64bytesfromHA02(192.168.1.2):icmp_q=0ttl=64time=0.198ms
64bytesfromHA02(192.168.1.2):icmp_q=1ttl=64time=0.266ms
64bytesfromHA02(192.168.1.2):icmp_q=2ttl=64time=0.148ms
---HA02pingstatistics---
3packetstransmitted,3received,0%packetloss,time2002ms
rttmin/avg/max/mdev=0.148/0.204/0.266/0.048ms,pipe2
三.安装HA与HA依赖包
===========================================================
//可以不装
【四】配置heartbeat
使用heartbeat,必须配置三个文件:authkeys、和haresources。
---------------------------
配置心跳的加密方式:authkeys
---------------------------
#vi/etc/ha.d/authkeys
如果使用双机对联线(双绞线),可以配置如下:
#vi/etc/hc.d/authkeys
auth1
1crc
存盘退出,然后
#chmod600authkeys
---------------------------
配置心跳的监控:haresources
---------------------------
#vi/etc/ha.d/haresources
1.没有共享磁盘的情况下配置
各主机这部分应完全相同。
www1192.168.0.200ipvsadmhttpd
指定www1调用ipvsadm启动http服务,系统附加一个虚拟IP192.168.0.200给eth0:0
这里如果www1宕机后,www2可以自动启动http服务,并新分配IP192.168.0.200给www2
的eth0:0
2.有共享磁盘情况的配置
www1192.168.0.200Filesystem::/dev/sdb::/ha::ext3ipvsadmhttpd
设置www1为主节点,集群服务器的ip地址为192.168.0.200,netmask集群的服务有httpd,
还有共享磁盘/dev/sdb
该文件只有一行,其含义就是,当主节点www1宕机时,自动启用备用节点里www2来提
供服务,在切换到www2上时,自动启动httpd服务,同时,将/dev/sdb1挂接到/ha。
*配置HA高可用,不要设置NFS挂载和mysql服务在启动服务器时自动运行,也就是说,把
与HA相关资源交给HeartbeatHA去自动管理。
3.由NFS服务的设置
www110.4.66.88Filesystem::192.168.0.252:/data::/data::
这一行配置了3个资源,第一个是IP地址,第二个是NFS共享数据,
第三个是服务,文件在/etc/rc.d/init.d/目录,
可以使用start或stop来启动或停止服务。
---------------------------
配置心跳的配置文件:
---------------------------
#vi/etc/ha.d/
logfile/var/log/ha_log/##ha的日志文件记录位置。如没有该目录,则需要手动
添加
logfacilitylocal0
#bcasteth1##使用eht1做心跳监测,这个我没有设置
keepalive2##设定心跳(监测)时间时间为2秒
#warntime10##超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中,
这个也没有设置
deadtime30##超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡
initdead120##在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工
作,该选项用于解决这种情况
产生的时间间隔。取值至少为deadtime的两倍。
udpport694##使用udp端口694进行心跳监测
auto_failbackon##heartbeat的两台主机分别为主节点和从节点。主节点在正常情况下占用
资源并运行所有的服务,遇到故障时把资源交给从节点并由从节点运行服务。在该选项设为
on的情况下,一旦主节点恢复运行,则自动获取
nodewww1##节点1,必须要与uname-n指令得到的结果一致。
nodewww2##节点2
ping192.168.10.1##通过ping网关来监测心跳是否正常。
respawnhacluster/usr/lib64/heartbeat/ipfail
---------------------------
设置ipvsadm的巡回监测
---------------------------
ipvsadm-A-t192.168.10.200:80-srr
ipvsadm-a-t192.168.10.200:80-r192.168.10.201:80-m
ipvsadm-a-t192.168.10.200:80-r192.168.10.202:80-m
执行后进行监测:
#ipvsadm--list
如果返回结果与下相同,则设置正确。
IPVirtualServerversion1.2.0(size=4096)
ProtLocalAddress:PortSchedulerFlags
->RemoteAddress:PortForwardWeightActiveConnInActConn
TCP192.168.10.200:httprr
->www2:httpLocal100
->www1:httpMasq100
【五】HA服务的启动、关闭以及测试
=================================================
启动HA:rviceheartbeatstart
关闭HA;rviceheartbeatstop
系统在启动时已经自动把heartbeat加载了。
使用http服务测试heartbeat
首先启动httpd服务
#rvicehttpdstart
编辑各自主机的测试用html文件,放到/var/www/html/目录下。
启动node1的heartbeatwww1#rviceheartbeatstart
将看到不用的页面
在主节点(www1)上启动heartbeat服务:/etc/init.d/heartbeatstart。如果不出现错误,web服
务应该被heartbeat启动
,同时heartbeat为主节点设置IP地址192.168.0.200。使用ifconfigeth0:0可以看到如下信息:
eth0:0Linkencap:EthernetHWaddr00:0C:29:D8:FD:EB
inetaddr:192.168.0.200Bcast:192.168.0.255Mask:255.255.255.0
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
RXpackets:14970errors:0dropped:0overruns:0frame:0
TXpackets:14977errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:100
RXbytes:3624073(3.4Mb)TXbytes:3626223(3.4Mb)
Interrupt:19Baaddress:0x10a0
同时/dev/sdb,应该被挂接。使用df-h,可以看到的信息包含下面的行:
/dev/sdb485M8.1M452M2%/ha
在node2(www2)上启动heartbeat:/etc/init.d/heartbeatstart。使用ifconfigeth0:0可以看到如
下信息:
eth0:0Linkencap:EthernetHWaddr00:0C:29:E4:1E:F7
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
Interrupt:19Baaddress:0x10a0
表明现在node2节点没有被启用。
使用df-h,看到的信息不包含下面的行:
/dev/sdb1485M8.1M452M2%/ha
表明/dev/sdb1没有被加载。
直接关闭节点1的电源或者在www1上执行rviceheartbeatstop命令(模拟故障)。最慢30
秒后,在节点2(www2)上执行
ifconfigeth0:0,可以看到eth0:0已经被设置为192.168.0.200
还可以在客户机上这样来确定^_^
1挂起服务时的状态,仔细看197和200的mac地址是一样的
D:>arp-a
Interface:192.168.0.138---0x10005
InternetAddressPhysicalAddressType
192.168.0.19700-0c-29-71-4b-12dynamic
192.168.0.20000-0c-29-71-4b-12dynamic
192.168.0.25400-01-50-55-63-5bdynamic
2挂起服务mac地址变啦
D:>arp-a
Interface:192.168.0.138---0x10005
InternetAddressPhysicalAddressType
192.168.0.20000-0c-29-6c-54-91dynamic
192.168.0.25400-01-50-55-63-5bdynamic
(发现个小问题,如果把两台节点都手动stop以后,必须重新启动机器才能重新正常启用
heartbeat服务)
【六】防火墙设置
====================================================
heartbeat默认使用udp694端口进行心跳监测。如果系统有使用iptables做防火墙,应记
住把这个端口打开。
#vi/etc/sysconfig/iptables
加入以下内容
-ARH-Firewall-1-INPUT-pudp-mudp--dport694-d10.0.0.201-jACCEPT
意思是udp694端口对对方的心跳网卡地址192.168.1.2开放。
#rviceiptablesrestart
重新加载iptables。
本文发布于:2022-11-27 15:00:39,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/31644.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |