1). 包括源主机操作系统名称,版本,主机名称,环境变量,驱动程序,进程,安装的软件,安装的服务,防火墙,内核参数,安全设置,用户配置,证书密钥,文件权限等系统基础环境
2). 根据进程名、端口号、防火墙配置,或者找到系统维护管理日志,根据文档查找当前服务器正在提供的服务,服务的安装手册、服务依赖的软件环境
3). 根据文档或者源主机当前的网络连接状态,主要是使用源主机的内网地址的相关主机,例如找到代理源服务器的相关主机,留意这些代理主机上的配置,如固定写好内网IP,域名信息等,需要一起更改,典型的例子就是nginx、HAProxy反向代理
4). 一些较为特殊的文件目录,软件编译目录,/etc/profile,~/.bash_profile,/etc/rc.local,~/.profile,~/.ssh,/etc/fstab,/etc/hosts,/etc/sysconfig等等
5). 如果迁移项目或步骤过多,可以做成相应的列表,便于对照参考,和防止遗漏,可参考附录
2. 准备目标主机。
1). 采用手动(可以逐条操作也可以编写脚本等)的方式,将目标主机配置成与源主机尽可能相同的软件环境测试目标主机
3. 切换网络参数。如果只是切换公网IP,不切换内网IP,由于内网IP可能会做一些网络内部的耦合,因此需要注意其他相关主机
迁移总结:
1. 文档化标准化的实施很重要,尽管也许很辛苦很累,但要尽可能去做
2. 已经发生的变更需要及时修改相关文档和告知相关人
3. 部署规范化,如固定的编译安装目录,人性化的软链接,严格参照文档
4. 合理利用工具和技巧,减少操作时间
5. 软件设计过程中尽可能的高内聚低耦合,尽可能支持横向扩展,达到无状态的软件设计是一种非常理想化的设计目标
6. 有一些硬件制造商提供了一些迁移工具或者信息收集工具,可以进行参考,如Dell的SystemManager、dset,Cisco的UCS Manager等相关工具
如何避免夜间迁移、升级或业务变更等操作:
1. 要想避免半夜升级,必须采用HA的系统架构(无单点故障),即当有一台或多台服务器宕机时,对用户无影响
2. 软件尽可能的松耦合,尽可能支持横向扩展
3. 合理利用自动化、脚本、计划任务等
4. 多写测试多做演练,例如究竟能否正常回滚等
5. 凡事提前沟通,有事好商量,;)
附录:
如“迁移数据收集工作表”“xxx变更表”等,迁移数据收集工作表可参考如下:
# 源服务器设置 设置标识 目标服务器设置状态结果 备注1 key1 value1 success
2 key2 value1 failed 原因,解决办法等
其他参考:
1.红帽Red Hat文档:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/
2.微软Microsoft TechNet:https://technet.microsoft.com/en-us/library/dd365353(v=ws.10).aspx
3.微软论坛中的迁移主题:https://social.technet.microsoft.com/Forums/windowsserver/en-US/home?forum=winserverMigration