HA01-集群介绍

目录

一、宏观理解集群

二、微观理解集群

三、安装高可用集群环境

3.1、实验环境简介

3.2、安装集群软件并配置集群

3.3、用命令行创建集群


一、宏观理解集群

集群中的一个服务器称为一个节点node。

集群资源以mysql为例一般有:vip(浮动IP)、mysql(服务)、存储(共享存储)。所有资源作为一个整体提供服务,称为服务组。集群资源不运行在同一个node时,集群不能正常工作。为了集群资源运行在同一个node上,需要配置集群的约束条件。约束条件:location、order、colocation。

  • location:资源优先在哪个node上运行
  • order:资源的启动顺序(先启动vip、再启动共享存储、再启动服务)
  • colocation:保证资源运行在同一个node上(其他资源跟着哪个资源跑)

心跳线:在私有网络中,各个node之间互相探测,看其他node是否正常。各个node之间互相争抢资源(互相认为其他node有故障),会出现脑裂状态,会造成数据丢失。

fence/stonith:stonith=shoot the other node in the head,通常是电源交换机来解决脑裂,他会把有问题的node重启或关机,避免脑裂。

node和共享存储之间用多路径multipath,防止一条线路故障导致不可用。

二、微观理解集群

CRM:Cluster Resource Manager 集群资源管理器,每个node上一个头儿
PE:Policy Engine 策略引擎,从CRM中重选出DC
DC:Designated Coordinator 指定协调器,集群中有一个CRM作为DC
LRM:Local Resource Manager 本地资源管理器,接受CRM的指令,调用RA来管理各自node上的资源
CIB:Clister Infomation Base 集群信息库,是关于集群的数据库,由节点更新,为PE做决策提供依据

RA:Resource Agent 资源代理启动脚本,RA有三种:LSB、systemd、OCF。

  • RHEL6前 LSB---/etc/init.d/
  • RHEL7后 systemctl
  • OCF 开放集群框架,是第三方的启动脚本

以3节点集群为例,node1、2、3中当前活跃节点是node3。集群的故障转移是这样实现的

  1. 如果node3挂了被node1、2心跳检测到
  2. 那么node1、2就更新CIB的信息
  3. PE根据CIB的信息决策其余node中哪个node最适合接管,比如node2接管
  4. PE决定node2上的CRM作为新的DC
  5. node2变成活跃节点,node2的CRM命令LRM启动服务
  6. LRM通过调用各种RA来启动服务

以上的集群架构通过集群软件实现,常用的集群软件是

  • pacemaker来实现CRM
  • corosync来实现心跳线信息

三、安装高可用集群环境

3.1、实验环境简介

虚拟机server作为实验平台,server必须把光盘挂着以充当yum源。在server上使用KVM运行5台虚拟机分别为node1~5。在root的家目录放入安装node的文件(目录rh436_new)和安装脚本。在server上:放入tar包,解压缩并进入rh436_new目录,执行server.sh脚本配置初始环境。执行以后会自动重启,初始环境完成。

[root@server:~]# tar xvzf rh436_new.tar.gz
[root@server:~]# cd rh436_new/
[root@server:~/rh436_new]# ll
total 505M
-rw-r--r--. 1 root  root  505M Mar 13  2018 node.qcow2
-rw-r--r--. 1 kevin kevin  167 May  5  2016 README
-rwxr-xr-x. 1 kevin kevin  793 May  5  2016 reinstall.sh
-rwxr-xr-x. 1 kevin kevin 1.5K May  5  2016 server.sh

[root@server:~/rh436_new]# ./server.sh

在server上:virsh list查看虚拟机状态

[root@server:~]# virsh list
 Id    Name                           State
----------------------------------------------------

在server上:reinstall.sh 1 2 3 4 5可以安装或者重置node1 node2 ... node5

[root@server:~]# reinstall.sh 1
[root@server:~]# reinstall.sh 2
...
[root@server:~]# reinstall.sh 5

启停某个node

[root@server:~]# virsh start node1
[root@server:~]# virsh shutdown node1

远程到某个node上,密码都是redhat。

[root@server:~]# ssh node1
Warning: Permanently added 'node1,192.168.122.10' (ECDSA) to the list of known hosts.
root@node1's password:
[root@node1 ~]#

3.2、安装集群软件并配置集群

在3个node上:装包pcs,启动服务pcsd。装pcs包会创建用户hacluster,更改其密码。验证集群是否正常。同理node2、3。

[root@node1 ~]# yum install pcs -y
[root@node1 ~]# systemctl enable pcsd; systemctl start pcsd
[root@node1 ~]# echo redhat | passwd---stdin hacluster

集群各节点node1、node2、node3互相做认证,这个过程只需要在一个结点上操作即可

[root@node1 ~]# pcs cluster auth node1 node2 node3
Username: hacluster
Password:
node1: Authorized
node2: Authorized
node3: Authorized

在server上:打开firefox,访问https://node1:2224,用hacluster/redhat登录。
点击Create New新建一个集群,起名cluster1,加入node1、node2和node3,点Create Cluster创建。


集群cluster1看到有3个node,各个node之间的pacemaker要等一会儿才能正常运行起来。
这里有nodes、resource、fence device、cluster properties、manage clusters等。
分别管理node、资源、fence、集群属性、管理集群等。
我们访问的是https://node1:2224,所以cluster properties是node1的properties。

此时,在cluster properties里面,
把No Quorum Policy选为Ignore
把Stonith Enable不勾选
保证后面可以顺利添加资源,如vip

访问https://node2:2224,用hacluster/redhat登录
添加已有的集群,点Add Existing,因为已经配置过node1,所以填写node1添加

访问https://node3:2224,同理配置

3.3、用命令行创建集群

命令行使用man pcs查看例子。下面用命令行创建和用浏览器创建一样的集群。

[root@node3 ~]# pcs cluster setup --start --enable --name cluster1 node1 node2 node3
Shutting down pacemaker/corosync services...
Redirecting to /bin/systemctl stop  pacemaker.service
Redirecting to /bin/systemctl stop  corosync.service
Killing any remaining services...
Removing all cluster configuration files...
node1: Succeeded
node2: Succeeded
node3: Succeeded
Starting cluster on nodes: node1, node2, node3...
node1: Starting Cluster...
node3: Starting Cluster...
node2: Starting Cluster...
node1: Cluster Enabled
node2: Cluster Enabled
node3: Cluster Enabled

关闭stonith enable

[root@node1 ~]# pcs property set stonith-enabled=false

[root@node1 ~]# pcs property show
Cluster Properties:
 cluster-infrastructure: corosync
 cluster-name: cluster1
 dc-version: 1.1.12-a14efad
 have-watchdog: false
 stonith-enabled: false

不启用quorum策略

[root@node1 ~]# pcs property set no-quorum-policy=ignore
[root@node1 ~]# pcs property show
Cluster Properties:
 cluster-infrastructure: corosync
 cluster-name: cluster1
 dc-version: 1.1.12-a14efad
 have-watchdog: false
 no-quorum-policy: ignore
 stonith-enabled: false

这些属性的名字一般是浏览器里cluster property中名字的连字符形式,比如,Stonith Enabled就是stonith-enabled,No Quorum Policy就是no-quorum-policy,以此类推。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苦行僧(csdn)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值