centos7 双机设备实现

参考:

https://www.cnblogs.com/wuzejian/p/7bafa47ddbb5f969c412f8124800f3c9.html HA双机热备的实现(heartbeat)

https://blog.csdn.net/weixin_34117211/article/details/92336917?utm_medium=distribute.pc_relevant.none-task-blog-title-8&spm=1001.2101.3001.4242  centOS 7下安装与配置heartbeat高可用集群

 
 
关闭防火墙: systemctl stop firewalld.service
 
centos7 双机设备实现_第1张图片
 
 

一、前提准备

在每个节点做以下配置:
  1. 关闭firewall: systemctl stop firewalld.service
  2. 同步时间:ntpdate 10.0.0.100
  3. 配置主机名:echo "node1" >> /etc/hostname
  4. 修改/etc/hosts
[root@node1 /]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6


10.21.144.113 node2
10.21.144.112 node1

    5.配置主机间ssh互信,免秘钥认证

[root@node1 ~]# ssh-keygen -q -t rsa -N '' -f ~/.ssh/id_rsa
[root@node1 ~]# ssh-copy-id [email protected]

 

 

二、安装  node1与node2节点都需要操作

1、安装基础环境包
yum install gcc gcc-c++ autoconf automake libtool glib2-devel libxml2-devel bzip2 bzip2-devel e2fsprogs-devel libxslt-devel libtool-ltdl-devel asciidoc

2、创建用户与组

groupadd haclient
useradd -g haclient hacluster

3、下载软件包:Reusable-Components-glue、resource-agents、heartbeat

下载路径: http://www.linux-ha.org/wiki/Downloads
 
 
 
4、安装glue
tar xf 0a7add1d9996.tar.bz2
cd Reusable-Cluster-Components-glue--0a7add1d9996/
./autogen.sh
./configure --prefix=/usr/local/heartbeat --with-daemon-user=hacluster --with-daemon-group=haclient --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'
make && make install

5、安装Resource Agents

tar xf resource-agents-3.9.6.tar.gz
cd resource-agents-3.9.6/
./autogen.sh
export CFLAGS="$CFLAGS -I/usr/local/heartbeat/include -L/usr/local/heartbeat/lib"
./configure --prefix=/usr/local/heartbeat --with-daemon-user=hacluster --with-daemon-group=haclient --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'
ln -s  /usr/local/heartbeat/lib/* /lib/
ln -s  /usr/local/heartbeat/lib/* /lib64/
make && make install

6、安装Heartbeat

 
tar xf 958e11be8686.tar.bz2
cd Heartbeat-3-0-958e11be8686/
./bootstrap
export CFLAGS="$CFLAGS -I/usr/local/heartbeat/include -L/usr/local/heartbeat/lib"
./configure --prefix=/usr/local/heartbeat --with-daemon-user=hacluster --with-daemon-group=haclient --enable-fatal-warnings=no LIBS='/lib64/libuuid.so.1'
make && make install

ln -svf /usr/local/heartbeat/lib64/heartbeat/plugins/RAExec/* /usr/local/heartbeat/lib/heartbeat/plugins/RAExec/
ln -svf /usr/local/heartbeat/lib64/heartbeat/plugins/* /usr/local/heartbeat/lib/heartbeat/plugins/

7、配置网卡支持插件文件

mkdir -pv /usr/local/heartbeat/usr/lib/ocf/lib/heartbeat/
cp /usr/lib/ocf/lib/heartbeat/ocf-* /usr/local/heartbeat/usr/lib/ocf/lib/heartbeat/

 

 

三、配置heartbeat

#拷贝三个模板配置文件到 /usr/local/heartbeat/etc/ha.d/目录下
centos7 双机设备实现_第2张图片
 
 
1、配置ha.cf文件:#该配置文件用于配置 心跳的核心配置
vi /usr/local/heartbeat/etc/ha.d/ha.cf
 
debugfile /var/log/ha-debug  #表示调试的日志文件 一般测试建议开启
logfile /var/log/ha-log            #表示系统的的日志文件路径
logfacility     local0                #表示使用系统日志与上面只能开启一个
keepalive 2                           #主备之间的心跳间隔时间单位:s
deadtime 30                         #表示如果连接对方30s还无法连接,表示节点死亡需要考虑vip转移
warntime 10                        #表示10s时间未收到心跳时发出警告日志
initdead 120                        #有时机器启动后需要一段时间网卡才能正常工作 需要预留一定的时间后,再开始判断心跳检测
udpport 694                        #多播的udp端口
#baud   19200                    #串行端口的波特率
#serial /dev/ttyS0        # Linux  #串口的接口名
#serial /dev/cuaa0      # FreeBSD
#serial /dev/cuad0      # FreeBSD 6.x
#serial /dev/cua/a      # Solaris
bcast   ens33             #设置广播通信所使用的网络接口卡。(我们这里设置为ens33,专门用来探测心跳)
#bcast  eth0               # Linux #传播心跳的广播网卡信息
#bcast  eth1 eth2       # Linux
#bcast  le0                 # Solaris
#bcast  le1 le2           # Solaris
#mcast eth0 225.0.0.1 694 1 0   #多播传送心跳的网卡 多播组 端口 跃点数 是否回环内传送
ucast ens33 192.168.146.150    #设置单播心跳,设置对方的ip地址,此处使用单播
auto_failback on               #表示如果主机停止后,从机接管设置为on,当主机从新启动后,主机立即接管vip off从机不会释放vip给主机
node    node1                  #配置主从的节点信息,要与uname -n保持一致
node    node2
 
2、配置authkeys文件: # 该文件表示发送心跳时,机器用于验证的key的hash算法,节点之间必须配置成一致的密码
vi /usr/local/heartbeat/etc/ha.d/authkeys
auth 3                 #表示使用id为3的算法,下面需定义一个3的验证算法
#1 crc
#2 sha1 HI!       #三种算法安全性逐渐增强,我们这里选择的md5,Hello为密码,也可以  
3 md5 Hello!     #自己使用生成的md5密码。
 
更改权限为600: chmod 600 /usr/local/heartbeat/etc/ha.d/authkeys
 
3、配置haresources文件: # 该文件表示资源的管理,如果是主机,当主机启动后自动加载该文件中配置的所有启动资源,资源脚本默认在haresources同级目录下的resource.d目录下
vi /usr/local/heartbeat/etc/ha.d/haresources
# 指定节点主机名,和VIP地址,以双冒号分隔资源,此处以apache为例进行配置
node1 10.21.144.115 apache::/etc/httpd/conf/httpd.conf
 
4、node2节点上也要进行步骤1、2、3的配置
 
 

四、安装httpd资源服务

#在 每个节点上安装httpd服务并测试
[root@node1 ]# yum install httpd
[root@node1 ]# echo "node1 test page" > /var/www/html/index.html
[root@node1 ]# service httpd start

测试是否可用:

centos7 双机设备实现_第3张图片
 

#测试httpd服务正常后关闭httpd服务并关闭自启动:

[root@node1 ]# systemctl stop httpd
[root@node1 ]# systemctl disable httpd

node2节点上做如上相同操作

 
 

五、启动heartbeat服务

#在 每个节点上分别启动heartbeat服务
[root@node1 ]# systemctl enable heartbeat
[root@node1 ]# systemctl start heartbeat
[root@node1 ]# ssh node2 'systemctl start heartbeat'

通过 systemctl status heartbeat分别在节点node1、node2上检查服务状态,若是ok,此时可以用浮动IP 10.21.144.115访问httpd服务

centos7 双机设备实现_第4张图片
 
centos7 双机设备实现_第5张图片
 
 
可以模拟宕机测试,看访问浮动IP 10.21.144.115会不会在node1与node2上自动切换。
 
五、启动heartbeat服务

你可能感兴趣的:(linux,HA双机)