学好虚拟化,首先要学Linux

news2024/9/29 11:38:16

上次讲到了虚拟化的基础知识,比如虚拟化的应用、各个厂商都是通过何种技术路径来实现的等等,本篇想记录一下我学习到的CPU内存虚拟化和网络虚拟化相关知识,通过记录来制造反馈,让自己更有效地学习。需要注意的是,学习虚拟化就免不了和Linux打交道了。

在此之前还是回顾一下虚拟化的基础知识。

虚拟化对于我们网络行业来说已经起到了越来越大的作用,从最开始做实验用的VMware和EVE,到现网运行的各种虚拟网络设备,无一例外都提醒着从业者要多加了解此技术。不仅是技术人员会用到虚拟化,其实大多数人的生活都离不开虚拟化,比如我们所用的Windows也是一种虚拟化,因为他是分时复用系统,分时系统最早由IBM的工程师研发出来,它会把资源切分成无数的小分片,这样就实现了多任务的同时处理。广义的虚拟化是在一套硬件平台上虚拟出多个系统,来提高硬件的利用效率。

接下来介绍一下CPU硬件辅助虚拟化。这时就要提及CPU的两大厂商Intel和AMD了,其中Intel使用VT-x技术,AMD使用AMD-V技术来实现。他们的核心思想其实都是通过引入新的指令和运行模式,使VMM和Guest OS分别运行在ROOT模式和非ROOT模式之下,Guest OS运行在Ring 0下。通常Guest OS核心指令不需要经过VMM,可直接下达到计算机硬件被执行,只有当它执行到特殊指令时才会切到VMM来处理特殊指令。

当讲到内存虚拟化时,首先要了解三个概念:VA(virtual address)虚拟机逻辑地址,虚拟机中进程使用的逻辑地址;PV(phyiscal virtual address)虚拟机物理机地址,虚拟机自己看到自己的物理地址;MA 是host os真正的物理机地址。内存虚拟化其实就是由MA到PV的映射。物理机内存是一段连续的地址空间,虚拟监视器(VMM)上层的各个虚拟机共享物理机的内存地址空间。但由于虚拟机是以随机的方式访问内存,而又需要保证虚拟机内部内存地址的连续,因此VMM就需要合理的映射PV和MA才行。VMM对物理机内存进行管理,并对虚拟机的需求进行合理分配。其中的映射是通过内存虚拟化中的内存管理单元来完成,其中的技术分为影子页表法、页表写入法和扩展页表EPT。

影子页表法实现的是内存全虚拟化。其中VMM为每个Guest维护一个影子页表,表中维护VA到MA的映射关系,而Guest也不维护VA到PV的映射关系。当VMM捕获到Guest页表的变化时,VMM会查找负责PV到MA映射的P2M页表或哈希函数,找到对应的MA,再将它填充到真正在硬件上起作用的影子页表,而Guest页表无需变动。

页表写入法是一种半虚拟化,通过修改操作系统的代码,剥夺Guest OS的写入页表权力,所以VMM可直接将及其弟子写入到Guest OS的页表而实现页表虚拟化。其细节是当客户机常见页表时,VMM也会创建一套相同的仪表,其中保存到时虚拟机物理地址和物理机地址的映射,在客户机对页表写操作时,VMM剥夺客户机操作系统的写操作权限,并对客户机操作系统页表进行更新,是Guest OS从它自己的页表中读取真实物理机地址。

扩展页表EPT是硬件辅助虚拟化,它在原有页表基础上又加了EPT页表,用来记录PV到MA的映射关系,VMM把EPT页表设置到CPU中,就无需VMM再干预了,转换时CPU自动查找两张页表来完成Guest到机器地址的转换,降低整个内存虚拟化的开销。

在网络虚拟化中,通过SR-IOV技术实现。SR-IOV主要解决pass-through只能被一台虚拟机访问的问题,其中pass-through模型是让虚拟机直接使用物理设备,使得网络性能最高。SR-IOV的实现需要CPU、芯片组和PIC等协同在硬件上实现,实现了虚拟化的“最后一公里”。支持SR-IOV的网卡可以在VMM里注册多个网卡,每个设备通过pass-through分配给虚拟子机。

在上篇我们介绍了不同厂家的各种虚拟化软件和技术,比如VMware,RedHat的QEMU-KVM,微软的hyper-V,还有Citrix的Xen。本篇介绍了虚拟化中的内存虚拟化和网络虚拟化的基础知识。需要注意的是,学习虚拟化就免不了和Linux打交道了,因为大部分时间操作的都是Linux系统,在此我对Linux基础薄弱的同学推荐《Linux就该这么学》这本书,在线阅读:www.linuxprobe.com.网站上有电子版可以阅读,如感觉到有所收获,别忘了买一本实体书支持一下作者。学无止境,希望和大家一起用知识充实自己。

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

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

相关文章

这 7个 AI 写作助手,太实用了

想象一下:你正在办公桌前为你的广告输入标题,但你突然思维阻塞并卡住了,可惜这时还没有神奇的软件可以帮助你想出点子。或许是有的? 2023 年,AI 写作工具似乎不可避免地会很快融入我们的工作流程中。现代知识工作者已…

政府大数据中心数据资源平台建设方案WORD2022

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除 1.1 项目建设内容 对于本次区级大数据资源平台的建设,将按照“总体规划一步到位,平台建设分步实施,数据赋能逐步升级”的原则,落…

理解什么是DTO?什么是AutoMapper?

什么是DTO? .Net DTO是一个对象,它定义了数据如何在网络上发送。它只用于发送和接收数据,不包含任何业务逻辑。使用DTO的原因有以下几个: 将服务层与数据库层分离隐藏客户端不需要查看的特定属性省略一些属性以减少有效负载大小处理嵌套对象…

【LeetCode: 233. 数字 1 的个数 | 暴力递归=>记忆化搜索=>动态规划 | 数位dp】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

Term Suggester 中 suggest_mode 的三种模式missing、popular、always 的区别

1、Term Suggester term suggester 正如其名&#xff0c;只基于 tokenizer 之后的单个 term 去匹配建议词&#xff0c;并不会考虑多个term之间的关系 POST <index>/_search { "suggest": {"<suggest_name>": {"text": "<s…

VM——VMware装Centos

一、创建虚拟机配置 打开VMware&#xff0c;创建新虚拟机 选择自定义&#xff0c;下一步 选择16.x&#xff0c;然后下一步 选择稍后安装&#xff0c;然后下一步 选择Linux、镜像版本&#xff0c;然后下一步 输入虚拟机名称&#xff0c;选择存放位置&#xff0c;然后下一步 选择…

串口UART介绍

【记录所学】 1. 串口的硬件介绍 UART的全称是Universal Asynchronous Receiver and Transmitter&#xff0c;即异步发送和接收。串口在嵌入式中用途非常的广泛&#xff0c;主要的用途有&#xff1a; 打印调试信息&#xff1b;外接各种模块&#xff1a;GPS、蓝牙&#xff1b…

【java web篇】MyBatis实现增删改查

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…

Git使用教程:从入门到精通(以Gitee为例)

一、前言 Git是一款分布式版本控制系统&#xff0c;可以帮助开发者更好地管理代码。在众多的Git平台中&#xff0c;Gitee是国内最受欢迎的Git平台之一。本篇文章将介绍如何使用Git进行代码管理&#xff0c;并以Gitee为例&#xff0c;详细讲解Git的基本操作和常用命令。 二、深入…

JS学习笔记(一)

从编程模式看&#xff1a;JS是结构化、事件驱动的动态语言&#xff0c;支持声明式和指令式两种模式&#xff0c;所以JS是一个多模式的语言。面向对象和函数式是常用的两种模式。 函数式编程 基本概念&#xff1a;函数是什么&#xff1f;函数是数据集到目标的一种关系。在函数式…

Windows逆向安全(一)之基础知识(十)

汇编一维数组 之前的文章学习过了四种基本类型&#xff1a;char short int long的汇编表示形式 因为它们的数据宽度都小于等于32位&#xff0c;所以都可以只用一个通用寄存器来存储 接下来的数组显然就无法只用一个通用寄存器就可以存储了 在学习数组之前&#xff0c;再学习…

云可见性和端口欺骗:已知的未知

与所有技术一样&#xff0c;新工具是建立在以前的基础上的迭代&#xff0c;经典的网络日志记录和指标也不例外。 网络流量的工具、检测和监控在私有云和内部部署中几乎没有变化。今天使用的许多日志和指标已有将近二十年的历史&#xff0c;最初是为了解决计费等问题而设计的。…

Node 08-express框架

express 介绍 express 是一个基于 Node.js 平台的极简、灵活的 WEB 应用开发框架&#xff0c;官方网址&#xff1a; https://www.expressjs.com.cn/ 简单来说&#xff0c;express 是一个封装好的工具包&#xff0c;封装了很多功能&#xff0c;便于我们开发 WEB 应用(HTTP 服务)…

强训之【查找组成一个偶数最接近的两个素数和二进制插入】

目录 1.查找组成一个偶数最接近的两个素数1.1题目1.2思路1.2.1 暴力解法1.2.2 取中判断 1.3代码1.3.1暴力求解代码1.3.2 取中判断代码 2.二进制插入2.1题目2.2思路2.3代码 3.选择题 1.查找组成一个偶数最接近的两个素数 1.1题目 链接: link 描述 任意一个偶数&#xff08;大于…

Android学习Day1

Android学习笔记 了解Android 的结构ActivityAndroid中的布局了解安卓的结构ActivityAndroid中的布局代码展示(登录界面的实现)&#xff1a;实现效果&#xff1a;代码展示&#xff08;注册界面的实现&#xff09;实现效果一些之前学习的笔记end 了解Android 的结构 Activity …

服务(第八篇)location和rewrite

常用的Nginx正则表达式: 从功能看&#xff0c;rewrite和location似乎有点像&#xff0c;都能实现跳转&#xff0c;主要区别在于rewrite是在同一域名内更改获取资源的路径&#xff0c;而location是对一类路径做控制访问或反向代理&#xff0c;还可以proxy_pass到其他机器。 rew…

企业如何挑选设备管理系统?

在当今高度竞争的市场环境中&#xff0c;企业需要不断提高生产效率、确保设备的可靠性和安全性以降低运营成本。设备管理系统&#xff08;Equipment Management System&#xff0c;简称EMS&#xff09;是一种帮助企业实现这些目标的有力工具。本文将为您解析企业如何挑选合适的…

提高亚马逊等其他跨境平台的曝光率方法有哪些?

很多卖家都会想尽办法提高自己店铺的曝光率&#xff0c;但有些新手卖家可能不知道曝光率意味着什么 简单来说&#xff0c;曝光率是指你自己的店铺和产品被呈现给顾客的次数&#xff0c;一般来说&#xff0c;曝光率通常决定了你店铺的总流量&#xff0c;交易总量&#xff0c;订…

PM866 3BSE050200R1高压变频器的四种控制方法

PM866 3BSE050200R1高压变频器的四种控制方法 高压变频器装置指驱动输入电源为6&#xff0c;000V或10KV的电机装置&#xff0c;高压变频器一般主要有下列几种方案选择&#xff1a; 一、直接高压控制&#xff08;高成本&#xff09; 目前以采用美国罗宾康类似的无谐波变频技术&a…

凌恩生物美文分享|3月客户文章盘点——累计IF=105,平均IF=8.08

凌恩生物以打造国内一流生物公司为目标&#xff0c;在科研测序领域深耕不辍&#xff0c;吸纳多名在生物信息高级技术人员的加盟&#xff0c;参与并完成多个高科技项目。现已在宏组学、基因组、表观遗传以及蛋白代谢等多组学及联合分析领域积累了深厚经验&#xff0c;打造出成熟…