Pacemaker + Corosync 集群高可用的实现(Fence、nfs共享存储)

一、基础概念

1.什么是Pacemaker?

Pacemaker是 Linux环境中使用最为广泛的开源集群资源管理器, Pacemaker利用集群基础架构(Corosync或者 Heartbeat)提供的消息和集群成员管理功能,实现节点和资源级别的故障检测和资源恢复,从而最大程度保证集群服务的高可用。从逻辑功能而言, pacemaker在集群管理员所定义的资源规则驱动下,负责集群中软件服务的全生命周期管理,这种管理甚至包括整个软件系统以及软件系统彼此之间的交互。 Pacemaker在实际应用中可以管理任何规模的集群,由于其具备强大的资源依赖模型,这使得集群管理员能够精确描述和表达集群资源之间的关系(包括资源的顺序和位置等关系)。同时,对于任何形式的软件资源,通过为其自定义资源启动与管理脚本(资源代理),几乎都能作为资源对象而被 Pacemaker管理。

此外,需要指出的是, Pacemaker仅是资源管理器,并不提供集群心跳信息,由于任何高可用集群都必须具备心跳监测机制,因而很多初学者总会误以为 Pacemaker本身具有心跳检测功能,而事实上 Pacemaker的心跳机制主要基于 Corosync或 Heartbeat来实现

Pacemaker是整个高可用集群的控制中心,用来管理整个集群的资源状态行为,客户端通过 pacemaker来配置、管理、监控整个集群的运行状态。Pacemaker是一个功能非常强大并支持众多操作系统的开源集群资源管理器,Pacemaker支持主流的 Linux系统,如 Redhat的 RHEL系列、 Fedora系列、 openSUSE系列、Debian系列、 Ubuntu系列和 centos系列,这些操作系统上都可以运行 Pacemaker并将其作为集群资源管理器。

2.Pacemaker的主要功能包括:
  • 监测并恢复节点和服务级别的故障。
  • 存储无关,并不需要共享存储。
  • 资源无关,任何能用脚本控制的资源都可以作为集群服务。
  • 支持节点 STONITH功能以保证集群数据的完整性和防止集群脑裂。
  • 支持大型或者小型集群。
  • 支持 Quorum机制和资源驱动类型的集群。
  • 支持几乎是任何类型的冗余配置。
  • 自动同步各个节点的配置文件。
  • 可以设定集群范围内的 Ordering、 Colocation and Anti-colocation等约束。
  • 高级服务类型支持,例如:
     Clone功能,即那些要在多个节点运行的服务可以通过 Clone功能实现, Clone功能将会在多个节点上启动相同的服务;
     Multi-state功能,即那些需要运行在多状态下的服务可以通过 Multi–state实现,在高可用集群的服务中,有很多服务会运行在不同的高可用模式下,如:Active/Active模式或者 Active/passive模式等,并且这些服务可能会在 Active 与standby(Passive)之间切换。
  • 具有统一的、脚本化的集群管理工具。

主机环境:rhel6.5 selinux and iptables disabled

主机名 ip 服务
server1 172.25.254.1 pacemaker
server2 172.25.254.2 pacemaker
server3 172.25.254.3 nfs-utils、rpcbind

二、Pacemaker实现高可用

搭建步骤:

1.配置高级的yum源(server1、server2)

[root@server1 yum.repos.d]# vim rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.73/rhel6.5/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[LoadBalancer]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.73/rhel6.5/LoadBalancer
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[HighAvailability]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.73/rhel6.5/HighAvailability
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[ResilientStorage]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.73/rhel6.5/ResilientStorage
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[ScalableFileSystem]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.73/rhel6.5/ScalableFileSystem
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@server1 yum.repos.d]# yum clean all
[root@server1 yum.repos.d]# yum repolist

server2操作相同

[root@server1 yum.repos.d]# scp rhel-source.repo server2:/etc/yum.repos.d/
[root@server2 ~]# yum clean all
[root@server2 ~]# yum repolist

2.下软件,提供crm命令行接口,配置心跳节点,同时启动

01.安装支持crm命令行接口的软件

[root@server1 ~]# yum install pacemaker -y
[root@server1 ~]# ls
anaconda-ks.cfg                   install.log         pssh-2.3.1-2.1.x86_64.rpm
crmsh-1.2.6-0.rc2.2.1.x86_64.rpm  install.log.syslog
[root@server1 ~]# yum install pssh-2.3.1-2.1.x86_64.rpm crmsh-1.2.6-0.rc2.2.1.x86_64.rpm -y
[root@server2 ~]# yum install pacemaker -y
[root@server2 ~]# ls
anaconda-ks.cfg                   install.log         pssh-2.3.1-2.1.x86_64.rpm
crmsh-1.2.6-0.rc2.2.1.x86_64.rpm  install.log.syslog
[root@server2 ~]# yum install pssh-2.3.1-2.1.x86_64.rpm crmsh-1.2.6-0.rc2.2.1.x86_64.rpm -y

02.查看安装完成后对应生成的文件
在这里插入图片描述

03.修改配置文件(让corosync在pacemaker启动时也启动)

[root@server1 corosync]# cp corosync.conf.example corosync.conf
[root@server1 corosync]# vim corosync.conf
 10                 bindnetaddr: 172.25.254.0	#同网段
 11                 mcastaddr: 226.94.1.1		#多播地址(不需要修改)
 12                 mcastport: 5405				#多播端口
 35 service {
 36         name:pacemaker
 37         ver:0
 38 }
 [root@server1 corosync]# scp /etc/corosync/corosync.conf server2:/etc/corosync/

04.两边同时启动corosync服务

[root@server2 corosync]# /etc/init.d/corosync start
Starting Corosync Cluster Engine (corosync):               [  OK  ]

                
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值