双十一运维工程师攻城记

  • A+
所属分类:日志

现在是2017年11月12日,在自己的个人博客毅然决然的记录下作为运维工程师在双十一的攻城之战。目标是什么呢?平稳完成核心交换机割接,确保所涉及系统及应用正常过渡。

攻城准备


提前准备Ip检查脚本:

#!/bin/bash

for i in `cat hostip.txt`;do

ping -c 1 $i >/dev/null

if [ "$?" == 0 ];then

echo -e "$i ----> 网络检查正常"

else

echo -e "\t\t$i ----> 网络检查失败"

fi

done

双十一运维工程师攻城记

11月10日晚8时,开始关闭所有受影响应用及操作系统。关闭过程一切顺利,未发现任何隐藏故障。听天命!

关闭rhcs过程执行命令

关闭应用clusvcadm -s MySQL -m node1

#停掉node1节点的MySQL应用

clusvcadm -s oracle -m node2

#停掉node2节点的Oracle应用关闭集群

service rgmanager stop

service cman stop

割接过程一直持续到11日早4时,完成。启动受影响操作系统及应用。启动过程,发现2套rhcs同时出现A节点启动正常,B节点启动会fence掉A节点,故障现象为群集"脑裂"。

攻城开始


开始,检查网络ping node 1 /node2 正常开始,

检查,2节点的cluster.confmd5sum /etc/cluster/cluster.conf

开始,增加votes值vim /etc/cluster/cluster.conf

无敌的红帽,fence一切!

双十一运维工程师攻城记

尝试过程启动单节点,将cman、rgmanger服务设置为手动启动:

chkconfig rgmanger off

chkconfig cman off

等待,另外节点启动再启动cman服务

service cman start

service rgmanager start

启动过程和关闭过程正好相反。

扩展阅读:(1)fail-over:失败转移域,能够限制集群中某一个服务在那些节点间转移(可以允许已经运行其他服务的设备接管),设置优先级与限制节点切换范围如srv1:mysql apache、srv2:mysql apache、srv3:mysql apache、srv4:mysql apache有限设置srv1 srv2之间进行mysql服务切换,srv3 srv4之间进行apache服务切换,但是如果专用的服务组设备都故障了最后考虑转移到srv3、srv4上。

(2)rhcs类似装配模式,资源是单独创建的,然后为服务单独添加,也可在服务创建时直接添加资源。添加服务时故障转移域就是就是(1)中描述的情况。

(3)表决磁盘:rhcs的故障转移通过一种共享磁盘进行仲裁,如果不满足仲裁关系就不能进行故障转移,显然故障转移是集群的必备功能,于是rhcs集群使用了一种恒等关系保证了故障转移能狗任何条件下进行。node:3 expected votes:6 Quorum Device:2 Total votes:5Quorum:3node为当前的有效节点数能够投票的人(3个)、expectedvotes是期待的投票数-相当于全国人民(4个)、QuorumDevice是说定义的表决磁盘一票能够顶2票、totalvotes是当前实际投票情况、Quorum是法定投票数,那么系统要求Quorum

攻城胜利


通过和网络工程师,持续奋战。操作系统使用的是ICMPv3版本,华为交换机为ICMPv2版本。集群中的节点使用多播地址沟通。因此必须将红帽高可用附加组件中的每个网络切换以及关联的联网设备配置为启用多播 地址并支持IGMP(互联网管理协议)。从红帽企业版redhat6.2开始,集群中的节点可以使用udp单播传输机制进行沟通,但建议您在集群网络中使用IP多播,UDP单播是IP多播不可用时的备用方法。

双十一运维工程师攻城记

扩展阅读:

操作RHCS群集

 命令说明
启动某个应用服务clusvcadm -e -m启动某个节点的应用服务
关闭某个应用服务clusvcadm -s -m关闭某个节点的应用服务
重启某个应用服务clusvcadm -R -m重启某个节点的应用服务
切换某个应用服务clusvcadm -r -m切换某个节点应用服务

监控RHCS集群状态

cman_tool nodes -a显示节点名称及对应IP和加入集群时间
cman_tool status显示集群更多信息,Config Version: 35  #集群配置文件版本号、Cluster Name: mycluster   #集群名称、Cluster Id: 56756、Nodes: 4   #集群节点数、Expected votes: 6   #期望的投票数、Quorum device votes: 2   #表决磁盘投票值、Total votes: 6   #集群中所有投票值大小、Quorum: 4 #集群法定投票值,低于这个值,集群将停止服务、Node ID: 4  #本节点在集群中的ID号、Multicast addresses: 239.192.221.146 #集群广播地址 、Node addresses: 192.168.12.230 #本节点对应的IP地址
clustat -i 3-i"参数可以实时的显示集群系统中每个节点以及服务的运行状态,"-i 3"表示每三秒刷新一次集群状态。
ccs_tool  update /etc/cluster/cluster.conf根据cluster.conf中的"config_version"值来决定是否进行更新的

管理和维护GFS2文件系统

gfs2_fsck命令类似与ext3文件系统下的fsck.ext3命令,主要用于检测和修复文件系统错误。其实GFS2还有一个fsck.gfs2命令,此命令与gfs2_fsck命令完全一致。
gfs2_tool df  /gfs2查看GFS2文件系统挂载信息
gfs2_tool freeze  /gfs2锁定GFS2文件系统
gfs2_tool unfreeze  /gfs2解锁GFS2文件系统
gfs2_tool journals /gfs2这里显示了可挂载节点数,并且每个journal的大小
gfs2_tool  version显示GFS2的版本信息
gfs2_jadd -J 64M设置Journals的大小为64M
gfs2_jadd  -j 5 /gfs2将GFS2可同时挂载的节点数目增加到5个


weinxin
付生保个人博客
一个运维工程师的自媒体个人博客网站。也是关注IT技术学习和经验分享的原创独立自媒体个人博客。
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: