corosync+pacemaker配置高可用集群(需要额外安装crm工具)

借鉴了网上不少博客
定义:(来源于百度百科)
Corosync:是集群管理套件的一部分,它在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议等。
Pacemaker:是一个集群资源管理器。它利用集群基础构件(OpenAIS 、heartbeat或corosync)提供的消息和成员管理能力来探测并从节点或资源级别的故障中恢复,以实现群集服务(亦称资源)的最大可用性。
crm:直接的配置工具。

一、前期准备:准备两台主机node1和node2:

1.确保设置好IP地址,设置好hostname和修改/etc/sysconfig/network内hostname一致。同步时间:#ntpdate ntp.api.bz
2.node1和node2先做好互信。
node1:

  • #ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ‘‘
    #cd ~/.ssh/
    #ssh-copy-id -i id_rsa.pub [email protected]

node2:

  • #ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ‘‘
    #cd ~/.ssh/
    #ssh-copy-id -i id_rsa.pub [email protected]

测试一下:ssh NODE1IP ‘ifconfig‘
3.node1和node2:

  • #vim /etc/hosts
    加入:
  • #NODE1IP node1
    #NODE2IP node2

node2上测试:ping node1
4.关闭iptables和selinex
5.安装第三方yum源头:#yum install epel-release -y
6.安装好测试用的httpd:#yum install httpd -y
7.node1:

  • echo node1 > /var/www/html/index.html

node2:

  • echo node2 > /var/www/html/index.html

停止httpd服务,并关闭开机自启动。

二、开始安装

node1node2均要安装:
1.安装corosync和pacemaker。
2.heartbeat到了V3,已经吧crm单独划分出去,所以不需要再安装heartbeat。直接安装crmsh安装包。
###################################################################
vim /etc/yum.repos.d/HA.repo
##添加安装crmsh用的yum源。但是下载速度很慢,很大概率失败。
###################################################################
[network_ha-clustering_Stable]
name=Stable High Availability/Clustering packages (CentOS_CentOS-6)
type=rpm-md
baseurl=http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6/
gpgcheck=1
gpgkey=http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6//repodata/repomd.xml.key
enabled=1
###################################################################
PS:如果不能安装,那么复制路径直接到页面上去下载缺少的安装包。
例如:yum install crmsh-3.0.0-6.1.noarch.rpm crmsh-scripts-3.0.0-6.1.noarch.rpm python-parallax-1.0.1-28.1.noarch.rpm
###################################################################

三、开始配置

node1:(只需要在一个节点上配置即可)
1.配置corosync

  • #cd /etc/corosync
    #cp corosync.conf.example corosync.conf
    #vim corosync.conf

修改

  • secath:on #指的是集群间认证开启,防止其他主机加入集群
    thrends:2 #并发开启的线程数。一般单核cpu修改下。多核cpu不需要修改
    bindnetaddr:192.168.126.0 #集群工作的网段
    mcastaddr:226.99.9.17 #多播地址,可查一下什么可选,尽量与别人的不一样
    to-syslog:no #关闭写入系统日志
    添加启动pacemaker
    service { ##启动corosync完成后,就启动pacemaker。
    ver:0
    name:pacemaker
    } #保存

2.准备密钥文件

  • #corosync-keygen

3.复制corosync.conf和密钥文件到node2:

  • #scp -p corosync.conf authkey node2:/etc/corosync/

四、启动服务

node1:
1.启动服务

  • #service corosync start

2.对服务进行检查,查看是否有问题。
3.查看流程大致

  • 查看corosync引擎是否正常启动
    查看初始化成员节点通知是否正常发出
    检查启动过程中是否有错误产生
    crm_mon查看状态

例如:
查看corosync引擎是否正常启动:

  • #grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/messages
    Jun 14 19:02:08 node1 corosync[5103]: [MAIN ] Corosync Cluster Engine (‘1.2.7‘): started and ready to provide service.
    Jun 14 19:02:08 node1 corosync[5103]: [MAIN ] Successfully read main configuration file ‘/etc/corosync/corosync.conf‘.
    Jun 14 19:02:08 node1 corosync[5103]: [MAIN ] Corosync Cluster Engine exiting with status 8 at main.c:1397.
    Jun 14 19:03:49 node1 corosync[5120]: [MAIN ] Corosync Cluster Engine (‘1.2.7‘): started and ready to provide service.
    Jun 14 19:03:49 node1 corosync[5120]: [MAIN ] Successfully read main configuration file ‘/etc/corosync/corosync.conf‘.

查看初始化成员节点通知是否正常发出:

  • #grep TOTEM /var/log/messages
    Jun 14 19:03:49 node1 corosync[5120]: [TOTEM ] Initializing transport (UDP/IP).
    Jun 14 19:03:49 node1 corosync[5120]: [TOTEM ] Initializing transmit/receive security: libtomcrypt SOBER128/SHA1HMAC (mode 0).
    Jun 14 19:03:50 node1 corosync[5120]: [TOTEM ] The network interface [172.16.100.11] is now up.
    Jun 14 19:03:50 node1 corosync[5120]: [TOTEM ] A processor joined or left the membership and a new membership was formed.

检查启动过程中是否有错误产生:

  • #grep ERROR: /var/log/messages | grep -v unpack_resources

查看pacemaker是否正常启动:

  • #grep pcmk_startup /var/log/messages
    Jun 14 19:03:50 node1 corosync[5120]: [pcmk ] info: pcmk_startup: CRM: Initialized
    Jun 14 19:03:50 node1 corosync[5120]: [pcmk ] Logging: Initialized pcmk_startup
    Jun 14 19:03:50 node1 corosync[5120]: [pcmk ] info: pcmk_startup: Maximum core file size is: 4294967295
    Jun 14 19:03:50 node1 corosync[5120]: [pcmk ] info: pcmk_startup: Service: 9
    Jun 14 19:03:50 node1 corosync[5120]: [pcmk ] info: pcmk_startup: Local hostname: node1.magedu.com

4.均无问题后在node1上远程启动node2

  • #ssh node2 ‘service corosync start‘

注意:启动node2需要在node1上使用如上命令进行,不要在node2节点上直接启动

五、配置集群

node1:(在一个节点上配置即可,会自动同步到node2)
1.crm有两种模式命令行模式(立即生效)和交互式模式(提交生效)。
2.我们使用虚拟机没有stonith设备,先关闭stonith。
#crm configure property stonith-enabled=false
3.开始配置webip资源

  • #crm

直接进入交互模式(verify检查,commit提交,show显示配置,edit直接手动修改配置文件)

  • #crm#resource
    #crm#resource#primitive webip ocf:heartbeat:IPaddr params ip=192.168.126.214 nic=192.168.126.254 nic=eth0 cidr_netmask=24
    #verify #检查
    #commit #提交
    #show xml #以xml格式显示配置条目
    #status #检查状态

(PS:启动关闭资源的方法:#crm#resource#start webip
#crm#resource#stop webip)
4.配置httpd资源

  • #crm#configure#primitive httpd lsb:httpd

5.查看配置的资源

  • #crm#configure#show

6.检查提交

  • #verify
    #commit
    (PS:有错误的时候可以键入edit直接进行文本界面来修改配置的资源)

node2:

  • #crm status或者#crm_mon来查看配置是否成功启动。

node1:

  • 变成备节点:
    #crm node standby
    变回上线状态:
    #crm node online

以上变更时,对node2上面的crm_mon进行观察,会发现有变化。

六、配置资源的约束

1.排列约束:(使两个资源在同一个节点运行)

  • #crm#configure#colocation httpd_with_webip INFINITY: httpd webip
    #crm#configure#show xml
    #crm#configure#verify
    #crm#configure#commit

2.顺序约束:(决定资源启动的先后次序。先启动webip后启动httpd)

  • #crm#configure#order webip_before_httpd mandatory: webip httpd
    #crm#configure#show xml
    #crm#configure#verify
    #crm#configure#commit

3.位置约束:(资源更倾向于某个节点)

  • #crm#configure#location webip_on_node1 webip 100: #uname eq node1

提交。

七、开始测试

客户机浏览器登录192.168.126.214
node1:

  • 变备件点
    #crm node standby
    刷新浏览器
    变回上线状态
    #crm node online
    查看资源是否都回到node1

原文地址:http://blog.51cto.com/13484913/2125623

时间: 2024-08-06 20:52:58

corosync+pacemaker配置高可用集群(需要额外安装crm工具)的相关文章

corosync+pacemaker配置高可用集群

一.环境介绍: Node1: CentOS6      192.168.9.168   192-168-9-168 CentOS6      192.168.9.176   192-168-9-176 VIP: 192.168.9.144 corosync和pacemaker为yum安装 二.环境部署 服务器初始化脚本执行(主要时间同步,防火墙,主机名,ip配置,关闭不必要服务等) 1,更改yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo http:/

corosync+pacemaker实现高可用集群。

实验环境: 安装: yum install corosync pacemaker -y 复制配置文件 cp corosync.conf.example corosync.conf vim corosync.conf 编辑配置文件: compatibility: whitetank  是否兼容0.8版本的corosynctotem {定义集群之间心跳信息传递层   version: 2 ----版本号        secauth: on ---是否启用安全认证        threads: 0

corosync+pacemaker的高可用集群

基于corosync+pacemaker的高可用集群 Pacemaker即Cluster Resource Manager (简称CRM),用来管理整个HA的控制中心,客户端通过pacemaker来配置管理监控整个集群.它不能提供底层心跳信息传递的功能,它要想与对方节点通信需要借助底层(新拆分的heartbeat或corosync)的心跳传递服务,将信息通告给对方. pacemaker管理资源的工具由命令行界面的crmsh.pcs和图形化界面pygui.hawk等进行管理. 因此,一般来说都是选

corosync+pacemaker构建高可用集群

一.集群简介 引自suse官方关于corosync的高可用集群的框架图: 由图,我们可以看到,suse官方将集群的Architecture Layers分成四层.最低层Messaging/Infrastructure Layer提供了HeartBeat节点间传递心跳信息,即为心跳层.第二层Membership Layer层为集群事务决策层,决定了哪些节点作为集群节点,并传递给集群内所有节点,如果集群中成员拥有的法定票数不大于半数,该怎么作出决策等,通俗点讲,就是投票系统,同时,还提供了构建成员关

corosync+pacemaker实现高可用集群

Corosync corosync最初只是用来演示OpenAIS集群框架接口规范的一个应用,可以实现HA心跳信息传输的功能,是众多实现HA集群软件中之一,可以说corosync是OpenAIS的一部分,然而后面的发展超越了官方最初的设想,越来越多的厂商尝试使用corosync作为集群解决方案,如Redhat的RHCS集群套件就是基于corosync实现. corosync只提供了message layer(即实现HeartBeat + CCM),而没有直接提供CRM,一般使用Pacemaker进

基于corosync+pacmaker实现高可用集群

目前,corosync功能和特性已经非常完善了,所以pacmaker独立出来之后通常都将pacmaker和corosync结合来使用,corosync并没有通用的资源管理器,因此要借助pacmaker来实现 常用的资源管理器: ·cman:rgmanager ·crm: crm的资源约束有: ·location :资源对节点的偏好 ·colocation:排序约束:资源运行在同一节点上的可能性,需要一定评估的 ·order: 资源采取动作的次序 资源有很多属性,以下为最常见的几类 ·集群属性 ·

18.1 集群介绍;18.2 keepalived介绍;18.3,18.4,18.5 用keepalived配置高可用集群(上,中,下);

18.1 集群介绍 1. 根据功能划分为两大类:高可用和负载均衡 2. 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 3. 实现高可用的开源软件有:heartbeat.keepalived 负载均衡集群,需要有一台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外,就是给用户提供服务的服务器了,这些服务器数量至少为2 4. 实现负载均衡的开源软件有LVS.keepalived.haproxy.nginx,

高可用集群之heartbeat安装配置

高可用集群之heartbeat安装配置 说明: 系统为rhel 5.8 64bit heartbeat版本为v2 配置web高可用服务 节点为两个:node1和node2 创建高可用集群需要注意的地方: 各节点需要传递集群事务信息,传递时需要识别各节点,每个节点对对方的识别必须靠节点名称来实现,节点名称能够解析IP地址,配置DNS的话,如果DNS挂了,节点也找不到了,所以对于名称的解析不要依赖DNS,这就需要使用本地hosts文件,需要为每一个节点配置好hosts文件解析,每一个节点的hosts

18.1集群介绍 18.2 keepalived介绍18.3/18.4/18.5 用keepalived配置高可用集群

- 18.1 集群介绍 - 18.2 keepalived介绍 - 18.3/18.4/18.5 用keepalived配置高可用集群 - 扩展 - heartbeat和keepalived比较 http://blog.csdn.net/yunhua_lee/article/details/9788433  - DRBD工作原理和配置 http://502245466.blog.51cto.com/7559397/1298945 - mysql+keepalived http://lizhenl