linux集群高可用--crm

本文详细介绍了Linux集群中的基本条件,包括时间同步、主机名解析和SSH免密通信。讨论了Pacemaker提供的管理工具,如crmsh,并概述了集群资源类型(如primitive、group、clone和ms/master资源)以及约束类型。同时,文章还提到了RAID解决方案和高可用集群的关键需求,如时间同步和SSH通信。
摘要由CSDN通过智能技术生成



(一)高可用集群介绍(入门)http://blog.csdn.net/tjiyu/article/details/52643096


  • 高可用集群的概念(非常重要,需要重点理解)

 
 
 
①:什么是高可用集群
高可用集群(High Availability Cluster,简称HA Cluster),是指以减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外不间断提供的服务,把因为软件、硬件、人为造成的故障对业务的影响降低到最小程度。总而言之就是保证公司业务 7x24小时不宕机
②:高可用集群的衡量标准
通常用平均无故障时间(MTTF:mean time to failure)来度量系统的可靠性,用平均故障维修时间(MTTR:Mean Time Between Failures)来度量系统的可维护性。于是可用性被定义为:HA=MTTF/(MTTF+MTTR)* 100%。
基本可用性 29 99% 年度宕机时间: 87.6小时
较高可用性 39 99.9% 年度宕机时间: 8.8小时
具有故障自动恢复 49 99.99% 年度宕机时间: 53分钟
极高可用性 59 99.999% 年度宕机时间: 5分钟
③:高可用集群实现原理
高可用集群主要实现自动侦测(Auto-Detect)故障、自动切换/故障转移(FailOver)和自动恢复(FailBack)。
1:自动侦测、故障检查:通过集群各节点间通过心跳信息判断节点是否出现故障
2:当有节点(一个或多个)和另外节点互相接收不到对方心跳信息时,如何决定哪一部分节点是正常运行的,而哪一部分是出现故障需要隔离的呢?
这时候通过法定票数(quorum)决定,即当有节点故障时,节点间投票决定哪个节点是有问题的,票数大于半数为合法,每个节点可以设置其票数,当一个节点能和另一个节点保持心跳信息,该节点就获取得了另一个节点的票数,该节点获得的所有票数就是法定票数,如果其法定票数大于集群中票数的总和的一半,那么该节点就是正常节点,反之为故障节点
④:什么是RA(Resource Agent)?
资源代理层,简单的说就是能够集群资源进行管理的脚本,如启动start,停止stop、重启restart和查询状态信息status等操作的脚本。由各个节点的LRM本地资源管理器负责运行
有四类资源代理:(安装crmsh后,可以使用ra classes查看)
1、Legacy heartbeat(heatbeat v1版本的资源管理);
2、LSB(Linux Standard Base),主要是/etc/init.d /*目录下的脚本
3、OCF(Open Cluster Famework),比LSB更专业,更加通用,除了上面的四种操作,还包含monitor、validate-all等集群操作,OCF 的规范在http://www.opencf.org/cgi-bin/viewcvs.cgi/specs/ra/resource-agent-api.txt?rev=HEAD。
4、STONITH:实现节点隔离
  • HA解决方案分类

 
 
 
1:vrrp协议:keepalived
2:OpenAIS提供一种集群模式解决方案:heartbeat,corosync,CMAN(RHCS:红帽集群管理套件)

Alt text

  • 集群的工作模式详解

 
 
 
message layer,消息层的作用是传递集群内部节点之间的信息,如果有节点宕机,此节点宕机的信息将会立即被crm集群资源管理器捕获,crm决定宕机节点上运行的服务将有哪个节点代为运行,然而必须通知crm,通过crm在调用 RARA是一系列启动或关闭服务的脚本),实现资源在集群节点的迁移过程
  • 红帽5、红帽6、红帽7 高可用解决方案的组合程序

 
 
 
红帽 6:corosync 版本 1 + pacemaker + pcs或crmsh
corosync 版本 1 + cman + pacemaker
红帽 7:corosync + pacemaker(pacemaker作为crm运行) + pcs/crmsh
corosync是用于高可用环境中的提供Massage layer,它位于高可用集群架构中的底层(Message Layer),扮演着为各节点之间提供心跳信息传递的管理者
pacemaker是一个开源的高可用资源管理器(cluster resource manager),位于HA集群架构中资源管理、资源代理(RA)这个层次,它不能提供底层心跳信息传递的功能,它要想与对方节点通信需要借助底层的心跳传递服务corosync来实现,将信息通告给对方。通常它与corosync的结合方式有两种:①:pacemaker作为corosync的插件运行,②:pacemaker作为独立的守护进程运行

(二)配置高可用集群(环境)

集群中节点必须满足一下基本条件
1:集群中的节点必须实现时间同步
2:能够通过/etc/hosts进行主机名解析
3:基于ssh免密码通信

  • 集群环境准备

 
 
 
1:环境介绍:首先搭建两个节点的集群,node1( 192.168 .43 .10)和 node2( 192.168 .43 .11
2:三个节点: 192.168 .43 .9(node0时间同步服务器), 192.168 .43 .10(node1), 192.168 .43 .11(node2)
  • 集群配置步骤
  • node0,node1,node2上配置/etc/hosts文件,实现主机名解析(首先要设置好主机名hostnamectl)

 
 
 
192 .168 .43 .9 node0
192 .168 .43 .10 node1
192 .168 .43 .11 node2
  • 配置ssh免密码登入(在node0上操作)(为了避免ssh登入是需要输入yes,可以笨办法可以先在各个节点上使用ssh先登入其他的节点)

 
 
 
ssh-keygen -t rsa -P ""
cd .ssh
mv id_rsa .pub authorized_keys
rm -f known_hosts
cd ../
scp -rp .ssh/ node1:/root/
scp -rp .ssh/ node2:/root/
  • node0,node1,node2上配置时间同步服务器

 
 
 
1:在node0上安装配置chrony服务,同步国内互联网时间服务器的时间
yum install -y chrony
2:编辑配置文件/etc/chrony.conf
修改默认的centos时间同步服务器地址为国内时间同步服务器地址,且允许 192.168 .43 .0/ 24网段的主机同步时间
server s1a.time.edu.cn iburst
server s1b.time.edu.cn iburst
server s1c.time.edu.cn iburst
server s1d.time.edu.cn iburst
allow 192.168 .43 .0/ 24
3:启动chrony
systemctl enable chronyd.service
systemctl start chronyd.service
4:在node1和node2上分别安装chrony,且修改配置文件/etc/chrony.conf,将时间同步指向node0节点
yum install -y chrony
server node0 iburst(配置文件里面修改)
systemctl enable chronyd.service
systemctl start chronyd.service
5:node1,node2验证时间同步
[root@node1 ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* node0 3 6 17 6 -5684ns[ -1595ns] +/- 401ms

(三)高可用集群(服务配置)

pacemaker提供的管理程序有:(rpm -ql pacemaker)

/usr/libexec/pacemaker/cib(集群信息中心 cluster infomation base) 
/usr/libexec/pacemaker/crmd(集群管理器) 
/usr/libexec/pacemaker/lrmd(本地管理器)


  • 在node1和node2节点安装corosync、pacemaker

 
 
 
安装pacemaker( corosync将会被作为依赖安装)
yum install -y pacemaker
  • 在node1上操作

 
 
 
cd /etc/corosync/
cp corosync. conf.example corosync. conf
  • 关于/etc/corosync/corosync.conf配置文件的介绍

 
 
 
1: totem { }:设置节点间的通信方式,通信协议,加密,通信的多播地址,且至少需要定义一个 interface{}接口用来传递集群心跳信息
2: loggin { }:设置格式,存储路径,记录的级别
3: quorum { }: 设置投票信息
4: nodelist { }:设置节点个数
  • 由于在message layer层传递心跳信息需要加密,因此先必须生成加密文件

 
 
 
corosync-keygen
  • 编辑配置文件/etc/corosync/corosync.conf,修改配置文件(man corosync.conf 查看配置选项)

 
 
 
totem {
version: 2 # 指定版本号
cluster_name: uplookingcluster # 指定集群名称
crypto_cipher: aes256 # 指定对称加密算法
crypto_hash: sha1 # 指定单向加密算法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值