如何迁移 vmware 上的 windows 及 linux 虚拟机到基于 kvm 的虚拟机

如何迁移 vmware 上的 windows 及 linux 虚拟机到基于 kvm 的虚拟机,第1张

我们发现 VMware vShpere 私有云成本太高,比如我们实验室随便一台服务器就有 512GB 内存,按照 VMware

vSphere Standard(标准版)的授权我们需要 512/32=16

个授权,每个授权1293.5美元(又涨价了),1台服务器就需要约2万美元(16个授权),这个授权只是版权价格(LICENSE

PRICE),还不包括每年的 1 YEAR SUPPORT &

SUBSCRIPTION(419.9美元),这是在抢钱不~,今年初我们买了3个授权来评估和测试,但是按照这个授权方案只能用在2台服务器上(1台

24GB 内存,1台 64GB 内存),VMware 的产品实在不适合我们,我们打算把 VMware ESXi 上现有的一些虚拟机迁移

OpenNebula/KVM 上。

最先迁移的是一台 Windows Server 2008 R2 虚拟机,这台虚拟机跑在 VMware ESXi 上专门用来运行

VMware vCenter Server(vCenter Server 只能安装在64位的 Windows 系统上),有些现成迁移工具比如

virt-v2v 等,不过个人还是喜欢自己动手,那些工具有时候不太好用。下面的步骤应该对其他的 Windows 版本也有效。

首先用 vShpere Client 登陆到 VMware ESXi 5.0 上打开防火墙设置,允许 ESXi 上的 ssh server

和 ssh client 可用,否则不能 ssh 登陆到 ESXi 也不能从 ESXi 上 scp 镜像到 KVM 服务器,设置具体在

Configuration >Software >Security Profile >Firewall >

Properties … >SSH Client 里:

然后 ssh 登陆 VMware ESXi 5.0 服务器(172.16.39.100)后,scp 所需要的镜像文件(后缀名为 .vmdk)到 KVM 服务器(172.16.39.101)上

$ ssh [email protected]

Password:

The time and date of this login have been sent to the system logs.

VMware offers supported, powerful system administration tools. Please

see www.vmware.com/go/sysadmintools for details.

The ESXi Shell can be disabled by an administrative user. See the

vSphere Security documentation for more information.

~ # scp /vmfs/volumes/localstore/vcenter/vcenter-flat.vmdk [email protected]:/root

把 VMware 的 vmdk 格式转化成 KVM 的格式,因为从 v0.12 开始 qemu-kvm 已经支持 VMware 的硬盘格式 v6 和 v7,所以这一步其实是可以省略的,换句话说 kvm 可以直接启动 vmdk 格式的虚拟机。

$ ssh [email protected]

# qemu-img convert vcenter-flat.vmdk vcenter.img

最后用 virsh create vcenter.xml 的时候记得 vcenter.xml 文件里面关于硬盘的部分是如下设置,还有记得打开 vnc 设置(别忘了 Windows 是图形界面的):

# vi vcenter.xml

...

<disk type='file' device='disk'/>

<driver name='qemu' type='raw'/>

<source file='/root/vcenter.img'/>

<target dev='hda' bus='ide'/>

<address type='drive' controller='0' bus='0' unit='0'/>

</disk>

<controller type='ide' index='0'>

<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>

</controller>

...

&ltgraphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'>

&ltlisten type='address' address='0.0.0.0'/>

&lt/graphics>

...

# virsh create vcenter.xml

Troubleshooting

如果启动 Windows 后用 vnc 客户端连接 KVM 服务器,Windows 启动过程中可能出现蓝屏 Stop 0x0000007B 错误,这是因为硬盘控制器驱动变了:

1.将kvm下虚拟机关机;

2.将kvm下img文件格式的虚拟机转换成vmdk格式,命令如下:

# qemu-img convert testvm1.img –O vmdk /tmp/testvm1.vmdk

3.在VMware vSphere环境里创建一个虚拟机和kvm环境虚拟机配置相同,不用创建磁盘使用刚刚转换的vmdk文件,开启虚拟机即可

一、kvm虚拟机静态迁移

1.静态迁移就是虚拟机在关机状态下,拷贝虚拟机虚拟磁盘文件与配置文件到目标虚拟主机中,实现的迁移。

(1)虚拟主机各自使用本地存储存放虚拟机磁盘文件

本文实现基于本地磁盘存储虚拟机磁盘文件的迁移方式,

(2)虚拟主机之间使用共享存储存放虚拟机磁盘文件

该方式只是在目标虚拟主机上重新定义虚拟机就可以了。

2.静态迁移过程如下

(1)确定虚拟机关闭状态

(2)准备迁移oeltest02虚拟机,查看该虚拟机配置的磁盘文件

(3)导入虚拟机配置文件

[root@node1~]# virsh dumpxml oeltest02 >/root/oeltest02.xml

(4)拷贝配置文件到目标虚拟主机上。

(5)查看虚拟机磁盘文件并拷贝到目标虚拟主机。

拷贝虚拟磁盘文件


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7157395.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存