移动Linux服务器到另一个主机

我有一个任务将Linux服务器从1个专用服务器移动到另一个。

一般来说我的计划如下:

  1. 晚上的时间 – closureshttpd和mysql。 RSYNC通过SSH。
  2. 一天的时间 – 打开http和mysql。
  3. 晚上关掉httpd和mysql。 RSYNC通过SSH。
  4. 晚上的时间。 在两台服务器上打开httpd和mysql。 更改DNS条目。
  5. 一天的时间。 监视服务器状态。

所以主要是同步mysql和httpd我会使用rsync(没有mysqldump)。

听起来不错? 任何警告?

我build议两个解决scheme。 就我个人而言,我更喜欢Logical Clone方法,因为它可以用较less的停机时间来完成,并且数据库复制是一种多function的获取其他原因的function。 然而,Exact Clone方法与您提出的方法类似,它是通用的强制迁移任何服务器的方法。

精确的克隆

  1. 减lessDNS条目的TTL,让您的生活更轻松。
  2. rsync源目标。 您甚至不必closures源代码中的服务; 任何不一致将在步骤(4)和(7)中得到解决。
  3. 或者,您可以运行一些testing新的服务器。 找出需要在目标服务器上进行哪些configuration更改才能使其工作。 你甚至可能想要重启目标机器,以确保一切都干净利落。
  4. rsync源来重新定位,以撤消对(3)中介绍的新服务器造成的任何“损害”,找出更多的差异,并了解运行增量rsync需要多less时间(这是一个指示多less停机期望)。
  5. closures两台机器上的所有服务。 确保源机器上的服务保持closures状态; 你不想在旧机器和新机器上出现分歧数据的“裂脑”。
  6. 更改您的DNS条目。 假设你不打算回滚,你可以使用正常的TTL作为新的条目。
  7. rsync源再次定位。
  8. 在步骤(3)中发现,在目标机器上应用所需的任何configuration更改。
  9. 在目标机器上启动服务。

逻辑克隆

研究设置MySQL复制 。 如果您的MySQL服务器上没有启用二进制日志logging,则必须简单地反弹您的数据库以启用它。 在任何情况下,我都强烈build议启用二进制日志logging,因为它可以方便地执行将来的操作,例如几乎为零的停机时间来升级MySQL。

如果你设置了循环复制 ,如果MySQL是你的应用程序唯一的数据存储,你甚至可以同时运行新的和新的web服务器。