pacemaker+corosync实现资源调度

场景一:定义web资源实现web集群的高可用!

本次环境:

Centos6系统 2台,各安装了http服务。

Pacemaker   corosync服务已经安装


1、  查看当前环境

crm(live)configure# show
node erick.com          attributesstandby=off
node erick1.com          attributesstandby=off
property cib-bootstrap-options:          dc-version=1.1.14-8.el6-70404b0         cluster-infrastructure="classicopenais (with plugin)"          expected-quorum-votes=2         stonith-enabled=false         no-quorum-policy=stop         last-lrm-refresh=1467844686

1、  定义web的vip资源

crm(live)configure# primitive webipocf:heartbeat:IPaddr params ip=192.168.223.110
crm(live)configure# verify
crm(live)configure# commit
crm(live)configure# show
node erick.com attributes standby=off
node erick1.com          attributesstandby=off
primitive webip IPaddr          paramsip=192.168.223.110
property cib-bootstrap-options:          dc-version=1.1.14-8.el6-70404b0         cluster-infrastructure="classicopenais (with plugin)"          expected-quorum-votes=2         stonith-enabled=false         no-quorum-policy=stop         last-lrm-refresh=1467844686

在节点上查看是否vip已经生成

[[email protected] ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP>mtu 16436 qdisc noqueue state UNKNOWN
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
   inet 127.0.0.1/8 scope host lo
   inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen1000
   link/ether 00:0c:29:8c:43:f0 brd ff:ff:ff:ff:ff:ff
   inet 192.168.223.131/24 brd 192.168.223.255 scope global eth0
   inet 192.168.223.110/24brd 192.168.223.255 scope global secondary eth0
   inet6 fe80::20c:29ff:fe8c:43f0/64 scope link
       valid_lft forever preferred_lft forever
[[email protected]~]#

定义web资源

crm(live)configure# primitivewebserver lsb:httpd
crm(live)configure# verify
crm(live)configure# comm
crm(live)configure# show
node erick.com          attributesstandby=off
node erick1.com          attributesstandby=off
primitive webip IPaddr          paramsip=192.168.223.110
primitive webserver lsb:httpd
property cib-bootstrap-options:          dc-version=1.1.14-8.el6-70404b0         cluster-infrastructure="classicopenais (with plugin)"          expected-quorum-votes=2         stonith-enabled=false         no-quorum-policy=stop         last-lrm-refresh=1467844686
crm(live)configure#

现在来利用pacemaker启动服务

crm(live)# resource start webip
crm(live)# resource start webserver
crm(live)#
crm(live)#
crm(live)#
crm(live)# status
Last updated: Thu Jul  7 21:16:03 2016                  Last change: Thu Jul  7 21:16:00 2016 by root via cibadmin onerick.com
Stack: classic openais (with plugin)
Current DC: erick.com (version1.1.14-8.el6-70404b0) - partition with quorum
2 nodes and 2 resources configured,2 expected votes
 
Online: [ erick.com erick1.com ]
 
Full list of resources:
 
 webip     (ocf::heartbeat:IPaddr):  Started erick.com
 webserver      (lsb:httpd):       Started erick1.com
 
crm(live)#

现在可以看到资源非常均衡的分别在两个节点上起动了。这样有个问题,会导致web无法访问。现在我我们要实现把两个资源定义在一起,使其能够在一个节点启动

crm(live)configure# colocationwebserver_before_webip inf: webserver webip
crm(live)configure# verify
crm(live)configure# commit
crm(live)configure# show
node erick.com          attributesstandby=off
node erick1.com          attributesstandby=off
primitive webip IPaddr          paramsip=192.168.223.110          metatarget-role=Started
primitive webserver lsb:httpd          metatarget-role=Started
colocation webserver_before_webipinf: webserver webip
property cib-bootstrap-options:          dc-version=1.1.14-8.el6-70404b0         cluster-infrastructure="classicopenais (with plugin)"          expected-quorum-votes=2         stonith-enabled=false         no-quorum-policy=stop         last-lrm-refresh=1467844686
crm(live)configure# up
crm(live)# status
Last updated: Thu Jul  7 21:20:50 2016                  Last change: Thu Jul  7 21:20:37 2016 by root via cibadmin onerick.com
Stack: classic openais (with plugin)
Current DC: erick.com (version1.1.14-8.el6-70404b0) - partition with quorum
2 nodes and 2 resources configured,2 expected votes
 
Online: [ erick.com erick1.com ]
 
Full list of resources:
 
 webip     (ocf::heartbeat:IPaddr):  Started erick.com
 webserver      (lsb:httpd):       Started erick.com

可以看到两个资源都在erick节点了,那么我门使用浏览器测试下:

Ok,访问成功!

由于我们是2台机器,现在我们若一台服务器宕机后,默认是的仲裁是服务关闭,所以我们要修改下策略,改成ignore

crm(live)configure# propertyno-quorum-policy=ignore
crm(live)configure# verify
crm(live)configure# commit
crm(live)configure#
crm(live)configure# show
node erick.com          attributesstandby=off
node erick1.com          attributesstandby=off
primitive webip IPaddr          paramsip=192.168.223.110          metatarget-role=Started
primitive webserver lsb:httpd          metatarget-role=Started
colocation webserver_before_webipinf: webserver webip
property cib-bootstrap-options: dc-version=1.1.14-8.el6-70404b0          cluster-infrastructure="classicopenais (with plugin)"          expected-quorum-votes=2         stonith-enabled=false         no-quorum-policy=ignore          last-lrm-refresh=1467844686

现在,我们关闭一台虚拟机的服务,(模仿其宕机)查看资源转移情况

[[email protected] ~]# vim/etc/httpd/conf/httpd.conf
[[email protected] ~]# /etc/init.d/corosyncstop
Signaling Corosync Cluster Engine(corosync) to terminate: [  OK  ]
Waiting for corosync services tounload:.                  [  OK  ]
[[email protected]~]#

我们到erick1节点查看情况

crm(live)# status
Last updated: Thu Jul  7 07:06:59 2016                  Last change: Thu Jul  7 21:24:24 2016 by root via cibadmin onerick.com
Stack: classic openais (with plugin)
Current DC: erick1.com (version1.1.14-8.el6-70404b0) - partition WITHOUT quorum
2 nodes and 2 resources configured,2 expected votes
 
Online: [ erick1.com ]
OFFLINE: [ erick.com ]
 
Full list of resources:
 
 webip     (ocf::heartbeat:IPaddr):  Started erick1.com
 webserver      (lsb:httpd):       Startederick1.com
 
crm(live)#

通过web访问下

可以看到资源已经转移到erick1上来了。下面我们把erick节点的服务启动起来。查看资源会不会转移

[[email protected] ~]# /etc/init.d/corosync start
Starting Corosync Cluster Engine (corosync):               [  OK  ]
 
 
crm(live)# status
Last updated: Thu Jul  7 07:09:03 2016                  Last change: Thu Jul  7 21:24:24 2016 by root via cibadmin onerick.com
Stack: classic openais (with plugin)
Current DC: erick1.com (version1.1.14-8.el6-70404b0) - partition with quorum
2 nodes and 2 resources configured,2 expected votes
 
Online: [ erick.com erick1.com ]
 
Full list of resources:
 
 webip     (ocf::heartbeat:IPaddr):  Started erick1.com
 webserver      (lsb:httpd):       Started erick1.com

资源并没有转移,说明不陪权重是不会转移的。

情景二:

我们以上只能做到当机器宕机时资源实现转移,当httpd服务挂掉时,并不会实现转移。下面我们来实现监控资源

crm(live)configure# monitorwebserver 20s:15s
crm(live)configure# verify
crm(live)configure# commit
crm(live)configure# show
node erick.com          attributesstandby=off
node erick1.com          attributesstandby=off
primitive webip IPaddr          paramsip=192.168.223.110          metatarget-role=Started
primitive webserver lsb:httpd          meta target-role=Started          op monitor interval=20stimeout=15s
colocation webserver_before_webipinf: webserver webip
property cib-bootstrap-options:          dc-version=1.1.14-8.el6-70404b0         cluster-infrastructure="classicopenais (with plugin)"          expected-quorum-votes=2         stonith-enabled=false         no-quorum-policy=ignore         last-lrm-refresh=1467844686

若此时我们httpd服务强行杀掉后,还会自动启动,只有当自己无法启动时才会启动。下面我们把erick1节点httpd的端口改为22这样http服务就无法启动了(过程略),手动kill掉httpd进程(过程略),下面查看资源分布情况

Full list of resources:
 
 webip     (ocf::heartbeat:IPaddr):  Started erick.com
 webserver        (lsb:httpd):       Startederick.com
 
Failed Actions:
* webserver_start_0 on erick1.com‘unknown error‘ (1): call=90, status=complete, exitreason=‘none‘,
   last-rc-change=‘Thu Jul  707:19:27 2016‘, queued=0ms, exec=87ms
 
crm(live)# resource cleanupwebserver   ##清除失败的资源
Cleaning up webserver on erick.com,removing fail-count-webserver
Cleaning up webserver on erick1.com,removing fail-count-webserver
Waiting for 2 replies from theCRMd.. OK
crm(live)#
crm(live)# status
Last updated: Thu Jul  7 21:40:15 2016                  Last change: Thu Jul  7 07:20:45 2016 by hacluster via crmd onerick1.com
Stack: classic openais (with plugin)
Current DC: erick1.com (version1.1.14-8.el6-70404b0) - partition with quorum
2 nodes and 2 resources configured,2 expected votes
 
Online: [ erick.com erick1.com ]
 
Full list of resources:
 
 webip     (ocf::heartbeat:IPaddr):  Started erick.com
 webserver      (lsb:httpd):       Startederick.com

通过web验证下

本次实验完成!!

时间: 2024-10-06 05:27:31

pacemaker+corosync实现资源调度的相关文章

Pacemaker+Corosync搭建PostgreSQL集群

https://my.oschina.net/aven92/blog/518928 · PostgreSQL中国社区: http://postgres.cn/index.php/home · PostgreSQL专业1群: 3336901(已满) · PostgreSQL专业2群: 100910388 · PostgreSQL专业3群: 150657323 一.环境 $ cat /etc/redhat-release  CentOS Linux release 7.0.1406 (Core) 

pacemaker+corosync实现zabbix高可用集群

一.pacemaker 是什么 1.pacemaker 简单说明 2.pacemaker 由来 二.pacemaker 特点 三.pacemaker 内部结构 1.群集组件说明: 2.功能概述 四.centos6.x+pacemaker+corosync实现zabbix高可用 1.环境说明 五.安装pacemaker和corosync(各个节点均要运行) 1.前提条件各个节点完成主机解析工作. 2.各个节点的时间同步 3.各个节点完成互信工作 4.关闭防火墙与SELinux 5.安装pacema

pacemaker+corosync/heartbeat高可用集群对比及资源代理RA脚本

一.Pacemaker概念 (1)Pacemaker(心脏起搏器),是一个高可用的群集资源管理器.它实现最大可用性资源管理的节点和资源级故障检测和恢复,通过使用首选集群基础设施(Corosync或Heartbeat)提供的消息和成员能力. 它可以监测并恢复节点和服务级别的故障,实现进程级高可用.它适合各种大小集群,可以编写脚本,可以管理作为心脏起搏器集群的一部分.再次说明一下,pacemaker是个资源管理器,不是提供心跳信息的,因为它似乎是一个普遍的误解,corosync/heartbeat的

HA专题: 使用pacemaker+corosync实现MySQL高可用

HA专题: 使用pacemaker+corosync实现MySQL高可用 前言 上篇文章我们介绍了使用pacemkaer+corosync实现简单的nginx高可用, 这篇文章我们介绍如何使用pacemaker+corosync实现MySQL高可用, 并且此次我们手动编辑配置文件来实现corosync的配置 实验拓扑 实验环境 主机 IP 功用 node1.anyisalin.com 172.16.1.2 MySQL服务, HA节点 node2.anyisalin.com 172.16.1.3

Pacemaker+corosync实现高可用集群

一:Pacemaker和corosync概述: Pacemaker(心脏起搏器),是一个集群管理资源器.但是其不提供心跳信息.pacemaker是一个延续的CRM.Pacemaker到了V3的版本以后 拆分了多个项目,其中pacemaker就是拆分出来的资源管理器. Heart 3.0拆分之后的组成部分: *Heartbeat:将原来的消息通信层独立为heartbeat项目,新的heartbeat只负责维护集群各个节点的信息以及他们之间的通信. *Cluster Glue:相当于一个中间层,它用

[ 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

Pacemaker+Corosync+Drbd快速配置指南

1. 分布式块设备DRBD部署 1.1 基础环境初始化 1.2 部署DRBD环境 主备服务器都需要执行 # 更新系统内核,并重启服务器 [[email protected] ~]# yum install kernel-devel kernel -y [[email protected] ~]# reboot # 开始安装DRBD [[email protected] software]# tar zxf drbd-9.0.18-1.tar.gz [[email protected] drbd-

Pacemaker+Corosync+PostgreSQL集群故障测试和解决方案

一.环境 $ cat /etc/redhat-release  CentOS Linux release 7.0.1406 (Core)  $ uname -a Linux zhaopin-5-90 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux $ sudo pcs status Cluster name: pgcluster WARNING: corosync a

高可用集群实验三:pacemaker+corosync

在前一篇文章的拓扑中将两台Director去掉后进行以下操作. 两台服务器上ssh互信ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] yum -y install pacemaker#在centos 6.4 上,yum安装pacemaker时会自动安装corosync 在Server1上:1.改配置文件:cd /etc/corosynccp corosync.co