Corosync+pacemaker

Corosync是OpenAIS发展到Wilson版本后衍生出来的开放性集群引擎工程。可以说Corosync是OpenAIS工程的一部分,Corosync执行高可用应用程序的通信组系统,它有以下特征: 一个封闭的程序组通信模式,这个模式提供一种虚拟的同步方式来保证能够复制服务器的状态。

一个简单可用性管理组件,这个管理组件可以重新启动应用程序的进程当它失败后。

一个配置和内存数据的统计,内存数据能够被设置,回复,接受通知的更改信息。

一个定额的系统,定额完成或者丢失时通知应用程序。

corosync是高可用集群中的Cluster Messaging Layer(集群信息层),是主要传递发集群信息与心跳信息的,并没有资源管理功能,资源管理还得依赖于上层的crm(Cluster resource Manager,集群资源管理器),最著名的资源管理器,就是pacemaker,它是heartbeat v3分离出去的子项目。而现在corosync+pacemaker成了高可用集群中的最佳组合。

pacemaker是一个群集资源管理器。它实现最大可用性群集服务(亦称资源管理)的节点和资源级故障检测和恢复使用。 它可以做乎任何规模的集群,并配备了一个强大的依赖模型,使管理员能够准确地表达群集资源之间的关系(包括顺序和位置)。几乎任何可以编写脚本,可以管理作为心脏起搏器集群的一部分。 pacemaker是个资源管理器,不是提供心跳信息的,pacemaker是一个延续的CRM(亦称Heartbeat V2资源管理器),最初是为心跳,但已经成为独立的项目。

pacemaker 特点

1.主机和应用程序级别的故障检测和恢复

2.几乎支持任何冗余配置

3.同时支持多种集群配置模式

4.配置策略处理法定人数损失(多台机器失败时)

5.支持应用启动/关机顺序

6.支持在同一台机器上运行的应用程序

7.支持多种模式的应用程序(如主/从)

8.可以测试任何故障或群集的群集状态

配置pacemaker有两种配置途径,一时命令行工具包括crm和pcs,二是图形工具:pugui,LCMC,pcsd和mgmt,其中LCMC是java编写的图形管理界面;Hawk是官方推荐代替mgmt的web界面配置工具,pcsd是pcs的图形界面。

从pacemaker1.1.8开始crmsh就作为一个独立项目不再提供需要另行下载。

crm有两种工作方式:

1.批处理模式就是在命令行中直接输入命令(如执行crm status)

2.交互式模式:运行crm,进入crm(live)# , 按2次Tab键可显示该层级所有指令

crm中常用一级命令:

configure 用于设置具体参数

resource 对已定义资源进行各种操作

ra resource agents center, 可查看哪些resource agent可供使用

cib 类似于configure,只是操作的是cib shadow

node 对节点进行各类操作

status 显示集群状态信息

cd 返回上一级

Ctrl+c 退出

configure中的指令

show 查看当前配置

verify 检查当前配置是否正确, 相当于crm_verify -L

commit 提交配置使配置生效,修改后没提交系统不会保存更改的信息

delete 删除某项配置, name为该项的名称

edit 编辑某项配置,name为该项的名称

primitive 定义资源

monitor 资源检视

group 创建组资源,将几项资源编成一组

clone 克隆已建的资源

ms/master 定义master/slave资源

primitive中参数说明

资源代理类型: lsb, ocf, stonith, service

资源代理的提供程序: heartbeat , pacemaker

资源代理名称:即resource agent, 如:IPaddr2,httpd, mysql

meta--元属性, 是可以为资源添加的选项。它们告诉 CRM 如何处理特定资源。

params--实例属性,是特定资源类的参数,用于确定资源类的行为方式及其控制的服务实例。

op--操作,默认情况下,群集不会确保您的资源一直正常。要指示群集确保资源状况依然正常,需要向资源的定义中添加一个监视操作monitor。可为所有类或资源代理添加monitor。

op_type :包括 start,stop,monitor

interval :执行操作的频率。单位:秒。

timeout : 需要等待多久才声明操作失败。

requires :需要满足什么条件才能发生此操作。允许的值:nothing、quorum 和 fencing。默认值取决于是否启用屏障和资源的类是否为 stonith。对于 STONITH 资源,默认值为 nothing。

on-fail :此操作失败时执行的操作。允许的值:

ignore:假装资源没有失败。

block:不对资源执行任何进一步操作。

stop:停止资源并且不在其他位置启动该资源。

restart:停止资源并重启动。

fence:关闭资源失败的节点 (STONITH)。

standby:将所有资源从资源失败的节点上移走。

enabled 如果值为 false,将操作视为不存在。允许的值:true、false。

下面是pacemaker的配置

yum install pacemaker
cd /etc/corosync/
cp corosync.conf.example corosync.conf
vim corosync.conf
  bindnetaddr: 172.25.9.0  #设定网段
  mcastaddr: 226.94.1.1    #多波地址
  mcastport:5405          #多波端口
service{
    name:pacemaker   #添加pacemaker服务
    ver:0    #0为启动corsync时自动启动pacemaker服务,1为不接管服务
}

在其他节点做相同配置

启动corosync

/etc/init.d/corosync start
crm_verify -LV   #查看配置文件是否正确
crm_mon          #查看节点状态

安装crm命令来配置pacemaker

yum install crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm -y
crm  #进入crm交互界面
  configure 
  show#查看当前配置

忽略法定节点数:(集群不会以为节点不够而失效)

property no-quorum-policy=ignore
commi  #将修改同步到其他节点

添加fence(要安装cman)

primitive vmfence stonith:fence_xvm params pcmk_host_map="server2.example.com:vm2;server3.example.com:vm3" op monitor interval=1min #server2/3.example.com是节点名,vm2/3为虚拟机名称
commi  #将修改同步到其他节点

添加vip

primitive vip ocf:heartbeat:IPaddr2 params ip=172.25.9.100 cidr_netmask=32 op monitor interval=30s
commi  #将修改同步到其他节点

添加apache服务

primitive httpd ocf:heartbeat:apache params configfile=/etc/httpd/conf/httpd.conf op monitor interval=30s 
commi  #将修改同步到其他节点

注意为了监控Apache的健康状态,并在它挂掉的时候恢复Apache服务,server-status URL是可用的:

vim /etc/httpd/conf/httpd.conf
    <Location /server-status>
        SetHandler server-status    
        Order deny,allow
        Allow from 127.0.0.1
    </Location>

粘滞服务(使得服务与vip在同一主机上运行)

colocation httpd-with-ip inf: httpd vip #方法一
group apache vip httpd      #方法二
commi  #将修改同步到其他节点

做完实验我们可以用delete apache 和delete httpd删除apache组和服务

用drdb同步存储

primitive sqldata ocf:linbit:drbd params drbd_resource=westos op monitor interval=60s
ms sqldataclone sqldata meta master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true

挂载文件系统

primitive sqlfs ocf:heartbeat:Filesystem params device=/dev/drbd1 directory=/var/lib/mysql fstype=ext4
colocation sqlfs_on_drbd inf: sqlfs sqldataclone:Master 
order sqlfs-after-sqldata inf: sqldataclone:promote sqlfs:start

添加mysql服务

primitive mysql lsb:mysqld op monitor interval=60s
group mygroup vip sqlfs mysql #将vip,文件系统,mysql进行粘滞
时间: 2024-12-22 05:46:15

Corosync+pacemaker的相关文章

corosync+pacemaker实现高可用的MariaDB

一.准备工作 承接上文:corosync+pacemaker使用crmsh构建高可用集群 二.MariaDB server配置(基于nfs) nfs server准备 1.在nfs server准备LVM存储空间 [[email protected] ~]# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS dis

corosync+pacemaker+drbd 实现lamp集群(Discuz)

实验平台: CentOS 6.4 实现功能: 利用corosync+pacemaker+drbd完成lamp平台的高可用,并安装Discuz论坛进行测试 实验步骤: 1. 同步双方hosts文件,加入node6与node7的解析 10.32.9.56 node6 10.32.9.57 node7 实现SSH双机互信 node1 ssh-keygen -t rsa --- 生成一对公私钥文件,默认放在/root/.ssh/id_rsa目录下 ssh-copy-id [email protected

高可用分布式存储(Corosync+Pacemaker+DRBD+MooseFS)

========================================================================================= 一.服务器分布及相关说明 ========================================================================================= 1.服务器信息 2.总体架构   3.网络参数 4.元数据节点上需要额外部署的服务 Corosync + Pace

HA集群之CoroSync+Pacemaker浅析及实现

一.CoroSync corosync最初只是用来演示OpenAIS集群框架接口规范的一个应用,可以说corosync是OpenAIS的一部分,然而后面的发展超越了官方最初的设想,越来越多的厂商尝试使用corosync作为集群解决方案.如Redhat的RHCS集群套件就是基于corosync实现. corosync只提供了message layer(即实现HeartBeat + CCM),而没有直接提供CRM,一般使用Pacemaker进行资源管理. OpenAIS是基于SA Forum 标准的

corosync+pacemaker+mysql+drbd 实现mysql的高可用

corosync corosync的由来是源于一个Openais的项目,是Openais的一个子 项目,可以实现HA心跳信息传输的功能,是众多实现HA集群软件中之一,heartbeat与corosync是流行的Messaging Layer (集群信息层)工具.而corosync是一个新兴的软件,相比Heartbeat这款很老很成熟的软件,corosync与Heartbeat各有优势,博主就不在这里比较之间的优势了,corosync相对于Heartbeat只能说现在比较流行. pacemaker

高可用集群之Corosync+Pacemaker及用CRM命令和NFS-server构建一个HA高可用集群

红帽5.0使用的是OpenAIS作为内核中的信息通信API,然后借助CMAN作为Messager Layer,再使用ramanager作为CRM进行资源的管理 Corosync具有比heartbeat在设计上更好的信息通信机制 红帽6.0直接使用Corosync用来作为集群的Messager Layer 不同的公司的API机制所调用的库,函数类型,返回方式各不相同,这就必须使用一个标准,使不同公司的API保持最大的兼容 比如你买了华硕的主板使用其他公司的鼠标照样可以使用 应用接口规范(AIS)就

Corosync Pacemaker 高可用 Mariadb

1.安装前准备  高可用集群一般需要配置时间同步.基于主机名互相通信.ssh的互信通信,Corosync Pacemaker 仅需要配置时间同步.基于主机名互相通信即可: yum install chrony          #安装chrony vim /etc/chrony.conf      server172.16.0.1 iburst  #设置为可用的ntp服务器 systemctl restart chronyd     #启动服务 vim /etc/hosts           

MySQL+DRBD+Corosync+Pacemaker CentOS6.5版

一.DRBD部分配置 1.安装环境说明 node1       192.168.110.141 node2       192.168.110.142 Node1: # sed -i '[email protected]\(HOSTNAME=\).*@\[email protected]' /etc/sysconfig/network # hostname node1.pancou.com # vim /etc/hosts 192.168.110.141 node1.pancou.com nod

Corosync+Pacemaker+DRBD+Mysql高可用HA配置

操作系统: CentOS 6.6 x64,本文采用rpm方式安装corosync+pacemaker+drbd,采用二进制版本安装mysql-5.6.29.本文是在Corosync+Pacemaker+DRBD+NFS高可用实例配置基础上进行配置修改,然后进行测试的安装过程. 一.双机配置 1. app1,app2配置hosts文件,以及主机名. [[email protected] soft]# vi /etc/hosts   127.0.0.1   localhost localhost.l