banner

双十一运维工程师攻城记

现在是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

开始,增加votesvim /etc/cluster/cluster.conf

无敌的红帽,fence一切!

尝试过程启动单节点,cmanrgmanger服务设置为手动启动:

chkconfig rgmanger off

chkconfig cman off

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

service cman start

service rgmanager start

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

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

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

3)表决磁盘:rhcs的故障转移通过一种共享磁盘进行仲裁,如果不满足仲裁关系就不能进行故障转移,显然故障转移是集群的必备功能,于是rhcs集群使用了一种恒等关系保证了故障转移能狗任何条件下进行。node3 expected votes6 Quorum Device2 Total votes5Quorum3node为当前的有效节点数能够投票的人(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: 56756Nodes: 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

推荐阅读:

如何在VMware模板中根据不同IP设置多网关地址

新安装windows10系统个人自定义设置

处理华为服务器RH1288V3 iBMC非周期性重启

阅读: 2906
在同意共创许可协议(CC BY-NC-SA-4.0)的前提下,您可以转载本文。
付生保个人博客
https://shengbao.org/473.html

留言评论

1条留言
付生保个人博客
升级了nngx_cache_purge,希望还能评论!