当前位置: 首页 > 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://www.xdnf.cn/news/1483381.html

相关文章:

  • 象寄AI-专注商业视觉内容的智能生成
  • 【基础-单选】在Stage模型中,模块的配置文件是
  • SQL 实战指南:校园图书管理系统 SQL 设计(借阅 / 归还 / 库存查询实现)——超全项目实战练习
  • AI市场风起云涌,ai浏览器是最佳的落地项目,现在ai市场的ai浏览器竞争加剧,得ai浏览器者得天下!
  • 对接gemini-2.5-flash-image-preview教程
  • C++比较两个字符串
  • redis的数据类型:string
  • --定位--
  • isAssignableFrom() vs instanceof
  • CuTe C++ 简介02,gemm_device cuda kernel 的实现
  • Kernel中的cgroup2介绍
  • c++八股文1
  • ZooKeeper集群的安装与部署
  • 静态IP一般在什么业务场景中使用
  • Debezium日常分享系列之:Debezium 3.2.2.Final发布
  • 九月六号练习题
  • 【基础-判断】一个页面可以存在多个@Entry修饰的组件。
  • 【LeetCode热题100道笔记】排序链表
  • DMA寄存器学习
  • B.50.10.11-Spring框架核心与电商应用
  • 拯救珍贵回忆:AI照片修复让老照片重获新生
  • 推荐的Java服务环境:JDK17+ZGC(JDK 21的ZGC支持分代回收,性能更高)
  • 一阶低通滤波:从原理到实践,平滑数据的艺术
  • 备份压缩与存储优化:智能数据管理全攻略
  • 读写锁 shared_mutex 共享互斥量介绍
  • Dart HashMap:不保证顺序的 Map 实现
  • (二).net面试(static)
  • MySQL--索引和事务
  • simd学习
  • esbuild入门