以最少的停机时间更改网络服务器

use*_*531 0 migration web-server live-migration apache-2.2

我在生产中有一个网络服务器。它的 IP 是 111.111.111.111,它被称为 ServerA。服务器除了存储脚本文件外,还存储用户上传的文件,并有一个数据库。应用程序使用通配符子域,其中 foo.example.com、bar.example.com 等转到公共虚拟主机,服务器代码根据子域名称进行适当响应。我的域名注册商指向 IP 111.111.111.111 并设置为支持通配符。

我需要将网络服务器更改为 IP 为 222.222.222.222 的新服务器,它被称为 ServerB。

应采取哪些步骤以最少的停机时间迁移服务器?

以下是我的初步想法。如果不正确或我遗漏了步骤,请发表评论。

  1. 在 ServerA 上发布系统将停机维护的通知。
  2. 在 ServerB 上设置 Apache 类似于在 ServerA 上的设置,并在 ServerB 上添加另一个虚拟主机,ServerName 为 222.222.222.222(稍后会详细介绍)。
  3. 在 ServerA 上设置 Apache 以显示停机维护页面,而不是访问应用程序脚本。
  4. 将脚本文件、上传的用户文件和数据库从 ServerA 复制到 ServerB。
  5. 将域注册商更改为指向 IP 222.222.222.222。
  6. 在 ServerA 上设置 Apache 以将所有请求重定向到 IP 222.222.222.222。这将如何处理子域要求?
  7. 等待域名更改传播。在此期间我会失望吗?
  8. ServerB完全测试后,取消ServerA的服务计划。

Mic*_*ton 6

怎么样宕机迁移?

这是我对此类迁移的总体计划:

  1. 在旧服务器和新服务器之间设置临时 VPN(例如使用 OpenVPN)。
  2. 将整个应用程序从旧服务器复制到新服务器。
  3. 通过VPN在旧服务器和新服务器之间建立数据库复制,旧服务器为主,新服务器为从。
  4. 等待所有数据库被复制。可能还要等一下。
  5. 复制完成后,直接连接到新服务器(使用 /etc/hosts 技巧)并验证应用程序是否正常工作,Web 服务器是否配置正确等。
  6. 打破主/从关系,将旧服务器上的应用程序配置为通过 VPN 与新服务器上的数据库对话。
  7. 更改 DNS 记录。在等待 TTL 到期时,有些用户会访问旧服务器,有些用户会访问新服务器,但两者都将使用新服务器上的数据库。
  8. 当 TTL 到期并且旧服务器不再接收流量时,将其停用。取下临时 VPN。