Centos7构建HA集群教学内容Word文件下载.docx

上传人:b****6 文档编号:17511911 上传时间:2022-12-06 格式:DOCX 页数:11 大小:20.59KB
下载 相关 举报
Centos7构建HA集群教学内容Word文件下载.docx_第1页
第1页 / 共11页
Centos7构建HA集群教学内容Word文件下载.docx_第2页
第2页 / 共11页
Centos7构建HA集群教学内容Word文件下载.docx_第3页
第3页 / 共11页
Centos7构建HA集群教学内容Word文件下载.docx_第4页
第4页 / 共11页
Centos7构建HA集群教学内容Word文件下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

Centos7构建HA集群教学内容Word文件下载.docx

《Centos7构建HA集群教学内容Word文件下载.docx》由会员分享,可在线阅读,更多相关《Centos7构建HA集群教学内容Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。

Centos7构建HA集群教学内容Word文件下载.docx

二、集群环境准备

两台机器启动PCSD

systemctlstartpcsd.service

systemctlenablepcsd.service

两台机器passwdhacluster

输入同一个密码hacluster

配置节点之间的相互认证

pcsclusterauthnode01node02

[root@node01~]#pcsclusterauthnode01node02

Username:

hacluster

Password:

node01:

Authorized

node02:

出现以下显示表示认证成功。

[root@node02~]#pcsclusterauthnode01node02

Alreadyauthorized

各节点之间时间同步

在node1和node2分别进行时间同步,可以使用ntp实现。

[root@node1~]#ntpdate172.16.0.1//172.16.0.1为时间服务器(若无时间服务器手动调整时间也可以)

三、集群创建

以nascluster为本集群的名称。

[root@node01~]#pcsclustersetup--namenasclusternode01node02

Shuttingdownpacemaker/corosyncservices...

Redirectingto/bin/systemctlstoppacemaker.service

Redirectingto/bin/systemctlstopcorosync.service

Killinganyremainingservices...

Removingallclusterconfigurationfiles...

Succeeded

pcs在执行以上命令时会生产corosync.conf及修改cib.xml文件,corosync.conf问corosync的配置文件,cib.xml为pacemaker的配置文件。

这两个配置文件是集群的核心配置,重装系统时建议做好这两个配置文件的备份。

开启集群

pcsclusterstart--all开启集群

pcsclusterenable--all设置集群自动启动

pcsclusterstatus查看集群状态

当有半数以上的节点在线时,这个集群就认为自己拥有法定人数了,是“合法”的,换而言之就是下面的公式:

total_nodes<

2*active_nodes,也就是说假设集群中有4个节点,但是活动节点有3个,4<

2*3,即是合法的集群,如果活动节点有2个,4=2*2不能满足total_nodes<

2*active_nodes了,这个集群就非法了。

因此在双节点的集群中只有当两者都在线时才是合法的的这个规则会让“双节点集群”毫无意义,但是我们可以控制Pacemaker发现集群达不到法定人数时候的行为。

简单来说,我们告诉集群忽略它。

在两个节点的情况下设置以下值

pcspropertysetno-quorum-policy=ignore

集群故障时候服务迁移

pcsresourcedefaultsmigration-threshold=1

查看集群状态

[root@node01~]#pcsclusterstatus

ClusterStatus:

Lastupdated:

TueSep1606:

35:

312014

Lastchange:

242014viacrmdonnode02

Stack:

corosync

CurrentDC:

node02

(2)-partitionwithquorum

Version:

1.1.10-29.el7-368c726

2Nodesconfigured

0Resourcesconfigured

PCSDStatus:

node01:

Online

node02:

查看集群成员

[root@node01~]#corosync-cmapctl|grepmembers

runtime.totem.pg.mrp.srp.members.1.config_version(u64)=0

runtime.totem.pg.mrp.srp.members.1.ip(str)=r(0)ip(192.168.102.1)

runtime.totem.pg.mrp.srp.members.1.join_count(u32)=1

runtime.totem.pg.mrp.srp.members.1.status(str)=joined

runtime.totem.pg.mrp.srp.members.2.config_version(u64)=0

runtime.totem.pg.mrp.srp.members.2.ip(str)=r(0)ip(192.168.102.2)

runtime.totem.pg.mrp.srp.members.2.join_count(u32)=1

runtime.totem.pg.mrp.srp.members.2.status(str)=joined

查看成员信息

[root@node01~]#pcsstatuscorosync

Membershipinformation

----------------------

NodeidVotesName

11node01(local)

21node02

查看XML

[root@node01~]#pcsclustercib

检查配置文件,发现提示没有STONITH设备。

[root@node01~]#crm_verify-L-V

error:

unpack_resources:

Resourcestart-updisabledsincenoSTONITHresourceshavebeendefined

EitherconfiguresomeordisableSTONITHwiththestonith-enabledoption

NOTE:

ClusterswithshareddataneedSTONITHtoensuredataintegrity

Errorsfoundduringcheck:

confignotvalid

暂时关闭stonish,后面再详细讲讲stonish的配置。

pcspropertysetstonith-enabled=false

配置集群IP

pcsresourcecreatevipocf:

heartbeat:

IPaddr2ip=192.168.102.10cidr_netmask=24opmonitorinterval=30s

vip为自定义的一个集群IP的名称,监控时间为30S。

测试浮动IP地址在集群中能否正常切换:

停node01的集群服务pcsclusterstopnode01

在node02上查看状态

[root@node02~]#pcsstatus

Clustername:

nascluster

Lastupdated:

TueSep1607:

28:

332014

Lastchange:

26:

412014viacibadminonnode01

Stack:

CurrentDC:

Version:

2Nodesconfigured

1Resourcesconfigured

Online:

[node02]

OFFLINE:

[node01]

Fulllistofresources:

vip(ocf:

:

IPaddr2):

Startednode02##此条表示vip在node02上执行了

DaemonStatus:

corosync:

active/enabled

pacemaker:

pcsd:

active/disabled

在node01恢复后,为防止node02资源迁回node01(迁来迁去对还是会对业务有一定影响)

pcsresourcedefaultsresource-stickiness=100

pcsresourcedefaults

四、创建GFS2文件系统

mkfs.gfs2-plock_dlm-j2-tnascluster:

nas/dev/my_vg/gfsdata

配置dlm锁监控时间

pcsclustercibdlm_cfg##由于cib.xml非常重要,为避免出错不建议直接修改,故生产一个dlm_cfg文件,将配置写入dlm_cfg文件后,再将dlm_cfg写入cib.xml中。

pcs-fdlm_cfgresourcecreatedlmocf:

pacemaker:

controldopmonitorinterval=60s

pcs-fdlm_cfgresourceclonedlmclone-max=2clone-node-max=1

pcs-fdlm_cfgresourceshow

pcsclustercib-pushdlm_cfg

普及一下dlm锁的知识:

DistributedLockManager,简称DLM,是一个分布式锁管理器,它是RHCS的一个底层基础构件,同时也为集群提供了一个公用的锁运行机制。

DLM运行在每个节点上,GFS通过锁管理器的机制来同步访问文件系统的元数据。

CLVM通过锁管理器来同步更新数据到LVM卷和卷组。

DLM不需要设定锁管理服务器,它采用对等的锁管理方式,大大提高了处理性能。

同时,DLM避免了单个节点失败需要整体恢复的性能瓶颈。

另外,DLM的请求是本地的,不需要网络请求,因此请求会立即生效。

最后,DLM通过分层机制,可以实现多个锁空间的并行锁模式。

查看状态

[root@node01nas]#pcsstatus

48:

092014

44:

082014viacibadminonnode01

3Resourcesconfigured

[node01node02]

Startednode02

CloneSet:

dlm-clone[dlm]

Started:

[node01node02]##DLM的状态

五、stonith配置

查看本系统支持的fence设备

pcsstonithlist

查看即将要使用的fence设备相关信息

pcsstonithdescribefence_ilo4

由于服务器是HPDL380GEN8的,支持ILO4,但是在实际配置中采用fence_ilo4却发现怎么也不通,manfence_ilo4发现fence_ipmilan也可以配置ilo4的FENCE设备,但是必须要加lanplus="

true"

参数。

pcsclustercibstonith_cfg##生产初始配置文件stonith_cfg

pcs-fstonith_cfgstonithcreateipmi-fence-node01fence_ipmilanparmslanplus="

pcmk_host_list="

node01"

pcmk_host_check="

static-list"

action="

reboot"

ipaddr="

192.168.103.1"

login=USERIDpasswd=passwordopmonitorinterval=60s

pcs-fstonith_cfgstonithcreateipmi-fence-node02fence_ipmilanparmslanplus="

node02"

192.168.103.2"

解释:

创建一个名为ipmi-fence-node01的fence设备名称用于建node01的fence,pcmk_host_check="

的功能是将node01与192.168.103.1对应,后面login=USERIDpasswd=passwordopmonitorinterval=60s不再解释。

pcs-fstonith_cfgstonith

检查stonith_cfg中stonith配置信息

pcs-fstonith_cfgpropertysetstonith-enabled=true上文关闭了stonish,现在开启stonish

pcs-fstonith_cfgproperty

检查stonith_cfg中stonith是否已经开启

pcsclustercib-pushstonith_cfg将stonith_cfg写入cib.xml

node02上测试FENCE是否成功stonith_admin--rebootnode01

node01上测试FENCE是否成功stonith_admin--rebootnode02

pcsclusterstandbynode01将node01业务VIP迁移到node02上测试集群是否正常。

在集群所有节点重启后发现gfs的文件系统无法自动挂载,定义了fstab也不行,经过分析发现系统开机时候执行了pcsclusterstart,而且很快就返回启动成功的结果,但是系统日志里面显示仍然还启动完成,考虑到系统进入系统之后集群有可能还没启动完成,所有自然无法挂载gfs的文件系统。

如果无法自动挂载,我自己编写了一个循环挂载的脚本。

供参考。

编辑脚本

mountnas.sh

#!

/bin/bash

i=1

while(($i<

50))

do

mount|grepnas

if[$?

=1];

thenmount/dev/my_vg/gfsdata/nas

elseexit

fi

sleep3

done

chmod777/etc/rc.localcentos7还需要给rc.local加个权限,要不然开机不会执行rc.local

在/etc/rc.local

加入bash/mountnas.sh

六、配置多路心跳

在rhcs中,可以配置多路心跳,一路将fence作为心跳,一路将网络作为心跳,在corosyncpacemaker的集群中,找了国内外很多技术文章,均未做相关描述的。

主要是因为corosyncpacemaker的集群相对来说已经很可靠,在未配置多路心跳之前将业务网卡DOWN后,发现 

node02的集群马上失效,集群IP立即切换至node01上,未出现脑裂的情况。

作为自己研究,尝试了再配置了一个心跳。

在/etc/corosync.conf中,毕竟corosync管理心跳,所以只有在它里面想办法了,在centos7之前的corosync.conf配置中,会定义interface{}作为多个网络,但是在centos7中经过PCS统一管理后,经过测试发现pacemaker只认nodelist{}作为网络,难道这又是一个变动?

在totem{}

定义:

rrp_mode:

passive#默认为none,修改为passive才可以支持两个网段

nodelist{

node{

ring0_addr:

node01

test01-test01为第二个心跳

}

node02

test02-test02为第二个心跳

记得修改host表。

重启集群即可生效,目前node01,node02对应192.168.102.0网段,test01test02对应192.168.103.0网段,同时可以在192.168.103.0网段上再新建一个业务IP,

在配置集群IP之前需要对test01test02配置认证。

[root@node01~]#pcsclusterauthtest01test02

test01:

test02:

[root@node02~]#pcsclusterauthtest01test02

pcsresourcecreatetestipocf:

IPaddr2ip=192.168.103.10cidr_netmask=24opmonitorinterval=30s注意testip与上文的vip已经名字不一样,两个集群IP的名字不能一致。

七、配置集群应用

以apache为例:

apache安装过程略。

pcsresourcecreateWebocf:

apacheconfigfile=/etc/httpd/conf/httpd.confstatusurl="

http:

//localhost/server-status"

opmonitorinterval=1min

pcsstatus查看apache状态,

pcsconstraintcolocationaddWebvipINFINITY将apache与vip绑定在同一个节点上。

pcsconstraintordervipthenWeb,指定集群IP先启动,然后再启动apache

pcsconstraintlocationWebprefersnode01=200指定node01优先启动apache

crm_simulate-sL查看资源黏性值,集群业务优先在资源黏性值高的节点上运行。

Currentclusterstatus:

vip(ocf:

Startednode01

Web(ocf:

apache):

Allocationscores:

native_color:

vipallocationscoreonnode01:

200

vipallocationscoreonnode02:

50

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1