一次系统迁移

这次系统迁移之前没做任何其它部署,直接是断电后运输到新机房重新上架的迁移方式。
这样的系统迁移其实是非常可怕的,因为根本没有倒退的机会。所以这种系统迁移更要做好全面的部署。

  1. 和公司内部的相关开发和运营部门协商到停机上架的时间,一般这些都是半夜操作进行,所以可见运维人员的辛苦,半夜还得工作。
  2. 和相关开发部门确认好需要迁移的机器,不要停机的时候有人就开始大叫了。
  3. 在商务流程跟迁移的相关机房走好流程,需要出什么机器,需要进什么机器,别机器下来了不让走,机器过去了不让上架这样来耽误时间。
  4. 确认这次迁移涉及到域名,以及是否有其它域名调用迁移机器中的相关接口。
  5. 提前确认好上架后的IP和子网掩码和网关。
  6. 在迁移前备份好相关数据,万一数据在迁移过程中丢失什么就还有恢复的余地。
  7. 出相关的系统升级页面,在迁移期间让用户访问到一个简单的HTML页面显示系统正在升级,别直接来个404页面,这样用户体验就很差。
  8. 在迁移前设计好整个迁移的路程等等。
  9. 系统上架后立刻修改对应的IP,如果系统内部还互相调用,那还需要调整内网IP和hosts指向。最好不要在程序里修改IP。
  10. 保证远程连接或SSH是否能够正常连接。
  11. 自己通过笔记本修改相关Hosts记录来访问迁移的网站。
  12. 访问正常后修改DNS的相关记录。
  13. DNS记录生效后自己先访问测试下是否一切正常,
  14. 通知开发和运营部门报告迁移完成。

迁移网站的基本过程

首先需要在新服务器上安装系统,最好是跟原来的被迁移服务器上操作系统相同,这样就省的在新服务器上重新编译系统软件了。但是如果你要从linux迁移到freebsd平台上那真的需要重新编译了。

其次要理清所有需要迁移的服务器上相关域名和系统平台软件,比如apache, nginx, lighttpd, mysql, php, lucent等等,如果相同系统平台,那只需要把相关软件目录打包传到新服务器上就可以了。当然也有个前提是以前安装都要通过–prefix来指定目录,如果默认安装那就会把这些系统软件分散到系统其它目录之中。

再次是迁移程序数据,这些如网站,数据库等等,这些一般是先通过打包再传输到新服务器上,然后在旧服务器上启动rsyncd服务端,然后再在新服务器上通过rsync来同步数据。这样是为了防止漏传输相关数据。

接着是让开发修改相关配置文件,比如修改连接数据库地址等等,但是这些最好在系统hosts里做,这样可以为以后再次迁移节省很多时间。

然后我们需要修改crontab,logrotated等等这些系统配置,特别对于不同系统平台,那更是要修改更多的系统配置文件。

在本地指下hosts来访问网站,如果有时间还可以再次进行压力测试。

关闭原有网站的动态内容,如果有CDN,那让CDN进行强制缓存。然后我们再次同步网站数据,千万别把新的配置文件给覆盖掉。以及同步数据库等等。

最后让重新指下网站的A记录,或者让CDN指向新的源站。