虚拟化与网络存储技术

目录

1、Qemu-KVM

1.1、KVM原理简介

1.1.1、KVM工作流程

1.1.2、KVM架构

1.1.3、KVM模块 

1.2、Qemu原理介绍

1.2.1、Qemu架构

1.2.2、Qemu模块

1.2.3、Qemu的三种运行模式

1.2.4、 Qemu的特点

1.3、KVM和Qemu的关系      

1.3.1、KVM和Qemu的关系

2、虚拟化技术

2.1、链接


1、Qemu-KVM

1.1、KVM原理简介

1.1.1、KVM工作流程

用户模式的qemu利用libkvm通过ioctl进入内核模式,kvm模块为虚拟机创建虚拟内存,虚拟CPU后执行VMLauch指令进入客户模式。加载Guest OS并执行。如果Guest OS 发生外部中断或者影子页表缺页之类的情况,会暂停Guest OS的执行,退出客户模式,执行异常处理,之后重新进入客户模式,执行客户代码。如果发生I/O事件或者信号队列中有信号到达,就会进入用户模式处理。

1.1.2、KVM架构

如图所示,左侧部分是一个标准的Linux操作系统,可以是RHEL、Fedora、Ubuntu等。KVM内核模块在运行时按需加载进入内核空间运行。KVM本身不执行任何设备模拟,需要用户空间程序QEMU通过/dev/kvm接口设置一个虚拟客户机的地址空间,向它提供模拟的I/O设备,并将它的视频显示映射回宿主机的显示屏。

1.1.3、KVM模块 

 KVM模块是KVM虚拟机的核心部分。其主要功能是初始化CPU硬件,打开虚拟化模式,然后将虚拟客户机运行在虚拟机模式下,并对虚拟客户机的运行提供一定的支持。

 KVM模块加载之初,只存在/dev/kvm文件,而针对该文件的最重要的IOCTL调用就是“创建虚拟机”。在这里,“创建虚拟机”可以理解成KVM为了某个特定的虚拟客户机(用户空间程序创建并初始化)创建对应的内核数据结构。

处理器对设备的访问主要是通过IO指令和MMIO,其中IO指令会被处理器直接截获,MMIO会通过配置内存虚拟化来捕捉。但是,外设的模拟一般并不由KVM模块负责。一般来说,只有对性能要求比较高的虚拟设备才会由KVM内核模块来直接负责,比如虚拟终端控制器和虚拟时钟,这样可以大量减少处理器的模式切换的开销。

1.2、Qemu原理介绍

1.2.1、Qemu架构

Qemu是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,是一个完整的可以运行的软件,非常灵活可移植,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和Qemu模拟出来的硬件打交道,Qemu将这些指令转译给真正的硬件。

1.2.2、Qemu模块

QEMU本身并不是KVM的一部分,其自身就是一个著名的开源虚拟机软件。与KVM不同,QEMU虚拟机是一个纯软件的实现,所以性能地下。但是,其优点是在支持QEMU本身编译运行的平台上就可以实现虚拟机的功能,甚至虚拟机可以与宿主机并不是同一个架构。作为一个存在已久的虚拟机,QEMU的代码中有整套的虚拟机实现,包括处理器虚拟化、内存虚拟化,以及KVM使用到的虚拟设备模拟(比如网卡、显卡、存储控制器和硬盘等)。

从QEMU和KVM模块之间的关系可以看出,这是典型的开源社区在代码共用和开发项目共用上面的合作。诚然,QEMU可以选择其他的虚拟机或技术来加速,比如Xen或者KQEMU;KVM也可以选择其他的用户空间程序作为虚拟机实现,只要它按照KVM提供的API来设计。但是在现实中,QEMU与KVM两者的结合是最成熟的选择,这对一个新开发和后起的项目(KVM)来说,无疑多了一份未来成功的保障。

1.2.3、Qemu的三种运行模式

第一种模式是通过kqemu模块实现内核态的加速。

第二种模式是在用户态直接运行QEMU,由QEMU对目标机的 所有 指令进行翻译后执行,相当于全虚拟化。

第三种模式则是KVM官方提供的kvm-qemu加速模式。

1.2.4、 Qemu的特点

(1)QEMU的两种操作模式:完整的系统仿真和用户模式仿真。

(2)QEMU具有以下特点:

        ①QEMU可以在没有主机内核驱动程序的情况下运行。

        ②它适用于多种操作系统(GNU / Linux,* BSD,Mac OS X,Windows)和体系结构。

        ③它执行FPU的精确软件仿真。  

(3)QEMU用户模式仿真具有以下功能:

        ①通用Linux系统调用转换器,包括大部分ioctls。 

        ②使用本机CPU clone的仿真为线程使用Linux调度程序。

        ③通过将主机信号重新映射到目标信号来实现精确信号处理。

1.3、KVM和Qemu的关系      

1.3.1、KVM和Qemu的关系

Qemu是一个独立的虚拟化解决方案,通过intel-VT 或AMD SVM实现全虚拟化,安装qemu的系统,可以直接模拟出另一个完全不同的系统环境。QEMU本身可以不依赖于KVM,但是如果有KVM的存在并且硬件(处理器)支持比如Intel VT功能,那么QEMU在对处理器虚拟化这一块可以利用KVM提供的功能来提升性能。

KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术(Intel-VT或AMD-V)的Linux的全虚拟化解决方案。它是Linux的一个很小的模块,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。准确来说,KVM是Linux kernel的一个模块。

2、虚拟化技术

2.1、链接

【虚拟化技术】_weixin_58319685的博客-CSDN博客文章目录简介1、简单叙述常见的虚拟化技术分类;2、XEN虚拟化技术的优缺点;3、KVM虚拟化技术功能特性及优缺点;4、红帽RHEV技术功能特性及优缺点;5、简单叙述其他虚拟化技术的实现方法。简介目录文章目录简介一、简单叙述常见的虚拟化技术分类二、XEN虚拟化技术的优缺点优点:缺点:三、KVM虚拟化技术功能特性及优缺点特性:优势:局限性:四、红帽RHEV技术功能特性及优缺点优点:缺点:五、简.https://blog.csdn.net/weixin_58319685/article/details/124163540

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值