学好虚拟化,首先要学Linux

这篇具有很好参考价值的文章主要介绍了学好虚拟化,首先要学Linux。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

学好虚拟化,首先要学Linux

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

学好虚拟化,首先要学Linux

当讲到内存虚拟化时,首先要了解三个概念: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.网站上有电子版可以阅读,如感觉到有所收获,别忘了买一本实体书支持一下作者。学无止境,希望和大家一起用知识充实自己。文章来源地址https://www.toymoban.com/news/detail-419527.html

到了这里,关于学好虚拟化,首先要学Linux的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 10个最佳的Linux虚拟化平台

    KVM是Linux内核的一个模块,提供了完整的虚拟化解决方案。它可以将Linux服务器转变为强大的虚拟化主机,支持多种操作系统作为客户机。 具有以下主要功能: 处理速度快:由于KVM直接在物理主机的CPU上运行,因此具有很高的性能。 可伸缩性:KVM可以轻松地管理和迁移虚拟机

    2024年02月04日
    浏览(45)
  • 网络虚拟化相关的Linux接口介绍

    Linux拥有丰富的网络虚拟化功能,能被虚拟机,容器还有云网络使用。在这篇文章中,我会给出所有通用网络虚拟化接口的简要介绍。没有代码分析,只有简短的接口介绍和在Linux上的使用操作。这系列接口都可以使用ip link命令实现。 这篇文章介绍的网络虚拟化接口如下,有

    2024年02月17日
    浏览(45)
  • 【Linux学习】Linux 的虚拟化和容器化技术

    ˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如需转载还请通知˶⍤⃝˶​ 个人主页:xiaoxieʕ̯

    2024年04月17日
    浏览(33)
  • 【Linux系统】电脑/BIOS中开启虚拟化

    在虚拟机创建的过程中,有些人可能会遇到电脑 虚拟化禁用 的情况,遇到这种情况要怎么解决呢?要怎么操作才能开启虚拟化呢?这篇文章即将解决你的困惑。 首先我们将电脑处于关机状态,开机过程中按F2进入BIOS,开启虚拟化;(必不可少)详细步骤见下文。 之后在控制

    2024年02月10日
    浏览(36)
  • 【KVM虚拟化】· 图形化KVM安装linux

    目录 🍁虚拟化技术 🍂KVM的整体结构 🍂KVM 的功能列表 🍂KVM 工具集合 🍁安装kvm虚拟化功能 🍁创建虚拟机    🦐博客主页:大虾好吃吗的博客    🦐专栏地址:KVM虚拟化专栏 全虚拟化 半虚拟化 硬件辅助的虚拟化 从GUI到Linux内核,包括以下五个组件: virt-manager一个用来

    2024年02月01日
    浏览(49)
  • 【KVM虚拟化】· 命令行KVM安装linux

    目录 🍁基础本环境配置 🍁添加lvm卷 🍁qemu-img创建磁盘文件 🍂创建raw格式 🍂创建虚拟机 🍂转换格式为qcow2 🍁virt-install命令参数 🍁案例操作    🦐博客主页:大虾好吃吗的博客    🦐专栏地址:KVM虚拟化专栏 最小化安装centos系统,勾选虚拟化功能。   修改网卡信息,

    2024年02月04日
    浏览(52)
  • linux内核篇之虚拟化和容器化

    如今,inux 服务器也随之变得越来越强大了。无论是计算、网络、存储,都越来越牛。 但是也出现一些问题。 1、资源大小申请不灵活。比如想尝试新业务,只需要单独的4核8G的服务器资源,但是不可能采购这么小规格的机器;以及,每次申请这个资源都需要重新采购,周期

    2024年02月05日
    浏览(54)
  • 云计算的奥秘!!!(基于Linux虚拟化平台部署案例)

            云计算可以理解为就是将市面上所需的软硬件资源集中起来,使用特定虚拟化技术将这些软硬件资源整合分类,再将分类好的融入虚拟化技术的软硬件资源租赁给有需求的厂商与个人。在云计算发展初期,各大厂商使用云计算这种服务模式,只是为了解决厂商内部资

    2024年03月25日
    浏览(48)
  • 【Linux】之Centos7卸载KVM虚拟化服务

    👨‍🎓 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 🐋 希望大家多多支持,我们一起进步!😄 🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏

    2024年02月08日
    浏览(45)
  • 【Docker】Docker中Linux 容器、网络虚拟化与虚拟局域网的技术特点详细讲解

    前言 Docker 是一个 开源的应用容器引擎 ,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux或Windows 操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 📕作者简介: 热爱跑步的恒川 ,致力于

    2024年02月09日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包