将 Linux 主机复制到新硬件

将 Linux 主机复制到新硬件

我需要进行主机到主机的迁移,从旧硬件迁移到新硬件。具体来说,从 HP BL460G7 迁移到 HP BL460G8。新旧服务器均有 2 个 600GB 2.5 英寸驱动器,并配置为 RAID1。我可以承受每台服务器 30 分钟的停机时间。

需要迁移四台服务器,最小的服务器在逻辑卷中总共分配了 120GB,最大的服务器分配了 510GB。三台服务器运行 RHEL5,一台运行 RHEL6。

我一直在绞尽脑汁想如何在给定的时间范围内完成此操作并且不破坏操作系统和关键数据。

我唯一的想法是:

  • 从旧服务器中删除一个驱动器(服务器已打开)
  • 从新服务器中删除两个驱动器(服务器已关闭)
  • 从托盘中取出 G7 驱动器并放在一边
  • 从托架中取出 G8 驱动器并安装到 G7 托架中
  • 将 G8 驱动器安装到 G7 驱动器盒中并安装到旧服务器中
  • 等待 RAID 控制器重建 RAID1 阵列
  • 完成后关闭旧服务器
  • 移除 G7 驱动器盒中的 G8 驱动器
  • 将 G8 驱动器安装到 G8 托架中并插入 G8(安装单个驱动器)
  • 启动 G8 服务器
  • 等待操作系统启动
  • 当操作系统启动后插入剩余的驱动器
  • 等待 RAID 阵列重建

这听起来合理吗?

编辑:RHEL5 是 RHEL5.10,RHEL6 是 RHEL6.6

我还应该指出,其中两个系统是热四节点集群的一部分,该集群几乎不断复制应用程序“事件”(它是关键基础设施系统的一部分)。我们有备份,但我们只在系统完全故障的情况下使用。

先前的测试表明,系统之间的最大“dd”约为 50MBps,这太慢了。

编辑:我打算依靠葛藤来接收和处理硬件变化。

答案1

需要注意的是,根据发行版的不同,可能还需要其他步骤。最值得注意的是驱动程序(感谢@ewwhite 指出这一点)。

  1. 从 livecd/usb 启动新服务器。
  2. 在新驱动器上准备分区和引导块。
    • 根据设置,这可以通过复制 MBR/bootblock 来完成。
  3. 建立文件系统。
  4. 从旧服务器执行 rsync 到新服务器。
    • 您可能需要再次执行此操作以查看后续 rsync 需要多长时间 - 如果少于 30 分钟,请继续。
    • 这是您可以实际尝试的时间,看看新系统是否启动。只需小心不要引起任何 IP(或其他)冲突。
  5. 关闭所有写入文件系统的服务
    • 最好重新启动到 livecd/usb
  6. 再次将数据从旧服务器 Rsync 到新服务器
  7. 重启新服务器并使用它

这样一来,您仍能保持原始服务器完好无损,因此如果出现任何问题,都可以轻松恢复。但这需要一些知识(grub/rsync/分区),因此我建议在上线之前提前做一些准备工作和测试。

答案2

两件事情:

  • 我将重新构建并 rsync 数据。
  • 您的停机时间分配/窗口似乎太短。30 分钟在特定情况下是可行的,但不应该根据实际完成工作所需的条件来规定实际的停机时间要求?

根据每个服务器中包含的数据,数据量搅动以及您的配置方案,将必要的操作系统安装到新的 Gen8 ProLiant 上并在您可以静止数据的位置同步设置和其他数据部分可能是有意义的。

也许可以制作一个种子副本,并根据后续 rsync 中获取文件更改所需的时间来推导出停机时间要求。如果您需要加速传输过程或拥有大量小文件,则有可以帮助解决这个问题的技术

我经常进行此类转换。使用类似的 Linux 安装,您几乎不需要比准确的软件包列表(可通过 Yum 或 RPM 轻松获得)、配置目录(例如/etc)和数据分区更多的东西。如果您还没有 kickstart 配置系统,您可以利用该/root/anaconda-ks.cfg文件来了解 G7 系统的构建方式。

回答您关于简单移动磁盘的问题,根据您提到的特定 RHEL 版本,这绝对是可能的。您可以移动磁盘/托盘,并且 HP Smart Array 元数据在系统中的 P410 和 P420 控制器之间兼容。但是,如果不先完全更新新系统中驱动器和组件的固件,我不会这样做。

答案3

如果你之前的操作系统版本能够处理新硬件(主要是 RAID 控制器),你可以尝试克隆Zilla

要检查是否可以从一个硬件移动到另一个硬件,您可以使用 dd 做一些技巧将所有数据从旧服务器传递到新服务器。

使用以下实时发行版启动新服务器:系统救援光盘,使用 IP 地址和 dd 命令进行配置,如下所示:

nc -l 8000 | dd of=/dev/sda

在当前服务器上执行

dd if=/dev/sda | nc ${newserverip} 8000

这会将您服务器的 /dev/sda 的原始副本复制到新服务器的 /dev/sda。这样,您就可以在不停机的情况下执行测试,并且几乎不会承担任何风险。

答案4

项目经理拒绝了我延长停机时间的请求。

问题中概述的建议程序在测试中效果很好。停机时间不到 20 分钟。我使用 hpacucli 实用程序来监控 G7 和 Gen8 上的进度,这非常有用。

我还没有愤怒地这样做过,但正如所说的那样,这在 BL460G7 到 BL460 Gen8 上的 RHEL 5.10 测试中效果很好。

我没有更新固件。

G7 中的初始 RAID1 重新同步花费了一个多小时。Gen8 中的重新同步花费了不到 50 分钟。这让我很担心,但我没有发现任何问题。

再次感谢所有有用的评论和建议。

相关内容