高可用(HA)集群

1、HA集群介绍

HA即(high available)高可用,又被叫做双机热备,用于关键性业务。可以这样理解,有两台机器A和B,正常情况下,A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至B机继续提供该服务。常用实现高可用的开源软件有heartbeat和keepalived,其中keepalived有负载均衡的功能。

如图所示为一个HA架构,一个交换机下面有两台机器Web1和Web2,其中Web1为主节点,正常使它提供服务,而Web2备用节点是闲置的。Web1和Web2中间有一根心跳线,检查对方的存活状态。流动IP,也叫vip是对外提供服务的ip,正常情况下配置在Web1上,当Web1宕机后,Web2会自动配置该vip,对外提供服务。

2、前期准备

准备两台机器,一个使用了centos6.5,另一个centos6.3,系统版本不同不影响实验

网卡eth0 ip如下

master 192.168.1.165

slave 192.168.1.163

下面操作在两个机器上都要操作:

(1)设置hostname,分别为主master和从slave

主上设置:

# hostname  master

# vim /etc/sysconfig/network

HOSTNAME=localhost.localdomain

修改为

HOSTNAME=master

从上设置

# hostname  slave

# vim /etc/sysconfig/network

HOSTNAME=localhost.localdomain

修改为

HOSTNAME=slave

(2)关闭防火墙,主从都操作

# iptables -F

# service iptables save

# getenforce 0

# vim /etc/selinux/config

SELINUX=enforcing

修改为

SELINUX=disabled

(3)配置host,主从操作一样

# vim  /etc/host

192.168.1.165 master

192.168.1.163 slave

3、heartbeat安装

主机和从机都需要安装heartbeat,同时需要libnet,主机从机执行同样的命令

# yum install -y heartbeat

# yum install -y libnet

如果没有包,则需要安装一个扩展yum源,heartbeat在epel源中。

# yum install -y epel-release

4、主节点配置

需要先将3个相关的配置文件放置在heartbeat的配置目录下

# cd /usr/share/doc/heartbeat-3.0.4/

# cp authkeys ha.cf haresources /etc/ha.d/

之后便可以开始修改配置文件了,先修改验证文件

# cd /etc/ha.d/

# vim authkeys # 用来验证,主从通过通信验证对方是否存活,需要加密

auth 3 # 此处打开,数字表示选择哪种加密方式

#1 crc # 最简单

#2 sha1 HI! # 最复杂

3 md5 Hello! # 处于中间等级的加密方式

# chmod 600 /etc/ha.d/authkeys

# 如果不修改权限,heartbeat启动不了

第二个配置haresources文件,只需要编辑一行。因为当前在ha.d目录下,直接vim。如果不是,用绝对路径或者cd

# vim haresources

#node1  10.0.0.170  Filesystem::/dev/sda1::/data1::ext2

#找到上面一行,改成下面,需要去掉#

master  192.168.1.186/24/eth0:0 nginx

# master是主的主机名;192.168.1.186是vip,/24指定网段,网卡eth0:0(这里采用了虚拟网卡);nginx提供服务,如果主宕掉,从启动。

最后一个配置ha.cf,里边基本全是注释,这里选择删掉重新写入,当前依旧在/etc/ha.d目录下

# > ha.cf

# 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 eth0 192.168.1.163

auto_failback on

node    master

node    slave

ping 192.168.1.1

respawn hacluster /usr/lib/heartbeat/ipfail

配置说明:

debugfile /var/log/ha-debug:该文件保存heartbeat的调试信息

logfile /var/log/ha-log:heartbeat的日志文件

logfacility     local0 :日志级别

keepalive 2:心跳的时间间隔,默认单位秒

deadtime 30:超出该时间未收到对方节点的心跳,则认为对方死亡

warntime 10:超出该时间未收到对方节点的心跳,则发出警告并记录到日志

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

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

ucast eth0 192.168.1.163:ucast指定对方ip,bcast形式寻找;eth0心跳检测自己的网卡,ip对方的ip

auto_failback on:heartbeat的两台主机分别为主节点和从节点。主节点正常情况下占用资源运行所有服务,遇到故障把资源交给从节点由从节点运行服务。选项为on情况下,一旦主节点恢复运行,则自动获取资源并取代从节点运行服务。

node    master:指定主

node    slave:指定从

ping 192.168.1.1

respawn hacluster /usr/lib/heartbeat/ipfail:指定与heartbeat一同启动和关闭的进程,该进程被自动监视,遇到故障则重新启动。最常用的进程是ipfail,该进程用于检测和处理网络故障,需要配合ping语句指定的pingnode来检测网络连接。如果系统是64位,将地址中的lib改为lib64

然后安装一个nginx,用于后边测试

# yum install -y nginx

5、从节点配置

把主上的三个配置拷贝到从上,使用scp命令;并且只需要在从上修改ha.cf文件一个地方即可

# scp authkeys ha.cf haresources slave:/etc/ha.d/

# vim /etc/ha.d/ha.cf

ucast eth0 192.168.1.163改为ucast eth0 192.168.1.165

也安装一个nginx,用于后边测试

# yum install -y nginx

6、heartbeat测试

启动heartbeat,顺序很重要,先主后从

# service heartbeat start

检查测试(主),第一次会需要等待一段时间,耐心

# ifconfig

看是否有eth0:0

# ps aux | grep nginx

看是否有nginx进程

测试(1)

因为主从指间的心跳实质是通过ping来连通,so主故意禁掉ping,死掉

# iptables -D INPUT -p icmp -j DROP

如果失败,查看日志发现卡在这里不动

Dec 08 18:56:53 master heartbeat: [9590]: WARN: node 192.168.1.1: is dead

Dec 08 18:56:53 master heartbeat: [9590]: info: Link 192.168.1.1:192.168.1.1 dead.

Dec 08 18:56:53 master ipfail: [9619]: info: Status update: Node 192.168.1.1 now has status dead

harc(default)[10097]: 2016/12/08_18:56:53 info: Running /etc/ha.d//rc.d/status status

Dec 08 18:56:54 master ipfail: [9619]: info: NS: We are dead. :<

Dec 08 18:56:54 master ipfail: [9619]: info: Link Status update: Link 192.168.1.1/192.168.1.1 now has status dead

Dec 08 18:56:55 master ipfail: [9619]: info: We are dead. :<

Dec 08 18:56:55 master ipfail: [9619]: info: Asking other side for ping node count.

尝试解决方法

将从上的ha.cf配置文件中的ucast修改如下

bcast  eth0

然后重新测试

测试(2)

主停止heartbeat服务

# service heartbeat stop

测试(3):测试脑裂

主和从上都down掉eth0

# ifdown eth0

时间: 2024-08-28 07:44:47

高可用(HA)集群的相关文章

corosync+pacemaker实现高可用(HA)集群

corosync+pacemaker实现高可用(HA)集群(一) ????重要概念 在准备部署HA集群前,需要对其涉及的大量的概念有一个初步的了解,这样在实际部署配置时,才不至于不知所云 资源.服务与主机(又称节点)的关系: 资源包括vip,httpd,filesystem等: 可整合多个资源形成一个服务: 服务必运行在某个主机上,主机上也可不运行服务(此为空闲主机): 服务里的所有资源应该同时运行在同一个节点上,实现方式有2种: 资源组: 排列约束 资源类型 primitive(或native

高可用(HA)集群原理概述

一.高可用集群(High Availability Cluster) 集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源.每一个单个的计算机系统都叫集群节点(node).随着业务的增长,集群通过添加新的节点,满足资源的高可扩展性. 计算机硬件和软件易错性不可避免,这样在节点上的服务会不可避免的中断.高可用集群的出现是为保证即使节点失效,而服务能不中断. 高可用集群在一组计算机中,采用主备模式,主节点提供服务,备节点等待:一旦,主节点失效,备节点无需人工的无缝取代主节点提

iscsI服务的配置+lvm逻辑卷 高可用(HA)集群铺设的业务Apache+iscsI服务的配置

主机环境 redhat6.5 64位 实验环境 服务端1 ip 172.25.29.1 主机名:server1.example.com ricci iscsi  apache     服务端2 ip 172.25.29.2  主机名:server2.example.com ricci iscsi  apache     管理端1 ip 172.25.29.3  主机名:server3.example.com  luci  scsi     管理端2 ip 172.25.29.250     fe

VMware8实现高可用(HA)集群

陈科肇 =========== 操作系统:中标麒麟高级操作系统V6 x86-64 实现软件:中标麒麟高可用集群软件 ======================== 1.环境的规划与配置 硬件要求 服务器 服务器至少需要 2 台,每台服务器至少需要 2 块网卡以做心跳与连接公网使用 存储环境 建议使用一台 SAN/NAS/ISCSI 存储作为数据共享存储空间 软件要求 1.需要在每台服务器上安装中标麒麟 Linux 服务器操作系统 V5.4 以上版本 2.需要将中标麒麟高可用集群软件分别安装在每

Linux HA Cluster高可用服务器集群,所谓的高可用不是主机的高可用,而是服务的高可用。

什么叫高可用:一个服务器down掉的可能性多种多样,任何一个可能坏了都有可能带来风险,而服务器离线通常带来的代价是很大的,尤其是web站点,所以当某一台提供服务的的服务器down掉不至于服务终止的就叫高可用. 什么叫心跳:就是将多台服务器用网络连接起来,而后每一台服务器都不停的将自己依然在线的信息很简短很小的通告给同一个网络中的备用服务器的主机,告诉其实主机自己依然在线,其它服务器收到这个心跳信息就认为本机是在线的,尤其是主服务器. 心跳信息怎么发送,由谁来收,其实就是进程中的通信两台主机是没法

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置 LB集群是locd balance集群的简称.翻译成中文是:负载均衡集群的意思:集群是一组相互独立的.通过高速网络互联的计算机相互之间构成一个组合,并以单一的系统的模式加以管理.LVS是Linux Virtual Server的简写,翻译中文是Linux虚拟服务器,是一个虚拟的服务器集群系统. 负载均衡集群:是为了企业提供更为实用,性价比更高的系统机构解决方案.负载均衡集群把用户的请求尽可能的平均分发到集群的各

直接路由的高可用LVS集群配置

 直接路由的高可用LVS集群配置: 调度服务器IP:(106.3.43.240)192.168.11.100,节点服务器分别为:192.168.11.101,192.168.11.102 一.安装ipvsadmin: 1.yum -y install ipvsadmin(推荐用第一种方法) 2.下载http://www.linuxvirtualserver.org/software/,找到相应的版本: 注意对应自己的内核版本 ipvsadm-1.24.tar.gz tar zxvf ipvs

heartbeat httpd nfs 实现高可用web集群

一 环境准备 二 拓扑结构 三 前提条件 四 安装相关软件 五 配置heartbeat 六 测试web集群 七 问题汇总 八 共享存储 一 环境准备 操作系统 centos 6.4 x86_64 最小化安装 如使用yum 安装的方式 centos5.5 安装的是V2.X ,centos 6.4 安装的是V3.X YUM 安装 Vim man ntp "development tools" "server platform development" "des

34补1-4 实现高可用mysql集群

HA Cluster基础及heartbeat实现HA 配置环境 node1:192.168.1.121 CentOS6.7 node2:192.168.1.122 CentOS6.7 node3:192.168.1.123 CentOS6.7 vip 192.168.1.88 配置前准备    # cat /etc/hosts 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1  

Redis高可用复制集群实现

redis简单介绍 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库.Redis 与其他 key - value 缓存产品有以下三个特点: 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用. 不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储. 支持数据的备份,即master-slave模式的数据备份. Redis的持久化 RDB:snapshotting 二进制格式:按