前期准备工作

*两台节点必须是双网卡,一个口外网,一个口内网心跳

改网卡:

三块网卡,设置一个外网网卡的网关为外网地址的网关

心跳网卡,设置外网网卡的IP为网关

内网网卡,设置外网网卡的IP为网关  #此实验没有用到内网网卡,所以不做阐述。

注意MAC地址,UUID不要冲突

外网网卡是eth0                心跳网卡是eth1

主节点的外网IP:10.2.16.250   心跳IP是:192.168.1.1

备节点的外网IP:10.2.16.249  心跳IP是:192.168.1.2

网卡配置文件修改项:

主节点:

DEVICE=eth0

HWADDR=00:E0:ED:35:2A:4E

TYPE=Ethernet

UUID=fe0114cf-03bc-4384-8ffb-cbff289f0020

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=10.2.16.250

NETMASK=255.255.255.0

GATEWAY=10.2.16.1

DNS1=202.106.0.20

DNS2=8.8.8.8

心跳网卡:

DEVICE=eth1

HWADDR=00:E0:ED:35:2A:4F

TYPE=Ethernet

UUID=0c8ef60d-dbcf-42f8-b383-5bddfbb46f0b

ONBOOT=YES

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.1.1

NETMASK=255.255.255.0

GATEWAY=10.2.16.250

DNS1=202.106.0.20

DNS2=8.8.8.8

备份节点也如此设置

1.设置主机名:

主节点:

vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=node1.video.cn         #主机名(master)

备节点:

vi /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=node2.video.cn

2、防火墙设置

vim /etc/selinux/config

selinux=disabled

service iptables stop

chkconfig iptables off

3 、配置完成后重启,init 6

安装heartbeat:

1、首先创建用户和组

groupadd -g 2000 haclient

useradd -u 2000 -g haclient hacluster

装heartbeat所需的软件包:

yum -y  install  pkgconfig glib2-devel  e2fsprogs libnet*  libxml2*  PyXML  ntp*

再编译安装libnet

tar -zxvf libnet-1.1.2.1.tar.gz -C ./

./configure

make && make install

安装heartbeat

tar -zxvf heartbeat-2.1.2.tar.gz -C ./

./ConfigureMe configure

make&& make install       #make报错处理,请查看文末,有详细的解决方法,每次解决之后,不要make clean all ,直接继续执行make && make install

配置heartbeat

需要的配置文件有三个:ha.cf、haresources、authkeys。

这三个配置文件需要在/etc/ha.d 目录下面,但是默认是没有这三个文件的,所以你要:

copy 存放路径/heartbeat-2.1.2/doc/ha.cf         /etc/ha.d/

copy 存放路径/ heartbeat-2.1.2/doc/haresources  /etc/ha.d/

copy 存放路径/ heartbeat-2.1.2/doc/authkeys     /etc/ha.d/

然后对这些配置文件进行修改。

注意:如果使用的是2.0 的模式则资源配置文件为/var/lib/heartbeat/crm/cib.xml。

修改heartbeat主配置文件ha.cf

logfile    /var/log/ha-log     #指名heartbeat的日志存放位置。

logfacilitylocal0

#crm yes                       #是否开启Cluster Resource Manager(集群资源管理)功能。

bcast eth1                     #指明心跳使用以太网广播方式,并且是在eth1接口上进行广播。

keepalive 1                    #指定心跳间隔时间为1秒(即每1秒钟在eth1上发送一次广播)。

deadtime 10                    #指定若备用节点在10秒内没有收到主节点的心跳信号,则立即接管主节点的服务资源。

warntime 5                     #指定心跳延迟的时间为5秒。当5秒钟内备份节点不能接收到主节点的心跳信号时,就会往日志中写入一个警告日志,但此时不会切换服务。

initdead 30                    #在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。取值至少为deadtime的两倍。

udpport 694                    #设置广播通信使用的端口,694为默认使用的端口号。

baud 19200                     #设置串行通信的波特率。

#serial /dev/ttyS0             #选择串行通信设备,用于双机使用串口线连接的情况。如果双机使用以太网连接,则应该关闭该选项。

ucast eth1 192.168.1.2       #采用网卡eth0的udp单播来组织心跳,后面跟的IP地址应为双机对方的IP地址。

#mcast eth0 225.0.0.1 694 1 0  #采用网卡eth0的Udp多播来组织心跳,一般在备用节点不止一台时使用。Bcast、ucast和mcast分别代表广播、单播和多播,是组织心跳的三种方式,任选其一即可。

auto_failback on               #用来定义当主节点恢复后,是否将服务自动切回。heartbeat的两台主机分别为主节点和备份节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给备份节点并由备份节点运行服务。在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代备份节点;如果该选项设置为off,那么当主节点恢复后,将变为备份节点,而原来的备份节点成为主节点。

#stonith baytech /etc/ha.d/conf/stonith.baytech     # stonith的主要作用是使出现问题的节点从集群环境中脱离,进而释放集群资源,避免两个节点争用一个资源的情形发生。保证共享数据的安全性和完整性。

#watchdog /dev/watchdog        #该选项是可选配置,是通过Heartbeat来监控系统的运行状态。使用该特性,需要在内核中载入"softdog"内核模块,用来生成实际的设备文件,如果系统中没有这个内核模块,就需要指定此模块,重新编译内核。编译完成输入"insmod softdog"加载该模块。然后输入"grep misc /proc/devices"(应为10),输入"cat /proc/misc |grep watchdog"(应为130)。最后,生成设备文件:"mknod /dev/watchdog c 10 130" 。即可使用此功能。

node node1.video.cn            #主节点主机名,可以通过命令"uanme -n"查看。

node node2.video.cn            #备用节点主机名。

ping 10.2.16.1                 #选择ping的节点,ping节点选择的越好,HA集群就越强壮,可以选择固定的路由器作为ping节点,但是最好不要选择集群中的成员作为ping节点,ping节点仅仅用来测试网络连接。

#respawn hacluster /usr/lib/heartbeat/ipfail #该选项是可选配置,列出与heartbeat一起启动和关闭的进程,该进程一般是和heartbeat集成的插件,这些进程遇到故障可以自动重新启动。最常用的进程是ipfail,此进程用于检测和处理网络故障,需要配合ping语句指定的ping node来检测网络的连通性。其中hacluster表示启动ipfail进程的身份。

修改资源配置文件 haresources        两台HA的haresources文件必须一样

haresources文件用于指定双机系统的主节点、集群IP、子网掩码、广播地址以及启动的服务等集群资源,文件每一行可以包含一个或多个资源脚本名,资源之间使用空格隔开,参数之间使用两个冒号隔开,在两个HA节点上该文件必须完全一致,此文件的一般格式为:

格式为:node-name network  <resource-group>

本例中的配置:

node1.video.cn  IPaddr::10.2.16.240/24/eth0/  # Filesystem::/dev/sda1::/data::ext3   httpd

#本例中只启用heartbeat的宕机替换服务,所以只设置IP,不启用服务和网络硬盘等。

node1.video.cn                   意为设置node1为主节点(也就是250IP的服务器),此处填写的是250的主机名

10.2.16.240/24/eth0/              设置对外提供服务的IP地址为 240,运行在eth0网卡上(配置好后会出现一个eth0:0的虚拟网卡)

Filesystem::/dev/sdb1::/data::ext3 httpd      相当于在命令行下执行mount操作,即"mount -t ext3 /dev/sdb5 /webdata",然后启动httpd服务。

修改认证文件  authkeys  authkeys文件用于设定Heartbeat的认证方式,共有3种可用的认证方式,即crc、md5和sha1。3种认证方式的安全性依次提高,但是占用的系统资源也依次增加。如果Heartbeat集群运行在安全的网络上,可以使用crc方式;如果HA每个节点的硬件配置很高,建议使用sha1,这种认证方式安全级别最高;如果是处于网络安全和系统资源之间,可以使用md5认证方式。这里我们使用sha1认证方式,设置如下:

本例中的配置:/etc/ha.d/authkeys

auth 2

2 sha1 sysconfig@!#

无论auth后面指定的是什么数字,在下一行必须作为关键字再次出现,例如指定了"auth 2",下面一定要有一行"2 认证类型"

两台节点的authkeys文件必需一样,最后确保这个文件的权限是600(即-rw-------)

配置备份节点的Heartbeat

  在备份节点上也需要安装Heartbeat,安装方式与在主节点安装过程一样,这里不再重述。安装完毕,在备份节点上使用scp命令把主节点配置文件传输到备份节点。

[root@node1 ~]#scp  /etc/ha.d/*    root@10.2.16.249:/etc/ha.d/

备份节点需要修改ha.cf中的ucast 选项为主节点的Ip,其他无需设置。

设置主节点和备份节点时间同步

  在双机高可用集群中,主节点和备份节点的系统时间也非常重要,因为节点之间的监控都是通过设定时间来实现的。主备节点之间的系统时间相差在10秒以内是正常的,如果节点之间时间相差太大,就有可能造成HA环境的故障。解决时间同步的办法有两个:一个办法是找一个时间服务器,两个节点通过ntpdate命令定时与时间服务器进行时间校准;另一个办法是让集群中的主节点作为ntp时间服务器,让备份节点定时去主节点进行时间校验。

本文中将备份节点搭建为NTP服务器,主节点通过ntpdate来进行时间同步。ntp安装配置不再阐述。

两台节点启动heartbeat :

[root@node1 ~]#service heartbeat start

Starting High-Availability services:

2014/05/08_11:19:28 INFO:  Resource is stopped

Done.

显示上述信息则意为启动成功。

[root@node1 ~]#chkconfig heartbeat on

加入开机启动

启动heartbeat成功之后,查看主节点的ifconfig 网卡信息,能看到自动多了一块虚拟网卡 eth0:0 ,ip地址是在haresource里设置的10.2.16.240

关闭不必要的服务

chkconfig rpcgssd off

chkconfig portreserve off

chkconfig postfix off

chkconfig ip6tables off

chkconfig cups off

chkconfig rpcbind off

chkconfig auditd off

chkconfig certmonger off

chkconfig netfs off

chkconfig nfslock off

优化后,系统默认开启的服务列表

chkconfig --list

atd            0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭

crond          0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

heartbeat      0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

httpd          0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

iptables       0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

messagebus     0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

mysqld         0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

network        0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

ntpdate        0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

openfire       0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

rsyslog        0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

sshd           0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭

udev-post      0:关闭1:启用2:启用3:启用4:启用5:启用6:关闭

xinetd         0:关闭1:关闭2:关闭3:启用4:启用5:启用6:关闭

heartbeat安装过程中 make报错处理:

如报

cc1: warnings being treated as errors

client_lib.c:1850: error: 'display_orderQ'defined but not used

gmake[2]: *** [client_lib.lo] 错误 1

gmake[2]: Leaving directory`/root/heartbeat-2.0.7/lib/hbclient'

gmake[1]: *** [all-recursive] 错误 1

gmake[1]: Leaving directory`/root/heartbeat-2.0.7/lib'

make: *** [all-recursive] 错误 1

则将/root/heartbeat-2.0.7/lib/hbclient里的makefile中的所有-Werror删除

如报

cc1: warnings being treated as errors

pils.c:245: error: initialization fromincompatible pointer type

pils.c:246: error: initialization fromincompatible pointer type

gmake[2]: *** [pils.lo] 错误 1

gmake[2]: Leaving directory`/root/heartbeat-2.0.7/lib/pils'

gmake[1]: *** [all-recursive]错误 1

gmake[1]: Leaving directory`/root/heartbeat-2.0.7/lib'

make: *** [all-recursive] 错误 1

则将/root/heartbeat-2.0.7/lib/pils里的makefile中的所有-Werror删除

如报

cc1: warnings being treated as errors

client_lib.c:1850: error: 'display_orderQ'defined but not used

gmake[2]: *** [client_lib.lo]错误 1

gmake[2]: Leaving directory`/root/heartbeat-2.0.7/lib/hbclient'

gmake[1]: *** [all-recursive]错误 1

gmake[1]: Leaving directory`/root/heartbeat-2.0.7/lib'

make: *** [all-recursive] 错误 1

则将/root/heartbeat-2.0.7/lib/hbclient里的makefile中的所有-Werror删除

如报

cc1: warnings being treated as errors

stonith_signal.h:34: error:'stonith_signal_set_simple_handler' defined but not used

gmake[4]: *** [apcmaster.lo]错误 1

gmake[4]: Leaving directory`/root/heartbeat-2.0.7/lib/plugins/stonith'

gmake[3]: *** [all-recursive]错误 1

gmake[3]: Leaving directory`/root/heartbeat-2.0.7/lib/plugins/stonith'

gmake[2]: *** [all-recursive]错误 1

gmake[2]: Leaving directory`/root/heartbeat-2.0.7/lib/plugins'

gmake[1]: *** [all-recursive]错误 1

gmake[1]: Leaving directory`/root/heartbeat-2.0.7/lib'

make: *** [all-recursive] 错误 1

则将/root/heartbeat-2.0.7/lib/plugins/stonith里的makefile中的所有-Werror删除

如报

cc1: warnings being treated as errors

conf_lex.c:1195: 错误:‘input’定义后未使用

gmake[2]: *** [recoverymgrd-conf_lex.o]错误 1

gmake[2]: Leaving directory`/root/heartbeat-2.0.7/telecom/recoverymgrd'

gmake[1]: *** [all-recursive]错误 1

gmake[1]: Leaving directory `/root/heartbeat-2.0.7/telecom'

make: *** [all-recursive] 错误 1

则将/root/heartbeat-2.0.7/telecom/recoverymgrd里的makefile中的所有-Werror删除

如报

chown hacluster/var/lib/heartbeat/cores/hacluster

chown: 无效的用户:"hacluster"

gmake[2]: [install-exec-local]错误 1 (忽略)

chmod 700/var/lib/heartbeat/cores/hacluster

gmake[2]: Nothing to be done for`install-data-am'.

gmake[2]: Leaving directory`/root/heartbeat-2.0.7'

gmake[1]: Leaving directory`/root/heartbeat-2.0.7'

则证明没添加用户及组,按照上面的添加用户及组后再编译安装。

转载于:https://blog.51cto.com/yyzll/1408988

HA-heartbeat高可用双击热备安装配置详解相关推荐

  1. Heartbeat V2.x双机热备安装

      Heartbeat V2.x双机热备安装 1       简述 1.1   文档目的 本文档主要介绍linux-HA项目的新版本v2的安装和配置及相关算法,为以后架构linux-HA增加系统的可用 ...

  2. 浅入浅出keepalived+nginx实现高可用双机热备

    对应用keepalived+nginx技术实现nginx高可用进行简单的分析,下面是通过对keepalived添加校验nginx存活脚本,监控nginx的状态,应用keepalived的主备模式实现n ...

  3. ACS 5.4高可用——双机热备

    ACS 5.4高可用--双机热备 一.安装 安装ACS_v5.4.0.46.0a.iso 1.过程等同于安装Centos,安装完成后输入setup按提示进行acs相关基础配置. 2.配置完成服务会重启 ...

  4. lvs keepalived 安装配置详解【转】

    lvs keepalived 安装配置详解 张映 发表于 2012-06-20 分类目录: 服务器相关 前段时间看了一篇文章,lvs做负载均衡根F5差不多,说实话不怎么相信,因为F5没玩过,也无法比较 ...

  5. 使用LVS实现负载均衡原理及安装配置详解

    使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均 ...

  6. nginx1.0安装配置详解

    nginx1.0安装配置详解 本文转自:twenty_four的博文,自己稍作精简修改. http://twentyfour.blog.51cto.com/945260/568906 1.选择Ngin ...

  7. redis cluster 集群 安装 配置 详解

    redis cluster 集群 安装 配置 详解 张映 发表于 2015-05-01 分类目录: nosql 标签:cluster, redis, 安装, 配置, 集群 Redis 集群是一个提供在 ...

  8. 深入分析redis cluster 集群安装配置详解

    Redis 集群是一个提供在多个Redis间节点间共享数据的程序集.redis3.0以前,只支持主从同步的,如果主的挂了,写入就成问题了.3.0出来后就可以很好帮我们解决这个问题. 目前redis 3 ...

  9. Burp Suite安装配置详解(附Java 环境安装)

    Burp Suite安装配置详解 1.Java 安装与环境配置详解 1.0 下载Java SDK 1.8 最新版 2.0 配置Java 环境变量 2.Burp Suite 安装详解 2.0 下载Bur ...

最新文章

  1. Android实现双击事件的两种方式
  2. Reverse Vowels of a String
  3. UI组件之AdapterView及其子类(五)ListView组件和ListActivity
  4. mysql udf提权hex_Mysql_UDF提权
  5. 四剑客查找字符_linux 四剑客 find 、grep、sed、awk整理
  6. 微服务体系三维可缩放模型
  7. hdu 3221 Brute-force Algorithm(高速幂取模,矩阵高速幂求fib)
  8. 认知电子战 (1.2):认知理论及其在无线电领域的应用
  9. 利用爬虫编译翻译器 (包含防御反爬虫)
  10. 多测师肖sir__ui分层
  11. 【托业】【新托业TOEIC新题型真题】学习笔记11-题库六-P7
  12. 【谷歌地图--PlacesSDK集成】
  13. c# 获取本地主机的ip地址
  14. CentOS 6.5安装Nvidia显卡驱动
  15. office 2010 安装出错
  16. JAVA+MySQL综合笔记
  17. 建模贴图技巧,用起来6的飞起
  18. 串口调试助手 Alien V0.238
  19. iOS图像处理(4)坐标变化
  20. 【中文技术文档的写作规范_P03】如何书写标点符号和控制文档体系

热门文章

  1. EV代码签名证书,支持Windows 10预览版和正式版驱动签名
  2. mysql创建和删除用户
  3. python3 安装 mysql 用pip install PyMySQL
  4. iOS UTI(统一类型标识)
  5. 程序员最喜爱的12个Android应用开发框架二(转)
  6. 【linux练习】基础作业一
  7. Java 二次MD5 32位小写加密算法与php页面加密结果相同
  8. 成人短信11条,全看懂的是超级色狼
  9. 使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程(十五)
  10. F5内网大二层负载均衡业务访问故障解析(CISCO OTV+LISP-MTU问题导致)