最新消息:

P2V在线迁移windows、linux到KVM中

kvm admin 11570浏览 0评论

P2V

指迁移物理服务器上的操作系统及其上的应用软件和数据到 VMM(Virtual Machine Monitor)管理的虚拟服务器中。这种迁移方式,主要是使用各种工具软件,把物理服务器上的系统状态和数据“镜像”到 VMM 提供的虚拟机中,并且在虚拟机中“替换”物理服务器的存储硬件与网卡驱动程序。只要在虚拟服务器中安装好相应的驱动程序并且设置与原来服务器相同的地址(如 TCP/IP 地址等),在重启虚拟机服务器后,虚拟服务器即可以替代物理服务器进行工作。

P2V的一些工具

Novell PlateSpin Migrate、VMware vcenter converter Standalone、Symantec Backup Exec System Recovery
本文采用VMware vcenter converter Standalone 5.0

本文迁移流程说明

为什么会有VMware ESXI呢?原因就是没有合适的工具来直接P2V热迁移到KVM中,只能通过converter工具先P2V热迁移到VMware ESXI或Workstation中,本文迁移到了ESXI中。用ESXI做一个跳跃点,在用virt-v2v工具从ESXI上冷迁移虚拟机到KVM中。这期间物理机还是提供服务的。缺点就是时间是正常迁移的两倍。

用VMware Converter P2V热迁移的环境准备

软件包:
VMware Vcenter Converter Standalone 5.0
VMware vSphere Client 4.1
libguestfs-winsupport rpm
virtio-win rpm

ISO
VMware ESXI 4.1 ISO
物理设备环境:
1. 4G以上内存、两块网卡的服务器 把VMware ESXI 4.1 ISO刻录光盘,安装在这个服务器上。
2. windows7 一台  用来安装VMware Vcenter Converter Standalone 5.0 和VMware vSphere Client 4.1
3. RHEL-6.2-Server一台  用来跑KVM虚拟化。同时安装libquestfs-winsupport、virtio-win、virt-v2v
4. 网络存储一台  迁移的数据放在这里。
5. 另外准备一个windows和rhel3-6之间,不包括rhel6的两个系统,用来做迁移的源物理机。
6. 千兆交换机一个,所有主机在同一网络,互通。

配置环境并开始p2v迁移

1. 安装ESXI 4.1
把VMware ESXI 4.1 ISO刻录成光盘,光盘启动服务器。参考:http://virtual.51cto.com/art/201111/301210.htm
需要注意默认root密码为空,设置IP地址
2. 准备Win7 64一台,安装Converter 5.0 和 vSphere Client 4.1,一直下一步。挂载网络存储。
(1)用vSphere Client 4.1连接ESXI 4.1,需要ESXI 4.1的IP地址,root和密码。
(2)连接上以后,给ESXI 挂载共享存储
add_storage2-1024x566
开启ssh权限,这样就可以直接ssh到ESXI上,使用virt-v2v工具时也是需要开启这个选项的。
(3)开始迁移linux和windows到ESXI4.1上。(在要迁移的windows上开启卷影(Volume Shadow Copy)服务,在linux上开启ssh root权限)
参考http://bbs.kafan.cn/thread-1030593-1-1.html
迁移事项:迁移windows的话必须开启远程控制权限,关闭iptables,开启卷影服务
迁移linux,需要ssh root 权限。支持的Linux系统有Ubuntu、rhel、Suse。
迁移linux完成后可能会出现系统无法开机的情况。。。。待续。。。。。。。。

用virt-v2v工具V2V冷迁移到KVM中

安装kvm所需软件
# yum -y install qemu-kvm、libvirt、virt-manager
# /etc/init.d/libvirtd start
# chkconfig libvirtd on
V2V迁移前的准备
安装支持 Windows 虚拟机迁移的包

对于 Windows 虚拟机的迁移需要安装 libguestfs-winsupport 包来支持 NTFS 文件系统和 virtio-win 包来支持 Windows para-virtualized 存储和网络设备驱动。

# yum localinstall libguestfs-winsupport-1.0-7.el6.x86_64.rpm virtio-win-1.5.2-1.el6.noarch.rpm --nogpgcheck
创建 KVM 主机存储域

virt-v2v 在迁移虚拟机的过程中,需要拷贝被迁移虚拟机到 KVM 主机预先定义的存储池中。存储池可以用 libvirt 工具创建。最简单的方法就是使用 virt-manager 来创建新的存储池。本文中创建了一个文件目录类型的存储池,位置在 KVM 主机系统的 /virt 目录,并把共享存储挂载到了/virt下面.

# mkdir /virt/
# mount -t nfs -o vers=3 192.168.8.2:/mnt/soho_storage/samba/shares/shares /virt/
# virsh pool-create-as storage_one dir --target=/virt/
Pool storage_one created

记得创建网桥

安装virt-v2v工具
# yum -y install virt-v2v

如果虚拟机上安装了 VMware Tools,必须先卸载它。因为 KVM 的虚拟机不支持 VMware Tools 里面的虚拟驱动。
在 VMware ESX 上停止等待迁移的虚拟机,因为 virt-v2v 只支持静态迁移。

配置.netrc文件

为自动登录 VMware ESX 服务器创建 .netrc 文件。VMware ESX 服务器的连接需要授权,virt-v2v 支持密码方式的授权连接,可以从 $HOME/.netrc 文件中读取密码并自动登录。如果主机系统没有这个文件,就手动创建它。并且 .netrc 文件需要 0600 权限,使 virt-v2v 工具可以正确读取它。

# echo  "machine 192.168.8.20 login root password xxxxxx" > ~/.netrc
# chmod 0600 ~/.netrc
virt-v2v命令说明

使用 virt-v2v 命令进行迁移。
VMware ESX 服务器采用 HTTPS 连接方式,连接时需要配置 SSL 证书。本文通过添加’?no_verify=1′; 到 VMware 服务器的 URI 连接中,来关闭证书检查。

#  virt-v2v -ic esx://esx.example.com/?no_verify=1 -os pool --bridge brname vm-name
 esx.example.com – 是 ESX 服务器主机名或 IP Address
 pool – 本地主机存储池,用来保存镜像
 brname – 本地主机网桥名字,用来连接迁移后的虚拟机网络
 vm-name – 虚拟机的名字
开始迁移
# virt-v2v -ic esx://192.168.8.20/?no_verify=1 -os storage_one -of qcow2 --bridge br100 geek-PC

迁移完成后,在 KVM 主机上启动 virt-manager 软件,会发现迁移后的 Windows 虚拟机已经被 libvirt 管理了。
在 KVM 上启动虚拟机后,由于更新了一些虚拟硬件设备,可能需要重新安装驱动程序和重启系统。

virt-v2v总结

virt-v2v 工具自动化的解决了 VMware ESX/ESXi 服务器上的 RHEL 虚拟机和 Windows 虚拟机迁移到 KVM 主机的问题。而且在迁移的过程中尽量的使用 virtio 驱动提高 IO 设备的性能。但是,virt-2v2 工具也有一些局限性。比如只支持虚拟机关机情况下的静态迁移;只支持 RHEL 虚拟机和 Windows 虚拟机的迁移;不支持 VMware 虚拟机快照的迁移。对于创建在 VMware Workstation/Player 上的虚拟机,目前 virt-v2v 还不支持自动迁移

 

转载请注明:爱开源 » P2V在线迁移windows、linux到KVM中

您必须 登录 才能发表评论!