如何仅通过networking访问将物理系统迁移到KVM虚拟服务器?

我有一个过时的Linux应用程序服务器正在运行,我想迁移到更大规格的KVM虚拟服务器。

我没有物理访问机器本身或硬盘。

我只能通过networking访问服务器。

如果它可以用于任何事情,我已经有一个空的备用HD安装在服务器。 这个第二个HD比那个数据所在的那个大三倍。

请询问您可能需要的任何其他细节。

假设你没有远程控制台访问,或者是通过一些糟糕的可怕的无用Java applet:

  1. SSH到远程系统,并closures尽可能多的服务。 基本上所有的东西,但SSH服务器本身。
  2. 从本地系统中,将正在运行的磁盘映像的副本捕获回本地系统:

    ssh [email protected] "dd if=/dev/sda bs=1024k" > p2v.img 

    等几个小时。 根据硬盘大小和可用带宽,这可能需要很长时间。

  3. 你将会得到一个文件p2v.img 。 将其挂载到KVM虚拟机作为原始磁盘映像,然后fsck ,因为会出现错误。


既然你有远程控制台访问服务器,我会做这样的事情:

  1. 从远程控制台,使系统进入单用户模式(以root用户身份运行init 1 ,或者使用1添加到引导命令行重新启动)。
  2. 手动启动networking,例如使用适当的ifconfigroute命令。
  3. P2V到远程pipe理程序(或存储服务器):

     dd if=/dev/sda bs=1024k | ssh [email protected] "cat > /path/to/p2v.img" 
  4. 使用p2v.img作为磁盘创build一个新的KVM虚拟机,启动并进行必要的更改。


virt-v2v工具还可以将Linux服务器P2V到KVM虚拟机。

所有主要的hypervisor都有一个本地的P2V工具。 select一个pipe理程序并使用它的工具。

一个为我工作的命令行:

  dd if=/dev/sda1 | (ssh [email protected] of=/some-path-on-remote/file.img )