2025年kvm虚拟化有哪些组件组成(kvm虚拟化中的组件有哪些)

kvm虚拟化有哪些组件组成(kvm虚拟化中的组件有哪些)p style text align left KVM Kernel based Virtual Machine 最初是由以色列的公司 Qumranet 开发的 KVM 在 2007 年 2 月被正式合并到 Linux 2 6 20 核心中 成为内核源代码的一部分 2008 年 9 月 4 日 RedHat 公司收购了 Qumranet 开始在 RHEL 中用 KVM 替换 Xen p

大家好,我是讯享网,很高兴认识大家。



 <p style="text-align:left;">KVM(Kernel-based Virtual Machine)最初是由以色列的公司Qumranet开发的。KVM在2007年2月被正式合并到Linux 2.6.20核心中,成为内核源代码的一部分。2008年9月4日,RedHat公司收购了Qumranet,开始在RHEL中用KVM替换Xen,第一个包含KVM的版本是RHEL 5.4。从RHEL 6开始,KVM成为默认的虚拟化引擎。KVM必须在具备Intel VT或AMD-V功能的X86平台上运行。在Linux内核3.9版中,加入了对ARM架构的支持。具体kvm虚拟化支持的处理器可以通过官网进行查询。</p> 

讯享网

KVM包含一个为处理器提供底层虚拟化、可加载的核心模块kvm.ko(kvm-intel.ko或kvm-amd.ko),使用QEMU(QEMU-KVM)作为虚拟机上层控制工具。KVM不需要改变Linux或Windows系统就能运行。

实际上,在Linux中,kvm就是内核中的一个模块,用户空间通过QEMU模拟硬件提供给虚拟机使用,而一台使用kvm创建的虚拟机就是一个Linux中的进程,管理这个对应的进程就是相当于管理整个对应的虚拟机。

根据 文档的描述,类似于qemu的作用,kvmtool是一个支持运行KVM Guest OS的 host os端用户态虚拟机工具,它是一个纯虚拟化工具,guest os不需要修改即可运行其上, 不过,由于KVM是基于CPU的硬件虚拟化支持的,所以类似于qemu-kvm,它只支持基于相同架构的Guest OS.

kvmtool代码量只有5KLOC,是一个干净的、从头开始写的、轻量级虚拟化工具,  由于轻量,对于想要学习虚拟化的人来说非常友好。kvmtool 作为KVM主机工具实现,可以引导Linux映像,无需BIOS和其他相关依赖. 下面我们尝试基于ubuntu22环境下搭建一个kvmtool运行环境,在虚拟机上运行另一个linux guest os。

主机环境

本实验使用的主机系统是ubuntu22.04,具体信息参考下图:

下载代码

下载kvmtool:

讯享网

下载busybox:

下载Linux内核:

讯享网

选择版本的时候,刻意选择工具和源码版本大体同一段时间的即可,无需太多关注。

编译kvmtool

本次实验使用的kvmtool版本为:e17d182ad3f797f01947fc234d95c96c050c534b,编译方式简单直接,进入 kvmtool目录下直接make 即可:

编译后的可执行程序为lkvm,同时建立了一个lkvm的硬连接vm.两者完全一致,如果需要调试kvmtool,可以手动修改Makefile中的CFLAGS:

编译Linux内核

内核的编译方法很简单,参考博客

这里需要注意三点:

  1. 修掉.pem文件缺失相关的编译错误,有两个
  2. 只需要编译bzImage目标,不需要编译模块
  3. 默认menuconfig可能配置为CONFIG_VIRTIO_NET=m,需要设置为CONFIG_VIRTIO_NET=y,已经打开了KVM,VIRTIO(CONFIG_VIRTIO_NET=y)相关选项

最后生成bzImage文件:

编译busybox

基于busybox制作根文件系统,构建目录结构,参考博客:

需要注意的是,执行完博客中的操作后,需要将顶层目录的linuxrc文件重命名为init(这步必须做,否则无法进入控制台)。原因很简单,1号进程的启动优先级如下图所示:

所以,linuxrc无法启动的原因很简单,就是默认的ramdisk_execute_command为init, 如果将ramdisk_execute_command修改为linuxrc,则不修改文件名也可以正常启动。

之后将rootfs目录压缩为cpio文件。

完成后目录结构如下:

以上三步操作完成后,就可以开始运行了。

运行虚拟机

执行前,确认主机存在/dev/kvm设备节点

运行虚拟机执行如下命令

讯享网

小讯
上一篇 2025-04-18 09:30
下一篇 2025-04-21 07:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/179363.html