Linux 高可用(HA)集群之Corosync 详解
- 格式:docx
- 大小:401.33 KB
- 文档页数:12
Linux系统时间同步:Chrony详解Chrony是一种高精度的时间同步服务,常用于Linux系统的时间同步。
其原理是利用网络中已知时间准确的其他设备,对当前设备进行校准。
在系统层面,该服务表现为一个运行在用户空间中的守护进程,它可以定期校准内核中运行的系统时钟。
Chrony的优势在于其能更快速且更准确地同步系统时钟,相比其他时间同步软件,它能最大程度地减少时间和频率误差。
在一些特定的场景,比如间歇性网络连接、网络严重拥塞、温度变化或者在虚拟机上运行的系统,Chrony表现尤其出色。
通过Internet同步的两台计算机之间的时间精度通常在几毫秒内,而在LAN上的计算机则在几十微秒内。
Chrony有多种使用方式,如使系统时钟与NTP服务器同步,与参考时钟(例如GPS接收器)同步,或将系统时钟与手动时间输入同步。
同时,Chrony还可以作为NTPv4(RFC 5905)服务器或对等方,向网络中的其他计算机提供时间服务。
在Linux系统中,Chrony通常作为默认的时间同步服务。
在CentOS6中,默认使用ntpd进行时间同步,但在CentOS7中已经切换到了Chrony。
需要注意的是,Chrony和ntpd兼容,可以监听在udp123端口上。
如果在Chrony 配置文件中指定了ntp服务器的地址,那么Chrony会作为一台客户端,去同步ntp服务器的时间。
如果在Chrony配置中允许某些客户端来向自己同步时间,则Chrony也可以充当服务器。
一般而言,只需要做客户端就好,不需要对外提供时间同步功能。
如需了解更多关于Linux时间同步chrony的信息,建议访问信息技术论坛或咨询计算机专家。
在linux上定期执⾏命令、脚本(cron,crontab,anacron)⼈类把时间做了切割,想象⼀条笔直的线永远向前,本来这条直线上什么都没有,但是⼈类根据时间的长短(单位)在这条直线上做了密密⿇⿇的标记(世纪-年-⽉-⽇-时-分-秒-纳秒......),通过这样的⽅式历史上的每⼀个时刻都能够被单独拿出来,⽽未来的每⼀个时刻也能被单独计划。
更重要的是,每⼀个单独的时刻⼜能跟相邻的被更⼤单位所控制的相似时刻做⽐较,⽐如,今天的晚上12点跟明天的晚上12点,相似的是,两个时刻都是12点,不同的是今天跟明天,她们是相邻的更⼤单位。
因为这样的缘故,在被更⼤单位所隔开的每⼀个相同时刻,我们可以告诉计算机重复某个任务。
在linux下,如果想要在未来的某个时刻执⾏某个任务,并且在未来的每⼀个这样的时刻⾥都要执⾏这个任务,举个简单的例⼦,⽐如说想要在将来,每天的⼗⼆点都重启路由器,⼤多数发⾏版都⾃带⼀个守护进程(daemon)cron来完成这项⼯作。
1.cron,crontab以及anacron的关系cron是⼤多数linux发⾏版都⾃带的守护进程(daemon),⽤来重复运⾏某些被设定好了确定的运⾏时间的任务,这些任务可以是每个⽉运⾏、每周运⾏、每天运⾏,甚⾄是每⼀分钟运⾏。
⽤cron执⾏的任务适合于24⼩时运⾏的机器,cron执⾏的任务会在设定好的时刻执⾏,当机器处于关机状态下并错过了任务执⾏的时间,cron任务就⽆法预期执⾏了。
crontab(cron table的简称)既可以指cron⽤来定期执⾏特定任务所需要的列表⽂件,⼜可以指⽤来创建、删除、查看当前⽤户(或者指定⽤户)的crontab⽂件的命令。
anacron不是守护进程,可以看做是cron守护进程的某种补充程序,anacron是独⽴的linux程序,被cron守护进程或者其他开机脚本启动运⾏,可以每天、每周、每个⽉周期性地执⾏⼀项任务(最⼩单位为天)。
corosync原理corosync是一种用于实现高可用性集群的软件,它基于传统的消息传递机制,通过内部通信来保证集群节点之间的同步和协调。
本文将介绍corosync的原理及其在高可用性集群中的应用。
corosync的原理主要包括两个关键组件:通信层和集群引擎。
通信层负责节点间的消息传递,而集群引擎负责实现集群节点之间的同步和协调。
corosync的设计目标是提供一种可靠的、高性能的通信机制,以满足高可用性集群的需求。
在corosync中,通信层使用了一种称为Virtual synchrony(虚拟同步)的算法来保证节点之间的消息一致性。
该算法基于一个重要的假设,即在任何时刻,集群中的节点要么是完全一致的,要么是部分一致的。
通过使用虚拟同步算法,corosync可以确保在节点发生故障或网络分区的情况下,集群仍能保持一致性。
具体来说,corosync的通信层使用了UDP或IP组播来进行节点间的消息传递。
每个节点都有一个唯一的标识符,称为节点ID,用于在集群中唯一标识该节点。
当一个节点加入集群时,它会向其他节点发送一个加入消息,以告知其他节点自己的存在。
其他节点收到该消息后,会将该节点添加到自己的成员列表中,并向该节点发送一个确认消息。
通过这种方式,节点之间建立了彼此的联系。
一旦节点加入集群,corosync的集群引擎就会开始工作。
集群引擎负责管理集群中的资源和状态信息,并根据需要进行调度和协调。
它通过监听通信层的消息,并根据接收到的消息更新集群的状态。
当集群中某个节点发生故障或网络分区时,集群引擎会根据一定的策略进行故障检测和处理,以保证集群的可用性和一致性。
corosync还提供了一些高级功能,例如组播和心跳检测。
组播功能使得节点可以同时向多个节点发送消息,从而提高消息传递的效率和可靠性。
心跳检测功能用于监测集群节点的健康状态,一旦发现某个节点故障,集群引擎会立即采取相应的措施来处理故障。
corosync通过使用虚拟同步算法和高可靠的通信机制,实现了高可用性集群的同步和协调。
HA⾼可⽤集群中脑裂问题解决-运维总结------ 什么是脑裂(split-brain)在"双机热备"⾼可⽤(HA)系统中,当联系两个节点的"⼼跳线"断开时(即两个节点断开联系时),本来为⼀个整体、动作协调的HA系统,就分裂成为两个独⽴的节点(即两个独⽴的个体)。
由于相互失去了联系,都以为是对⽅出了故障,两个节点上的HA软件像"裂脑⼈"⼀样,"本能"地争抢"共享资源"、争起"应⽤服务"。
就会发⽣严重后果:1)或者共享资源被⽠分、两边"服务"都起不来了;2)或者两边"服务"都起来了,但同时读写"共享存储",导致数据损坏(常见如数据库轮询着的联机⽇志出错)。
两个节点相互争抢共享资源,结果会导致系统混乱,数据损坏。
对于⽆状态服务的HA,⽆所谓脑裂不脑裂,但对有状态服务(⽐如MySQL)的HA,必须要严格防⽌脑裂[但有些⽣产环境下的系统按照⽆状态服务HA的那⼀套去配置有状态服务,结果就可想⽽知]。
------ 集群脑裂产⽣的原因⼀般来说,裂脑的发⽣,有以下⼏种原因:1. ⾼可⽤服务器各节点之间⼼跳线链路发⽣故障,导致⽆法正常通信。
2. 因⼼跳线坏了(包括断了,⽼化)。
3. 因⽹卡及相关驱动坏了,ip配置及冲突问题(⽹卡直连)。
4. 因⼼跳线间连接的设备故障(⽹卡及交换机)。
5. 因仲裁的机器出问题(采⽤仲裁的⽅案)。
6. ⾼可⽤服务器上开启了iptables防⽕墙阻挡了⼼跳消息传输。
7. ⾼可⽤服务器上⼼跳⽹卡地址等信息配置不正确,导致发送⼼跳失败。
8. 其他服务配置不当等原因,如⼼跳⽅式不同,⼼跳⼴插冲突、软件Bug等。
提⽰:Keepalived配置⾥同⼀VRRP实例如果virtual_router_id两端参数配置不⼀致也会导致裂脑问题发⽣。
corosync协议摘要:1.Corosync 协议概述2.Corosync 协议的工作原理3.Corosync 协议的优势与应用场景4.Corosync 协议的发展前景正文:【Corosync 协议概述】Corosync 协议,全称为Corosync Cluster Engine,是一款开源的、用于构建高可用性(High Availability,简称HA)和容错(Fault Tolerance,简称FT)集群的软件。
Corosync 协议旨在为系统管理员提供一种简单、高效的方式来实现系统的高可用性和容错,以确保关键服务的持续运行。
【Corosync 协议的工作原理】Corosync 协议基于主从复制(Master-Slave Replication)模式,通过在不同的节点间同步数据来实现高可用性和容错。
其工作原理如下:1.集群管理器(Cluster Manager):负责管理集群的成员,监控节点的状态,并在节点发生故障时进行故障转移。
2.集群引擎(Cluster Engine):负责在节点间同步数据,以实现高可用性和容错。
集群引擎通过心跳机制(Heartbeat)来检测节点的状态,并在检测到故障时触发故障转移。
3.心跳机制(Heartbeat):节点间的通信机制,通过定期发送心跳包来检测对方节点是否正常工作。
当集群管理器在一段时间内未收到节点的心跳包时,会认为该节点发生故障,并触发故障转移。
4.故障转移(Failover):当集群管理器检测到节点故障时,会将故障节点上的服务转移到其他正常节点上,以确保服务的持续运行。
【Corosync 协议的优势与应用场景】Corosync 协议具有以下优势:1.易于配置和管理:Corosync 协议提供了简单的配置界面,使得系统管理员可以轻松地搭建高可用性和容错集群。
2.良好的可扩展性:Corosync 协议支持多种数据同步方式,可以根据不同的应用场景选择合适的同步方式。
开源HA解决方案《开源HA解决方案:构建稳定可靠的高可用系统》当今互联网时代,高可用性(HA)已经成为企业建设系统的重要指标之一。
在构建高可用系统时,开源软件解决方案的优势日益凸显。
开源软件具有灵活、定制性强的特点,可以满足不同企业的需求,同时,也能够降低成本,提高系统的可靠性。
开源HA解决方案是指基于开源软件构建的高可用系统解决方案。
常见的开源HA解决方案包括Pacemaker、Keepalived、Corosync等。
这些解决方案不仅能够保证系统的稳定性和可靠性,还可以提供灵活的配置和定制,满足不同企业的需求。
Pacemaker是一个常用的开源HA解决方案,它提供了很多高可用性功能,比如故障监测、自动故障切换、资源组管理等。
通过Pacemaker可以轻松构建起一个高可用的集群系统,保证系统的稳定性和可靠性。
Keepalived则是一个轻量级的负载均衡和故障转移解决方案,它可以将多台服务器组成一个高可用的集群,同时可以实现故障自动转移,确保系统的稳定性。
Corosync是一个消息传递层软件,它可以提供高可用系统必需的集群通信功能。
通过Corosync可以实现集群节点之间的通信和协调,确保集群系统的正常运行。
同时,Corosync支持灵活的配置和定制,可以满足不同企业的需求。
总之,开源HA解决方案能够帮助企业构建稳定可靠的高可用系统。
通过灵活的配置和定制,这些解决方案可以满足不同企业的需求,同时也能够降低成本,提高系统的可靠性。
相信在未来,开源HA解决方案会越来越受到企业的青睐,成为构建高可用系统的首选方案。
corosync协议【最新版】目录1.Corosync 协议概述2.Corosync 协议的工作原理3.Corosync 协议的优势与应用场景4.Corosync 协议的实际应用案例5.Corosync 协议的未来发展趋势正文【Corosync 协议概述】Corosync 协议,全称为 Corosync Cluster Engine,是一种用于构建高可用性(High Availability,简称 HA)集群系统的协议。
Corosync 协议起源于 Open Source 领域,是为了解决 Linux 系统下的集群问题而设计。
它通过在多个服务器之间同步数据和配置信息,以实现负载均衡、故障转移以及数据备份等功能,从而确保系统的持续可用性。
【Corosync 协议的工作原理】Corosync 协议的工作原理可以概括为三个主要组件:Corosync 守护进程、Corosync 服务守护进程和 Corosync 配置文件。
1.Corosync 守护进程:负责在集群内的所有服务器之间同步数据和配置信息。
它会周期性地向其他服务器发送心跳信号,以确保集群内所有服务器之间的连接正常。
2.Corosync 服务守护进程:运行在集群内的每个服务器上,负责监控指定的服务,并在服务发生故障时触发故障转移操作。
3.Corosync 配置文件:用于存储集群的配置信息,包括服务器列表、服务列表以及故障转移策略等。
【Corosync 协议的优势与应用场景】Corosync 协议具有以下优势:1.开源:Corosync 协议是完全开源的,可以免费使用,且具有广泛的社区支持。
2.跨平台:Corosync 协议支持多种操作系统,包括 Linux、FreeBSD 等。
3.高可用性:Corosync 协议可以确保集群内的服务在发生故障时能够快速切换到其他服务器,从而保证系统的持续可用性。
4.易于扩展:Corosync 协议支持灵活的配置,可以根据实际需求对集群进行扩展或调整。
Corosync协议概述===========Corosync是一种开放源代码的集群通信引擎,它提供了一种可靠且高效的多播通信机制,用于构建高可用的分布式系统。
Corosync 基于Linux内核的IP Multicast功能,通过Multicast方式进行消息传输,可以避免单点故障问题,提高系统的可靠性。
配置文件----Corosync的配置文件通常包括以下几个部分:1. 通用配置部分(General Configuration): 包含节点标识符(Node ID)、集群名称(Cluster Name)等通用信息。
2. 接口配置部分(Interface Configuration): 定义了Corosync节点之间的通信接口和端口号等信息。
3. 认证配置部分(Authentication Configuration): 定义了集群成员之间的身份验证方式,如共享秘钥等。
4. 状态监控配置部分(Status Monitoring Configuration): 可选的部分,用于监控集群的运行状态和性能指标。
在配置文件中,每个部分的参数都有相应的默认值,可以根据实际需要进行调整。
同时,Corosync还提供了一些工具,如`corosync-cfgtool`等,用于辅助配置和管理Corosync的配置文件。
Corosync守护进程---------Corosync守护进程(Corosync Daemon)是Corosync协议的核心组件之一,它负责处理集群节点之间的通信和消息传递。
Corosync 守护进程在节点启动时自动启动,并一直运行在后台。
它可以感知其他节点的状态,动态维护集群成员列表,并处理节点之间的消息传递。
Corosync服务守护进程--------------Corosync服务守护进程(Corosync Service Daemon)是另一个重要的组件,它负责提供集群的高可用性服务。
当一个节点出现故障时,Corosync服务守护进程可以检测到并触发相应的故障转移机制,将故障节点的服务切换到其他正常节点上,以保证系统的可用性。
corosync协议(最新版)目录1.Corosync 协议概述2.Corosync 协议的工作原理3.Corosync 协议的优势与应用场景4.Corosync 协议的未来发展正文【Corosync 协议概述】Corosync 协议是一种用于实现分布式系统中的一致性(Consistency)和高可用性(High Availability)的协议。
该协议起源于 Clusterware 项目,后来成为 OpenAIS 项目的一部分,目前由 Corosync 公司进行维护和支持。
Corosync 协议旨在为分布式系统提供一种可靠的、可扩展的同步和通信机制,以确保系统中的所有节点能够保持一致状态,从而满足苛刻的容错和故障切换需求。
【Corosync 协议的工作原理】Corosync 协议基于 Paxos 算法,通过一种称为“环同步(Ring Synchronization)”的机制来实现分布式系统的一致性。
具体来说,Corosync 协议将系统中的节点组织成一个逻辑环,每个节点负责将数据同步到其相邻节点。
在这个过程中,节点会发送和接收两种类型的消息:请求(Request)和响应(Response)。
请求消息用于请求某个节点的数据,响应消息用于应答请求并提供数据。
通过这种方式,Corosync 协议可以确保系统中的所有节点具有相同的数据,从而达到一致性。
【Corosync 协议的优势与应用场景】Corosync 协议具有以下优势:1.高可靠性:Corosync 协议使用 Paxos 算法,可以保证在面对网络分区、节点故障等异常情况时,系统仍能保持一致性。
2.可扩展性:Corosync 协议支持大量节点的同步,能够满足大规模分布式系统的需求。
3.灵活性:Corosync 协议可以与多种通信协议和同步机制集成,如TCP/IP、UDP、Heartbeat 等,满足不同应用场景的需求。
Corosync 协议广泛应用于以下场景:1.高可用性应用:如数据库系统、事务处理系统等,需要确保在面临硬件故障、网络故障等问题时,系统仍能正常运行。
Linux下的容灾与灾备方案设计在现代IT架构中,数据的安全性和可用性变得越来越重要。
容灾和灾备方案是确保数据持久性和高可用性的关键步骤。
在Linux操作系统下,我们可以采取一系列策略和工具来设计容灾和灾备方案。
一、数据备份策略数据备份是容灾与灾备的核心环节。
以下是在Linux环境中设计数据备份的关键步骤:1. 评估数据重要性和复原点目标(RPO):确定数据的重要性和准备恢复的时间点目标。
2. 选择备份方法:根据数据重要性和恢复时间目标,选择合适的备份方法。
常用的备份方法包括完整备份、增量备份和差异备份。
3. 定义备份计划:制定备份计划,包括备份频率、备份介质和备份存储位置。
确保备份介质可靠且安全存储。
4. 自动化备份过程:使用Linux系统提供的工具(如Cron)或第三方工具,实现备份的自动化和定期执行。
5. 验证备份可用性:定期验证备份文件的完整性和可用性,确保备份可以成功恢复。
二、容灾方案设计1. 高可用(HA)集群:使用HA软件,如Pacemaker、Corosync、Keepalived等,将多个服务器节点组成集群,提供故障切换和故障恢复能力。
当一个节点发生故障时,其他节点能够接管服务并保持系统的可用性。
2. 负载均衡:通过使用负载均衡软件(如Nginx、HAProxy),将流量分发到多个服务器节点上,提高系统的容量和可用性。
3. 数据复制:使用复制技术(如数据库复制、文件同步工具),将数据实时地复制到备用服务器上,以确保数据的持久性。
4. 虚拟化技术:利用虚拟化平台(如KVM、VMware),将物理服务器虚拟化成多个虚拟机,实现故障隔离和灵活性。
在发生故障时,可以快速将虚拟机迁移至其他服务器。
5. 云服务:将应用程序和数据迁移到云平台,利用云提供商的容灾和灾备功能来确保高可用性和数据安全。
三、灾备方案设计在面临自然灾害或人为灾害时,需要采取适当的措施来保护数据和系统。
以下是设计灾备方案的关键步骤:1. 多地点备份:将数据备份存储在多个地理位置上,以防止单点故障和自然灾害造成的数据丢失。
Linux 高可用(HA)集群之Corosync 詳解大綱一、Corosync概述二、Corysync與Pacemaker安裝三、Corosync詳細配置四、Corosync啟動信息一、Corosync概述1.簡單概述要說明corosync的由來,首先我們得從AIS說起,然後說明OpenAIS,最後才會說到corosync。
2.AIS概述應用介面規範(AIS)是用來定義應用程式介面(API)的開放性規範的集合,這些應用程式作為中間件為應用服務提供一種開放、高移植性的程式介面。
是在實現高可用應用過程中是亟需的。
服務可用性論壇(SA Forum)是一個開放性論壇,它開發並發布這些免費規範。
使用AIS規範的應用程式介面(API),可以減少應用程式的複雜性和縮短應用程式的開發時間,這些規範的主要目的就是為了提高中間組件可攜性和應用程式的高可用性。
SAF AIS 是一個開放性工程,在不斷更新中。
3.OpenAIS概述OpenAIS是基於SA Forum標準的集群框架的應用程式介面規範。
OpenAIS提供一種集群模式,這個模式包括集群框架,集群成員管理,通信方式,集群監測等,能夠為集群軟件或工具提供滿足AIS標準的集群介面,但是它沒有集群資源管理功能,不能獨立形成一個集群。
OpenAIS組件包括AMF,CLM,CKPT,EVT,LCK,MSG,TMR,CPG,EVS等,因OpenAIS 分支不同,組件略有不同。
(下面介紹)OpenAIS主要包含三個分支:Picacho,Whitetank,Wilson。
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核心架構組件獨立出來放在Corosync(Corosync是一個集群管理引擎)裡面。
Whitetank包含的組件有AMF,CLM,CKPT,EVT,LCK ,MSG, CPG,CFG,EVS, aisparser, VSF_ykd,bojdb等。
而Wilson只含有AMF,CLM,CKPT,LCK, MSG,EVT,TMR(TMR,Whitetank裡面沒有),這些都是AIS組件。
其他核心組件被放到了Corosync內。
Wilson被當做Corosync的一個外掛程式。
(詳細請查看官方文檔) 4.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?),定額完成或者丟失時通知應用程式。
5.AIS、OpenAIS,Corosync的關係(1).AIS與Whitetank的關係由圖3,可以看出,OpenAIS的分支版本Whitetank除了包含AIS標準的應用程式介面,同時也有自己獨立的管理模塊,這些獨立的模塊為圖3中淺黃色部分,包含CPG,CFG,EVS, aisparser, VSF_ykd,bojdb等控制模塊。
(2).AIS與Wilson的關係當OpenAIS到了Wilson以後,OpenAIS一分為二,Wilson的組件基本都是AIS組件。
其他控制的核心組件被添加到Corosync中,關係如圖4所示。
(3).Corosync與OpenAIS關係圖5所示,Wilson與Whitetank的主要區別在於Wilson相比Whitetank缺少核心架構。
Wilson 作為Corosync的外掛程式支持SA Forum 。
6.OpenAIS集群實例(1).CMANCMAN是紅帽RHCS套件的核心部分,CCS是CMAN集群配置系統,配置cluster.conf,而cluster.conf其實就是openais的設定檔,通過CCS映射到openais。
(2).Pacemaker1.x+corosync1.xPacemaker升級到1.0版本後,從Heartbeat獨立出來,Pacemaker achieves maximum availability for your cluster services by detecting and recovering from node andservice-level failures. It achieves this by utilizing the messaging and membership capabilities provided by your preferred cluster infrastructure (currently either Corosync or Heartbeat)7.總結簡單的說,AIS就是一個通用的應用程式編程介面,OpenAIS是AIS的子項目,標準的集群框架的應用程式介面規範,而corosync是OpenAIS是具體實現。
這樣說大家應該很好理解吧!8.corosync版本官方網站:http://corosync.github.io/corosync/ ,目前官方同在維護兩個版本分別為,corosync 1.x –>corosync 1.4.6(最新)代號:flatironcorosync 2.x –>corosync 2.3.1(最新)代號:needle9.corosync與pacemaker組合從上圖中我們可以看到,不管heartbeat,還是corosync都是高可用集群中的Cluster Messaging Layer(集群資訊層),是主要傳遞發集群資訊與心跳資訊的,並沒有資源管理功能,資源管理還得依賴於上層的crm(Cluster resource Manager,集群資源管理器),最著名的資源管理器,就是pacemaker,它是heartbeat v3分離出去的子項目。
而現在corosync+pacemaker成了高可用集群中的最佳組合。
好了,到這裡corosync與pacemaker 的基礎知識就說到這裡了,下面我們來看看怎麼安裝corosync與pacemaker。
二、Corysync與Pacemaker 安裝1.環境說明(1).作業系統CentOS 6.4 X86_64位元系統(2).軟體環境corosync-1.4.1-15.el6_4.1.x86_64pacemaker-1.1.8-7.el6.x86_64(3).拓撲環境2.前提條件node1:(1).各節點之間主機名稱互相解析[root@node1 ~]# uname -n[root@node1 ~]# vim /etc/hosts127.0.0.1 localhostlocalhost.localdomain localhost4 localhost4.localdomain4 ::1 localhostlocalhost.localdomain localhost6 localhost6.localdomain6 192.168.18.201 node1192.168.18.202 node2[root@node1 ~]# ping node1[root@node1 ~]# ping node2(2).各節點之間時間同步1 [root@node1 ~]#ntpdate 210.72.145.44(3).各節點之間ssh互信[root@node1 ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''[root@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node2:(1).各節點之間主機名稱互相解析[root@node2 ~]# uname -n[root@node2 ~]# vim /etc/hosts127.0.0.1 localhostlocalhost.localdomain localhost4 localhost4.localdomain4::1 localhostlocalhost.localdomain localhost6 localhost6.localdomain6192.168.18.201 node1192.168.18.202 node2[root@node2~]# ping node1[root@node2 ~]# ping node2(2).各節點之間時間同步[root@node2 ~]# ntpdate 210.72.145.44(3).各節點之間ssh互信[root@node2 ~]# ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''[root@node2 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@3.配置yum源(EPEL源)node1:[root@node1 src]# wgethttp://download.Fedora /pub/epel/5/x86_64/epel-release-5-4.noarch.rpm [root@node1 src]# rpm -ivh epel-release-5-4.noarch.rpmwarning: epel-release-5-4.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 217521f6Preparing...########################################### [100%] 1:epel-release ########################################### [100%] [root@node1 src]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5[root@node1 src]# yum listnode2:[root@node2 src]# wget/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm [root@node2 src]# rpm -ivh epel-release-5-4.noarch.rpmwarning: epel-release-5-4.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 217521f6Preparing...########################################### [100%] 1:epel-release ########################################### [100%] [root@node2 src]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5[root@node2 src]# yum list4.關閉防火牆與SELinuxnode1:[root@node1 ~]# service iptables stop[root@node1 ~]# vim /etc/selinux/config# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - SELinux is fully disabled.SELINUX=disabled# SELINUXTYPE= type of policy in use. Possible values are:# targeted - Only targeted network daemons are protected.# strict - Full SELinux protection.SELINUXTYPE=targetednode2:[root@node2 ~]# service iptables stop[root@node2 ~]# vim /etc/selinux/config# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:# enforcing - SELinux security policy is enforced.# permissive - SELinux prints warnings instead of enforcing.# disabled - SELinux is fully disabled.SELINUX=disabled# SELINUXTYPE= type of policy in use. Possible values are:# targeted - Only targeted network daemons are protected.# strict - Full SELinux protection.SELINUXTYPE=targeted5.安裝corosync與pacemakernode1:12 [root@node1 ~]# yum install -y corosync*[root@node1 ~]# yum install -y pacemaker*node2:[root@node2 ~]# yum install -y corosync*[root@node2 ~]# yum install -y pacemaker*三、Corosync詳細配置1.提供設定檔[root@node1 ~]# cd /etc/corosync/[root@node1 corosync]# ll總用量24-rw-r--r-- 1 root root 445 5月15 05:09 corosync.conf.example-rw-r--r-- 1 root root 1084 5月15 05:09 corosync.conf.example.udpu drwxr-xr-x 2 root root 4096 5月15 05:09 service.ddrwxr-xr-x 2 root root 4096 5月15 05:09 uidgid.d注:大家可以看到提供一個樣例檔corosync.conf.example[root@node1 corosync]# cpcorosync.conf.examplecorosync.conf2.修改設定檔[root@node1 corosync]# cat corosync.conf# Please read the corosync.conf.5 manual pagecompatibility: whitetanktotem {version: 2secauth: on #啟動認證threads: 2interface {ringnumber: 0bindnetaddr: 192.168.18.0 #修改心跳線網段mcastaddr: 226.99.10.1 #組播傳播心跳資訊mcastport: 5405ttl: 1}}logging {fileline: offto_stderr: noto_logfile: yesto_syslog: nologfile: /var/log/cluster/corosync.log #日誌位置debug: offtimestamp: onlogger_subsys {subsys: AMFdebug: off}}amf {mode: disabled}#啟用pacemakerservice {ver: 0name: pacemaker}aisexec {user: rootgroup: root}注:用man corosync.conf可以查看所有選項的意思。