kvm基本原理

KVM源代码分析1:基本工作原理 下了很大决心挖这个坑,虽然之前对kvm有些了解,但纸上得来终觉浅,只有深入到代码层面,才能摈弃皮毛,看到血肉,看到真相。作为挖坑的奠基石,准备写上几篇:kvm基本工作原理、CPU

调度原理、KVM内存管理、KVM存储管理、KVM设备管理。挖好之后进入正题。  所有的虚拟化都是两部分组成:虚拟机和宿主(HOST),虚拟机内运行正常的业务程序,HOST则正常运行虚拟机,此处的虚拟机则是KVM,负责在HOST里面虚拟化出独立的OS环境。 KVM属于完全虚拟化,功能组件上由两部分组成,KVM Driver(内核态)和Qemu(用户态)。KVM Driver负责模拟虚拟机的CPU运行,内存管理,设备管理等;Qemu则模拟虚拟机的IO设备接口以及用户态控制接口。    kvm-oenhan  如上图所示,Qemu在最上层,将虚拟机的整体呈现到host用户上,可以理解成客户模式;Qemu通过中间层libkvm或者ioctl等控制/dev/kvm设备接口,从而掌握内核态中kvm

驱动进行的资源分配,即用户态模式;kvm驱动接收用户态操作指令,控制虚拟机在内核态的资源分配,称之为内核模式。在HOST里面,客户模式的体现就是一个虚拟机内部环境,用户态则是虚拟机进程。

oenhan_kvm  上图是一个执行过程图,首先启动一个虚拟化管理软件,开始启动一个虚拟机,通过ioctl等系统调用向内核中申请指定的资源,搭建好虚拟环境,启动虚拟机内的系统,虚拟机内的系统向内核反馈相关资源申请处理,如果是io请求,则提交给用户模式下的qemu处理,非io请求则将处理结果反馈给客户模式。  libkvm是qemu自己使用的用户态接口,可以把qemu源代码解开,里面有libkvm的函数库,不过并不对外呈现,虚拟机编程接口一般使用libvirt。

KVM的思想是在Linux内个的基础上添加虚拟机管理模块,重用Linux内核中已经完善的进程调度,内存管理,IO管理等部分,因此KVM并不是一个完整的模拟器,而只是一个提供虚拟化功能的内核插件,具体的模拟器工作是借助QEMU来完成的.     在Xen的体系结构中,Xen Hypervisor运行于硬件之上,并且将系统资源进行了虚拟化,将虚拟化的资源分配给上层的虚拟机(VM),然后通过虚拟机VM来运行相应的客户机操作系统.    在KVM中,一个虚拟机就是一个传统的Linux中的线程,拥有自己的PID号,也可以被kill系统调用直接杀死(在这种情况下,虚拟机的行为表现为"突然断电").在一个Linux系统中,有多少个VM,就有多少个进程.如:    以上VM进程信息是通过qemu-kvm来进行的,相关的控制开关作为命名行参数输入,如虚拟映像对应的磁盘,虚拟网卡,VNC设置,显卡设置和IO设置等.   KVM的API是通过/dev/kvm设备进行访问的./dev/kvm是一个字符型设备. 1  [email protected]:~# ls -l /dev/kvm 2  crw-rw---- 1 root kvm 10, 232 Mar 14 14:20 /dev/kvm    kvm仅仅是Linux内核的一个模块,管理和创建完整的KVM虚拟机,需要更多的辅助工具.  1.qemu-Kvm:仅有KVM模块是远远不够的,因为用户无法直接控制内核模块去做事情,还必须有一个用户空间的工具。关于用户空间的工具,KVM 的开发者选择了已经成型的开源虚拟化软件 QEMU.QEMU 是一个强大的虚拟化软件,它可以虚拟不同的 CPU 构架.   运行在内核态的KVM模块通过/dev/kvm字符设备文件向外提供操作接口.KVM通过提供libkvm这个操作库,将/dev/kvm这一层面的ioctl类型的API转化成为通常意义上的函数API调用,提供给QEMU的相应适配层.    比如说在x86 的CPU上虚拟一个Power的CPU,并利用它编译出可运行在 Power上

时间: 2024-10-12 04:13:08

kvm基本原理的相关文章

kvm_博文大纲

初级内容: kvm基本原理(转载) 如何部署kvm宿主机 快速创建第一台虚拟机 网卡桥接,nat配置 nat如何制定ip地址 nat初网的防火墙配置,如何端口映射 virsh命令介绍 virsh console的支持 virt-install   和  qemu-img 命令详解 如何新增网卡和磁盘 中级阶段: xml文件格式的理解 动态调整内存和cpu kvm的克隆介绍 kvm的快照介绍 了解External snapshot 和 Internal snapshot  最新版本才能支持 raw

老男孩教育运维班26期脱产班9月即将开班,伙伴们抓紧报名!

老男孩教育中国linux运维领域教育第一品牌,不仅教学质量一流,就业薪水更是一流! linux运维班平均毕业工资10K,高级架构师毕业平均薪资16K. 本课表为201508制定,适合26期脱产班,最艰苦的周期4-5个月,有胆量挑战么? 什么?还没有掌握linux高级运维实战技术?那你真OUT了! 什么?工资还没过10K,那你更OUT了,北京平均工资最低也10K以上了! 屌丝们最后的福利! 身价千万的老板不足为奇! 身价千万的明星也不足为奇! 身价千万的运维屌丝你见过么?什么-没见过!!! 他如今

课程表安排

第一部分:linux网站运维必会基础技术知识体系 基础不牢,地动山摇 1.如何成为一个优秀的linux运维架构师人员 1)什么是linux运维? 2)linux运维岗位都做啥? 3)如何学好linux运维? 4)linux专业运维人员的习惯和思想 5)运维人员职场必备的工作沟通技巧 2.如何高标准的掌握linux运维实战技术 1)树立合理的职业目标和职业规划 2)掌握科学的学习运维技术的方法 3)掌握上课听课学习的要领 4)学习老师优秀的运维习惯和思路 5)抓重点.抓精髓 3.计算机硬件基础核心

[Mark] KVM 虚拟化基本原理

X86 操作系统是设计在直接运行在裸硬件设备上的,因此它们自动认为它们完全占有计算机硬件.x86 架构提供四个特权级别给操作系统和应用程序来访问硬件. Ring 是指 CPU 的运行级别,Ring 0是最高级别,Ring1次之,Ring2更次之…… 就 Linux+x86 来说, 操作系统(内核)需要直接访问硬件和内存,因此它的代码需要运行在最高运行级别  Ring0上,这样它可以使用特权指令,控制中断.修改页表.访问设备等等. 应用程序的代码运行在最低运行级别上ring3上,不能做受控操作.如

云计算概述与KVM

一.云计算概述 云计算主要是一种按需付费的网络模式,这种模式提供可用的.便捷的.按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互.分为三大层:IaaS(基础设施即服务,面向运维人员).PaaS(平台即服务,面向开发人员),SaaS(软件即服务,面向终端用户). 虚拟化分类:服务器虚拟化.桌面虚拟化.应用虚拟化,私有云 1.1 云计算的特点和优势 1)云计算是一种使用模式 2)云计

干货分享: 长达250页的Libvirt Qemu KVM的ppt,不实验无真相

<iframe height=570 width=100% scrolling="no" src="http://share.csdn.net/frame/9070" frameborder=0 allowfullscreen></iframe> 1. 概论 1.1 虚拟化的基本类型 无虚拟化 半虚拟化Paravirtualization 非硬件辅助全虚拟化 硬件辅助全虚拟化 实验一:查看系统是否支持硬件辅助虚拟化 1.2 KVM Qemu

Openstack 实战讲解之-----------02-控制节点kvm虚拟化配置

KVM虚拟化的特性 嵌入到linux正式kernel(提高了兼容性) 代码级资源调用(提高性能) 虚拟机就是一个进程(内存易于管理) 直接支持NUMA技术(提高扩展性) 虽然被RedHat收购了,但是依然保持开源发展模式,社区活跃 更好的商业支持及服务保障 CentOS7较CentOS6默认支持cpu热添加,内存热添加,大页内存默认都是开启的. 支持虚拟化的条件 Inter的cpu简称为:VMX AMD的cpu简称为:SVM VMware需要开启如下两个条件即可,如果是物理机,需要在bios里面

KVM之初体验——QEMU安装虚拟机

QEMU简介 QEMU是一款开源的模拟器及虚拟机监管器(Virtual Machine Monitor,  VMM).QEMU主要提供两种功能给用户使用.一是作为用户态模拟器,利用动态代码翻译机制来执行不同于主机架构的代码.二是作为虚拟机监管器,模拟全 系统,利用其他VMM(Xen, KVM, etc)来使用硬件提供的虚拟化支持,创建接近于主机性能的虚拟机. 是x86架构且硬件支持虚拟化技术(如 intel VT 或 AMD-V)的Linux全虚拟化解决方案. 它包含一个为处理器提供底层虚拟化 

KVM虚拟化部署文档V1.0

一.KVM介绍 (kvm是kernel virtual module的简写)kvm是红帽公司5.4版本后所推出的最新虚拟化技术产品.它和vpc,virtual  box都属于完全虚拟化产品,而Xen是属于半虚拟化产品.虽说kvm是完全虚拟化,但在关键的硬盘和网卡上支持半虚拟化virtio,在很大程度上提高了性能,kvm是轻量级虚拟化的代表,也需要硬件vt技术的支持,另外从操作界面上看,xen和kvm都是用virt-manager工具,差别不是很大,但不可以在同一台机器上同时安装且运行Xen和KV