传统虚拟机如何快捷的迁移至云原生?

秒云容器云平台以构建云原生统一技术平台为核心目标,支持在一个平台上统一管理虚拟机与容器,构建虚拟化与容器化统一技术平台,并能充分利用云原生的功能及特性,帮助依赖基于虚拟机应用的团队逐步对应用进行容器化改造迁移。那么,如何将传统虚拟机迁移到秒云云原生统一技术平台呢?

本文将着重介绍如何将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.1
lazy refcounts: false

创建新的虚拟机

一、导入虚拟机镜像

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

1、前端页面上传

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

传统虚拟机如何快捷的迁移至云原生?_第1张图片

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
    

传统虚拟机如何快捷的迁移至云原生?_第2张图片

二、创建虚拟机

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驱动,使系统磁盘性能最佳。

传统虚拟机如何快捷的迁移至云原生?_第3张图片

虚拟机正常运行后,通过VNC登录到虚拟机中,更新虚拟机系统硬件驱动,包含磁盘驱动,驱动源选择virtio驱动。

传统虚拟机如何快捷的迁移至云原生?_第4张图片
传统虚拟机如何快捷的迁移至云原生?_第5张图片

驱动更新完成后,可在磁盘管理页面看到数据盘信息,说明virtio磁盘驱动已经成功安装。

传统虚拟机如何快捷的迁移至云原生?_第6张图片

进入虚拟机列表页面,编辑当前虚拟机,将虚拟机系统盘总线类型修改为virtio,并且删除删除临时数据盘和virtio驱动,保存并重启虚拟机。

传统虚拟机如何快捷的迁移至云原生?_第7张图片
传统虚拟机如何快捷的迁移至云原生?_第8张图片

虚拟机迁移完整性确认

虚拟机正常运行后,通过VNC登录虚拟机,查看确认虚拟机系统运行状态和应用运行情况。

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

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

你可能感兴趣的:(云原生容器虚拟机docker)