pacemaker + corosync 搭建高可用集群
来源:互联网 发布:煽扇除霾 知乎 编辑:程序博客网 时间:2024/06/05 18:47
一、什么是高可用集群
高可用集群就是当某一个节点或服务器发生故障时,另一个节点能够自动且立即向外提供服务,即将有故障节点上的资源转移到另一个节点上去,这样另一个节点有了资源既可以向外提供服务。高可用集群是用于单个节点发生故障时,能够自动将资源、服务进行切换,这样可以保证服务一直在线。在这个过程中,对于客户端来说是透明的。
二 实现高可用集群有三种方式:
(1)、主从方式(非对称)
这种方式组建的高可用集群通常包含2个节点和一个或多个服务器,其中一台作为主节点(active),另一台作为备份节点(standy)。备份节点随时都在检测主节点的健康状况,当主节点发生故障时,服务会自动切换到备份节点上以保证服务正常运行。
这种方式下的高可用集群其中的备份节点平时不会启动服务,只有发生故障时才会有用,因此感觉比较浪费。
(2)、对称方式
这种方式一般包含2个节点和一个或多个服务,其中每一个节点都运行着不同的服务且相互作为备份,两个节点互相检测对方的健康状况,这样当其中一个节点发生故障时,该节点上的服务会自动切换到另一个节点上去。这样可以保证服务正常运行。
(3)、多机方式
这种集群包含多个节点和多个服务。每一个节点都可能运行和不运行服务,每台服务器都监视着几个指定的服务,当其中的一个节点发生故障时,会自动切换到这组服务器中的一个节点上去。
三 实现高可用集群需要用到如下组件:
Messaging Layer:可以理解为信息层,主要的作用是传递当前节点的心跳信息,并告知给对方,这样对方就知道其他节点是否在线。如果不在线,则可以实现资源转移,这样另一台节点就可以充当主节点,并正常提供服务。传递心跳信息一般使用一根心跳线连接,该线接口可以使用串行接口也可以是以太网接口来连接。每一个节点上都包含信息层。
可以提供该组件的软件有:
(1)heartbeat
heartbeat有三个版本即heartbeat v1、heartbeat v2和heartbeat v3
heartbeat v1是比较老的版本,heartbeat v2是目前稳定的版本,在做实验的时候使用该版本。
(2)corosync(openAIS的子项目)
(3)keepalive
(4)cman
Heartbeat 是比较常用的软件,Keepalived配置相对比较简单,而ultramonkey好像不怎么常用,Corosync比heartbeat功能还要强大,功能更加丰富。四 分别在node1,node2
yum install -y corosync pacemaker
设置配置文件
cp /etc/corosync/corosync.example.conf /etc/corosync/corosync.conf
vim /etc/corosync/corosync.conf
totem {
version: 2
secauth: off
threads: 0
interface {
ringnumber: 0
bindnetaddr: 192.168.1.0
mcastaddr: 226.94.1.1
mcastport: 5405
ttl: 1
}
}
logging {
fileline: off
to_stderr: no
to_logfile: yes
to_syslog: yes
logfile: /var/log/cluster/corosync.log
debug: off
timestamp: on
}
}
amf {
mode: disabled
}
把配置文件传给node2,启动服务即
scp /etc/corosync/corosync.conf node2:/etc/corosync/
scp /etc/corosync/service.d/service node2:/etc/corosync/service.d/
service corosync start
service pacemaker start
node2:
service corosync start
service pacemaker start
查看当前状态以及资源
crm_mon -1
============
Last updated: Sat May 27 10:56:55 2017
Last change: Sat May 27 10:55:57 2017 via crmd on node1
Stack: openais
Current DC: node1 - partition with quorum
Version: 1.1.7-6.el6-148fccfd5985c5590cc601123c6c16e966b85d14
2 Nodes configured, 2 expected votes
0 Resources configured.
============
Online: [ node1 node2 ]
如上所示,在线为node1,node2.下面介绍一些常用crm命令。
crm resource status 查看资源状态
crm node standby 离线
crm node online 在线
下面使用crm开始配置集群资源,我们首先配置VIP地址:crm configure primitive vip ocf:heartbeat:ipaddr2 \
>params ip=172.25.254.6 cidr_netmask=32 op monitor interval=30s
查看vip配置以及状态(在哪一个节点运行)
crm configure show
crm resource status vip
resource vip is running on: node1
vip运行在node1上,配置http服务。
vim /etc/httpd/conf/httpd.conf
/Location
把LOCATION开启
并把下面改成127.0.0.1如下所示:
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
scp /etc/httpd/conf/httpd.conf node2:/etc/httpd/conf
- pacemaker + corosync 搭建高可用集群
- pacemaker+corosync搭建高可用集群
- pacemaker + corosync 搭建高可用集群
- 搭建Pacemaker + Corosync高可用集群
- 使用 Load Balancer,Corosync,Pacemaker 搭建 Linux 高可用集群
- 使用 Load Balancer,Corosync,Pacemaker 搭建 Linux 高可用集群
- 使用 Load Balancer,Corosync,Pacemaker 搭建 Linux 高可用集群
- Corosync/Openais + Pacemaker 实现高可用集群
- Corosync+Pacemaker构建高可用集群
- corosync + pacemaker + crmsh 高可用集群
- corosync+ pacemaker + crmsh 实现高可用集群
- pacemaker+corosync实现高可用集群
- pacemaker + crmsh+corosync 高可用集群
- corosync+pacemaker高可用
- 使用corosync+pacemaker构建高可用集群(转)
- Corosync+Pacemaker+DRBD+MySQL 实现高可用MySQL集群
- corosync pacemaker 配置高可用集群(一)
- corosync pacemaker 配置高可用集群(二)
- 数据库连接池
- Android6.0权限快速申请(基于RxJava2更优雅)
- Android 源码编译
- 虚拟机VMware tools的安装
- 使用RandomAccessFile实现多线程下载
- pacemaker + corosync 搭建高可用集群
- Android Market排名算法及规则
- Impala中的invalidate metadata和refresh
- 集合之List、Map、Set的区别
- JNDI
- 如何在quartus下做逻辑锁定(quartus,逻辑锁定)
- 数据库连接池
- java语言学习之n的阶乘末尾有多少个0
- 三、数据库连接池