去年有次机房搬迁,从老机房搬到新机房,全程 40 公里,客户是家做电商的,数据库一百多个 G,全在本地盘上。

搬迁方案讨论了一个月:走专线同步?客户说带宽不够,全量同步要两天。做快照打包传?数据在变动,怕不一致。最后定了最土的办法:停机,把服务器整个拆下来,用车拉到新机房,再上架启动。

听起来简单,干起来全是细节。

晚上十点,客户网站流量下来了,开始停机。数据库先关,应用全部停,然后逐台服务器优雅关机。关机前我把每台机器的 IP、主机名、网卡 MAC、插在哪个机柜哪个 U 位,全部抄了一遍——不抄不行,到了新机房全乱了。

最紧张的是拔硬盘。客户那台数据库服务器是 RAID10,四块盘,我一根根拔下来,用防静电袋装好,写上编号,放在泡沫箱里。装车的时候我跟押车的同事说:这箱子里是客户的全部家当,你人在箱子在。

五辆面包车,装了三十多台服务器,凌晨一点出发。路上我坐副驾,一路盯着后面装服务器的车,生怕颠一下把硬盘颠坏了。40 公里开了五十分钟,比平时慢一倍,司机说"拉服务器不敢开快,怕急刹"。

到新机房,先搬上架,按之前抄的清单一台台对号入座。接电、接网,然后开机。最紧张的时刻是数据库服务器起来的那一刻——我在控制台前看着它 POST,过了自检,进系统,然后 mount 检查数据,mdadm 看 RAID 状态,四块盘全部 online,数据一个字节没少。

客户那边早就等着了,我们确认数据库可以正常查询,才让他们开网站。凌晨四点,客户网站恢复访问,迁移完成。客户老板发了个红包,说"辛苦兄弟们了",我收下了,毕竟这一晚上谁也没合眼。

后来复盘,这次搬迁顺利,全靠那本"搬迁手册":每台机器什么位置、什么配置、什么线、启动顺序,全写在上面。最值钱的经验就一条:搬迁前花两天做文档,搬迁时就能省两小时;反过来,搬迁时手忙脚乱,一定是因为之前没做文档。

面包车拉服务器这事,听着像段子,干过的人都知道,这是最实在的办法。什么高速专线、云迁移,都不如把机器装上车来得踏实——前提是,你得先把那本手册写好。