Vmware Esxi虚拟机转微软云----vmdk转vhd
Vmware Esxi虚拟机转微软云--vmdk转vhd1. 前言2. 下载Exsi虚拟机文件3. 拼接vmdk文件4. 将vmdk转换成raw5. 将raw转换成vhd5.1 转换前准备5.2 开始转换1. 前言公司内有几台原先用在Esxi环境下的Centos和Rhel的虚机要转去微软云,微软云也没有像阿里那样的迁移工具做转换.需要根据手册先对系统进行一些简单的设置.详见:https://doc
Vmware Esxi虚拟机转微软云--vmdk转vhd
1. 前言
公司内有几台原先用在Esxi环境下的Centos和Rhel的虚机要转去微软云,微软云也没有像阿里那样的迁移工具做转换.需要根据手册先对系统进行一些简单的设置.详见:https://docs.azure.cn/zh-cn/virtual-machines/linux/redhat-create-upload-vhd#vmware
通过以上设置后,关闭服务器即可开始后续工作.
2. 下载Exsi虚拟机文件
通过WINSCP等工具ssh到服务器上下载磁盘对应的vmdk文件.
此时你会发现一般一个硬盘是由2个文件组成的,即:虚拟机名.vmdk,虚拟机名-flat.vmdk,如果有更多的硬盘那么就是虚拟机名_1.vmdk,虚拟机名_1.vmdk,虚拟机名_2.vmdk,虚拟机名_2.vmdk.具体可以右键点编辑配置查看这里就不罗列了.
winscp连上Esxi主机后(千万注意是主机不是Vsphere),进入/vmfs/volumes/即可看到虚拟机的目录.
3. 拼接vmdk文件
拼接vmdk需要用到工具vmware-vdiskmanager.exe.这个工具Vmware Workstation各大版本都会自带.如果服务器上没有安装直接从其他地方复制个过来就可以了.不用安装.
此时我们的源文件有2个,虚拟机.vmdk和虚拟机-flat.vmdk
vmware-vdiskmanager.exe -r 虚拟机.vmdk -t 0 新文件.vmdk
这里不用管虚拟机-flat.vmdk那个文件,只要保证虚拟机.vmdk和虚拟机-flat.vmdk都在同一个目录即可
4. 将vmdk转换成raw
这里需要使用工具qemu-img
如果没有那么可以使用yum 安装base源就有
yum install -y qemu-img
转换命令如下:
root.vmdk是刚才合并的那个文件
rhel7.3.raw 是转换后的文件
qemu-img convert -f vmdk -O raw root.vmdk rhel7.3.raw
5. 将raw转换成vhd
5.1 转换前准备
微软云需要确保原始映像大小为 1 MB。 如果不是,请将大小四舍五入,使其等于 1 MB
执行下面语句:
需要注意将2处的rhel7.3.raw替换成自己的镜像名
MB=$((1024*1024))
size=$(qemu-img info -f raw --output json "rhel7.3.raw" | \
gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
rounded_size=$((($size/$MB + 1)*$MB))
qemu-img resize rhel7.3.raw $rounded_size
5.2 开始转换
查看qemu-img版本
qemu-img |grep -w version|awk -F '[ ,]' '{print $3}'
版本小于2.6
qemu-img convert -f raw -o subformat=fixed -O vpc rhel7.3.raw rhel7.3.vhd
2.6+
qemu-img convert -f raw -o subformat=fixed,force_size -O vpc rhel-7.4.raw rhel-7.4.vhd
至此已将vmdk转换成了vhd,上传微软云即可.
说实话微软云还是略显麻烦,文档写的也上上蹿下跳.使用感受不如腾讯和阿里.
更多推荐
所有评论(0)