把一个非raid的Linux机器转换成Raid,而且停机时间最短

我想使用两个新磁盘将非RAID系统转换为RAID1。 我想以最less的停机时间做到这一点。

而不是添加磁盘和closures到单用户模式来复制数据是否有任何方式来执行此转换,而系统正在运行,只是短暂的中断安装新磁盘/删除旧的?

这是我不久将要做的事。 它应该是这样的:

  1. closures并安装新驱动器

  2. 分区并创buildRAIDarrays

  3. Rsync数据

  4. Rsync再次

  5. 下降到单个用户

  6. 再次rsync

  7. 设置启动加载器

  8. 重新启动到新的驱动器

  9. 一旦你快乐,删除旧的驱动器

这涉及到两个或三个重启,当你执行第二个rsync时,你会有一些停机时间,但希望不会太长。 你应该知道第二个rsync花费多长时间来停止rsync的时间。 第二个rsync应该赶上在第一个rsync期间修改的文件。 尽量在第二个rsync之间留出尽可能less的时间,然后放到单个用户。 这减less了第三个rsync需要执行的数据量。

如果您不关心在复制期间丢失对修改的文件所做的更改,并且将LVM与当前磁盘配合使用,则可以创build当前磁盘的快照,并在系统处于联机状态时进行复制。 自创build快照以来对系统所做的任何更改都不会转移到新磁盘。

如果您不使用LVM,或者不能丢失对当前系统所做的任何更改,那么减less停机时间的一个好方法是使用rsync执行副本:在系统运行时首先运行它,然后复制完成后,login到单用户模式并再次运行rsync。 这次它只会复制自运行第一个rsync以来发生更改的文件,所以它应该更快。

如果您正在使用LVM,则可以使用“pvmove”命令。

我还没有testing过,所以你几乎可以肯定要做的第一件事就是build立一个类似你的系统的testing系统,然后通过你的计划过程来validation它是否正常工作喜欢和充实的细节。

它看起来像这样:

  1. 正常创buildRAIDarrays。
  2. 使用“pvcreate”将其转换为物理卷。
  3. 使用pvmove将LVM移动到RAIDarrays。 (完整阅读pvmove手册页了解其局限性)
  4. 从LV中移除非RAID光盘。
  5. 移动/引导到新的驱动器(可能通过另一个RAID-1arrays)
  6. 更新引导装载程序configuration并将引导装载程序放在两个驱动器上。
  7. 确保initrd具有适当的RAID模块。
  8. 重新启动并testing。

注意: pvmove有一个问题,可能会导致它在根分区上执行pvmove时发生死锁。

给这个镜头看看它是否有效。

肖恩