1. 前言
您是否考虑过虚拟机从VirtualBox切换到KVM?
如果大量VirtualBox虚拟需要迁移到KVM,这是一项艰巨的任务。
好消息是,您可以很容易地将VDI格式的VirtualBox虚拟机磁盘迁移到qcow2,这是KVM的虚拟磁盘格式,而不是创建新的KVM虚拟机。
在本教程中,我们将逐步介绍如何将VirtualBox虚拟机迁移到Linux下的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版的虚拟机。
图形化界面的信息如下 :
可以看到,该虚拟硬盘的容量为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%
不到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
开始安装
域创建完成。
我们使用VNC连接刚刚创建的虚拟机:
sudo qemu-img convert -f raw ubuntu_2004.img -O qcow2 /var/lib/libvirt/images/ubuntu_2004.qcow2
可以看到,虚拟机已经成功启动,使用的是KVM虚拟化技术。
6. 总结
通过本文,您应该学会了如何把Virtualbox虚拟机迁移到KVM环境了吧?主要是是通过qemu-img
工具完成转换,注意的是,无论是RAW格式(后缀为img),还是qcow2格式,KVM都可以直接使用。但是RAW格式和qcow2格式还是比较明显的区别的,您知道这2种格式的区别吗?欢迎留言。
评论前必须登录!
注册