KVM虚拟化——简介
KVM
基于内核的虚拟机KVM(Kernel-Based Virtual Machine)是2007年问世的开源虚拟化解决方案。KVM需要两个条件:
①硬件支持全虚拟化
②操作系统为Linux
KVM功能
基于内核实现虚拟化,KVM包含了一个加载的内核模块kvm.ko。此外,由于KVM对硬件×86架构的依赖,会需要一个处理器规范模块。处理器规范模块与处理器类型相关,如果使用的是Intel的CPU,那么就加载kvm-intel.ko;如果使用的是AMD的CPU,就加载kvm-amd.ko模块。当Linux内核加载KVM模块之后,KVM模块只负责对虚拟机的虚拟CPU、虚拟内存进行管理和调度。
Qemu
虚拟机只具备虚拟CPU、虚拟内存还是无法完成很多工作。有时候,虚拟机还是需要很多的外设(可能是真实或虚拟的外设),如何管理这些外设呢?外设分为以下两种。
①真实硬件设备:
虚拟机如果要与这些真实的硬件设备交互,就需要利用Linux系统内核来进行管理。
②虚拟的外部设备:
虚拟机要与虚拟机的外设交互时,KVM需要借助另外一个虚拟化项目Qemu。通过Qemu,KVM就能够很好地与虚拟外设交互。实际上,Qemu中,也利用软件编写了很多虚拟机的外部设备。除非特别需要,很多外设都采用了Qemu的虚拟外设。
KVM虚拟化系统架构

从上图可以看出,KVM本身只关注于虚拟机调度、内存管理这两大方面。外设的任务交给Linux内核、Qemu。因此,KVM是一个轻量级的Hypervisor,显得小巧灵活。正是由于KVM轻量级的特性,在很多Linux发行版中,已将KVM加入到虚拟化解决方案中。
KVM虚拟化——简介的更多相关文章
- KVM虚拟化简介及安装
kvm是基于图形化的linux操作的 安装图形化界面的知识点: 磁盘空间有两个词: 精简置备:我先在我系统里面去声明我要一个50G的空间,但是呢,我不会把50G都分给你,你用多少,我分给你多少,但是做 ...
- KVM -> 虚拟化简介&虚拟机安装_01
什么是虚拟化? 在计算机技术中,虚拟化(技术)或虚拟技术(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU.内存.磁盘空间.网络适配器等),予以抽象.转换后呈现 ...
- 1 云计算系列之云计算概述和KVM虚拟化简介
为什么会出现云之传统数据中学面临的问题 物理服务器的利用率非常低,浪费资源,且资源分配不合理,比如一台服务器CPU使用率不到40%,或者某个应用需要的硬件配置低但是服务器硬件配置高等等. 云计算概念 ...
- [原] KVM 虚拟化原理探究(1)— overview
KVM 虚拟化原理探究- overview 标签(空格分隔): KVM 写在前面的话 本文不介绍kvm和qemu的基本安装操作,希望读者具有一定的KVM实践经验.同时希望借此系列博客,能够对KVM底层 ...
- KVM虚拟化(KVM简介和KVM安装)
KVM 虚拟化架构分类 寄居虚拟化架构:指在宿主操作系统之上安装和运行虚拟化程序,依赖于宿主操作系统对设备的支持和物理资源的管理. 裸金属虚拟化架构:指直接在硬件上面安装虚拟化软件,再在其上安装操作系 ...
- [原] KVM 虚拟化原理探究(6)— 块设备IO虚拟化
KVM 虚拟化原理探究(6)- 块设备IO虚拟化 标签(空格分隔): KVM [toc] 块设备IO虚拟化简介 上一篇文章讲到了网络IO虚拟化,作为另外一个重要的虚拟化资源,块设备IO的虚拟化也是同样 ...
- [原] KVM 虚拟化原理探究(5)— 网络IO虚拟化
KVM 虚拟化原理探究(5)- 网络IO虚拟化 标签(空格分隔): KVM IO 虚拟化简介 前面的文章介绍了KVM的启动过程,CPU虚拟化,内存虚拟化原理.作为一个完整的风诺依曼计算机系统,必然有输 ...
- [原] KVM 虚拟化原理探究(4)— 内存虚拟化
KVM 虚拟化原理探究(4)- 内存虚拟化 标签(空格分隔): KVM 内存虚拟化简介 前一章介绍了CPU虚拟化的内容,这一章介绍一下KVM的内存虚拟化原理.可以说内存是除了CPU外最重要的组件,Gu ...
- [原] KVM 虚拟化原理探究(3)— CPU 虚拟化
KVM 虚拟化原理探究(3)- CPU 虚拟化 标签(空格分隔): KVM [TOC] CPU 虚拟化简介 上一篇文章笼统的介绍了一个虚拟机的诞生过程,从demo中也可以看到,运行一个虚拟机再也不需要 ...
随机推荐
- mybatis 枚举typeHandler
枚举typeHandler 在绝大多数情况下,typeHandler因为枚举而使用,MyBatis已经定义了两个类作为枚举类型的支持,这两个类分别是: •EnumOrdinalTypeHandler. ...
- Hello log4net——做一个实用好用的log4net的demo(转)
log4net使用指南 (对配置解释比较全面细致,建议做完demo后多看) Log4Net使用详解(周公)——点击打开链接 Log4Net使用详解(续)周公——点击打开链接 点击打开链接 点击打开链 ...
- 改进初学者的PID-采样时间
最近看到了Brett Beauregard发表的有关PID的系列文章,感觉对于理解PID算法很有帮助,于是将系列文章翻译过来!在自我提高的过程中,也希望对同道中人有所帮助.作者Brett Beaure ...
- 【Leetcode_easy】860. Lemonade Change
problem 860. Lemonade Change solution class Solution { public: bool lemonadeChange(vector<int> ...
- Python扫描器-端口扫描
结合渗透测试最常见就是单个域名扫指纹,自动子域名查找.获取所有子域名的IP,自动C段IP查找相同子域名,利用有效IP扫端口. 常见端口库扫描 service_list = { 21:"FTP ...
- 【OpenGL开发】GLUT/freeglut 是什么? OpenGL 和它们有什么关系?
GLUT/freeglut 是什么? OpenGL 和它们有什么关系? OpenGL只是一个标准,它的实现一般自带在操作系统里,只要确保显卡驱动足够新就可以使用.如果需要在程序里直接使用OpenGL, ...
- 【VS开发】ClientToScreen 和ScreenToClient 用法
ClientToScreen( )是把窗口坐标转换为屏幕坐标 pWnd->GetWindowRect(&rc);是获取整个窗体的大小pWnd->GetClientRect(& ...
- 使用 RedisDesktopManager 连接redis所需步骤
服务器开放了6379端口 redis默认配置是只允许本地连接,我们需要修改redis配置文件 配置文件找到 bind 127.0.0.1 这一行注释掉 在找到 protected-mode yes 修 ...
- Uncaught Error: `setOption` should not be called during main process.
主要是自己记笔记用,大佬些莫怪! 使用 echart 出现 :Uncaught Error: `setOption` should not be called during main process. ...
- ps -ef|grep详解 、kill与kill -9的区别
ps -ef|grep详解 ps命令将某个进程显示出来 grep命令是查找 中间的|是管道命令 是指ps命令与grep同时执行 PS是LINUX下最常用的也是非常强大的进程查看命令 grep命令是查找 ...