虚拟化技术学习笔记2

news2024/9/20 0:56:33

1、虚拟机与容器对比:

2、Hypervisor管理工具对比:

3、QEMU:

软件模拟虚拟化、可以模拟多种硬件,包括X86架构处理器、AMD64架构处理器、ARM、SPARC与PowerPC、AIX架构等,效率低、一般用于研究测试场景。QEMU可以模拟一部手机,开发人员用于开发手机程序。

此处使用QEMU的主要目的是为了方便管理KVM虚拟机镜像文件。

说明:

QEMU由Fabrice Bellard编写的模拟处理器的自由软件,它是一个完整的可以单独运行的软件,可以独立模拟出整台计算机、包括CPU、内存、IO设备、通过一个特殊的“重编译器”对特定的处理器的二进制代码进行翻译,从而具有跨平台的通用性。QEMU有两种工作模式:系统模式,可以模拟出整个电脑系统,另一种是用户模式,可以运行不同与当前硬件平台的其他平台上的程序。1.0以后版本就只能使用QEMU-KVM进行加速了,1.3版本之后QEMU和QEMU-KVM合二为一了。

4、KVM:

KVM Kernel-based virtual machine 基于内核的虚拟机,KVM是虚拟机模块。

是X86架构下硬件辅助的全虚拟化的首选解决方案。

KVM需要通过修改的QEMU软件(qemu-kvm)来实现虚拟机的管理。

KVM就是内核的一个模块,用户空间通过QEMU模拟硬件提供给虚拟机使用,一台虚拟机就是一个普通的Linux进程,虚拟机中的VCPU就是该进程中的线程。

 说明:

不同的基于KVM的虚拟化平台,可能会采用不同的虚拟化组件,目前主流的采用QEMU-KVM组件,但在不同的产品里版本有所不同,功能也有差异。

KVM通过调用Linux本身内核功能,实现对CPU的底层虚拟化和内存的虚拟化,使Linux内核成为虚拟化层,需要x86架构支持虚拟化功能的硬件支持(比如Intel-VT,AMD-V),是一种全虚拟化架构。

KVM在2007年2月被导入Linux 2.6.20内核中。

从存在形式来看,它包括两个内核模块:kvm.ko和kvm_intel.ko(或者kvm_amd.ko)。本质上,KVM是管理虚拟硬件设备的驱动,该驱动使用字符设备/dev/kvm(由KVM本身创建)作为管理接口,主要负责vCPU的创建,虚拟内存的分配,vCPU寄存器的读写以及vCPU的运行。

KVM是Linux内核的模块,它需要CPU的支持,采用硬件辅助虚拟化技术Intel-VT,AMD-V,内存相关的如Intel的EPT和AMD的RVI技术Guest OS的CPU指令不用再经过Qemu转译,直接运行,大大提高了速度,KVM通过/dev/kvm暴露接口,用户态程序通过ioctl函数来访问这个接口。

 

总结:

1)KVM是基于内核的虚拟机

2)是内核的一个模块

3)2007加入linux内核,版本2.6.20

4)为虚拟机提供CPU和内核,QEMU来提供其他组件

5)通过/dev/kvm接口使用kvm模块

5、QEMU-KVM:

KVM只负责CPU和内存的虚拟化,加载它之后,用户就可以进一步通过工具创建虚拟机(KVM提供接口),但仅有KVM还是不够的,用户无法直接控制内核去做事情(kvm只提供接口,怎么创建虚拟机,分配vCPU等并不在它上面运行),还必须有个运行在用户空间的工具才行,KVM的开发者选择了比较成熟的开源虚拟化软件QEMU来作为这个工具,并对其进行了修改,最后形成了QEMU-KVM。

QEMU-KVM中,KVM运行在内核空间,QEMU运行在用户空间,实际模拟创建,管理各种虚拟硬件,QEMU将KVM整合起来,通过ioctl调用/dev/kvm, 从而将CPU指令的部分交给内核模块来做,KVM实现了CPU和内存虚拟化,但KVM不能虚拟其他硬件设备,因此QEMU还有模拟IO设备,如磁盘、网卡、显卡等的作用,KVM加上QEMU后就是完整意义上的服务器虚拟化。当然,由于QEMU模拟IO设备效率不高的原因,现在常常采用半虚拟化的virtio方式来虚拟化IO设备。

 QEMU-KVM作用:

1)提供对CPU、内存(KVM负责)、IO设备(QEMU负责)的虚拟;

2)对各种虚拟设备的创建,调用进行管理(QEMU负责)。

总结:

QEMU-KVM:

1)用户空间的虚拟化管理工具;

2)QEMU提供IO设备虚拟化及管理;

3)KVM提供CPU和内存的虚拟化

6、libvirt:

libvirt是一套免费的、开源的支持Linux下主流虚拟化管理程序的C函数库,其旨在为包括KVM在内的各种虚拟化管理程序提供一套方便、可靠的编程接口。

当前主流Linux平台上默认的虚拟化管理工具virt-manager、virsh等都是基于libvirt开发的。

 

说明:

一个针对各种虚拟化平台的虚拟机管理的API库,一些常用的虚拟机管理工具如virsh(类似vim编辑器),virsh-install、virt-manager等和云计算框架平台(如OpenStack、OpenNebula、Eucalyptus等)都在底层使用libvirt提供的应用程序接口。libvirt主要是由三个部分组成:API库,一个守护进程libvirtd和一个默认命令行管理工具virsh。

virt-manager、libvirt、qemu-kvm三者之间的关系:

 

总结:

libvirt:

1)为用户管理虚拟机提供了访问hypervisor接口

2)包含三部分:库、libvirtd、virsh命令

3)virt-manager、libvirt、qemu-kvm三者之间的关系

virt-manager通过libvirt管理qemu-kvm虚拟机。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/139228.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

偏微分题目的解法

介绍偏微分是考研数学里的小重点,通常在题干中就能很明显看到偏导数。这种题目一般会有两个小题,且第一题往往送分题,通常是求某个复合函数的偏导,直接用复合函数的求导法则即可得到答案。第二题通常是求原函数,一般来…

NVIDIA 在 WeNet 中开源 Noisy Student Training 方案

为了改进 Noisy Student Training 在非目标领域 ASR 上的性能,英伟达提出新型数据筛选方法 LM Filter。其利用不同解码方式的识别文本之间的差异来作为数据筛选条件,是一个完全无监督的筛选过程。在 AIShell-1 上与无数据筛选的基线相比可以有 10.4% 的性…

PYNQ-Z2 开发板

1. 官方手册写的挺全,了解一下PYNQ-Z2 设置指南 https://pynq.readthedocs.io/en/latest/getting_started/pynq_z2_setup.htmlPYNQ-Z2 Reference Manual v1.0 https://www.mouser.com/datasheet/2/744/pynqz2_user_manual_v1_0-1525725.pdfpynq(Python O…

单分散PEG之Amino-PEG24-acid;CAS:196936-04-6氨基-二十四聚乙二醇-羧酸

Amino-PEG24-acid氨基-二十四聚乙二醇-羧酸196936-04-6 中文名称:氨基-二十四聚乙二醇-羧酸 英文名称:Amino-PEG24-acid 分子式:C51H103NO26 分子量:1146.35 CAS:196936-04-6 外观:粘稠液体或者固体粉末&a…

数据的存储(3)浮点数的存储

tips 1. 2. 浮点数内存存储方式与整型是截然不同,不可被整型思维带偏了 我用一个例子来理解浮点数在内存当中的表示方法,先上一个十进制浮点数13.5 1. 利用二进制的权重化为二进制浮点数 二进制权重表小数部分如下: 那么13.5&…

Vue好难理解怎么办?

Vue学习笔记分享给你,希望对你有些帮助,另外推荐2个安装 VScode 中的 Vue 插件 Vue 3 Snippets Vue 3 Snippets - Visual Studio Marketplace 这个插件包含了所有的 Vue.js 2 和 Vue.js 3 的 api 对应的代码片段。插件的代码片段如下表格所示&#xff0…

Jetson nano 入手系列之4—外围设备:开机键+PWM风扇

Jetson nano 入手系列之4—外围设备:开机键PWM风扇1.外接按键开机2.PWM可调速风扇2.1 jtop工具2.2 PWM风扇2.3 PWM风扇的控制2.3.1 手动控制2.3.2 自动控制参考文献本系列针对亚博科技jetson nano开发板。 Jetson nano 入手系列: Jetson nano 入手系列之…

《MySQL系列-InnoDB引擎11》InnoDB关键特性-刷新邻接页

InnoDB 关键特性 InnoDB存储引擎的关键特性包括: Insert Buffer (插入缓冲)Double Write (两次写)Adaptive Hash Index (自适应哈希索引)Async IO (异步IO)Flush Neighbor Page (刷新领接页) 这些特性为InnoDB存储引擎带来了更好的性能以及更高的可靠性。 刷新邻接…

极光笔记 | 当前最佳实践:Header Bidding 与瀑布流混合请求技术

通过这篇文章您讲将了解:Header Bidding 的发展史Waterfall、Header Bidding 的逻辑及优劣势为什么说 Header Bidding 与瀑布流混合请求技术是当前最佳实践PART 01、Header Bidding 的起源Header Bidding(头部竞价,又称 Pre-Bidding 或 Advan…

PaddleSports:“AI+体育”端到端开发套件及落地实践

本系列根据WAVE SUMMIT2022深度学习开发者峰会「开源开放 生态共建」论坛嘉宾分享整理。本文整理自「开源开放 生态共建」百度研究院的资深研究员卢飞翔的主题演讲——PaddleSports:“AI体育”端到端开发套件及落地实践。百度3DAI智慧体育团队针对数据、算法、产品三…

C++语法基础课 习题5 —— 字符串

文章目录例题1. 760.字符串的长度(fgets函数)重点!2. 761.字符串中数字的个数3. 763.循环相克令4. 765.字符串加空格(getline函数auto用法)重点!5. 769.替换字符 重点!6. 773.字符串的插入(substr函数)重点!7. 772.只出现一次的字符(难题)习题…

Python逆向进阶教程笔记(1)

视频地址:Day1初识JS逆向 混淆与无混淆数据加密方案解析实战-36Kr数据加密解析 (AES数据逆向)_哔哩哔哩_bilibili 未完待续 一、排错 1.1) 目的:抓页面借口,简单请求会被拦截 1.2) 网址:乌海市公共资源…

OSPF-MGRE实验(1.3)

要求: 1、首先为每个路由器配置接口ip和环回ip实现第一个目标 r1: [r1]interface GigabitEthernet 0/0/0 [r1-GigabitEthernet0/0/0]ip add 16.1.1.1 24 [r1-GigabitEthernet0/0/0]int gi0/0/1 [r1-GigabitEthernet0/0/1]ip add 61.1.1.1 24 [r1-Gigab…

java File类详细

目录 File创建 1.File(String pathname) 2. File(String parent,String child) 3.File(File f,String child) file类的使用 基本操作: 文件夹的操作 File创建 1.File(String pathname) …

一起快速了解单片机入门知识吧!

从事计算机和电子信息技术行业的都熟知单片机一词,但是你真的了解单片机吗?单片机的种类有哪些?单片机有什么特点?单片机的工作原理是什么?下面一起来了解单片机知识吧!在学习单片机知识前,我们…

多数据库学习之SQL Server查询表自增主键字段信息SQL

多数据库学习之SQL Server查询表自增主键字段信息SQL前言概念SQL样例方式一:系统内置存储过程查找方式二:通过INFORMATION_SCHEMA模式下系统视图获取方式三:通过sys模式下系统视图获取参考链接前言 Microsoft SQL Server简介 Microsoft SQL S…

Zookeeper详解(三)——开源客户端curator

开源客户端curator (true re de) curator是Netflix公司开源的一个zookeeper客户端,后捐献给apache,curator框架在zookeeper原生API接口上进行了包装,解决了很多zooKeeper客户端非常底层的细节开发。提供zooKeeper各种应用场景(比如&#xf…

CSS3 动画案例

文章目录变形效果案例照片墙过渡效果案例鼠标移动显示内容图片文字滑动效果白光闪过效果手风琴效果动画案例脉冲动画loading效果灯光闪烁动画代码变形效果案例 照片墙 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>&…

ESP IDF:观察者Observer用例实现

ESP IDF:观察者 Observer用例实现 #include <stdio.h> // #include #include // using namespace std; //抽象的英雄 抽象的观察者 Observer class AbstractHero { public: virtual void Update() 0; }; std::list<AbstractHero*> mlist; std::list<Abstr…

Linux:vim工具

文章目录一.vim简单介绍1.1vim使用1.2vim常见的模式二.vim中的指令2.1set nu/set nonu(调出/取消行号)先导&#xff1a;下面这些命令都是在命令模式下运行2.2yy/p(复制/粘贴)2.3dd(剪切)2.4u/ctrl r(撤销/把撤销撤销)2.5shift g/g g(光标定位末尾/光标定位第一行)2.6shift 4/sh…