迁移现场服务器

我遇到了麻烦 ,我有一个正常运行的服务器(httpd,mail,sql),看起来我必须非常快速地防止数据丢失(我的RAIDarrays失败,所以我依赖于一个单一的hdd现在)。

整个系统build立在HowtoForge的howto上,当我读到Squeeze上的这个时 ,看起来好像我可以轻松? 将我的(虚拟)用户迁移到新框中。

我真的知道这是非常具体的问题,但是能否告诉我整个迁移过程中的一些重要问题。 哪些事情可能会很棘手,我最需要关注的地方在哪里? 你将如何开始这个过程?

一些背景资料:

  • 两台服务器相距200公里,因此迁移应该通过互联网进行
  • 这两个服务器将是Debian,旧的是Etch,新的将是Squeeze
  • 关键的服务是邮件,网站可以暂停一段时间
  • RAID表示RAID 1中的两个磁盘(两台机器)
  • 旧框是所有托pipe域的DNS1

我的(真的)基本概述:

  • build立一个类似旧系统的系统(类似的虚拟邮件结构,存储密码相同的encryptiontypes,因为我不能告诉旧的)
  • 创build一个域,我可以检查一切正常(DNS,电子邮件,万维网是好的)
  • 在域之后迁移域,直到旧域无所事事

我的盲点:

  • 找不到关于如何在Squeeze上执行RAID-1的简要说明(一个Lenny howto就足够了?)
  • 如何在需要时复制特定用户权限的特定文件夹(例如用户的邮件文件夹) ? (rsync会这样做?)
  • 如何在新机器上设置DNS (旧的DNS1) (新机器也应该是DNS,迁移的域名应该使用自己作为DNS1)
  • 如何防止电子邮件丢失(由于DNS刷新时间) (我需要将新机器设置为MX?)

你的基本轮廓或多或less是正确的。

挤压安装程序将做一个软件RAID就好了。 有一点不同的是,squeeze默认使用grub2。 lenny使用grub-legacy(0.9我认为)。 这使得一些grubpipe理有所不同,特别是在确保grub将从两个磁盘启动以防故障的情况下。 你总是可以恢复到grub-legacy,这是我最后一次遇到这个问题时所做的。 它会花钱testing你正在做什么,以确保你可以重新启动,如果任何一个磁盘失败。

要跨数据复制,确实使用rsync。 我会确保正确的帐户首先设置,与同样的uids / gids,然后rsync,但你可以随时解决这个问题。 rsync -avPHAX应该得到所有的东西(-a除了-H [ard links] -A [CLs]和-X [tended attributes]外,都可以获得大部分的东西,所以这很有用。

鉴于您正在同时进行有效的升级,请准备服务以微妙的方式突破。 configuration将稍微改变。 在最近做了类似的事情之后,我想我会喜欢做类似于迁移的事情,然后在事实之后的某个时候升级最终的主机,因为迁移所有事情并同时pipe理升级成为一项艰巨的任务。

更新了您的额外痛点:

对于DNS,我会一举将所有DNS 托pipe移到新机器上。 将logging保留为开头,但将刷新设置为正确(10分钟左右)。 这使您可以在完成移动每个域时将DNSlogging移动到新计算机上。 移动您的DNS可能需要更新您主持的任何域名的whoislogging,因此请记住这一点。 事实上,在开始其他任何事情之前,为所有域设置刷新 – 没有什么比缓慢的结果导致问题更糟。

关于电子邮件丢失:在将邮件移动到新服务器时,请确保DNSlogging已更新,以将主MX指向新服务器,并确保旧服务器仍被configuration为允许您的域名进行中继。 只要您的新旧服务器都具有最新的DNS视图,您的旧服务器上的邮件服务将不再是主要的MX服务器,并且会将任何电子邮件转发到新的主服务器上。 邮件也将处理交付短暂延迟 – 所以你可以closures或防火墙所有的电子邮件访问到两台机器,立即移动一切,在新机器上testing,然后移动MXlogging,并在新机器上打开邮件。 SMTP旨在处理中断,任何合理的短暂中断(我认为不到4小时)甚至不会产生临时错误通知。

更新后添加:

另一种可能性是在新服务器上创build一个虚拟机,并将整个旧服务器rsync同步到这个新虚拟机的磁盘映像中。 然后,您可以启动虚拟机并更新IP地址等,并在该虚拟机内部拥有原始服务器的完整工作副本。 可能会less一些,但如果你不熟悉像KVM或Virtualbox这样的VM堆栈,那么这可能不值得。