如何以最less的停机时间重新安装实时生产服务器?

我需要重新安装在VMWare VPS上运行的Ubuntu服务器。 最简单的方法当然是从迷你ISO进行全新安装。 但它是一个生产服务器,我不能承受一个小时或更长的停机时间。 是否有可能重新安装几乎没有停机时间(比如15分钟左右)?

换句话说,我正在寻找一种方法来升级Ubuntu服务器上的操作系统版本,而不会出现明显的停机时间。 我将手动传输所有设置和数据。

服务器事实:

  • Ubuntu服务器10.04.2 LTS amd64
  • VMWare VPS与控制台访问(我可以挂载本地ISO映像)
  • 单个驱动器:
    • /boot ,在sda1 @ ext4上为92 MB
    • / ,在LVM root @ ext4上为1.5 GB
    • /srv ,在LVM data @ ext4上为19 GB
    • 交换LVM swap

我还没有使用Linux文件系统工具( chroot等)的经验。 不过, 我猜想 类似于下面的行动计划可能工作( host是目标VPS机器, upgrade是新的操作系统):

  1. 安装升级操作系统

    在本地虚拟Box上安装一个新的Ubuntu服务器。

  2. 转移服务和设置

    从当前操作系统传输服务和设置以升级操作系统。 我保持configuration尽可能便携,并使用etckeeper来跟踪configuration更改。

  3. 将OS文件系统升级到主机

    我打算使用rsync将升级操作系统文件系统复制到主机。 但是把它放在主机上? 我想到:

    • 一个单独的分区; 我需要收缩主机上的LVM data ,并为升级OS文件系统准备新的分区。

    • 一个文件映像; 我会在主机的/srv分区上创build一个文件映像,将其挂载到主机上(不知道该怎么做),并将升级的操作系统文件系统复制到主机上。

    • 一个文件夹; 我会将镜像转移到主机/srv分区上的文件夹中。 如果可能的话,这将是IMO的最佳select。

  4. 用升级的OS文件系统replace当前的OS

    我知道这取决于镜子被转移到哪里。 在任何情况下,都应该可以首先进行testing,然后再replace文件系统。 我可以负担得起重新启动,并使用恢复控制台或启动微型ISO的。

步骤3和4是我需要指示的主要问号。 如果您可以build议更改我的“计划”或采取其他方法,请继续。 参考说明或文件,将不胜感激。

编辑: build议如果我没有其他解决scheme,我会去一个克隆机。

我不知道你的VPS提供商与你的商业关系是什么,但是如果这是我的VMWare环境,我只需简单地克隆当前的生产虚拟机,用相邻的IP地址提取克隆,应用更改/更新,移动任何从克隆以来的生产改变,testing更新的克隆,然后快乐切换IP,并最终杀死原来的虚拟机。