前言
因为一些原因,需要将OpenStack转换成vmware的vmdk虚拟磁盘。网上的答案都是使用qemu-img
工具进行转化,但是其实直接转换并不能直接使用,因此寻找多篇文章后总结此办法。
准备
1.首先查看虚机机列表,并将迁移的实例关机,并确认实例确实关机
#查看实例列表并找到对应ID
nova list
nova stop 952bfab4-79d4-44af-9466-77e97765a3b4
2.进入虚拟磁盘目录并查看磁盘格式
cd /var/lib/nova/instances/952bfab4-79d4-44af-9466-77e97765a3b4
cat disk.info
3.现在用qemu-img命令将镜像转成vmdk格式
qemu-img convert -f qcow2 disk -O vmdk 20.48.vmdk
4.接下来通过scp、xshell或者其他工具,将20.48.vmdk文件上传到ESXi的存储中,这个时候的vmdk还不能直接使用,还需要转成磁盘管理工具vmkfstools,将qemu-img转换的vmdk文件再转成ESXi所能识别的vmdk。
5.我们需要通过shell连接ESXi,然后进入到datastore1存储中,进行转换。如果你没有开启ssh功能,在web管理系统中的:主机->管理->服务中SSH设置为开机就可以,使用命令进入到之前上传的vmdk文件所在的存储位置
#ESXi的存储中20.28.vmdk的所在目录,各位需要根据自己的实际情况进行修改。
cd /vmfs/volumes/datastore1/
6.然后使用下面这条命令,将vmdk转成ESXi可以识别的vmdk。
# -i 代表源文件 -d代表目标类型
vmkfstools -i 20.28.vmdk -d thin out-20.28.vmdk
7.转换成功后,会发现生成了两个文件: out-20.28.vmdk和out-20.28.vmdk-flat.vmdk
8.最后创建新的虚拟机,并把硬盘指向 out-20.28.vmdk文件就可以了,硬盘格式选择IDE,可解决开机报错。
二次转换出的两个文件(out-20.28.vmdk和out-20.28.vmdk-flat.vmdk)其中out-20.28.vmdk为描述文件,out-20.28.vmdk-flat.vmdk为虚拟磁盘文件,均可以改名
编辑 vmdk 文件,确保 # Extent description "out-20.28.vmdk-flat.vmdk" 为原有磁盘名称
总结:
有两个地方需要注意:第一个就是第6个步骤的二次转换操作;另一个就是创建虚拟机需要添加现有硬盘。
本文摘自:
https://www.cnblogs.com/bighammerdata/p/14178657.html
https://blog.csdn.net/F1004145107/article/details/105906246/