今天不谈技术,讲一下前不久变更差点翻车的事。

背景: 因为安全原因,需要对生产上运行的windows服务器进行打补丁操作,由于是内网环境,只能离线方式进行升级。

配置说明:

编号 服务器型号 操作系统版本 补丁版本
A1 IBM X3650 M4 Windows Server 2008 R2 Standard SP1 2017年7月
A2 IBM X3650 M4 Windows Server 2008 R2 Standard SP1 2017年7月
B1 浪潮 NF5280M4 Windows Server 2008 R2 Standard SP1 2017年8月
B2 浪潮 NF5280M4 Windows Server 2008 R2 Standard SP1 2017年8月

A1和A2组成一套环境,B1和B2组成一套环境,两套环境互为主备。

变更准备:

1.下载离线补丁包;

2.测试环境补丁升级;

测试环境与生产环境操作系统相同,离线包在测试环境升级时不是很顺利,直接打到最新的11月份的补丁包失败,摸索着由2017年的补丁一步一步往后打,可以打到2020年1月份。

变更实施:

由于测试环境打补丁只能到1月份,初步计划生产环境4台服务器也只打到1月份。

23:30,变更正式刚开始。按计划先将第1台打到了1月份,操作很顺利,这时做了一个关键的临时决定,试着直接打到最新的补丁包,结果有惊喜,居然打成了。好吧,那就临时改计划,将剩余的3台都升级到最新的补丁包。

前两台进行的很顺利,第3台和第4台的时候卡住了。打补丁会重启服务器,正常情况10分钟就应该启起来,20分钟过去了还是ping不通连不上,没得辙,只能去机房捅屁股了(现在系统都上云了,去机房的机会越来越少了)。这时快3点了。

果然,第3台在系统更新的时候卡住了,硬重启系统恢复。

关键的4台,居然崩溃了,是的,系统进不去,崩溃了……

晚上变更容易犯困,看到进不了系统,困意全无,肾上腺素飙升。

时间来到快5点了,系统已经进不去,这时做了4个操作:1.停止第3台的补丁升级操作;2.咨询厂商,有无解决方案;3.通知系统使用方,做好切换准备;4.想办法恢复系统。

变更之前通知过厂商晚上保障,预料过打补丁可能会失败,但是没想到系统直接会崩溃,没办法,事到如此,只能硬着头皮上了,自己挖的坑,含泪也要填。

第一轮的自救不理想,厂商没有解决办法,自己百度的解决办法也不成功。这时只能做最坏打算了——重装系统和应用。

同时通知科室领导,说明情况;通知厂商,做好打飞的初始化系统的准备。自己也根据报错提示不断寻找解决办法,死马当活马医吧。这个时候压力其实还是很大的,毕竟是生产系统,再过两个小时就是业务高峰期。

时间快6点了,尝试了各种办法,做了两个win pe,尝试回退补丁,不成功,没办法,现在能做的只能尝试更多的办法,终于,有一个方案成功了,成功了,直接重置启动项,居然进系统了,惊喜不惊喜,开心不开心。

系统恢复后,对应用做了各项检查,运行正常,决定补丁暂停升级,通知科室经理、厂商、业务方系统恢复。

各项处理完快7点了,肚子很饿,精神却很好,天也亮了,吃个早餐吧,打工人不能太亏待自己。

复盘:

1.变更前的测试

变更前的测试影响变更成败的关键,无论变更大小,只要有条件都应该进行测试。比如系统类的扩文件系统、扩表空间、文件清理、系统参数调整;应用类的新业务上线、应用切换、漏洞升级等。只有经历过充分的测试,才能做到胸有成竹,生产上遇到问题也不慌。

2.变更实施

变更要有手册,手册规定了操作步骤,命令可直接复制执行,执行完后的结果有截图,异常情况有回退方案。

变更实施应严格按测试结果执行,切忌临时更改方案步骤。变更的操作只是机械的执行,主要工作都在变更前的准备测试阶段。小到日志清理,大到两中心异地切换,变更实施都应该按手册规范执行。

3.异常流程

生产上的变更会遇到各种问题,千奇百怪,可能测试环境和生产环境一样(相同的操作系统版本、应用版本),但是执行结果不一样,也有可能服务器在测试区各项测试都很正常,上了生产区却有问题了。

出现这些问题很正常,因为我们不能考虑到所有场景、环境、配置,这时应急流程就很重要了。出现了暂时无法解决的问题,需要有一套完善的应急预案和异常流程,这既是对自己减压,也是尽可能降低对业务影响。

4.故障解决

出现的故障没关系,解决它就是,运维就是填坑背锅的嘛,填不了坑就光荣的背锅。

故障的解决和个人的经验和知识储备有关,这个没有捷径,只能多学多做测试多总结多记录了。

5.经验教训

这次是这些年来第二次变更遇到重大重大问题,第一次是服务器直接起不来。

运维的日常工作很繁杂,要会很多技术,知识面要求很宽,而且要不断学习。

对服务器、对生产环境、对各种技术,要有敬畏之心,这些是我们工作的朋友伙伴,要善待它们而不是轻视或者藐视。

作为一个运维人,我很自豪,以上只是个人的一个小感触,仅代表个人观点,不接受反驳,哈哈哈……