HA的简介:
HA:High Availability Cluster 高可用性群集
高可用集群是指一组通过硬件和
软件连接起来的独立计算机,它们在用户面前表现为一个单一系统,在这样的一组
计算机系统内部的一个或者多个节点停止工作,服务会从故障节点切换到正常工作的节点上运行,不会引起服务中断。从这个定义可以看出,集群必须检测节点和服务何时失效,何时恢复为可用。这个任务通常由一组被称为“心跳”的代码完成。在Linux-HA里这个功能由一个叫做heartbeat的程序完成。
Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能。
heartbeat (Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。
[
应用案例一(web服务器的高可用性)
Web1上的基本配置:
vim /etc/sysconfig/network
修改主机名称
HOSTNAME=web1.a.com
修改主机名hostname web1.a.com
.vim /etc/hosts 声明相关信息
192.168.100.22
web1.a.com
192.168.100.33 web2.a.com
挂载光盘mount /dev/cdrom /mnt/cdrom/
yum install -y httpd 安装apache
cd /var/www/html 进入目录
echo "web1.a.com" >index.html 编写网页显示文本
service httpd start 启动apache
yum localinstall -y heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm libnet-1.1.4-3.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm
--nogpgcheck
安装heartbeat相关软件包
--nogpgcheck用来回避所需要的加密密匙
cd /etc/ha.d/ 进入生成目录可以查看相关文件
cd /usr/share/doc/heartbeat-2.1.4/
cp ha.cf /etc/ha.d/
cp haresources /etc/ha.d/
cp authkeys /etc/ha.d/
cd /etc/ha.d/ 切换目录
vim ha.cf 修改文件定义心跳探测机制
在96行增加bcast
eth1 //利用广播来实行
214 node
web1.a.com
215 node
web2.a.com
dd if=/dev/random bs=512 count=1 |openssl md5 产生一组随机值,通过MD5加密值
vim authkeys 编辑文件
auth 3
3 md5 b0e2cec91e71fd451e8aa053f949b8ba
增加内容并把产生的MD5值写入
chmod 600 authkeys 更改文件的权限
vim haresources 编辑文件
在45行添加web1.a.com 192.168.100.22/24/eth0/192.168.100.255 httpd
待到web2的heartbeat安装完成后,把已经编写好的配置文件拷贝到web2上的合适位置
scp ha.cf web2.a.com:/etc/ha.d/
scp haresources web2.a.com:/etc/ha.d/
scp authkeys web2.a.com:/etc/ha.d/
scp /etc/init.d/httpd web2.a.com:/etc/ha.d/resource.d/
service heartbeat start 启动heartbeat服务
Web2上的配置
与Web1基本相同,安装heartbeat时scp web1.a.com:/root/heartbeat/* .rpm ./ 利用此命令可以把web1的相关文件都拷贝到本机器
安装heartbeat相关软件包
双方的heartbeat都正确启动后可以查看机器web1的虚拟网卡自动增加地址为192.168.100.100,表明确认接点web1为主要节点
Lvs与heartbeat的结合使用
yum remove httpd 卸载apache
yum install ipvsadm 安装ipvs
ipvsadm -A -t 192.168.100.100:80 -s rr 添加规则
ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.200 –g
ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.201 –g
service ipvsadm save 保存规则
scp /etc/sysconfig/ipvsadm web2.a.com:/etc/sysconfig/ 把规则文件拷贝给web2
cd /etc/ha.d/
vim haresources
修改45行web1.a.com 192.168.100.22/24/eth0/192.168.100.255 ipvsadm
cp /etc/init.d/ipvsadm resource.d/
scp haresources web2.a.com:/etc/ha.d/
scp /etc/init.d/ipvsadm web2.a.com:/etc/ha.d/resource.d/ 把修改好的文件拷贝到web2的相关位置
service heartbeat start 两边都启动heartbeat
cd /usr/lib/heartbeat/
./hb_standby 在web1上执行此命令,可在web2上查看新增虚拟vip网卡
./hb_takeover 在web1上执行此命令,web2上的虚拟vip消失,web1上的虚拟vip网卡重新获得
外部网络访问的地址都是192.168.100.100
Rs-1与Rs-2与上篇博客配置基本相同