迁移相关介绍:
VMware作为系统虚拟化领域的开拓者和市场领导者之一,其虚拟化产品功能比较强大,易用性也非常的强,所以被很多人了解和使用。不过,美中不足的是其企业级的虚拟化产品ESX/ESXI系列许可证授权费比较昂贵。不管从KVM完全免费的角度还是从KVM基于Linux内核且完全开源的角度来看,如果考虑从VMware迁移到KVM虚拟化方案,也许这篇文章可以帮到你。
从vmware迁移到KVM,我这里选择的是通过virt—v2v工具来实现,首先我们聊一下什么是virt-v2v?
virt-v2v工具可用于将虚拟客户机从一些Hypervisor(也包含KVM自身)迁移到KVM环境下,他要求目的宿主机中的KVM是由libvirt管理的或者由RHEV管理的。virt-v2v是由Redhat的工程师Matthew Booth开发的命令行工具,它也是一个完全开源的项目。除了Matthew自己,也有一些其他开发者为该项目贡献过代码。可以通过"git clone git://git.fedorahosted.org/virt-v2v.git"来克隆最新版的virt-v2v开发源代码。
virt-v2v默认会尽可能由转换过来的虚拟客户机使用半虚拟化的驱动(virtio)。根据Redhat官方对virt—v2v工具的描述,RHEL 6.x系统中的virt-v2v工具支持从KVM、Xen、VMware ESX等迁移到KVM上去(最新版的还支持VirtualBox的转换)。
virt-v2v工具的迁移并非动态迁移,在执行迁移操作之前,必须要在宿主机(Xen、VMware等)上关闭待迁移的客户机,所以,实际上可以说virt—v2v实现的是一直转换,将Xen、VMware等虚拟客户机转化成KVM客户机。一般来说,virt-v2v要依赖于libvirt,让libvirt为不同的虚拟产品提供一个公共的适配层,为向KVM转化提供了必要功能。
根据Redhat官方文档的介绍,virt-v2v的可执行程序以及在一些linux发行版中发布了。可以直接使用"yum install virt-v2v"来安装。
具体步骤如下:
1、如果虚拟机上安装了 VMware Tools,必须先卸载它。因为 KVM 的虚拟机不支持 VMware Tools 里面的虚拟驱动。
2、在 VMware ESX 上停止等待迁移的虚拟机,因为 virt-v2v 只支持静态迁移。
3、为自动登录 VMware ESX 服务器创建 .netrc 文件。VMware ESX 服务器的连接需要授权,virt-v2v工具支持连接ESX时使用密码方式的授权连接,它默认读取$HOME/.netrc文件中的机器名、用户名、密码等信息。这与FTP命令类似。如果主机系统没有这个文件,就手动创建它。并且 .netrc 文件需要600权限,使 virt-v2v 工具可以正确读取它。这个.netrc文件中的格式如下:
1
|
machine 192.168.1.114 login root password 123456
|
4、使用 virt-v2v 命令进行迁移,命令行示例如下
1
2
3
4
5
|
virt-v2v -ic esx:
//192
.168.1.114/?no_verify=1 -os default --bridge br0 vm-name
esx:
//192
.168.1.114
#表示连接到VMware ESX服务器,将命令vm-name的客户机迁移过来。VMware ESX 服务器采用 HTTPS 连接方式,在连接VMware ESX服务器的过程中,一般需要配置SSL证书。使用?no_verify=1可以忽略SSL证书检查。
-os default
#表示迁移过来后,用于存放镜像文件的本地存储池。
--bridge bro
#表示本地网桥的名称,用于建立与客户机的网络连接。
vm-name
#表示在VMware的源宿主机中将要被迁移的客户机的名称。
|
5、 迁移成功后,虚拟机出现在 virt-manager 管理的虚拟机列表中。通过 virt-manager 工具启动虚拟机。
6、验证迁移后的虚拟机的配置和系统是否和迁移之前一致。
注意细节如下
1、待迁移机器必须处于关机状态。
2、待迁移机器不能存在快照,默认迁移的服务器为第一次快照时的服务器状态。
3、.netrc 文件必须是600权限。
4、怎么查看-os本地存储池?
virt-manager -->编辑-->Connection Details-->存储栏-->左下角"+"可自定义位置
5、如何查看本地网卡名称?
virt-manager -->编辑-->Connection Details-->虚拟网卡栏(或者网络接口栏) -->virbro(bro)
6、迁移过后默认的虚拟机镜像格式为raw,可以在迁移时添加-of qcow2指定转换后KVM上虚拟机镜像格式为qcow2.
迁移期间遇到问题说明
1
2
|
[root@KVM ~]
# virt-v2v -ic esx://192.168.1.114/?no_verify=1 -os default --bridge br0 python
libvirt error code: 1, message: 内部错误 Missing essential config entry
'floppy0.fileName'
|
由于待迁移服务器挂载软盘,而KVM虚拟机无法识别所致。将软盘移除即可。