阿里云网络迁移引起公司服务器宕机的24小时吐血恢复纪实

7月初收到阿里云邮件,提示说须要作经典网络预定迁移到专用网络(更安全,配置更灵活的虚拟网络空间), 因而乎就随意天然选择了一个工做日日期(下午14点:30预定迁移,客户使用高峰期,这个时间选的我也是后悔莫及o(╥﹏╥)o)。数据库

如期迁移,14:35开始, 收到客户反馈,PC系统和手机端APP、小程序均没法使用, 内部测试人员检查结果也显示没法正常使用, 服务器处于瘫痪状态(挖槽, 阿里云生产历来没有所有挂过, 我也没有经手过阿里云的初期搭建,全部的人都在问我咋回事,公司没有运维,我是兼职运维(✖人✖))。小程序

因而开始了24小时通宵恢复的血泪史。。缓存

--------------------------------------------事件描述-------------------------------------------------安全

2018-7-7 14:30 按照计划阿里云系统自动开启迁移进程,服务器

迁移流程为:网络

自动停机 -> 自动迁移 -> 自启动运维

全部实例在10分钟自动迁移完毕, 此时收到客户反馈服务器没法使用,测试

经检查问题为:阿里云

1. 本公司在阿里云有两个阿里云帐号(之前搭建阿里云的同事想不明白脑子哪根筋搭错了, 开两个帐号,画个圈圈诅咒下他),xxxA@gmail.com(简称A)和xxxB@gmail.com(简称B)。两个帐号的实例数量分布状况为: A : 12 个实例 B : 20 个实例 + 2个RDS数据库 + 2个memcache + 1个Redisspa

因为A服务器迁移后, 网络变动致使A,B服务器间没法进行局域网通讯(经典网络和专用网络间实例没法进行局域网通讯, 以前未考虑到这点!!!),故A没法链接部署在B上的数据库,同时A和B服务器之间的接口通讯也依赖局域网通讯,也被中断, 二者致使整个系统服务器中断(当时看到这一点,我就知道晚上的睡眠时间已经喂狗了,,)。

--------------------------------------------解决办法描述-------------------------------------------------

经和阿里云技术客服沟通, A进行的网络迁移是不可逆,故没法作还原!! 只能把B内的实例从经典网络迁移到专用网络, 从而构建A和B间实例的局域网通讯。
问题解决步骤:
1.B内的全部实例从经典网络迁移到专用网络
2.AB均需配置云企的专用网络交换机和VPC,经过交换机让AB帐号实例ping互通
3.分开配置A, B内实例的内网IP网段, 防止交换机IP冲突
4.网络迁移后,A,B实例的内网IP所有发生了变化,修改每一个实例内的 /etc/hosts 的配置, 把旧内网IP改为新的内网IP
5.RDS数据库不支持经典网络切换到专用网络(后来发现也能够切换,后话了),须要生成RDS外网访问域名, 替换掉全部实例中配置中的数据库连接
6.数据库的帐号是根据IP进行受权,内网IP变化有部分帐号须要从新修改受权(从新grant)
7.检查全部实例中的内网IP配置, 把旧的内网IP修改成新的内网IP
8.RDS的白名单中把全部实例的新的内网IP设置进去防止被拦截
9.逐个重启数据库和全部实例, 查看日志检测是否正常启动
10.测试实例是否可以正常访问, 检查PC、APP、小程序是否正常
11.通知产品人员和测试人员进行产品可用性和稳定性测试
内部确认系统正常后, 通知运营和客户恢复系统使用

因为阿里云ECS服务器总共加起来有二十多台, 加上RDS数据库、缓存、TFS、SolrCloud、MQ等, 几乎每台机子都要检查修改IP, 从新启动测试是否正常。。

中间被有几个点被卡住:

1. 两个帐号对应两个专用网络, 这两个专用网络对应的网段(第三位)不能配置相同,会致使IP网段冲突, 阿里云的小哥帮定位了俩小时!!(领导一直当时坐我旁边, 我也很无奈啊~~)

2. TFS不知道如何启动(命令没找到, history也没找到~~),摸索啊摸索,尝试啊尝试, 终于找到了启动方法:

cd /opt/tfs/scripts
#启动dataServer数据库(两台): 
./tfs start_ds 1-2 #启动nameServer :
.
/tfs start_ns

3. rokectMQ恢复,修改broker配置的IP

 

所有搞完已是下午三点,整整24小时没闭眼, 虽然累趴,可是也算是终于所有把生产服务器摸清了一遍, 下次也更有底了,这就是运维的苦吧~~