当前位置: 首页 > news >正文

6.虚拟化历史

文章目录

  • 6. 虚拟化历史
    • 6.1. 虚拟化概念
      • 6.1.1. 什么是虚拟化
      • 6.1.2. 虚拟化中的重要概念
    • 6.2. 虚拟化历史
    • 6.3. Xen 和 kvm 区别
      • Xen虚拟化简介
      • KVM虚拟化简介
      • Xen vs KVM
    • 6.4. Hypervisor(VMM)分类
    • 6.5. 虚拟化技术分类
      • 虚拟化的类型

6. 虚拟化历史

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6.1. 虚拟化概念

6.1.1. 什么是虚拟化

虚拟化(Virtualization)的含义很广泛。将任何一种形式的资源抽象成另一种形式的技术都是虚拟化,是资源的一种逻辑表示。解除了物理硬件操作系统之间的紧耦合关系

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 虚拟化是云计算的基础。简单地说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的CPU、内存、IO硬件资源,但逻辑上虚拟机之间是相互隔离的。
  • 在计算机方面,虚拟化一般指通过对计算机物理资源的抽象,提供一个或多个操作环境,实现资源的模拟、隔离或共享等。本质上,虚拟化就是对硬件资源的一种抽象与模拟。
  • 通过空间上的分割、时间上的分时以及模拟,虚拟化可将一份资源抽象成多份,亦可将多份资源抽象成一份。

6.1.2. 虚拟化中的重要概念

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • Guest OS 虚拟机操作系统
  • Guest Machine 虚拟机
  • Hypervisor 虚拟化软件层/虚拟机监控机(Virtual Machine Monitor,VMM)
  • Host OS 运行在物理机之上的OS
  • Host Machine 物理机

6.2. 虚拟化历史

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 1964年,IBM就在自己的大型机上去尝试虚拟化
  • 1972年,IBM推出实现了大型机上的虚拟机
  • 1993年,IBM推出可升级的POWER并行系统,这是第一款采用RS/6000技术,基于微处理器的超级计算机。
  • 1998年,著名的x86仿真模拟器Bochs发布。
  • 1998年,VMware成立,1999年推出了可以流畅运行的商业虚拟化软件VMware Workstation。从此虚拟化技术终于走下了大型机的神坛。
  • 1999年,IBM在AS/400上第一次提出了LPAR(Logical Partition,逻辑分区)虚拟化技术。
  • 2000年,Citrix(思杰)桌面虚拟化产品发布。
  • 2002年,Xen正式开源
  • 2004年,IBM发布了虚拟化解决方案APV(Advanced Power Virtualization),支持资源共享。该方案在2008年改名为PowerVM。
  • 2005年,Xen 3.0.0发布,该版本可以在32位服务器上运行,是第一个支持Intel VT-x的虚拟机监控程序。
  • 2006年,以色列的创业公司Qumranet在完成了虚拟化Hypervisor基本功能、动态迁移以及主要的性能优化之后,正式对外宣布了KVM(Kernel-based Virtual Machine,基于内核的虚拟机)的诞生。
  • 2006-至今,云计算与大数据时代。
  • 2007年,德国InnoTek公司开发了VirtualBox虚拟化软件,后被美国甲骨文Oracle。
  • 2008年,Linux Container(LXC)发布0.1.0版本,可以提供轻量级的虚拟化。
  • 2010年,红帽发布RHEL 6.0,这个版本将默认安装的Xen虚拟化机制彻底去除,仅提供KVM虚拟化机制。红帽在6.0加入Xen虚拟化,5.4版本xen和kvm虚拟化并行。
  • 2013年,Docker推出
  • 2015年,Kubernetes v1.0发布,进入云原生时代。

6.3. Xen 和 kvm 区别

Xen虚拟化简介

Xen的Hypervisor是服务器经过BIOS启动之后载入的首个程序,然后启动一个具有特定权限的虚拟机,称之为Domain 0(简称Dom0)。Dom0的操作系统可以是Linux或Unix,Domain 0实现对Hypervisor控制和管理功能。在所承载的虚拟机中,Dom0是唯一可以直接访问物理硬件(如存储和网卡)的虚拟机,它通过本身加载的物理驱动,为其它虚拟机(Domain U,简称DomU)提供访问存储和网卡的桥梁。

KVM虚拟化简介

  • KVM(Kernel-based Virtual Machine)是基于内核的虚拟机。
  • KVM本质是Linux内核中的虚拟化功能模块kvm.ko,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。
  • KVM是开源软件,于2007年2月被集成到Linux 2.6.20内核中。
  • KVM中,虚拟机其实就是一个Linux进程,由CPU进行调度运行。
  • KVM运行在内核空间,提供CPU、内存的虚拟化,它本身不执行任何模拟。运行在用户空间的QEMU提供硬件I/O的虚拟化模拟。

Xen vs KVM

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • Xen平台架构侧重安全性:为保证安全性,各Domain对共享区域的访问和映射必须通过Hypervisor授权。
  • KVM平台架构侧重性能:VM之间以及与Host Kernel之间对共享区域的访问和映射无需Hypervisor进行授权,故整个访问路径较短。使用Linux Baremetal内核,无PVOPS性能损耗。

6.4. Hypervisor(VMM)分类

Hypervisor 虚拟化软件层/虚拟机监控机(Virtual Machine Monitor,VMM)

裸金属型/宿主型

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

**裸金属型:**直接运行在硬件设备上。

​ 直接安装在物理服务器上,VMM os在物理硬件上运行

**宿主型:**运行在具有虚拟化功能的操作系统上。

​ 物理硬件上安装运行的操作系统,通过虚拟化软件(充当VMM)

6.5. 虚拟化技术分类

虚拟化的类型

分类说明
全虚拟化使用VMM实现CPU、内存、设备I/O的虚拟化,而Guest OS和计算机系统硬件都不需要进行修改。该方式兼容性好,但会给处理器带来额外开销。
半虚拟化使用VMM实现CPU和内存虚拟化,设备I/O虚拟化由Guest OS实现。需要修改 Guest OS,使其能够与VMM协同工作。该方式兼容性差,但性能较好。
硬件辅助虚拟化借助硬件(主要是处理器)的支持来实现高效的全虚拟化。该方式不需要修改Guest OS,兼容性好。该技术将逐渐消除软件虚拟化技术之间的差别,成为未来的发展趋势。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

二进制翻译技术VMware率先实现的,本质就是通过VMM来回翻译,里面的虚拟机永远不知道自己是个虚拟机,所以Binary Translation(BT)性能可能不是很好。

BT就是一个软件实现的完全虚拟化。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

意味着早期(xen)半虚拟化只支持 linux (开源),而不支持windows。

硬件辅助虚拟化:直接在cpu底层修改cpu架构,cpu会直接捕获那些出现漏洞的指令集,通过cpu硬件辅助执行,效率非常高。Vmware 安装 64位操作系统,如果未开启vt-x或amd-v cpu辅助虚拟化,那么是无法创建的。因为考虑性能问题,必须开启。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

报错了。bios未开启虚拟化。解决:进入bios,找到cpu配置选项,virtualization on (开启)

注意:半虚拟化是早期xen的解决方案,但是有了cpu硬件辅助虚拟化之后,xen虚拟化也通过cpu硬件辅助虚拟化,可以实现完全虚拟化。

所以现在的XEN:靠自己支持半虚,靠cpu支持全虚。

  • 二进制翻译和cpu硬件辅助:完全虚拟化(软件完全虚拟化/硬件辅助完全虚拟化)

  • Xen:早期半虚拟化代表

  • 全虚:特权和敏感指令集都是由VMM来传递,来回传递翻译,效率低。不知道自己的身份。

  • 半虚:guest os 明确自己的身份,修改内核,要求系统必须开源,指令无需中间虚拟化的封装解码操作,速度相对比较快。性能好一些。

  • 硬件辅助:修改cpu底层架构,cpu直接捕获敏感指令进行执行,硬件执行效率最高(现在计算机默认使用的模式)不知道自己是虚拟机。(硬件辅助 特权指令由cpu直接捕获)

统必须开源,指令无需中间虚拟化的封装解码操作,速度相对比较快。性能好一些。

  • 硬件辅助:修改cpu底层架构,cpu直接捕获敏感指令进行执行,硬件执行效率最高(现在计算机默认使用的模式)不知道自己是虚拟机。(硬件辅助 特权指令由cpu直接捕获)

文章转载自:

http://0utUrEoh.qbmjf.cn
http://EzlT6Jbk.qbmjf.cn
http://FLnSuLgo.qbmjf.cn
http://ZYFrwIdr.qbmjf.cn
http://Ps69F6Z2.qbmjf.cn
http://WYBZCuk6.qbmjf.cn
http://ltZjAVAc.qbmjf.cn
http://1yoLMTSe.qbmjf.cn
http://1r9VWsQA.qbmjf.cn
http://UeuR139R.qbmjf.cn
http://Zl8h2RJI.qbmjf.cn
http://RczbEf48.qbmjf.cn
http://BPavwJ6C.qbmjf.cn
http://xDskBEG3.qbmjf.cn
http://qPlnCWlI.qbmjf.cn
http://T6nOhWf6.qbmjf.cn
http://vch0uu5b.qbmjf.cn
http://Ge1ZEmtT.qbmjf.cn
http://FdqSIClj.qbmjf.cn
http://YEpz2QiJ.qbmjf.cn
http://wRJe8z1D.qbmjf.cn
http://qAHMJ83z.qbmjf.cn
http://CJKAFdfi.qbmjf.cn
http://MlZPT6dx.qbmjf.cn
http://8xzqmAYM.qbmjf.cn
http://NmrVFERG.qbmjf.cn
http://fhlF0mUM.qbmjf.cn
http://YUPoOuS4.qbmjf.cn
http://QsBfr1Yk.qbmjf.cn
http://mfWjynCv.qbmjf.cn
http://www.dtcms.com/a/371263.html

相关文章:

  • 疯狂星期四文案网第62天运营日记
  • AI工程师对于AI的突发奇想
  • 模电仿真软件:MultSim14.3下载与安装
  • 心路历程-passwdusermod命令补充
  • 自旋锁/互斥锁 设备树 iic驱动总线 day66 67 68
  • 【尚跑】2025逐日者15KM社区赛西安湖站,74分安全完赛
  • 页面间的导航:`<Link>` 组件和 `useRouter`
  • 视频动作识别-VideoSwin
  • AI 自然语音对话接入客服系统的场景分析及实现
  • 【基础-判断】架构设计时需要考虑“一次开发,多端部署”,这样可以节省跨设备UI开发工作量,同时提升应用部署的伸缩性。
  • [光学原理与应用-428]:非线性光学 - 为什么要改变光的波长/频率,获得特点波长/频率的光?
  • 运筹学——求解线性规划的单纯形法
  • HTML标签之超链接
  • MySQL问题5
  • MyBatis Example模式SQL注入风险
  • C语言数据结构——详细讲解《二叉树与堆的基本概念》
  • 【杂类】I/O
  • import type在模块引入中的作用
  • MySQL入门指南:从安装到工作原理
  • 【基础-判断】一个页面可以存在多个@Entry修饰的组件。
  • MapStruct详解
  • 新的打卡方式
  • GESP 7/8级免CSP-J/S初赛!申请注意事项!今年已过,明年提前关注!
  • esbuild入门
  • 决策树概念与原理
  • More Effective C++ 条款31:让函数根据多个对象来决定怎么虚拟
  • Python列表:从入门到灵活运用的全攻略
  • 校园洒水车cad+三维图+设计说书
  • 机械硬盘的工作原理
  • 生命周期方法:didUpdateWidget