公司的运维负责迁移,我做一下笔记
公司所有服务器都在经典网络华东1区域下,技术总监痛下狠心决定迁移到VPC
阿里云资源:
OSS-----不区分经典和VPC
NAS------不区分经典和VPC
Redis—区分经典和VPC,有混访模式,迁移后原经典网络仍然能够访问
RDS-----区分经典和VPC,有混访模式,迁移后原经典网络仍然能够访问
- NAT-建立专有网络
- NAT-建立路由表
- NAT-建立交换机,可用区E,F,I都要建立一个交换机,IP段全部以10.111开头
注意每个可用区的交换机不要把10.111开头的IP段全部占用了,混访模式下VPC的ECS机器只能使用10.111开头的网络才能访问到RDS服务器 - 创建classlink, 经典网络和VPC通过classlink实现访问互通
- RDS迁移到VPC,绑定VPC交换机,使用混合访问模式,迁移不需要停服
在经典网络下所有ECS都可以用原来的访问地址访问,大多数ECS可以使用新的访问地址访问,只有少数可用区C,可用区D的ECS用新的RDS访问地址不通 - Redis迁移到VPC,保留经典网络访问地址
- 修改所有服务的RDS和Redis连接地址为VPC访问地址
- 部分可用区C和可用区D老的ECS无法迁移到VPC,只能废弃,在VPC下重新购买机器部署服务,把这部分服务器迁移掉以后,经典网络所有服务都是可以重启的了
- 多数可用区C和可用区D的机器可以直接预约迁移到VPC的可用区I
- 所有可用区E、F、I的机器可以直接迁移到VPC
本次迁移成功的一些前置准备我认为是做的很好
1.代码中所有连接都是使用机器名,所有机器的host全部配置了机器名,迁移到VPC以后只需要把host机器名指向的ip修改即可。例如程序中连接memecached时使用memcached1,host配置了memecached1指向的服务器ip
2.配置全部放在Spring Cloud Config配置中心中,修改数据库连接只需要修改一个工程即可
本次迁移遇到的一些坑
- cloudera迁移修改数据库/etc/cloudera-scm-server/db.properties,这里只是修改了ClouderaManage的数据库连接
在Cloudera的管理界面中Cloudera Management Service-》实例-》Activity Monitor-》配置-》数据库-》Activity Monitor 数据库主机名称 ,这里也有一个数据库连接设置 - 在经典网络ECS下对VPC的RDS连接地址能够ping通,最后发现java程序在经典网络下用VPC的RDS连接地址无法访问数据库
- 微信公众号忘记把NAT绑定的EIP地址加入白名单了
- Memcached迁移VPC以后,如果只是修改应用服务ECS的hosts是没有用的,所有用到memcached的java服务都需要重启
- cloudera集群不支持使用PrivateZone访问集群里面的机器,仍然需要配置hosts, 应用服务的ECS都可以去掉hosts配置全部走PrivateZone
- VPC网络下不能用25端口发送邮件,以前集成阿里云发送邮件使用的是默认配置,用的是阿里云的25端口,导致邮件服务一度不能使用