v2v操作

发布时间 2023-11-17 09:35:50作者: kesz

说明

V2V(Virtual-to-Virtual)是指将一个虚拟化环境中的虚拟机从一个虚拟化平台迁移到另一个虚拟化平台的过程。

这种迁移通常涉及将虚拟机的磁盘映像文件、配置文件和其他相关文件转移到目标虚拟化平台,并进行必要的转换、配置和测试,以确保虚拟机能够在新环境中正常运行。

V2V 迁移通常用于以下情况:

虚拟化平台升级:

当您需要将现有的虚拟化环境从一个虚拟化平台迁移到另一个虚拟化平台时,V2V 迁移是一种常用的方法。例如,当您需要将 VMware 环境迁移到 OpenStack 环境时,您可以使用 V2V 迁移来完成此过程。

虚拟化平台替换:

当需要更换当前虚拟化平台时,V2V 迁移也是一种常用的方法。例如,当您需要将 Hyper-V 环境替换为 KVM 环境时,可以使用 V2V 迁移来将虚拟机从 Hyper-V 转移到 KVM。

跨平台虚拟机管理:

当您需要管理多个不同虚拟化平台上的虚拟机时,V2V 迁移也是一种有用的方法。例如,当您需要将 公有云 上的虚拟机迁移到本地虚拟化平台或 OpenStack 环境中时,您可以使用 V2V 迁移来完成此过程。

 

常用的 V2V 迁移工具和方法:

VMware vCenter Converter:这是一款由 VMware 开发的免费工具,可帮助您将 VMware 虚拟机迁移到其他 VMware 平台或其他虚拟化平台。该工具支持多种虚拟机格式的转换,并提供了简单易用的用户界面。

Vmware vCenter Converter Standalone是一种用于将虚拟机和物理机转换为VMware虚拟机的可扩展解决方案(vmware vsphere converter可以自动化和简化物理机到虚拟机及虚拟机格式之间的转化过程,就是一个P2V、v2p的迁移克隆过程)。它支持将windows和linux操作系统用作源,可以执行若干转换任务:总结为:vmware vcenter converter可以将正在运行的远程物理机和虚拟机作为虚拟机导入到vCenter Server管理的独立ESX/ESXi或ESX/ESXi主机;也可以将第三方备份或磁盘映像导入到vCenterServer管理的ESX/ESXi主机中;将旧版服务器迁移到新硬件,而不重新安装操作系统或应用程序软件等;还有就是将由VMware Workstation或Microsoft Hyper-V Server托管的虚拟机导入到vCenter Server管理的ESX/ESXi主机;需要注意的是Converter Standalone的组件,只能安装在Windows操作系统上。

QEMU-img:这是一个开源工具,包含在 QEMU 虚拟化软件包中,可用于将虚拟机映像文件从一种格式转换为另一种格式。例如,您可以使用 qemu-img 将 VMware 映像文件转换为 KVM 映像文件。

CloudEndure:这是一款云基础设施迁移和灾备恢复工具,可帮助您将虚拟机从一个平台迁移到另一个平台,并提供了灵活的配置选项和自动化功能。

手动迁移:如果您需要进行定制化的迁移操作,例如将虚拟机从 Amazon EC2 迁移到 OpenStack 中,您可以手动进行迁移。这需要您具有一定的虚拟化知识和技能,并且需要进行复杂的转换和配置过程。

virt-v2v:虚机格式迁移工具

v2v使用说明:


资源需求:源地址虚拟机(vmware)
目标地址资源池(stack)kvm 等
转换机器(stack物理机。或者单独一台虚拟机)(kvm环境,搭建方式有视频。)
一、导出.vmdk结尾的文件,上传到kvm环境中
这里建议使用ovf格式导出,会有详细的配置文件。
二、在转换机器安装virt-v2v
yum install virt-v2v -y
三、转换格式
说明:可以直接转raw格式,考虑到空间占用建议先转qcow2
virt-v2v -i disk CentOS_8.vmdk -o qemu -of qcow2 -os /home/
其中CentOS_8.vmdk是第一步导出的文件 /home 是转换格式后的存放位置
四、上传镜像
见上传镜像文档,上传请使用raw。这一步需要qcow2转raw
五、测试使用及功能。并制作标准镜像。
如果没有安装要求的控件,监控 密码注入,更改密码。根分区扩容等功能受影响

 

注意事项:


安装包不能在物理机上进行:容易造成环境不一致,对后续排查问题不利。
建议导出ovf格式。
转换需要考虑到空间问题,转换前的大小,磁盘空间,转换后的文件大小等。
网络速率问题也要一样考虑,越大的文件传输越慢。
关机导出镜像是最安全的方式。

 

其他使用

配置v2v转换服务器

yum install -y qemu-kvm libvirt virt-manager virt-v2v

需要迁移win虚机的话,还需安装:

yum install -y libguestfs-winsupport

$ virsh -c esx://root@192.168.30.177?no_verify=1 list --all
# 192.168.30.177 为宿主机的ip或者URL</pre>

[root@node1]# virsh -c esx://root@192.168.30.177?no_verify=1 list --all
Enter root's password for 192.168.30.177:
 Id   Name   State
-----------------------
 -    guest  shut off

迁移vm

使用virt-v2v-copy-to-local命令即可把对应的VM迁移到本地,其中需要输入两次密码,两次的密码均为esxi宿主机的登录密码(注意:vm要为shut off状态)

 
 
$ virt-v2v-copy-to-local -ic esx://root@192.168.30.177?no_verify=1 guest

# 192.168.30.177 为宿主机的ip或者URL
# guest为迁移的VM名称</pre>

[root@node1 ]# virt-v2v-copy-to-local -ic esx://root@192.168.30.177?no_verify=1 guest
[   5.3] Parsing the remote libvirt XML metadata ...
Enter host password for user 'root':
Enter host password for user 'root':
[  16.9] Copying remote disk 1/1 to guest-disk1
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  5 16.0G    5  875M    0     0  60.1M      0  0:06:03  0:00:19  0:05:44 60.5M
 迁移完成后会在当前目录中生成两个文件,xml文件和disk1磁盘文件

格式转换

迁移完成后,就需要把磁盘文件的格式转换成kvm能够识别的格式

$ virt-v2v -i libvirtxml guest.xml -o local -os /data/vms -of raw

#guest.xml为刚才迁移时生成的xml文件 
# -o <glance|libvirt|local|null|openstack|qemu|rhv|rhv-upload|vdsm>
#-os为转换格式后存放的路径
#-of为指定转换的格式为raw    <raw|qcow2> </pre>


转换过程
[root@node1]# virt-v2v -i libvirtxml guest.xml -o local -os /root/vms/ -of raw
[   0.0] Opening the source -i libvirtxml guest.xml
[   0.0] Creating an overlay to protect the source from being modified
[   0.2] Opening the overlay
[   4.2] Inspecting the overlay
[  17.2] Checking for sufficient free disk space in the guest
[  17.2] Estimating space required on target for each disk
[  17.2] Converting CentOS Linux release 7.9.2009 (Core) to run on KVM
virt-v2v: This guest has virtio drivers installed.
[  66.0] Mapping filesystem data to avoid copying unused and blank areas
[  66.6] Closing the overlay
[  66.8] Assigning disks to buses
[  66.8] Checking if the guest needs BIOS or UEFI to boot
[  66.8] Initializing the target -o local -os /data/vms/
[  66.8] Copying disk 1/1 to /data/vms/guest-sda (raw)
 (100.00/100%)
[  69.0] Creating output metadata
[  69.0] Finishing off
在/root/vms下生成一个raw格式的镜像,上传到OpenStack环境中即可使用。
[root@node1]# ll  vms -rw-r--r-- 1 root root 16G Feb 27 10:02 guest-sda -rw-r--r-- 1 root root 1.5K Feb 27 10:02 guest.xml
source /root/admin-openrc.sh
glance image-create \
--name guest\
--file guest-sda \
--disk-format raw \
--container-format bare \
--visibility public \
--property hw_qemu_guest_agent=no \ ##注意看是否安装了qga,有就是yes
--property os_type=linux\
--property os_distro=linux \
--property os_version=7.6 \ ##系统版本
--progress