corosync+pacemaker高可用部署

OpenAIS:是实现高可用集群的一种完备解决方案;Corosync是集群管理套件的一部分,通常会与其他资源管理器一起组合使用它在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议等,Pacemaker是一个集群资源管理器。它利用集群基础构件(OpenAIS 、heartbeat或corosync)提供的消息和成员管理能力来探测并从节点或资源级别的故障中恢复,以实现群集服务(亦称资源)的最大可用性。

OpenAIS:分为3个层次

Messaging Layer:infrastructure layer

CRM:cluster resource layer(包括local resource layer)

RA:resource agent:管理机制:start,stop,restart,status,monitor

Messaging Layer:集群事务信息及心跳信息传播方式,unicast、broadcast、multicast

如图架构所示:

组合实现的方式

heartbeat v1 (haresources):独立实现

heartbeat v2 (crm)        :独立实现

heartbeat v3 + pacemaker

corosync + pacemaker

corosync v1 + pacemaker (plugin) )—(v1 -没有投票系统)

corosync v2 + pacemkaer (standalone service)

cman + rgmanager (RHCS)

corosync v1 + cman + pacemaker----(cman提供投票系统)

CRM:资源管理:

资源类型:

primitive:主资源,基本资源,在集群中只能运行在一个节点

clone:克隆资源,在集群中可以运行多个实例,运行在多个节点

multi-state(master/salve):多状态克隆,副本间存在主从关系

group:组资源,将一个高可用服务所需要的所有资源组织在一起

RA:recourse agent资源代理

代理的类别:classes

LSB(linux standard base):脚本文件:/etc/init.d/*、/etc/rc.d/init.d/*、(start|stop|restart|status|running,|reload)--注:不能开机自动运行

service:(heartbeat legacy):/etc/ha.d/haresources.d/*  IPAddr(ifcfg)、IPAddr2(ip)

OCF(Open Cluster Framework):/usr/lib/ocf/resource.d/provider,类似LSB脚本 但支持:start,stop,monitor,meta-data

provider :.isolation heartbeat openstack pacemaker

stonish:隔离设备专用资源

systemd:/usr/lib/systemd/system/ 注:必须设置开机能自动启动。systemctl enable *.service

资源属性:定义格式 meta attribute=value

priority:优先级

target-role:started,stopped,master;如果设置为stopped,配置完后资源没有立即启动

is-managed:是否允许crm管理此资源

resource-stickiness:资源黏性,对当前节点的倾向性

allow-migrate:是否允许迁移,新版本migrate改为使用move

资源的倾向性,约束关系:

location:位置约束,资源对当前节点倾向性

colocation:排列约束 ,资源彼此间是否能运行在同一个节点的倾向性

order:顺序约束,多个资源启动顺序依赖关系

安装:CentOS 7: corosync v2 + pacemaker

结构图如图:

配置HA的群集前提:

(1) 时间同步;crontab -e */5 * * * * /sbin/ntpdate 192.168.1.112 &>dev/null

配置ntp同步服务器

(2) 基于当前正使用的主机名互相访问;严格与hostname一致

名称解析:不建议依赖于dns服务进行解析;

hostnamectl set-hostname node1.xuetong.com:立即生效并永久有效

(3)基于ssh互信

ssh-keygen -t rsa -P ''

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

(4)  隔离设备;

各节点安装:

#yum -y install corosync  pacemaker  (可以直接安装pacemaker即可,依赖于corosync)

corosync的配置文件:/etc/corosync/corosync.conf,/etc/corosync/authkey

totem { }:通信协议,节点间通信,加密与否

interface{}:至少有一个用于监听集群信息

logging {}:日志系统,日记记录及存储

quorum {}:投票系统

nodelist {}:节点列表

pacemaker:配置文件(配置进程的运行特性):/etc/sysconfig/pacemaker  :默认即可

配置文件:

totem {

version: 2   #corosync版本

cluster_name: mycluster    #设置集群名称

crypto_cipher: aes128        #设置安全机制

crypto_hash: sha1

interface {                          #配置接口

ringnumber: 0            #The ringnumber must start at 0

bindnetaddr: 192.168.1.0    #设置监听的IP地址

mcastaddr: 239.255.1.1    #设置多播地址

mcastport: 5405        #多播地址端口

ttl: 1

}

}

logging {                    #日志相关信息配置

fileline: off

to_stderr: no

to_logfile: yes

logfile: /var/log/cluster/corosync.log

to_syslog: yes

debug: off

timestamp: on

logger_subsys {

subsys: QUORUM

debug: off

}

}

quorum {

provider: corosync_votequorum #定义投票机制

}

nodelist {            #添加节点信息

node {

ring0_addr: 192.168.1.120

nodeid: 1

}

node {

ring0_addr: 192.168.1.112

nodeid: 2

}

}

本次实验通过使用crmsh来管理集群事务:

可以通过http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-7/noarch/下载相关组件

crmsh命令使用:ls,help

command --help

查看集群信息状态

status [<option> ...]

option:: full | bynode | inactive | ops| timing | failcounts | verbose | quiet | html | xml  |simple | tickets | noheaders  | detail | brie

配置集群CIB:configure 步骤

配置集群属性:property

配置资源默认属性:rsc_default

配置集群资源:primitive、group、clone、master/slave

配置约束:location、colacation、order

通过help命令可以获取ra/resource/node 使用帮助:

配置集群资源:

primitive <rsc> {[<class>:[<provider>:]]<type>|@<template>}

<rsc>配置资源名称

校验编写是否存在错误:

提示错误因为没有定义stonish资源,关闭stonish设备

默认启用对称设备,这样运行在任何节点都一样

配置完成后需要commit提交才会保存生效;

测试高可用效果:让某个节点待定,查看资源迁移情况,重新上线后的结果,资源的黏性:可以强制迁移

standby [<node>] [<lifetime>] ,没指名node,表示当前节点

迁移资源:

move <rsc> [<node>] [<lifetime>] [force] {migrate之前版本} unmigrate--->clear <rsc>

mv webvip node1.xuetong.com

停止某个资源:stop <src>

配置httpd服务:

安装httpd后要确保开机能自动启动enable:systemctl enable httpd.service

查看ra资源代理是否有httpd服务

配置http资源,出现告警通过配置资源时设置:资源的operations :op op_type [attribute <timeout>]

两个资源分散均衡至不同节点,高可用实现期望一类资源运行在同一个节点,通过定义资源约束关系,在一个组服务。

把两个资源定义在同一个组:

两个资源运行在一个节点上

测试结果,并模拟节点迁移

再次让node1节点上线,资源的倾向性,因此服务运行在node3,实现资源手动迁移:

配置文件系统:filesystem,提供同样的资源:使用集中式存储nas-->NFS

yum install nfs-utils.x86_64

vim /etc/exports

/www/html  192.168.1.0/24(rw,no_root_squash)

systemctl start nfs.server

手动测试NFS能否正常工作然后挂载使用:mount -t nfs nfsserver-ip:/www/html /var/www/html

测试正常后,通过配置资源来实现NFS部署:

重新定义group关系:group web webvip webstore webserver,这样能够简单实现nfs提供共享文件存储:

为了区分资源的启动顺序、运行在哪个节点可以通过定义约束关系:

colocation:定义资源能否运行在同一节点

colocation <id> <score>: <rsc>[:<role>] <with-rsc>[:<role>]

coloaction webserver_with_webip inf: webserver webip:表示这两个资源必须运行在一起

order:定义资源启动先后顺序:

order <id> [{kind|<score>}:] first then [symmetrical=<bool>]

kind :: Mandatory | Optional | Serialize

order o-1 Mandatory: webip  webserver :表示先启动webip资源再到webserver资源

location:定义资源运行在哪个节点上倾向性

location webip_pre_node1 webip 50: node1.xuetong.com

location webip_pre_node2 webip inf: node2.xuetong.com

原文地址:http://blog.51cto.com/12580678/2152400

时间: 2024-10-13 18:31:15

corosync+pacemaker高可用部署的相关文章

Corosync+pacemaker高可用集群实现

目录: 实验规划 实验准备 软件安装 Corosync配置文件 高可用功能实现 资源粘性实例 注意事项 实验规划 有两个结点分别为RS1和RS2 IP地址分别为192.168.1.127和192.168.1.128 高可用的访问VIP地址为192.168.1.122 高可用服务为httpd服务. 系统为CentOS Linux release 6.0 (Final) 实验准备 1.配置RS1的IP地址(/etc/sysconfig/network-scripts/ifcfg-eth0)    

Ansible自动化部署corosync+pacemaker高可用实现httpd

一.ansible简介 ansible是2012年出现的自动运维工具,基于python开发,集合了众多工具的优点,可以实现批量系统配置.批量程序部署.批量运行命令.批量配置文件修改等功能.最主要的是ansible是基于多模块工作的,而且ansible是无需客户端安装就可以基于ssh实现管理节点的,是轻量级的自动化运维工具,ansible是个框架,主要包括以下几个组件: (1).连接插件connection plugins:负责和被监控端实现通信: (2).host inventory:设置管理的

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           

corosync+pacemaker高可用集群

简介 高可用集群,是指以减少服务中断(如因服务器宕机等引起的服务中断)时间为目的的服务器集群技术.简单的说,集群就是一组计算机,它们作为一个整体向用户提供一组网络资源.这些单个的计算机系统就是集群的节点. 高可用集群的出现是为了减少由计算机硬件和软件易错性所带来的损失.它通过保护用户的业务程序对外不间断提供的服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度.如果某个节点失效,它的备援节点将在几秒钟的时间内接管它的职责.因此,对于用户而言,集群永远不会停机.高可用集群软件的主要作用就

[ Openstack ] Openstack-Mitaka 高可用之 Pacemaker+corosync+pcs 高可用集群

目录 Openstack-Mitaka 高可用之 概述    Openstack-Mitaka 高可用之 环境初始化    Openstack-Mitaka 高可用之 Mariadb-Galera集群部署    Openstack-Mitaka 高可用之 memcache    Openstack-Mitaka 高可用之 Pacemaker+corosync+pcs高可用集群    Openstack-Mitaka 高可用之 认证服务(keystone)    Openstack-Mitaka

drbd+corosync实现高可用mysql

前提: 本配置共有两个测试节点,分别node1和node2,相的IP地址分别为202.207.178.6和202.207.178.7,管理节点202.207.178.8,对node1和node2进行配置.此时已经配置好drbd,并且可以正常工作了! (为避免影响,先关闭防火墙和SElinux,DRBD相关配置详见http://10927734.blog.51cto.com/10917734/1867283) 一.安装corosync 1.先停止drbd服务,并禁止其开机自动启动 主节点: [[e

Heartbeat高可用部署(二)

三:Heartbeat高可用部署基础准备 3.1 搭建虚拟机模拟真实环境 我们安装前面的主机规划来进行配置主机 首先我们准备两台机器 给虚拟机配置IP和主机名,hosts 按照主机规划给服务器配置IP地址,如果是双网卡的机器,要记得添加网卡设备,尽可能在关机状态下添加网卡设备,然后开机登录后,执行/etc/init.d/kudzu start(centos6已经没有这个命令,可以使用start_udev来管理)检查新硬件 完成之后重启两台主机,然后通过setup配置 注意:这里不用设置网关和DN

开源jms服务ActiveMQ的负载均衡+高可用部署方案探索

一个文件(或目录)拥有若干个属性,包括(r/w/x)等基本属性,以及是否为目录(d)与文件(-)或连接文件(l)等属性.此外,Linux还可以设置其他系统安全属性,使用chattr来设置,以lsattr来查看,最重要的是可以设置其不可修改的特性,即便是文件的拥有者都不能进行修改.这个属性相当重要,尤其是在安全机制方面(security). 文件默认权限:umask 当建立一个新的文件或目录时,它的默认属性是与umask有关的.通常,umask就是指定当前用户在建立文件或目录时的属性默认值.那么,

利用NLB群集实现WEB站点的高可用部署

利用NLB群集实现WEB站点的高可用部署 前面的博文中和各位博友聊了如何搭建一个WEB站点,那么今天就和大家聊聊如何实现WEB站点的高可用性. 在本文中我们利用NLB来为大家讲解如何实现WEB站点的高可用: NLB简介: 网络负载平衡群集(简称:NLB),起作用时防止单一的节点故障,其部署至少需要两台服务器,NLB的作用就是当群集中的某个节点出现故障或者停止工作是,其运行服务会自动切换到群集的另一台主机,当然和我们其他群集一样,当来访流量过多的时候NLB群集会自动实现网络负载,防止负载不均,从而