sakko51150 发表于 2019-1-5 07:54:23

基于heartbeat v2和heartbeat

  1、操作系统redhat5.8
2、实验准备四台服务器:
VIP:172.16.0.100
node1:172.16.0.22(Heartbeat+Ldirector)
node2:172.16.0.23(Heartbeat+Ldirector)
RS1:172.16.0.24(httpd)
RS2:172.16.0.25(httpd)
实验拓扑图如下:
http://blog.运维网.com/attachment/201208/214737458.png
  
  目录:
一、配置node1和node2的关系:
1、修改双方主机名为node1和node2
2、修改/etc/hosts文件,使node1和node2能解析成不同IP
3、配置双方的ssh信任
4、调整双方主机的时间
二、安装RS1(httpd)和RS2(httpd)软件,并配置成LVS(DR)模型并测试
三、安装与配置Heartbeat和Ldirectord软件
四、hb_gui的图形界面进行配置
五、测试
  一、配置node1和node2的关系


[*]1、修改主机名
[*]#vim /etc/sysconfig/network
[*]HOSTNAME=node1
[*]
[*]#hostname node1
[*]注意:确保与uname -n结果一样
[*]
[*]2、修改/etc/hosts文件,使node1和node2能解析成不同IP
[*]#vim /etc/hosts
[*]172.16.0.22   node1
[*]172.16.0.23   node2   
[*]
[*]3、配置双方的ssh信任
[*]#ssh-keygen -t rsa   
[*]#ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.16.0.23      #把公钥复制到远程主机上去
[*]
[*]提示:node2操作也是一样,最后配置完成进行测试一下:
[*]在node1上测试:
[*]#ssh node1 'ifconfig' #命令可以执行并返回结果,表示配置成功   
[*]
[*]4、调整双方主机的时间
[*]#date 0807132912
[*]#hwclock -w

  二、安装RS1(httpd)和RS2(httpd)软件,并配置成LVS(DR)模型并测试


[*]1、配置RS1
[*]修改RS1的内核参数
[*]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[*]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[*]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[*]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[*]
[*]配置RS1的VIP地址并添加路由
[*]#ifconfig lo:0 172.16.0.100 broadcast 172.16.0.100 netmask 255.255.255.255 up
[*]#route add -host 172.16.0.100 dev lo:0
[*]
[*]使用elinks测试RS1的配置的VIP是否生效
[*]# elinks -dump http://172.16.0.24/index.html
[*]                                    RS1
[*]# elinks -dump http://172.16.0.100/index.html
[*]                                    RS1
[*]测试成功
[*]                                       
[*]
[*]2、配置RS2
[*]修改RS2的内核参数
[*]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[*]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[*]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[*]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[*]
[*]配置RS2的VIP地址并添加路由
[*]#ifconfig lo:0 172.16.0.100 broadcast 172.16.0.100 netmask 255.255.255.255 up
[*]#route add -host 172.16.0.100 dev lo:0
[*]
[*]使用elinks测试RS2的配置的VIP是否生效
[*]#elinks -dump http://172.16.0.25/index.html
[*]                                    RS2
[*]#elinks -dump http://172.16.0.100/index.html
[*]                                    RS2
[*]测试成功

  三、安装与配置Heartbeat和Ldirectord软件


[*]列出需要安装的软件包:
[*]Heartbeat软件包介绍:
[*]最好使用rpm安装Heartbeat,方便升级
[*]heartbeat-2.1.4-9.el5.i386.rpm               #Heartbeat核心包
[*]heartbeat-devel-2.1.4-9.el5.i386.rpm         #Heartbeat的开发包,提供一些头文件和一些开发库等
[*]heartbeat-gui-2.1.4-9.el5.i386.rpm         #提供图形界面配置crm图形接口
[*]heartbeat-ldirectord-2.1.4-9.el5.i386.rpm    #主要作用:将LVS的Director配置成高可用服务还能检测后端RealServer的健康状态,专门提供的软件
[*]heartbeat-pils-2.1.4-10.el5.i386.rpm         #这是Heartbeat的一个插件,可动态装载的模块,能够将很多的服务配置成高可用服务,提供一些专用的接口
[*]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
[*]软件包更详细的介绍使用:rpm -qpi 软件包名
[*]
[*]1、安装ipvsadm
[*]#yum -y install ipvsadm
[*]
[*]注意:开机不要自动启动,把ipvsadm服务停止
[*]# /etc/init.d/ipvsadm stop
[*]#chkconfig ipvsadm off
[*]
[*]2、安装Heartbeat和Ldirectord
[*]#yum -y --nogpgcheck localinstall *rpm   
[*]
[*]3、配置Heartbeat
[*]#Heatbeat的配置文件:
[*]#主配置文件路径/etc/ha.d/*
[*]#进入/etc/ha.d目录下,可以查看less README.config有详细介绍
[*]#ha.cf          #Heartbeat的主配置文件
[*]#haresources    #Heartbeat的资源配置文件,用于指定双机系统的主节点,集群IP,子网掩码,广播地址以及启动的服务等集群资源
[*]#authkeys       #设定Heartbeat的认证方式,文件权限设置成600
[*]
[*]#cp /usr/share/doc/heartbeat-2.1.4/ha.cf /etc/ha.d/
[*]#cp /usr/share/doc/heartbeat-2.1.4/haresources /etc/ha.d/
[*]#cp /usr/share/doc/heartbeat-2.1.4/authkeys/etc/ha.d/
[*]#chmod 600 authkeys
[*]
[*]/etc/ha.cf/ha.cf
[*]#vim /etc/ha.d/ha.cf
[*]修改并添加以下内容
[*]logfile    /var/log/ha-log#开启日志功能
[*]bcast   eth0      #利用广播方式来传递心跳信息
[*]node    node1       #定义主机节点就是Heartbeat节点
[*]node    node2
[*]ping 172.16.0.1   #使用ping来判断node节点是否存活
[*]crm on            #启用crm功能
[*]
[*]/etc/ha.cf/ha.cf
[*]#vim /etc/ha.d/authkeys
[*]修改并添加以下内容
[*]auth1                           #定义加密机制
[*]1    sha d47cc0984dad648bc470b945121233d1#定义密码串,下面用dd命令生成
[*]
[*]#使用dd if=/dev/urandom count=1 bs=512 |md5sum这命令生成密码串
[*]
[*]/etc/ha.cf/ha.cf
[*]#vim /etc/ha.d/haresources
[*]修改并添加以下内容
[*]#node1   172.16.0.100/16/eth0/172.16.255.255 httpd #定义主节点vip,并定义lsb脚本httpd   
[*]
[*]4、配置Ldirecotrd
[*]#cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/
[*]vim /etc/ha.d/ldirectord.cf
[*]checktimeout=3      #超时时间为3秒   
[*]checkinterval=1   #每1秒钟检查一下RS
[*]autoreload=yes      #自动加载ldirectord配置文件
[*]quiescent=yes       #静态模式
[*]virtual=172.16.0.100:80   #VIP地址
[*]      real=172.16.0.24:80 gate    #定义RS,后面的gate表示DR模型
[*]      real=172.16.0.25:80 gate    #定义RS,后面的gate表示DR模型
[*]      service=http                #定义的httpd服务
[*]      request=".test.html"      #Ldirectord做健康状态检查依靠的页面,注意:.test.html文件需要在RS下面需要建立
[*]      receive="ok"                #.test.html文件的内容为OK
[*]      scheduler=rr                #LVS的算法是rr
[*]      protocol=tcp                #协议是tcp
[*]      checktype=negotiate         #定义协商方式
[*]      checkport=80                #定义80端口   
[*]         
[*]5、启动Heartbeat服务并设置hacluster密码
[*]#service heartbeat start
[*]#passwd hacluster

  四、利用hb_gui图形化进行配置


[*]#hb_gui & 输入命令进行图形化界面配置

  定义一个资源,建立组(group)
http://blog.运维网.com/attachment/201208/142430894.png
  选择group,点击ok,进入主界面进行配置vip(172.16.0.100)
http://blog.运维网.com/attachment/201208/143330761.png
  点击OK,并添加Add,再定义Ldirectord
http://blog.运维网.com/attachment/201208/143601361.png
  这需要在group添加,类型选择native,点击OK,进入主界面进行配置Ldirectord
http://blog.运维网.com/attachment/201208/144100723.png
  点击OK,并添加Add,并启动组,下面定义排列约束,让它们永远在一起
http://blog.运维网.com/attachment/201208/145903229.png
  定义Orders
http://blog.运维网.com/attachment/201208/215142975.png
  点击Ok,现在已经全部定义好了,可以测试把node1点变成standby,node2变成Active,看看能不能相互切换
  五、测试
  1、使用ip addr 命令查看一下vip是否存在
http://blog.运维网.com/attachment/201208/150816424.png
  测试成功
  2、使用VIP访问一下web服务器是否正常,并测试是否提供ipvs功能
http://blog.运维网.com/attachment/201208/151005668.png
  刷新一下
http://blog.运维网.com/attachment/201208/151057365.png
  测试成功
  3、使用ipvsadm查看一下连接的状态:
  # ipvsadm -Lcn
IPVS connection entries
pro expire state       source             virtual            destination
TCP 01:57FIN_WAIT    192.168.0.208:51373 172.16.0.100:80    172.16.0.25:80
TCP 01:57FIN_WAIT    192.168.0.208:51372 172.16.0.100:80    172.16.0.24:80
TCP 01:56FIN_WAIT    192.168.0.208:51370 172.16.0.100:80    172.16.0.24:80
TCP 01:57FIN_WAIT    192.168.0.208:51371 172.16.0.100:80    172.16.0.25:80
  测试成功
  4、使RS1服务停止掉,看一下Ldirectord是否能检查出来RS的健康状态,并能自动添加上服务
  #/etc/init.d/httpd stop 停止httpd服务,刷新网页查看一下,此时只有一个RS正常,然后开启服务,再进行测试,查看网页状态是否正常。



页: [1]
查看完整版本: 基于heartbeat v2和heartbeat