我有一个过时的Linux应用程序服务器正在运行,我想迁移到更大规格的KVM虚拟服务器。
我没有物理访问机器本身或硬盘。
我只能通过networking访问服务器。
如果它可以用于任何事情,我已经有一个空的备用HD安装在服务器。 这个第二个HD比那个数据所在的那个大三倍。
请询问您可能需要的任何其他细节。
假设你没有远程控制台访问,或者是通过一些糟糕的可怕的无用Java applet:
从本地系统中,将正在运行的磁盘映像的副本捕获回本地系统:
ssh [email protected] "dd if=/dev/sda bs=1024k" > p2v.img
等几个小时。 根据硬盘大小和可用带宽,这可能需要很长时间。
你将会得到一个文件p2v.img 。 将其挂载到KVM虚拟机作为原始磁盘映像,然后fsck ,因为会出现错误。
既然你有远程控制台访问服务器,我会做这样的事情:
init 1 ,或者使用1添加到引导命令行重新启动)。 ifconfig和route命令。 P2V到远程pipe理程序(或存储服务器):
dd if=/dev/sda bs=1024k | ssh [email protected] "cat > /path/to/p2v.img"
使用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 )