算我一个麻烦,我有一个正在运行的服务器,上面有常用的服务(httpd、mail、sql),看起来我必须非常快才能防止完全的数据丢失(我的 RAID 阵列出现故障,所以我现在依赖单个硬盘)。
整个系统建立在 HowtoForge 的指南之上,正如我所读到的Squeeze 上的一个,看起来我可以容易地?将我的(虚拟)用户迁移到新的机器上。
我确实知道这是一个非常具体的问题,但您能告诉我整个迁移过程中的一些要点吗?哪些事情可能比较棘手,我应该最关注哪些方面?您将如何开始这个过程?
一些背景信息:
- 两台服务器相距 200 公里,因此迁移应通过互联网进行
- 两个服务器都将使用 Debian,旧服务器是 Ech,新服务器是 Squeeze
- 关键服务是邮件,网站可能会暂停一段时间
- RAID 表示 RAID 1 中的两个磁盘(两台机器)
- 旧盒子是所有托管域的 DNS1
我的(真正)基本大纲:
- 建立一个与旧系统类似的系统(类似的虚拟邮件结构,使用相同加密类型存储的密码,因为我无法分辨旧的密码)
- 创建一个域名,我可以在其中检查一切是否正常(dns、电子邮件、www 都可以)
- 不断迁移域名,直到旧域名不再起作用
我的盲点:
- 找不到关于如何在 Squeeze 上执行 RAID-1 的简要说明(Lenny 的操作指南就够了吗?)
- 如何复制特定文件夹(例如用户的邮件文件夹)在需要时具有特定的用户权限?(rsync 会这样做吗?)
- 如何在新机器上设置 DNS(旧版本为 DNS1)(新机器也应该是 DNS,并且迁移的域应该使用其自身作为 DNS1?)
- 如何防止电子邮件丢失(由于 DNS 刷新时间)(我需要将新机器设置为 MX 吗?)
答案1
您的基本轮廓大致正确。
squeeze 安装程序可以很好地完成软件 RAID。一个不同点是 squeeze 默认使用 grub2;lenny 使用 grub-legacy(我认为是 0.9)。这使得某些 grub 管理有些不同,特别是在确保 grub 在发生故障时从两个磁盘启动方面。您始终可以恢复到 grub-legacy,上次遇到此问题时我最终就是这么做的。不过,测试您正在执行的操作是值得的,以确保如果任何一个磁盘发生故障,您都可以重新启动。
要复制数据,请务必使用 rsync。我会确保首先设置正确的帐户,并使用相同的 uid/gid,然后使用 rsync,但您始终可以在之后修复此问题。rsync -avPHAX 应该可以获取所有内容(-a 可以获取大多数内容,但 -H[ard links] -A[CLs] 和 -X[tended properties] 除外,因此这很有用。
假设您同时进行有效升级,请做好服务以微妙方式中断的准备。配置将略有变化。最近做过类似的事情,我想我更愿意进行类似迁移,然后在事后某个时间升级最终主机,因为同时迁移所有内容和管理升级是一项艰巨的任务。
针对您的其他痛点进行了更新:
对于 DNS,我会将所有 DNS托管一步即可将 DNS 记录迁移到新机器。保留记录的初始状态,但设置刷新时间(10 分钟左右)。这样,您便可以在完成每个域的移动后将 DNS 记录迁移到新机器。移动 DNS 可能需要更新您托管的任何域的 whois 记录,因此请记住这一点。事实上,在开始其他任何操作之前,立即设置所有域的刷新时间 - 没有什么比缓存错误导致问题更糟糕的了。
关于电子邮件丢失:将邮件移至新服务器时,请确保 DNS 记录已更新,以将主 MX 指向新服务器,并确保旧服务器仍配置为允许为您的域进行中继。只要您的旧服务器和新服务器都具有最新的 DNS 视图,旧服务器上的邮件服务就会发现它不再是主 MX,并将所有电子邮件转发到新的主 MX。邮件还会处理短暂的传递延迟 - 因此您可以关闭或防火墙所有电子邮件对两台计算机的访问,一次移动所有内容,在新计算机上进行测试,然后移动 MX 记录并在新计算机上打开邮件。SMTP 旨在处理中断,任何相当短的中断(我认为少于 4 小时)甚至不会生成临时错误通知。
更新后添加:
另一种可能性是在您的新服务器上创建一个 VM,并将整个旧服务器 rsync 到这个新 VM 的磁盘映像中。然后您可以启动 VM 并更新 IP 地址等,并在这个 VM 中拥有原始服务器的完整工作副本。可能要少花很多力气,但如果您不熟悉 KVM 或 Virtualbox 等 VM 堆栈,那么可能不值得。