HA-集群(High available)高可用性集群(双机热备)菜鸟入门级

HA(High available)高可用性集群双机热备)

 

1.理解:两台服务器A和B ,当A提供服务,B闲置待命,当A服务宕机,会自动切换至B机器继续提供服务。当主机恢复正常后,按照使用者设定的自动或手动切换到主机上运行,数据一致性通过共享存储系统解决。

2.实现该功能的软件有:Heartbeat , keepalived(具有负载均衡的能力)

3.结构图





HA-Heartbeat

实验:以hearbeat为例,来做HA集群,并把nginx服务作为HA对应的服务

关闭防火墙:iptables -F service iptables save

关闭selinux:  setenforce  0 ,getenforce 查看,vim /etc/selinux/conf 修改,保存退出。

配置网卡:

master --eth1 192.168.2.105

slave  --eth1 192.168.2.106  eth1作为心跳线 作用:探测对方主机服务是否存活。

master --eth0 192.168.1.105

slave  --eth0 192.168.1.106  eth0为流动ip 又称VIP 对外提供服务。

操作:A:

hostname =master

vim /etc/sysconfig/network

HOSTNAME=master

vim /etc/hosts

192.168.1.105  master

192.168.1.106  slave

 操作:B:

hostname =slave

vim /etc/sysconfig/network

HOSTNAME=slave

vim /etc/hosts

192.168.1.105  master

192.168.1.106  slave.



A,B同时安装epel扩展源 (安装扩展源后yum报错解决linux 小记[2])

wget www.lishiming.net/data/attachment/forum/epel-release-6-8_64.noarch.rpm

rpm -ivh epel-release-6-8_64.noarch.rpm

A,B同时安装hearbeat 及扩展libnet 和准备测试的nginx

yum install -y heartbeat* libnet nginx
A机:切换到安装目录拷贝文件到/etc/ha.d下
cd /usr/share/doc/heartbeat-3.0.4/
cp authkeys ha.cf haresources /etc/ha.d/
切换目录到/etc/ha.d编辑配置
cd /etc/ha.d/
vim authkeys 
auth 3 验证级别
3 md5 Hello! 加密方式
并且赋予600读写权限给root
chmod 600 authkeys 
vim haresources 
master  192.168.1.106/24/eth0 nginx   [流动ip 即vip master 主机名 nginx 服务,可以是其他服务。]
vim ha.cf 
debugfile /var/log/ha-debug 
logfile /var/log/ha-log
logfacility   local0
keepalive 2
deadtime 30
warntime  10
initdead 60
udpport  694
ucast eth1 192.168.2.106 对方ip
auto_failback on
node    master
node    slave
ping 192.168.2.1
respawn hacluster /usr/lib64/heartbeat/ipfail  如果是32系统切记lib64改为lib



ha.cf 文件详解

debugfile /var/log/ha-debug           故障调试log
logfile /var/log/ha-log                    log文件
logfacility    local0                         日志级别
keepalive 2                                   探测周期 2s
deadtime 30                                 检测死亡时间 30s
warntime 10                                 启动警告记录时间 10s
initdead 60                                   重启预留时间60s
udpport 694                                  心跳线通讯端口
ucast eth0 192.168.0.161                 对方的ip ,也可使用 bcast   即广播的方式寻找 ,最好串口线或者使用单独网卡
auto_failback on                              从机启动后探测到主机存活是否返回设置
node master                                          
node slave                                     两个node机器
ping 192.168.0.1                              仲裁者   路由器或者交换机来充当
respawn hacluster /usr/lib/heartbeat/ipfail  防止进程死亡   从新拉起进程 64位系统需要改一下/lib 位lib64 不然服务无法启动,切记。



拷贝编辑的此三个文件到第二台服务器B机的/etc/ha.d目录下
scp authkeys ha.cf haresources slave:/etc/ha.d/

修改B机器中的ha.cf

vim /etc/ha.d/ha.cf

修改:ucast 项为:ucast eth1 192.168.2.105 保存退出。

环境测试

A主机nginx

echo "this is heartbeat server master "1111"" > /usr/share/nginx/html/index.html

B主机nginx

echo "this is heartbeat server slave "2222"" > /usr/share/nginx/html/index.html

查看AB 机器nginx启动情况

先启动A机master heartbeat服务 后启动B机slave heartbeat
/etc/init.d/heartbeat start

查看nginx启动情况

ps -aux|grep nginx

注释:(启动heartbeat后nginx会自动启动无需手动,B机器默认nginx是不会启动的)



测试1

客户端浏览器访问192.168.1.106 [流动ip (vip)]

浏览器显示“this is heartbeat server master 111111”正常



测试2

介于该心跳线是基于icmp协议的服务,所以我们屏蔽主机A的ping服务后,B机中heartbeat服务无法探测到A机器时,B机器认为A机器已故障(可从heartbeat日志中查看到),于是B机器即刻启动自身nginx服务接管A机器工作

实验.在A服务器主机上添加一条防火墙规则,拒绝ping
iptables -A INPUT -p icmp -j DROP
客户端浏览器访问192.168.1.106

览器显示“this is heartbeat server slave 2222”正常



测试3.

当我们删除A机器刚才添加的防火墙规则,B机器探测到A机器存活后,读取自身/etc/ha.d/ha.cf 文件auto_failback on项, 于是自动切换到A机器,停止自身ngingx服务。此时服务有A提供。测试如下

实验:删除A机器刚才添加的防火墙规则
iptables -D INPUT -p icmp -j DROP

浏览器显示“this is heartbeat server master 111111”正常

此次测试可从eth0 ,nginx , heaartbeat日志等看到相同的情况。日志:/var/log/ha-log.

时间: 2024-12-15 13:37:58

HA-集群(High available)高可用性集群(双机热备)菜鸟入门级的相关文章

HA高可用集群部署(ricci+luci+fence) 双机热备

主机环境 redhat6.5 6位 实验环境 服务端1 ip172.25.29.1   主机名:server1.example.com   ricci     服务端2 ip172.25.29.2    主机名:server2.example.com    ricci     管理端1 ip172.25.29.3    主机名:server3.example.com    luci     管理端2 ip172.25.29.250     fence_virtd 防火墙状态:关闭 1. 安装ri

使用sqlserver搭建高可用双机热备的Quartz集群部署【附源码】

一般拿Timer和Quartz相比较的,简直就是对Quartz的侮辱,两者的功能根本就不在一个层级上,如本篇介绍的Quartz强大的集群机制,可以采用基于 sqlserver,mysql的集群方案,当然还可以在第三方插件的基础上实现quartz序列化到热炒的mongodb,redis,震撼力可想而知,接下来本篇就和大家聊 一聊怎么搭建基于sqlserver的quartz集群,实现这么一种双机热备的强大功能. 一:下载sqlserver版的建表脚本   首先大家可以通过github上搜索quart

双机热备的Quartz集群

sqlserver搭建高可用双机热备的Quartz集群部署[附源码] 一般拿Timer和Quartz相比较的,简直就是对Quartz的侮辱,两者的功能根本就不在一个层级上,如本篇介绍的Quartz强大的集群机制,可以采用基于 sqlserver,mysql的集群方案,当然还可以在第三方插件的基础上实现quartz序列化到热炒的mongodb,redis,震撼力可想而知,接下来本篇就和大家聊 一聊怎么搭建基于sqlserver的quartz集群,实现这么一种双机热备的强大功能. 一:下载sqlse

VMware vSphere 5.0高可用性和双机热备

高可用性和双机热备是VMware vSphere 5.0最重要的一部分,高可用性并不是vSphere独有的,企业使用高可用性就是为了服务的连续性和数据的安全性.HA(High Availability)是以一群ESXi服务器为主的群集功能,主要目的是当虚拟机运行的主机发生故障时能及时转移主机,避免长时间的停机.而FT(Fault Tolerance)双机热备则是保障虚拟机最长时间不停机,将虚拟机以双机热备的方式同时在两台主机这样运行,这样可以大大增强业务的可连续性.本章将本别解释HA的高可用性和

keepalived+LVS 实现双机热备、负载均衡、失效转移 高性能 高可用 高伸缩性 服务器集群

本章笔者亲自动手,使用LVS技术实现实现一个可以支持庞大访问量.高可用性.高伸缩性的服务器集群 在读本章之前,可能有不少读者尚未使用该技术,或者部分读者使用Nginx实现应用层的负载均衡.这里大家都可以阅读本章,即使部分读者使用Nginx负载均衡,但是在大流量下性能相对于工作在链路层的LVS真是不能同日而语,并且LVS不仅可以实现WEB方面的负载均衡,其他诸如数据库.FTP.Mail等都可以实现. 通常对于小型网站,很多都使用单台服务器,顶多在弄个缓存服务器.数据库服务器.但是一旦流量上来,单台

基于RHCS的web双机热备集群搭建

基于RHCS的web双机热备集群搭建 RHCS集群运行原理及功能介绍 1. 分布式集群管理器(CMAN) Cluster Manager,简称CMAN,是一个分布式集群管理工具,它运行在集群的各个节点上,为RHCS提供集群管理任务.CMAN用于管理集群成员.消息和通知.它通过监控每个节点的运行状态来了解节点成员之间的关系,当集群中某个节点出现故障,节点成员关系将发生改变,CMAN及时将这种改变通知底层,进而做出相应的调整. 2.锁管理(DLM) Distributed Lock Manager,

NEC高可用集群软件NEC EXPRESSCLUSTER是一款专业的高可用集群软件产品(双机热备软件)

NEC高可用集群软件NEC EXPRESSCLUSTER是一款专业的高可用集群软件产品(双机热备软件)商务qq1912078946 ,可为您提供Windows和Linux平台上完整的高可用性解决方案.当集群中的某个节点由于软件或硬件原因发生故障时,集群系统可以把IP.客户业务等资源切换到其他健康的节点上,使整个系统能连续不间断的对外提供服务,并且可以通过对系统资源的使用情况进行分析来预防故障,自动判断出最适合运行业务的服务器,并进行切换,从而为机构24x365的关键业务提供了可靠的保障,达到了系

MSCS双机热备集群截图

MSCS双机热备集群 DNS记录截图 其中一节点的MSCS截图

mysql双机热备+heartbeat集群+自动故障转移

环境说明:本环境由两台mysql 数据库和heartbeat 组成,一台的ip 为 192.168.10.197,一台为192.168.10.198,对外提供服务的vip 为192.168.10.200 备注:heartbeat 本身是不能做到服务不可用自动切换的,所以用结合 额外的脚本才可以做到,本文中提到的moniter 脚本即为实现某个 mysql 服务不可用的时候自动切换的还可以自动报警 安装和配置过程分为如下几步: 第一部分:mysql 的安装配置 1 安装 1.1. 添加mysql