秒云容器云平台以构建云原生对立技术平台为外围指标,反对在一个平台上对立治理虚拟机与容器,构建虚拟化与容器化对立技术平台,并能充分利用云原生的性能及个性,帮忙依赖基于虚拟机利用的团队逐渐对利用进行容器化革新迁徙。那么,如何将传统虚拟机迁徙到秒云云原生对立技术平台呢?

本文将着重介绍如何将VMWare ESXi和KVM虚拟机迁徙到秒云容器云平台。

以Windows 2019 Server虚拟机为例。

导出虚拟机文件

在VMWare ESXi平台上,磁盘文件默认格局为pre-allocated,后缀名为vmdk。pre-allocated格局镜像依赖2个文件“xxxx.vmdk”和“xxxx-flat.vmdk”(“xxxx.vmdk”是配置文件,“xxxx-flat.vmdk”是理论数据文件)。

对于KVM来说,虚拟机磁盘文件格式个别为qcow2,可略过下文的“转换镜像格局”步骤。

通过SSH登录到VMWare ESXi平台所在宿主机,找到虚拟机数据寄存目录,虚拟机名称为win2k19-test1,目录则为:/vmfs/volumes/localstorage/win2k19-test1,将目录中的win2k19-test1.vmdk、win2k19-test1-flat.vmdk导出。

[root@node vmware]# ll
-rw------- 1 root root 214748364800 Apr 14 20:31 win2k19-test1-flat.vmdk
-rw------- 1 root root 580 Apr 14 20:31 win2k19-test1.vmdk

将vmdk文件转换为qcow2格局

一、装置qemu-img命令行

qemu-img反对在Windows和Linux上部署,也能够应用具备qemu-img的docker镜像部署在容器中。

1、本地为Windows操作系统:

  • 下载qemu-img安装包至本地,下载地址:https://qemu.weilnetz.de/w64/。
  • 双击setup文件装置qemu-img。
  • 配置环境变量,以装置门路为“D:\Program Files\qemu”为例,在零碎变量局部找到Path,并单击“编辑”。在“变量值”里,增加“D:\Program Files\qemu”,不同的变量值之间以“;”分隔。
  • 验证装置胜利,在“cmd”窗口输出qemu-img --help,如回显信息中呈现qemu-img工具的版本信息,即示意装置胜利。

2、本地为Linux操作系统

  • Ubuntu、Debian系列操作系统,请执行如下命令:
  • apt install qemu-img
  • CentOS、Red Hat、Oracle系列操作系统,请执行如下命令:
  • yum install qemu-img
  • SUSE、openSUSE系列操作系统,请执行如下命令:
  • zypper install qemu-img
  • 执行如下命令,验证装置胜利。
  • qemu-img -v

如回显信息中呈现qemu-img工具的版本信息和帮忙手册,即示意装置胜利。

3、应用docker容器化部署

  • 在容器云平台上,应用具备qemu-img命令的镜像,一键部署利用。
  • 验证qemu-img命令:通过容器终端进入到利用的容器中,执行如下命令,进行验证:qemu-img -v

如回显信息中呈现qemu-img工具的版本信息和帮忙手册,即示意装置胜利。

二、转换镜像格局

将vmdk文件拷贝到具备qemu-img命令的机器上或者容器中,进入vmdk文件寄存目录下,执行如下命令将系统盘vmdk文件转换为qcow2格局

qemu-img convert -p -f vmdk -O qcow2 win2k19-test1.vmdk win2k19-C.qcow2
[root@node vmware]# qemu-img convert -p -f vmdk -O qcow2 win2k19-test1.vmdk win2k19-C.qcow2
(100.00/100%)

上述命令中各参数对应的阐明如下:

-p标识转换的进度条。
-f前面为源镜像格局。
-O(必须是大写)前面的参数为转换进去的镜像格局 + 源镜像文件名称 + 指标文件名称。

转换实现后,指标文件会呈现在源镜像文件所在的目录下。

[root@node vmware]# ll
-rw-r--r-- 1 root root 11649024000 Apr 16 14:39 win2k19-C.qcow2
-rw------- 1 root root 214748364800 Apr 14 20:31 win2k19-test1-flat.vmdk
-rw------- 1 root root 580 Apr 14 20:31 win2k19-test1.vmdk

能够执行上面命令,查看qcow2文件详细信息

qemu-img info win2k19-C.qcow2
[root@node vmware]# qemu-img info win2k19-C.qcow2
image: win2k19-C.qcow2
file format: qcow2
virtual size: 200G (214748364800 bytes)
disk size: 11G
cluster_size: 65536
Format specific information:

compat: 1.1lazy refcounts: false

创立新的虚拟机

一、导入虚拟机镜像

将虚拟机磁盘qcow2文件win2k19-C.qcow2以虚拟机镜像的形式上传到云平台镜像仓库,上传形式有两种:前端页面上传和后端命令行上传。

1、前端页面上传

登录秒云容器云平台切换到我的项目视角,进入镜像治理菜单,上传镜像抉择导入虚拟机镜像,抉择本地qcow2文件上传。
![
图片
图片](/img/bVcY9gx)

2、后端my命令行上传

  • SSH登录到秒云容器云治理节点上,将虚拟机qcow2磁盘文件拷贝到此服务器上。
  • 后端登录平台,例如云平台拜访地址为:https:// 10.221.161.10,则执行如下命令进行登录:

        my login https:// 10.221.161.10 -u admin -p admin       my命令行为,秒云容器云特有二进制命令行,离线安装包中带有此命令行文件      -u 用户名        -p 用户明码
  • 上传虚拟机镜像,镜像文件为win2k19-C.qcow2,上传到云平台后的镜像仓库为win2k19,镜像标签为qcow2,则执行如下命令镜像上传:

      my image load-vm win2k19-C.qcow2 win2k19: qcow2

二、创立虚拟机

1、镜像抉择上传的磁盘镜像win2k19:qcow2
2、开启VNC和Spice
3、CPU、内存可自定义

  • qcow2曾经装置了virtio驱动的虚拟机

      1) 长久化系统盘,总线类型抉择virtio,容量需大于等于之前虚拟机磁盘容量。
  • qcow2未装置了virtio驱动的虚拟机

      1) 长久化系统盘,总线类型抉择sata,容量需大于等于之前虚拟机磁盘容量;  2) 挂载内置virtio驱动,总线类型抉择sata;  3) 减少一块长期数据盘, 总线类型抉择virtio。

对于曾经装置virtio驱动的qcow2镜像,虚构失常运行后,可略过前面的步骤,间接进行迁徙完整性验证即可。未装置virtio驱动的qcow2镜像可持续上面步骤,装置virtio驱动,使零碎磁盘性能最佳。

虚拟机失常运行后,通过VNC登录到虚拟机中,更新虚拟机零碎硬件驱动,蕴含磁盘驱动,驱动源抉择virtio驱动。


驱动更新实现后,可在磁盘治理页面看到数据盘信息,阐明virtio磁盘驱动曾经胜利装置。

进入虚拟机列表页面,编辑以后虚拟机,将虚拟机系统盘总线类型批改为virtio,并且删除删除长期数据盘和virtio驱动,保留并重启虚拟机。


虚拟机迁徙完整性确认

虚拟机失常运行后,通过VNC登录虚拟机,查看确认虚拟机零碎运行状态和利用运行状况。

至此,即可将VMWare ESX和KVM平台上的虚拟机胜利迁徙到秒云容器云平台上。

对于具备数据盘的虚拟机,可将数据盘导出后,应用qemu-img命令将磁盘文件转换为raw格局,并且重命名为disk.img,而后将此文件挂载到虚拟机数据盘的PVC中即可。