智传网优云课堂,专注分享IT技术
与IT技术爱好者一起共同学习进步

如何把Virtualbox虚拟机迁移到KVM

1. 前言

您是否考虑过虚拟机从VirtualBox切换到KVM?

如何把Virtualbox虚拟机迁移到KVM
如果大量VirtualBox虚拟需要迁移到KVM,这是一项艰巨的任务。

好消息是,您可以很容易地将VDI格式的VirtualBox虚拟机磁盘迁移到qcow2,这是KVM的虚拟磁盘格式,而不是创建新的KVM虚拟机。

在本教程中,我们将逐步介绍如何将VirtualBox虚拟机迁移到Linux下的KVM虚拟化平台。

从VirtualBox向KVM迁移

最终成果:
把virtualbox的虚拟机迁移到KVM平台。

部署前提条件:

  • 熟悉基本的命令行操作
  • 具有系统的root账号权限或者sudo权限
  • 已经拥有virtualbox虚拟机磁盘文件
  • Linux系统上已经安装virtualbox

组件介绍:

  • Ubuntu 20.04 或 CentOS 操作系统
  • virtualbox:需要在转换镜像的Linux系统上安装virtualbox,提供vboxmanage转换工具,把virtualbox虚拟磁盘格式转换为KVM格式
  • VNC客户端:需要在测试终端上安装VNC客户端。Linux不需要安装该组件。

2: 步骤1: 列出现有的VirtualBox虚拟磁盘文件

首先,确保所有虚拟机都已关机。Virtualbox虚拟机以VDI磁盘格式存档。接下来,继续并列出现有的VirtualBox虚拟机,如下所示。

VBoxManage list hdds

或者

vboxmanage list hdds

从输出信息中可以看到,我有一个虚拟磁盘映像—ubuntu.vdi映像,这是我做的Ubuntu 20.04.1 Server版的虚拟机。

列出现有的VirtualBox虚拟磁盘文件

图形化界面的信息如下 :

从VirtualBox向KVM迁移

可以看到,该虚拟硬盘的容量为10G。

3: 步骤2:将VDI镜像转换为RAW磁盘格式

如果想要把virtualbox的磁盘格式迁移到KVM,那么下一步是就是将VDI磁盘格式转换为RAW磁盘格式。执行以下命令。

VBoxManage clonehd --format RAW /home/test/ubuntu.vdi ubuntu_2004.img

或者

vboxmanage clonehd --format RAW /home/test/ubuntu.vdi ubuntu_2004.img

输出以下信息:

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

正在把virtualbox的磁盘格式转换到KVM

不到1分钟时间,已经转换完成。转换成功后,您会注意到RAW镜像格式占用了大量的磁盘空间。

>
raw格式的有如下几个特点:原始的裸格式,可以通过dd命令直接创建(因该特性,其可以做为其他磁盘格式的中转格式);读取速度最快(但也占用空间大);能够直接改变空间大小;能够被宿主机直接挂载 。不过相对于其他格式raw也有缺点 ,如不支持snapshot快照、不支持磁盘加缩、AES加密等。
>

您可以使用du命令来查看RAW虚拟磁盘文件的大小。

du -sh ubuntu_2004.img
11G ubuntu_2004.img

显示该硬盘文件大小为11G

在我演示的例子中,ubuntu_2004.img虚拟磁盘文件占用11G硬盘空间,这是相当大的空间。接下来我们将会把RAW镜像转换为KVM磁盘格式:qcow2。

4: 步骤3: 转换RAW镜像磁盘格式为KVM格式

以下命令就是把img格式转换到qcow2格式。

sudo qemu-img convert -f raw ubuntu_2004.img -O qcow2 /var/lib/libvirt/images/ubuntu_2004.qcow2

稍等一会,转换完成,没有输出信息表示操作成功。

查看qcow2磁盘格式的大小。

du -h /var/lib/libvirt/images/ubuntu_2004.qcow2

输出结果如下:

5.8G    /var/lib/libvirt/images/ubuntu_2004.qcow2

可以看到,qcow2磁盘镜像占用的硬盘空间远远小于RAW磁盘镜像文件,这里显示的是5.8G。

格式转换到这里结束,接下来您可以使用KVM套件启动debian操作系统。

5: 步骤4: 测试:启动KVM虚拟机

根据前面的信息,我的虚拟机的配置应该是:
操作系统:Ubuntu 20.04
内存:1024M
硬盘:10G

接下来我们试试启动KVM虚拟机:

virt-install --name=ubuntu20_04  --ram=1024  --vcpus=2 --os-type=linux --os-variant=ubuntu20.04  --network default,model=virtio --graphics=vnc,password=linuxrumen.com,port=5910,listen=0.0.0.0 --noautoconsole  --accelerate --import --disk path=/var/lib/libvirt/images/ubuntu_2004.qcow2,device=disk,format=qcow2,bus=virtio,cache=writeback,size=10

输出以下结果:

WARNING  Requested memory 1024 MiB is less than the recommended 2048 MiB for OS ubuntu20.04

开始安装
域创建完成。

新创建的KVM虚拟机

我们使用VNC连接刚刚创建的虚拟机:

sudo qemu-img convert -f raw ubuntu_2004.img -O qcow2 /var/lib/libvirt/images/ubuntu_2004.qcow2

查看新创建的KVM虚拟机

可以看到,虚拟机已经成功启动,使用的是KVM虚拟化技术。

6. 总结

通过本文,您应该学会了如何把Virtualbox虚拟机迁移到KVM环境了吧?主要是是通过qemu-img工具完成转换,注意的是,无论是RAW格式(后缀为img),还是qcow2格式,KVM都可以直接使用。但是RAW格式和qcow2格式还是比较明显的区别的,您知道这2种格式的区别吗?欢迎留言。

赞(0)
分享到: 更多 (0)

学习QQ群:557371664

关注微信公众号自助视频学习

评论 抢沙发

评论前必须登录!