vmware的windows虚拟机迁移到openstack

2019年1月25补充:只要做的是windows镜像,必须修改MTU参数,不然不能访问百度:

https://blog.csdn.net/qq_33317586/article/details/86645086


将vmware的虚拟机迁到openstack,我走了很多很多的弯路,此处必须记录一下

最终可行的方案是下面这个流程:

1.使用qemu-img将vmdk文件转换成qcow2文件

2.通过图形化界面的virt-manager打开这个文件为虚拟机

3.添加软盘设备

4.添加virtio格式的硬盘

5.启动虚拟机,更新网卡驱动,新磁盘的驱动

6.关机,删除临时磁盘,将源磁盘格式改为virtio格式


对我很有帮助的参考链接:

迁移vmware虚拟机到kvm:https://www.ibm.com/developerworks/cn/linux/l-cn-mgrtvm3/index.html

vmware迁移到openstack的一些坑:https://www.cnblogs.com/zhangyufei/p/8962993.html

Openstack中给windows虚拟机加载virtion驱动:http://blog.51cto.com/huboss/1889547


下面说一下具体的操作流程,整个流程很简单,但第一次搞,没有指点,没有方向,搞了一星期:


需要准备的东西:

驱动下载地址:https://docs.fedoraproject.org/en-US/quick-docs/creating-windows-virtual-machines-using-virtio-drivers/index.html

  • 带有图形化界面的CentOS7虚拟机一台(内存最好4g以上)
  • vmdk镜像(如果是多个文件需要合并成一个)
  • virtio网卡驱动(iso格式):virtio-win-0.1.141.iso
  • virtio磁盘驱动(软盘格式):virtio-win-0.1.141_amd64.vfd

第一步、经理给的虚拟机文件有下面4个

vmware的windows虚拟机迁移到openstack_第1张图片

双击ovf就可以用vmware打开,打开后发现其实虚拟机就一块磁盘,第二块磁盘并没有挂载,就第一块磁盘在用,所以转换第一块磁盘就行。

第二步:安装下面四个软件:

[root@uscwifi ~]# yum install libvirt virt-manager qemu-kvm qemu-img -y
[root@uscwifi ~]# systemctl start libvirtd
[root@uscwifi ~]# systemctl enable libvirtd

第三步、将镜像上传至虚拟机,使用如下命令转换镜像为qcow2格式

[root@uscwifi ~]# qemu-img convert -f vmdk -O qcow2 windows2012-new-disk1.vmdk windows2012-new-disk1.img
[root@uscwifi tmp]# qemu-img info windows2012-new-disk1.img
image: windows2012-new-disk1.img
file format: qcow2
virtual size: 80G (85899345920 bytes)
disk size: 29G
cluster_size: 65536
Format specific information:
    compat: 1.1
    lazy refcounts: false

第四步、输入如下命令启动虚拟机管理器,打开镜像为虚拟机

[root@uscwifi tmp]# virt-manager

vmware的windows虚拟机迁移到openstack_第2张图片

继续:

vmware的windows虚拟机迁移到openstack_第3张图片

继续:

vmware的windows虚拟机迁移到openstack_第4张图片

第五步、双击点开,点小灯泡,编辑虚拟机:修改网卡为virtio,新建临时磁盘(用于装virtio驱动),挂载带有virtio网卡驱动的iso镜像,挂载带有virtio驱动的软盘

修改网卡为virtio:

vmware的windows虚拟机迁移到openstack_第5张图片

新建临时磁盘(virtio)

vmware的windows虚拟机迁移到openstack_第6张图片

挂载带有virtio网络驱动的镜像:

vmware的windows虚拟机迁移到openstack_第7张图片

挂载带有virtio磁盘驱动的软盘:

vmware的windows虚拟机迁移到openstack_第8张图片

第六步、开机,修改网卡驱动,修改临时磁盘的驱动

更新网卡驱动:

vmware的windows虚拟机迁移到openstack_第9张图片

vmware的windows虚拟机迁移到openstack_第10张图片

更新临时磁盘的驱动:

磁盘驱动安装大致是这样子的,因为我已经安祖昂过了,所以这里不再显示这个设备(从光驱安装):

vmware的windows虚拟机迁移到openstack_第11张图片

第七步、关机,删除临时磁盘,修改启动磁盘的总线为virtio,删除带有virtio网卡驱动的光驱,删除带有virtio磁盘驱动的软盘,最好也删除下面ide那个插槽还是什么,免得识别错误导致启动蓝屏

如下图描述:

vmware的windows虚拟机迁移到openstack_第12张图片

最终样子如下:

vmware的windows虚拟机迁移到openstack_第13张图片

第八步、启动,启动后查看网卡驱动是否正常,然后开启远程连接,关机,将镜像ftp到openstack机器上

第九步、使用如下命令将镜像导入至openstack镜像仓库:

可以参考:https://blog.csdn.net/qq_33317586/article/details/85321204

root@xxx:~# cat admin-openrc 
export OS_PROJECT_DOMAIN_NAME=default
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=xxxxxxxxxxxxxxxxxxx
export OS_AUTH_URL=http://10.1.101.4:35357/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
root@xxxx:~# source admin-openrc 
root@xxxx:~# glance image-create --name win2k12_20190102 --file /home/david/windows2012-new-disk1.img --disk-format qcow2 --container-format bare --progress
[=============================>] 100%
+------------------+--------------------------------------------------------------------+
| Property         | Value                                                              |
+------------------+--------------------------------------------------------------------+
| checksum         | 9d16c8dfb2d9c2f20a86d413c08d31de                                   |
| container_format | bare                                                               |
| created_at       | 2019-01-02T09:28:58Z                                               |
| direct_url       | file:///var/lib/glance/images/c61c4718-af00-41aa-aa93-d4c7ac84a9bd |
| disk_format      | qcow2                                                              |
| id               | c61c4718-af00-41aa-aa93-d4c7ac84a9bd                               |
| min_disk         | 0                                                                  |
| min_ram          | 0                                                                  |
| name             | win2k12_20190102                                                   |
| owner            | 3898c2031a6b4ed584c5a2faf3c8395c                                   |
| protected        | False                                                              |
| size             | 31640715264                                                        |
| status           | active                                                             |
| tags             | []                                                                 |
| updated_at       | 2019-01-02T09:40:16Z                                               |
| virtual_size     | None                                                               |
| visibility       | private                                                            |
+------------------+--------------------------------------------------------------------+

 

第十步、在web界面创建虚拟机就可以用了

 

 


最后说一下我整个过程中遇到的坑以及走过的弯路

使用vmware2libvirt将vmx文件转换至xml文件,发现无法直接安装,下载源码包,编译出错,运行又出错,各种python问题,让大佬同事解决后导入虚拟机又出错,最终放弃此方法

使用virt-convert工具将ovf文件转换至xml文件,也是无法直接安装,下载源码包,编译出错,运行报错,折腾了很长时间最终放弃

使用virt-v2v工具转换镜像(据说转换后直接可以用),最终以各种失败报错告终。

百度,google各种virt-v2v的用法,去virt-v2v官网查询命令使用帮助。最终浪费大量时间

最坑的就是百度网盘,经理给的镜像是百度网盘的,50k每秒的速度下了整整3天没下完,气不气人

两个vmdk文件,前期还在查如何使用vmware自带工具将两个vmdk文件合并为一个,后面才发现这是两个磁盘,而且第二快磁盘还没有挂载,尼玛坑爹

使用qemu-img镜像转换为raw镜像直接上传到openstack,发现必须要改磁盘驱动,醉了,整个过程很漫长

刚开水web界面直接上传vmdk镜像,镜像有18g,上传很慢,web界面一段时间就会关闭,每次上传浪费一个多小时,两次

没有最坑,只有更坑,18g的文件传虚拟机还好,本地比较快,18g的vmdk尼玛转换成qcow2,差不多40分钟,qcow2格式30G,转换成raw差不多40分种,转换后80G,虚拟机分分钟爆炸

笔记本内存小,磁盘小,忙了半天最终找了一台24g内存的台式机操作我的天

即使完整的流程操作下来:18G的vmdk传到虚拟机20分钟,vmdk转换qcow2有30G,30分钟(记不清了),qcow2启动为虚拟机,内存和CPU不够根本起不起来,修改驱动等等几乎40分钟,测试完成后导出镜像到本地25分钟,镜像上传至opensatck大约40分钟,使用命令将30G镜像导入至openstack镜像仓库大约40分钟,使用openstack虚拟机启动镜像大约20分钟,,几乎全程等待

中途遇到python各种装不上,各种pip模块不存在报错

去openstack官网看文章找镜像转换的方法,找vmware迁移到openstack的教程,最终还是没多大用

去vmware官网找vmware迁移到openstack的教程,无功而返

......还有各种坑不再细说


参与到本过程的所有相关文档:

 

virt-v2v 使用指南:https://blog.csdn.net/qq_33932782/article/details/53997023

V2V迁移测试--VMware/VSphere环境迁移至KVM:https://blog.csdn.net/minxihou/article/details/52950125

如何将Vmware的vmdk文件转换成Hyper-v可用的的文件:https://bbs.csdn.net/topics/390641554?page=1

制作openstack镜像win7.qcow2(centos/ubuntu/win镜像分享):https://blog.csdn.net/qq_20154221/article/details/51586537

关于ModuleNotFoundError: No module named ‘gi’:http://blog.mnzone.cn/archives/57

Centos7.4安装kvm虚拟机(使用virt-manager管理):http://www.cnblogs.com/kevingrace/p/8377645.html

openstack命令创建ubuntu18.10镜像:https://blog.csdn.net/qq_33317586/article/details/85321204

在本地COPY目录时,如何让rsync 命令显示"总体"进度?:http://forum.ubuntu.org.cn/viewtopic.php?p=2932896

rsync传输性能测试总结:http://blog.51cto.com/5468755/1907601

主流服务器虚拟化技术简单使用——KVM(二):https://www.cnblogs.com/yogurtwu/p/9988974.html

libvirt错误总结:https://liuzhijun.iteye.com/blog/1783698

Openstack中给windows虚拟机加载virtion驱动:http://blog.51cto.com/huboss/1889547

v2v-VMware/VSphere中虚机手动迁移至openstack平台:https://blog.csdn.net/minxihou/article/details/53053886

VMware VMDK driver:https://docs.openstack.org/cinder/rocky/configuration/block-storage/drivers/vmware-vmdk-driver.html
virt-convert:https://docs.oracle.com/cd/E37934_01/html/E37315/virt-convert-1m.html
Virt-manager problem:https://community.parrotsec.org/t/solved-virt-manager-problem/977

virt-manager的github项目:https://github.com/virt-manager/virt-manager

virt-manager官网:https://virt-manager.org/

将vmware镜像转换为kvm:http://blog.loftninjas.org/2008/09/08/converting-a-vmware-image-to-kvm/

Converting VMWare VM into KVM on Centos 6.7:http://technomojo-hmb.blogspot.com/2016/02/converting-vmware-vm-into-kvm-on-centos.html

libvirt官网:https://libvirt.org/formatdomain.html

virt-v2v官网:http://libguestfs.org/virt-v2v.1.html

vmware VMDK conversion:https://access.redhat.com/discussions/679783

红帽官网的v2v手册:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/v2v_guide/chap-v2v_guide-references#References_Virtualization__virt-v2v_Parameters

KVM qcow2、raw、vmdk等镜像格式和转换:https://blog.csdn.net/zhengmx100/article/details/53887162/

我如何将vmware vm转换为kvm:http://www.held.org.il/blog/2012/04/how-i-converted-vmware-vm-to-kvm/

opentack安装手册;https://docs.openstack.org/mitaka/zh_CN/install-guide-rdo/

openstack虚拟机迁移记录:https://www.cnblogs.com/kevingrace/p/6018676.html

openstack官方关于镜像之间的转换:https://docs.openstack.org/image-guide/convert-images.html

创建image-每天5分钟婉转Openstack(21):https://www.cnblogs.com/CloudMan6/p/5393376.html

ubuntu18.10云镜像下载地址:http://cloud-images.ubuntu.com/daily/server/cosmic/current/

openstack镜像格式转换与上传:https://www.lijiawang.org/posts/openstack-image.html

V2V迁移测试--VMware/VSphere环境迁移至KVM:https://blog.csdn.net/minxihou/article/details/52950125

v2v-VMware/VSphere中虚机手动迁移至openstack平台;

 

。。。。。。。。。。

。。。。。。。。。。

 

 

 

 

 

你可能感兴趣的:(openstack,windows,CentOS)