corosync+pacemaker实现web服务高可用

前提:

本配置共有两个测试节点,分别node1和node2,相的IP地址分别为202.207.178.6和202.207.178.7

(为避免影响,先关闭防火墙和SElinux)

一、安装配置corosync及相关软件包

1、准备工作

1)节点名称必须跟uname -n命令的执行结果一致

node1:

# hostname node1

# vim /etc/sysconfig/network

HOSTNAME=node1

node2:

# hostname node2

# vim /etc/sysconfig/network

HOSTNAME=node2

2)节点之间必须通过ssh互信通信

[[email protected] ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ‘‘

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

[[email protected] ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ‘‘

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

3)集群各节点之间时间必须同步

使用ntp服务器同步时间

ntpdate ip(配置了ntp服务的主机地址)

4)配置本地解析:

[[email protected] ~]# vim /etc/hosts

202.207.178.6 node1

202.207.178.7 node2

[[email protected] ~]# scp /etc/hosts node2:/etc/

2、安装如下rpm包:

cluster-glue,cluster-glue-libs

corosync,corosynclib

heartbeat,heartbeat-libs

libesmtp

pacemaker,pacemaker-cts,pacemaker-libs

resource-agents

# yum install cluster-glue

# yum install --nogpgcheck *.rpm(将heartbeat-3.0.4-2.el6.i686.rpm和heartbeat-libs-3.0.4-2.el6.i686.rpm复制到主目录下进行)

# yum install corosync

# yum -y install libesmtp

# yum install pacemaker

# yum install pacemaker-cts

3.配置corosync,(以下命令在node1上执行)

# cd /etc/corosync

# cp corosync.conf.example corosync.conf

接着编辑corosync.conf,添加如下内容:

修改以下语句:

bindnetaddr: 202.207.178.0 #网络地址,节点所在的网络地址段

secauth: on #打开安全认证

threads: 2 #启动的线程数

to_syslog: no (不在默认位置记录日志)

timestamp: no(这里为了提高系统性能,不记录时间戳,因为记录时间=戳需要系统调用,浪费资源)

添加如下内容,定义pacemaker随corosync启动,并且定义corosync的工作用户和组:

service {

ver:  0

name: pacemaker

}

aisexec {

user: root

group: root

}

生成节点间通信时用到的认证密钥文件:

# corosync-keygen

将corosync和authkey复制至node2:

# scp -p corosync authkey  node2:/etc/corosync/

4、尝试启动,(以下命令在node1上执行):

# service corosync start

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

# ssh node2 ‘/etc/init.d/corosync start‘

5、测试是否正常

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

# grep -e "Corosync Cluster Engine" -e "configuration file" /var/log/cluster/corosync.log

Oct 23 00:38:06 corosync [MAIN  ] Corosync Cluster Engine (‘1.4.7‘): started and ready to provide service.

Oct 23 00:38:06 corosync [MAIN  ] Successfully read main configuration file ‘/etc/corosync/corosync.conf‘

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

# grep TOTEM /var/log/cluster/corosync.log

Oct 23 00:38:06 corosync [TOTEM ] Initializing transport (UDP/IP Multicast).

Oct 23 00:38:06 corosync [TOTEM ] Initializing transmit/receive security: libtomcrypt SOBER128/SHA1HMAC (mode 0).

Oct 23 00:38:06 corosync [TOTEM ] The network interface [202.207.178.6] is now up.

Oct 23 00:39:35 corosync [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/cluster/corosync.log

Oct 23 00:38:06 corosync [pcmk  ] info: pcmk_startup: CRM: Initialized

Oct 23 00:38:06 corosync [pcmk  ] Logging: Initialized pcmk_startup

Oct 23 00:38:06 corosync [pcmk  ] info: pcmk_startup: Maximum core file size is: 4294967295

Oct 23 00:38:06 corosync [pcmk  ] info: pcmk_startup: Service: 9

Oct 23 00:38:06 corosync [pcmk  ] info: pcmk_startup: Local hostname: node1

使用如下命令查看集群节点的启动状态:

# crm status

Last updated: Tue Oct 25 17:28:10 2016          Last change: Tue Oct 25 17:21:56 2016 by hacluster via crmd on node1

Stack: classic openais (with plugin)

Current DC: node1 (version 1.1.14-8.el6_8.1-70404b0) - partition with quorum

2 nodes and 0 resources configured, 2 expected votes

Online: [ node1 node2 ]

从上面的信息可以看出两个节点都已经正常启动,并且集群已经处于正常工作状态。

二、配置资源及约束

1、安装crmsh软件包:

pacemaker本身只是一个资源管理器,我们需要一个接口才能对pacemker上的资源进行定义与管理,而crmsh即是pacemaker的配置接口,从pacemaker 1.1.8开始,crmsh 发展成一个独立项目,pacemaker中不再提供。crmsh提供了一个命令行的交互接口来对Pacemaker集群进行管理,它具有更强大的管理功能,同样也更加易用,在更多的集群上都得到了广泛的应用,类似软件还有 pcs;

在/etc/yum.repo.d/ 下的配置文件中添加以下内容

[ewai]

name=aaa

baseurl=http://download.opensuse.org/repositories/network:/ha-clustering:/Stable/CentOS_CentOS-6/

enabled=1

gpgcheck=0

# yum clean all

# yum makecache

[[email protected] yum.repos.d]# yum install crmsh

2、检查配置文件有无语法错误

crm(live)configure# verify

我们里可以通过如下命令先禁用stonith:

# crm configure property stonith-enabled=false

或 crm(live)configure# property stonith-enabled=false

crm(live)configure# commit

3、配置资源(配置一个web服务集群。前提已经安装了httpd服务,并使其不能开机自动启动)

crm(live)configure# primitive webip ocf:heartbeat:IPaddr params ip=202.207.178.4 nic=eth0 cidr_netmask=24

crm(live)configure# verify

crm(live)configure# commit

crm(live)configure# primitive httpd lsb:httpd

crm(live)configure# commit

crm(live)configure# group webservice webip httpd

crm(live)configure# commit

至此,资源配置完毕,现在可以启动测试了!

欢迎批评指正!

时间: 2024-11-06 09:10:01

corosync+pacemaker实现web服务高可用的相关文章

corosync + pacemaker实现httpd服务高可用集群

实验环境: 服务器: 192.168.145.208(集群节点一) 192.168.145.209(集群节点二) 192.168.145.210(NFS server) 操作系统:三台都为centos7 配置步骤: 在两个集群节点中分别进行无密钥通讯配置: ssh-keygen -t rsa -P "" ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] 关闭各个节点的防火墙: systemctl stop firewalld 编辑co

corosync+pacemaker+drbd实现web服务高可用

一:实验环境    节点      OS      IP  DRBD_IP  DRBD用硬盘     VIP web1 centos 5.10 192.168.10.11 172.16.1.1 /dev/sdb 192.168.10.100 web2 centos 5.10 192.168.10.12 172.16.1.2 /dev/sdb 注: 1.其中两节点IP地址已按上图设置好 2.两节点已配置相互ssh信任,并已做了时间同步 二:安装相关软件(节点1和2都安装) 1.安装corosync

高可用集群技术之heartbeat+NFS实现web服务高可用(文本方式配置接口--gui图形配置)

一.高可用集群基本概念   什么是高可用技术呢?在生产环境中我既要保证服务不间断的服务又要保证服务器稳定不down机,但是异常还是会发生,比如说:服务器硬件损坏...导致服务器down机,我该如何保证服务器down机后继续提供服务呢?这时我就应该请出高可用技术来帮忙了,当我们的服务器发生故障后不能继续时,高可用集群技术解决将业务及服务自动转移至其他主机服务器上继续服务,保证服务架构不间断运行. 高可用集群的架构层次: 后端主机层: 这一层主要是正在运行在物理主机上的服务. 2.Message l

基于Corosync + Pacemaker+DRBD实现MySQL高可用集群

前言 在众多的高可用集群解决方案中,除了Heartbeat之外,Corosync也能提供类似于Heartbeat一样的功能,而且目前RedHat官方提供的高可用集群解决方案的程序包都以Corosync为主,所以在未来的日子Corosync会逐渐取代Heartbeat.本文带来的是基于Corosync + Pacemaker+DRBD的MySQL高可用集群解决方案. 相关介绍 Corosync Corosync是从OpenAIS中分支出来的一个项目,它在传递信息的时候可以通过一个简单的配置文件来定

corosync+pacemaker使用pcs构建高可用集群

一.corosync+pacemaker集群前提准备 集群前提准备 --> HA-web 承接上文 --> corosync+pacemaker使用crmsh构建高可用集群 二.准备pcs [[email protected] ~]# yum install pcs 禁用stonith设备 [[email protected] ~]# pcs property set stonith-enable=false [[email protected] ~]# pcs property set no

HAProxy+KeepAlived实现web服务高可用、动静分离等

大致规划: 主机 IP 描述 VIP 192.168.0.222 对外提供高可用IP haproxy+keepalived (node1) 192.168.0.111 haproxy为后端两台WEB服务的做动静分离:keepalived为haproxy做高可用. haproxy+keepalived (node2) 192.168.0.112 WEB                (node3) 192.168.0.113 提供静态请求响应 Apache+PHP+MySQL   (node4)

Heartbeat实现web服务高可用(三)

六:Heartbeat实现WEB服务高可用案例 6.1 部署准备 资源环境:继续使用我们之前已经部署好Heartbeat的两台服务器node01.cn和node02.cn,两台机器heartbeat是双主模式我们再捋一捋    node01.cn   eth0 172.10.25.26 外网管理IP                      eth1 10.25.25.16  心跳直连                      VIP  172.10.25.18        node02.cn

corosync+pacemaker+nfs提供mysql高可用

corosync/openais+pacemaker+nfs提供mariadb高可用 节点一, one, 172.16.249.122/16, 172.16.0.1, CentOS6.6, mariadb节点二, two, 172.16.249.123/16, 172.16.0.1, CentOS6.6, mariadb节点三, three, 172.16.249.124/16, 172.16.0.1, CentOS6.6, NFSVIP: 172.16.249.121 节点一: one 172

corosync+pacemaker+drbd实现mysql高可用

实验环境: 虚拟机2台安装corosync+pacemaker,使用的操作系统为CentOS6.5. 虚拟机IP:172.16.103.2.172.16.103.3 实验步骤: 前提准备:两台虚拟机时间同步,能够使用/etc/hosts文件基于主机名进行通信. 一.安装corosync + pacemaker: # yum install corosync # yum install pacemaker 二.安装drbd软件包: drbd软件包有两部分组成:内核模块和用户空间的管理工具,在内核版