千家信息网

KVM虚拟化是什么

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章主要介绍"KVM虚拟化是什么",在日常操作中,相信很多人在KVM虚拟化是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"KVM虚拟化是什么"的疑惑有所帮助!接
千家信息网最后更新 2025年12月03日KVM虚拟化是什么

这篇文章主要介绍"KVM虚拟化是什么",在日常操作中,相信很多人在KVM虚拟化是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"KVM虚拟化是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

KVM虚拟化简介

1、虚拟化分为:全虚拟化和半虚拟化,需要CPU的支持。

2、全虚拟化:不需要做任何配置,让用户觉得就是一台真实的服务器

3、半虚拟机化:需要用户配置,有点麻烦。

4、KVM 仅仅是 Linux 内核的一个模块。管理和创建完整的 KVM 虚拟机,需要更多的辅助工具。

5、与Xen相比较,KVM就简化的多了。它不需要重新编译内核,也不需要对当前kernel做任何修改,它只是几个可以动态加载的.ko模块。它结构更加精简、代码量更小。所以,出错的可能性更小。并且在某些方面,性能比Xen更胜一筹。

6、/etc/libvirt/qemu目录,存放虚拟机的配置文件。

7、kvm的备份:拷贝/etc/libvirt/qemu目录下的xml配置文件,以及xml中设置的img文件。

8、kvm的还原:进入virsh,执行define 目录下的xml文件路径,且确保镜像文件的存在。

virsh # define /etc/libvirt/qemu/winxp.xml

9、KVM允许客户机过载使用(over-commit)物理资源,即给客户机分配的CPU和内存数量多于物理上实际存在的资源。

10、CPU的过载使用,是让一个或多个客户机使用vCPU的总数量超过实际拥有的物理CPU数量,QEMU会启动更多的线程来为客户机提供服务,这些线程也是被Linux内核调度运行在物理CPU硬件上。

11、最推荐的做法是对多个单CPU的客户机使用over-commit,比如:在拥有4个逻辑CPU的宿主机中,同时运行多于4个(如8个、16个)客户机,其中每个客户机都被分配一个vCPU。这时,如果每个宿主机的负载不很大的情况下,宿主机Linux对每个客户机的调度是非常有效的,这样的过载使用并不会带来客户机中的性能损失。

12、最不推荐的做法是让某一个客户机的vCPU数量超过物理CPU数量。比如,在拥有4个逻辑CPU的宿主机中,同时运行一个或多个客户机,其中每个客户机的vCPU数量多于4个(如16个)。这样的使用方法会带来比较明显的性能下降,其性能反而不如将客户机分配2个(或4个)vCPU,而且如果客户机中负载过重时,可能会让整个系统运行不稳定。不过,在并非100%满负载的情况下,一个(或多个)有4个vCPU的客户机运行在拥有4个逻辑CPU的宿主机中并不会带来明显的性能损失。

13、总的来说,KVM允许CPU的过载使用,但是并不推荐在实际的生产环境(特别是负载较重的环境)中过载使用CPU。在生产环境中过载使用CPU,有必要在部署前进行严格的性能和稳定性测试。

14、KVM中内存也是允许过载使用(over-commit)的,KVM能够让分配给客户机的内存总数大于实际可用的物理内存总数。

15、一般来说,有如下三种方式来实现内存的过载使用:

(1)内存交换(swapping):用交换空间(swap space)来弥补内存的不足。

(2)气球(ballooning):通过virio_balloon驱动来实现宿主机Hypervisor和客户机之间的协作来完成。

(3)页共享(page sharing):通过KSM(Kernel Samepage Merging)合并多个客户机进程使用的相同内存页。

其中,第一种内存交换的方式是最成熟的(Linux中很早就开始应用),但不推荐使用虚拟内存swap。

16、KVM(模块):

modprobe 命令加载 KVM 模块,如果用 RPM 安装 KVM 软件包,系统会在启动时自动加载模块。加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有 KVM 模块是远远不够的,因为用户无法直接控制内核模块去做事情,还必须有一个用户空间的工具。

17、QEMU (管理工具):

QEMU 是一个强大的虚拟化软件,它可以虚拟不同的 CPU 构架。比如说在 x86 的 CPU 上虚拟一个 Power 的 CPU,并利用它编译出可运行在 Power 上的程序。

18、QEMU-KVM (管理工具):

KVM 使用了 QEMU 的基于 x86 的部分,并稍加改造,形成可控制 KVM 内核模块的用户空间工具 QEMU-KVM。所以 Linux 发行版中分为 内核部分的 KVM 内核模块和 QEMU-KVM 工具。

19、Libvirt、virsh、virt-manager(管理工具):

RedHat 为 KVM 开发了更多的辅助工具,比如 libvirt、libguestfs 等。原因是 QEMU 工具效率不高,不易于使用。Libvirt 是一套提供了多种语言接口的 API,为各种虚拟化工具提供一套方便、可靠的编程接口,不仅支持 KVM,而且支持 Xen 等其他虚拟机。使用 libvirt,你只需要通过 libvirt 提供的函数连接到 KVM 或 Xen 宿主机,便可以用同样的命令控制不同的虚拟机了。Libvirt 不仅提供了 API,还自带一套基于文本的管理虚拟机的命令virsh,你可以通过使用 virsh 命令来使用 libvirt 的全部功能。但最终用户更渴望的是图形用户界面,这就是 virt-manager。它是一套用 python 编写的虚拟机管理图形界面,用户可以通过它直观地操作不同的虚拟机。Virt-manager 就是利用 libvirt 的 API 实现的。

20、在 KVM 模型中,每一个虚拟机都是一个由 Linux 调度程序管理的标准进程,你可以在用户空间启动客户机操作系统。一个普通的 Linux 进程有两种运行模式:内核和用户。 KVM 增加了第三种模式:客户模式(有自己的内核和用户模式)。

21、内核模块导出了一个名为 /dev/kvm 的设备,它可以启用内核的客户模式(除了传统的内核模式和用户模式)。有了 /dev/kvm 设备,VM 使自己的地址空间独立于内核或运行着的任何其他 VM 的地址空间。

到此,关于"KVM虚拟化是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

客户 客户机 内核 用户 工具 模块 内存 过载 运行 宿主 宿主机 模式 管理 性能 数量 物理 空间 多个 文件 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 打折飞机票软件开发 黏土服务器未绑定网易账号 深圳市星享互联网络科技 网络安全监测装置通过率 启动服务器访问 软件开发刚入职会干什么 天津软件开发培训机构有哪些 我的世界艾尔莉雅服务器介绍 华为鲲鹏服务器行业地位 浪潮服务器创建阵列找不到硬盘 加强和改进网络安全工作 我的世界服务器里怎么刷等级 有关俄罗斯的数据库 计算机网络技术的就业分析 数据库怎么存储多种混合格式 内蒙古新牧语网络技术有限公司 江苏视觉测量系统软件开发 无线思维互联网科技有限公司 软件开发代言 网络安全规划任职资格 怎么设置表格里的数据库 软件开发的三大流程 机电设备控制系统软件开发文档 美国软件开发中学 软件开发经理 招聘信息 企业网络安全风险技术方案 中通快递 网络安全等级 大学学软件开发需要先有电脑吗 数据库结构模型有哪几种 恐龙岛正式服服务器怎么设置
0