刚在机房蹲了2个小时,把许可服务器的系统升级完,机房空调开太足腿都麻了。
升级之前我心里其实特别没底。这台服务器跑的是FlexNet 11.12,已经三年没动过系统了。操作系统是Windows Server 2016,今年微软不维护了,安全补丁都不给。我提前两周就开始翻文档,把升级步骤写了满满两页纸。最怕的就是新版本FlexNet不认旧版的license.dat文件,万一文件格式变了,重启之后服务起不来,全公司两百多号人干瞪眼,那我这个周末就别想消停了。还怕的是option文件里的自定义配置在新版里语法变了,那套回收规则写了上百行,一行一行改得改到什么时候。更怕的是升级过程中网络突然断了,远程桌面卡死连不上,大周末我一个人蹲在机房对着黑屏哭。所以今天我特意带了根网线、一个U盘拷了三份备份、还有笔记本电脑,机房里信号不好我还带了个充电宝给手机续命,能想到的意外都防了一遍。
第一件事就是把旧版本的整个安装目录打了个压缩包存到D盘里,然后才敢动C盘的东西。升级过程比我想的顺,安装包跑完没报错,重启服务也能起来。我顺手把之前一直想调但没敢动的回收阈值改了一下。原来设的是30分钟空闲回收,但因为之前怕误伤就一直没用,只开着观察模式。这次升级完之后我直接把阈值降到20分钟,同时开了CPU判定。有个小插曲——我改完配置重启服务的时候,手快了忘了先停服务再覆盖配置文件,结果覆盖的时候服务还在跑,写进去一半被锁住了,文件变成只读,再重启就报错了。我赶紧把备份拷回来重新操作了一遍,吓得后背全湿了,机房空调冷风一吹打了个哆嗦。
第二件事是改调度策略。旧版本里用户组优先级是按字母排序的,导致A字头的组永远比Z字头的先抢到许可。我趁升级把策略改成了按项目紧急程度手工标优先级,每个组设一个权重值,高优的权重高。改完之后测试了一下,仿真组那边提交任务瞬间就进去了,以前他们排队起码等十分钟。插曲是改完策略之后我想验证一下,随便找了一台测试机连上去申请许可,结果发现自己被拦在门外了。查了半天发现是我的测试账号没加到任何组里,系统不认,直接给了个最低优先级。我在机房里花了十五分钟才想通这个问题,当时真想拍自己脑门。
第三件事是清理了一堆没用的旧配置文件。三年下来堆了各种测试用的option文件、备份副本、临时脚本,乱得要命。我趁这次升级统一整理了一遍,把还在用的几个文件重命名成规范的格式,剩下的全挪到一个archive文件夹里打包存起来。插曲是清理的时候我手一快,把一个正在被调用的白名单文件当成废弃的挪走了,结果重启后那组人的特殊长仿真策略没生效,还是按全局20分钟回收的。过了十来分钟有个工程师微信找我说“哥我仿真被踢了”,我才反应过来。赶紧把文件拷回去重新加载了一遍策略,他那边才恢复正常。

最后说两个许可服务器升级绝对不能踩的坑。第一个是升级之前一定要把license.dat和option文件各拷三份,分别放在系统盘之外的盘、U盘、还有你自己的笔记本里。别只备份在服务器本机,万一系统盘格式化了你连哭的地方都没有。我这次就亲眼看到升级包在解压的时候把我C盘根目录下的旧license文件给覆盖了,要不是我提前备了份到D盘,今天就摊上大事了。第二个坑是升级完之后别急着走人,至少要守半小时,持续敲lmstat看会话恢复正常了、日志没有报错才能撤。我有一次就是升级完看服务起来了扭头就走,结果第二天上班才发现某些低版本的客户端连不上新服务器,整整一上午都在帮人降级客户端,活该累死。
亲测好使,这周已经帮3个同事解决了同款问题。