一个开源的系统虚拟化模块------KVM虚拟机

KVM(Kernel-based Virtual Machine)是一种开源的系统虚拟化模块,集成在Linux内核中,依赖硬件支持(如Intel VT或AMD V技术)。KVM与QEMU结合,提供虚拟机管理功能。QEMU-KVM用于用户空间的控制,KVM模块初始化CPU并开启虚拟化模式。KVM支持超分、半虚拟化I/O、热插拔等功能,搭配libvirt等工具进行管理和部署。KVM的优势在于服务器整合、灵活备份迁移、资源动态调配。在Linux上安装KVM需要开启CPU虚拟化功能,并通过命令行或图形界面进行安装。
摘要由CSDN通过智能技术生成

1.首先我们简单的了解以下什么是KVM:
KVM是Kernel-based Virtual Machine(基于内核的虚拟机)的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM目前已成为学术界的主流VMM之一。
KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。但Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。广为流传的商业系统虚拟化软件VMware ESX系列是基于软件模拟的Full-Virtualization。
准确的来说,KVM 仅仅是 Linux 内核的一个模块, 该内核模块使得 Linux 变成了一个 Hypervisor。KVM是由 Quramnet 开发,该公司于 2008年被 RedHat 收购、KVM支持 x86 (32 and 64位), s390, Powerpc等 CPU、KVM需要支持虚拟化扩展的 CPU、并且它是完全开源的。管理和创建完整的 KVM 虚拟机,需要更多的辅助工具。

QEMU-KVM:在 Linux 操作系统中,首先我们可以通过 modprobe 命令加载 KVM 模块(如果用通过RPM 安装 KVM软件包,系统会在启动时自动加载模块),加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有 KVM模块是远远不够的,因为用户无法直接控制内核模块去做事情,还必须有一个用户空间的工具。关于用户空间的工具,KVM的开发者选择了已经成型的开源虚拟化软件 QEMU。
QEMU: 一个强大的虚拟化软件,它可以虚拟不同的 CPU 构架。比如说在 x86 的CPU 上虚拟一个 Power 的 CPU,并利用它编译出可运行在 Power 上的程序。

注意:KVM本身不执行任何硬件虚拟,需要客户的空间程序(如:QEMU)通过 /dev/kvm接口设置一个客户机虚拟服务器的地址空间,向它提供模拟的 I/O,并将它的视频显示映射回宿主的显示屏。它是KVM 虚机的核心部分,其主要功能是初始化 CPU 硬件,打开虚拟化模式,然后将虚拟客户机运行在虚拟机模式下,并对虚机的运行提供一定的支持。以在 Intel 上运行为例,KVM 模块被加载的时候,它执行以下相应步骤

1)首先初始化内部的数据结构;
2)做好准备后,KVM 模块检测当前的CPU,然后打开CPU控制及存取的虚拟化模式开关,并通过执行VMXON指令将宿主操作系统置于虚拟化模式的根模式;
3)最后,KVM 模块创建特殊设备文件 /dev/kvm 并等待来自用户空间的指令;

Linux操作系统上用户空间、内核空间与虚拟机的关系如下图所示:

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值