Linux HA集群之Corosync基础概念

大纲

一、什么是AIS和OpenAIS

二、什么是corosync

三、corosync安装与配置

一、什么是AIS和OpenAIS

应用接口规范AIS是用来定义应用程序接口API的开放性规范的集合这些应用程序作为中间件为应用服务提供一种开放、高移植性的程序接口。是在实现高可用应用过程中是亟需的。服务可用性论坛SA Forum是一个开放性论坛它开发并发布这些免费规范。使用AIS规范的应用程序接口API可以减少应用程序的复杂性和缩短应用程序的开发时间这些规范的主要目的就是为了提高中间组件可移植性和应用程序的高可用性。SAF AIS是一个开放性工程在不断更新中。

OpenAIS是基于SA Forum 标准的集群框架的应用程序接口规范。OpenAIS提供一种集群模式这个模式包括集群框架集群成员管理通信方式集群监测等能够为集群软件或工具提供满足 AIS标准的集群接口但是它没有集群资源管理功能不能独立形成一个集群。OpenAIS组件包括AMF,CLM,CKPT,EVT,LCK,MSGTMR,CPG,EVS等因OpenAIS分支不同组件略有不同。下面介绍OpenAIS主要包含三个分支PicachoWhitetankWilson。Wilson是最新的比较稳定的版本是从openais 1.0.0到openais1.1.4。Whitetank现在是主流分支版本比较稳定的版本是openais0.80到openais0.86。Picacho第一代的OpenAIS的分支比较稳定的版本是openais0.70和openais0.71。现在比较常用的是Whitetank和Wilson两者之间有很多不同。OpenAIS从Whitetank升级到Wilson版本后组件变化很大Wilson把Openais核心架构组件独立出来放在CorosyncCorosync是一个集群管理引擎里面。Whitetank包含的组件有AMFCLMCKPTEVTLCK ,MSG, CPGCFG,EVS, aisparser, VSF_ykdbojdb等。而Wilson只含有AMFCLMCKPTLCK, MSG,EVT,TMRTMRWhitetank里面没有这些都是AIS组件。其他核心组件被放到了Corosync内。Wilson被当做Corosync的一个插件。

二、什么是corosync

Corosync是OpenAIS发展到Wilson版本后衍生出来的开放性集群引擎工程。可以说Corosync是OpenAIS工程的一部分。OpenAIS从openais0.90开始独立成两部分一个是Corosync另一个是AIS标准接口Wilson。Corosync包含OpenAIS的核心框架用来对Wilson的标准接口的使用、管理。它为商用的或开源性的集群提供集群执行框架。Corosync执行高可用应用程序的通信组系统它有以下特征

  • 一个封闭的程序组A closed process group communication model通信模式这个模式提供一种虚拟的同步方式来保证能够复制服务器的状态。
  • 一个简单可用性管理组件A simple availability manager这个管理组件可以重新启动应用程序的进程当它失败后。
  • 一个配置和内存数据的统计A configuration and statistics in-memory database内存数据能够被设置回复接受通知的更改信息。
  • 一个定额的系统A quorum  system,定额完成或者丢失时通知应用程序。

三、corosync安装与配置

系统环境

CentOS5.8 x86_64

node1.network.com    node1    172.16.1.101

node2.network.com    node2    172.16.1.105

软件版本

corosync-1.2.7-1.1.el5.x86_64.rpm

pacemaker-1.0.12-1.el5.centos.x86_64.rpm

1、准备工作

(1)、时间同步

[[email protected] ~]# ntpdate s2c.time.edu.cn
[[email protected] ~]# ntpdate s2c.time.edu.cn

可根据需要在每个节点上定义crontab任务
[[email protected] ~]# which ntpdate
/sbin/ntpdate
[[email protected] ~]# echo "*/5 * * * * /sbin/ntpdate s2c.time.edu.cn &> /dev/null" >> /var/spool/cron/root 
[[email protected] ~]# crontab -l
*/5 * * * * /sbin/ntpdate s2c.time.edu.cn &> /dev/null

(2)、主机名称要与uname -n,并通过/etc/hosts解析

node1
[[email protected] ~]# hostname node1.network.com
[[email protected] ~]# su - 
[[email protected] ~]# vim /etc/sysconfig/network
[[email protected] ~]# uname -n
node1.network.com

node2
[[email protected] ~]# hostname node2.network.com
[[email protected] ~]# su - 
[[email protected] ~]# vim /etc/sysconfig/network
[[email protected] ~]# uname -n
node2.network.com

node1添加hosts解析
[[email protected] ~]# vim /etc/hosts
[[email protected] ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

172.16.1.101	node1.network.com node1
172.16.1.105	node2.network.com node2

拷贝此hosts文件至node2
[[email protected] ~]# vim /etc/hosts
[[email protected] ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

172.16.1.101	node1.network.com node1
172.16.1.105	node2.network.com node2
[[email protected] ~]# scp /etc/hosts node2:/etc/
The authenticity of host ‘node2 (172.16.1.105)‘ can‘t be established.
RSA key fingerprint is 13:42:92:7b:ff:61:d8:f3:7c:97:5f:22:f6:71:b3:24.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘node2,172.16.1.105‘ (RSA) to the list of known hosts.
[email protected]‘s password: 
hosts                                                     100%  233     0.2KB/s   00:00

(3)、ssh互信通信

node1
[[email protected] ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ‘‘
Generating public/private rsa key pair.
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? n                                            # 我这里已经生成过了
[[email protected] ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub node2
[email protected]‘s password: 
Now try logging into the machine, with "ssh ‘node2‘", and check in:

  .ssh/authorized_keys

to make sure we haven‘t added extra keys that you weren‘t expecting.

[[email protected] ~]# setenforce 0
[[email protected] ~]# ssh node2 ‘ifconfig‘
eth0      Link encap:Ethernet  HWaddr 00:0C:29:D6:03:52  
          inet addr:172.16.1.105  Bcast:255.255.255.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fed6:352/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9881 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11220 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:5898514 (5.6 MiB)  TX bytes:1850217 (1.7 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:16 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1112 (1.0 KiB)  TX bytes:1112 (1.0 KiB)
          
同理node2也需要做同样的双击互信,一样的操作,此处不再演示

2、配置集群软件的epel源

node1

[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# wget http://clusterlabs.org/rpm/epel-5/clusterlabs.repo 
[[email protected] yum.repos.d]# yum install -y pacemaker corosync

node2

[[email protected] ~]# cd /etc/yum.repos.d/
[[email protected] yum.repos.d]# wget http://clusterlabs.org/rpm/epel-5/clusterlabs.repo 
[[email protected] yum.repos.d]# yum install -y pacemaker corosync
时间: 2024-10-05 20:48:56

Linux HA集群之Corosync基础概念的相关文章

Linux集群系列——高可用集群之corosync基础概念及安装配置.

高可用衡量标准 :corosync : 集群管理引擎 SA Forum -->OpenAIS-->Wilson-->corosync 向后延伸为衍生出来的版本REHL 6.x RHCS :corosyncREHL 5.x RHCS :OpenAIS , cman ,rgmanager corosync : Messaging Layer 需要CRM (+ pacemaker)SUSE Linux Enterprise server Hawk WEB GUILCMC : Linux Clu

Linux HA集群之Corosync + Pacemaker + DRBD + MySQL实现MySQL高可用

大纲 一.系统环境及所需软件包 二.高可用环境准备工作 三.DRBD的安装与基本配置 四.Corosync的安装与基本配置 五.基于crm配置资源 一.系统环境及所需软件包 系统环境 CentOS5.8 x86_64 node1.network.com    node1    172.16.1.101 node2.network.com    node2    172.16.1.105 软件包 corosync-1.2.7-1.1.el5.x86_64.rpm pacemaker-1.0.12-

Linux HA集群之 Corosync + Pacemaker + drbd + MySQL

大纲 一.什么是DRBD 二.DRBD工作原理 三.DRBD相关概念 四.DRBD配置过程 五.Corosync + Pacemaker + DRBD + MySQL实现 一.什么是DRBD Distributed Replicated Block Device(DRBD)是一个基于软件的.无共享.复制的存储解决方案,在服务器之间的对块设备(硬盘.分区.逻辑卷等)进行镜像. DRBD镜像数据 实时性:当应用对磁盘的数据进行修改时,复制立即发生 透明性:应用程序的数据存储在镜像设备上是独立和透明的

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

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

Linux HA集群

HA(High Availability,高可用)集群的主要目的是提高服务的在线率,也就是缩短平均无故障的时间.实际上就是当一个提供服务的服务节点不在线时,有另一个提供相同服务的节点可以继续提供服务,避免出现单点故障. HA集群相关概念 一.相关名词解释 1.在线率 在线率是衡量HA集群的一个重要指标,就算方式如下: 在线率=平均无故障时间/(平均修复时间 + 平均无故障时间) 所以提高系统的可用性: 1).增加平均无故障时间 2).缩短平均修复时间 (可以通过冗余机制实现) 2.资源 这里的资

Linux HA集群之Heartbeat

大纲 一.什么是高可用集群 二.什么是高可用性 三.高可用集群相关概念 四.Heartbeat v1版示例 五.Heartbeat v2版示例 六.Heartbeat v3版示例 一.什么是高可用集群 高可用集群,英文原文为High Availability Cluster,简称HA Cluster,简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源.这些单个的计算机系统 就是集群的节点(node).高可用性集群(HA cluster)是指如单系统一样地运行并

OpenStack HA集群3-Pacemake Corosync

节点间主机名必须能解析 [[email protected] ~]# cat /etc/hosts 192.168.17.149  controller1 192.168.17.141  controller2 192.168.17.166  controller3 192.168.17.111  demo.open-stack.cn 各节点间要互信,无密码能登录 [[email protected] ~]# ssh-keygen -t rsa Generating public/private

Linux HA集群之Keepalived

大纲 一.什么是Keepalived 二.Keepalived工作原理 三.Keepalived + LVS的实现 一.什么是Keepalived Keepalived是用C写的简单的一个路由软件,这个项目的主要目标是对Linux系统和基于Linux的基础设施提供简单而强大负载均衡和高可用性.负载均衡架构依赖于众所周知的和广泛使用的Linux虚拟服务器(IPVS)内核模块提供第四层负载均衡.另一方面,高可用性是通过VRRP协议实现. Keepalived的作用是检测web服务器的状态,如果有一台

高可用集群之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)就