目录
一. 什么是虚拟化
虚拟化是云计算的基础。简单来说,虚拟化就是在一台物理服务器上,运行多台“虚拟服务器”。这种虚拟服务器,也叫虚拟机(VM,Virtual Machine)。从表面来看,这些虚拟机都是独立的服务器,但实际上,它们共享物理服务器的CPU、内存、硬件、网卡等资源。
物理机,通常称为“宿主机(Host)”。虚拟机,则称为“客户机(Guest)”。
谁来完成物理资源虚拟化的工作呢?就是大名鼎鼎的 Hypervisor 。
Hypervisor,汉译过来是“超级监督者”,也叫做VMM(Virtual Machine Monitor,虚拟机监视器)。它不是一款具体的软件,而是一类软件的统称。像VMware、KVM、Xen、Virtual Box、vmware vsphere、都属于Hypervisor。
Hypervisor分为两大类:
Type-1(Baremetal Hypervisor, 全虚拟化:Full-Virtualization),hypervisor直接运行在物理机之上。虚拟机运行在hypervisor之上。不需要对客户机操作系统或者应用程序进行修改(客户机操作系统或者应用程序像往常一样运行,意识不到虚拟环境的存在)。
Type-2(Hosted Hypervisor,半虚拟化:Para-Virtualization),物理机上安装正常的操作系统(例如Linux或Windows),然后在正常操作系统上安装hypervisor,生成和管理虚拟机。半虚拟化需要对运行在虚拟机上的客户机操作系统进行修改(这些客户机操作系统会意识到它们运行在虚拟环境里)并提供相近的性能。

二. 服务器虚拟化
-
SaaS: Software-as-a-Service(软件即服务)
-
PaaS: Platform-as-a-Service(平台即服务)
-
IaaS: Infrastructure-as-a-Service(基础设施即服务)
服务器的虚拟化是IaaS层的虚拟化。
1、cpu的虚拟化
CPU 虚拟化是一种在计算机技术领域广泛应用的重要概念,以下是关于它的简介:
定义
CPU 虚拟化指的是通过软件技术(通常是虚拟化管理程序,也叫 Hypervisor),将物理 CPU 的资源进行抽象和划分,使得在一台物理计算机上能够同时运行多个操作系统(虚拟机),并且每个虚拟机都仿佛拥有独立的、完整的 CPU 资源,可独立执行指令流,就好像运行在独立的物理机器上一样。
实现原理
-
指令模拟:当虚拟机中的操作系统发出 CPU 指令时,虚拟化层会截获这些指令,然后根据具体情况进行模拟执行或者直接转发到物理 CPU 执行。例如,对于一些特权指令(只有在最高权限级别才能执行的指令),虚拟化管理程序会进行特殊处理,模拟出对应的执行效果,避免虚拟机内的操作系统直接操作物理硬件而引发冲突。
-
资源分配与调度:虚拟化管理程序负责将物理 CPU 的计算资源(如时间片、核心数等)按照一定的策略分配给各个虚拟机。像时分复用的方式,会给每个虚拟机分配一定的时间片来轮流使用物理 CPU,让多个虚拟机可以并发运行,从用户角度看各虚拟机都在同时使用 CPU 进行运算。
作用及优势
-
提高资源利用率:企业数据中心往往有大量服务器,通过 CPU 虚拟化,一台物理服务器可同时运行多个不同业务的虚拟机,充分利用闲置的 CPU 计算能力,减少硬件购置成本,提高整体资源利用率。
-
便于系统管理与隔离:不同的虚拟机可以运行不同的操作系统和应用,彼此之间相互隔离,比如可以将开发环境、测试环境、生产环境分别部署在不同虚拟机上,方便管理且能防止相互干扰。若某个虚拟机出现故障,不会影响其他虚拟机的正常运行。
-
灵活部署与迁移:能够方便地根据业务需求动态调整分配给虚拟机的 CPU 资源,还可以将正在运行的虚拟机迁移到其他物理服务器上,实现负载均衡、服务器维护等操作,且整个过程对虚拟机内的业务系统影响极小。
应用场景
-
数据中心:众多企业的数据中心利用 CPU 虚拟化整合服务器资源,提升效率,降低能源消耗与管理成本,支撑多样化的业务系统运行。
-
云计算平台:云服务提供商借助 CPU 虚拟化技术,为用户提供可按需分配 CPU 资源的虚拟机实例,用户可以像使用独立物理机一样在云端部署应用、开展业务等。
-
软件开发与测试:开发团队可以在同一台物理机上通过创建多个虚拟机,搭建不同的操作系统环境来进行软件的开发、测试工作,快速切换环境,提高开发测试效率。
总之,CPU 虚拟化在现代信息技术领域扮演着极为关键的角色,推动了计算资源的高效利用和灵活配置。
硬件级物理cup虚拟化技术(记住)
-
英特尔硬件虚拟化技术interl-VT
-
AMD硬件虚拟化技术AMD-V
2、内存虚拟化管理
内存虚拟化管理是虚拟化技术中的关键组成部分,以下为你进行简要介绍:
概念
内存虚拟化管理旨在为虚拟机(VM)提供统一、隔离且高效的内存资源使用环境。它通过在物理内存资源基础上进行抽象和分配,让多个虚拟机能够像独占物理内存那样运行各自的操作系统和应用程序,同时确保各个虚拟机的内存操作相互独立、互不干扰。
主要功能
-
内存资源分配:
-
负责将宿主机的物理内存按照一定策略分配给各个虚拟机。例如,根据虚拟机的配置需求、负载情况等,动态地划分出合适大小的内存空间供其使用,像可以给侧重计算密集型任务的虚拟机多分配些内存,以保障其运行流畅。
-
支持灵活调整分配给虚拟机的内存大小,当虚拟机业务负载变化时(如业务高峰期需要更多内存,低谷期可适当减少),能够实时对内存资源进行重新分配。
-
内存隔离保护:
-
确保不同虚拟机之间的内存访问是相互隔离的,防止某个虚拟机因为软件故障、恶意攻击等原因,非法访问或篡改其他虚拟机的内存数据,保障每个虚拟机内存空间的安全性和独立性。
-
当某个虚拟机出现内存相关问题(如内存泄漏、过度占用内存等)时,能够限制其影响范围,避免波及到其他正常运行的虚拟机,维持整个虚拟化环境的稳定。
-
内存映射与转换:
-
由于虚拟机中的虚拟内存地址和宿主机的物理内存地址是不同的,需要建立起有效的映射机制。内存虚拟化管理会负责将虚拟机操作系统发出的虚拟内存地址请求,通过一定的转换方式(如基于页表等机制),对应到实际的物理内存地址上,从而实现数据的准确读写。
实现技术与机制
-
基于软件的实现方式:
-
例如通过虚拟机监视器(VMM,也叫 Hypervisor)软件来管理内存虚拟化。VMM 会拦截虚拟机对内存的操作请求,然后按照既定的内存管理策略进行处理,完成地址转换、资源分配等工作。不过这种纯软件方式可能会带来一定的性能开销,因为软件的处理需要占用一定的计算资源和时间。
-
硬件辅助的实现方式:
-
现代的处理器大多都提供了硬件级的虚拟化支持功能,像英特尔的 VT-x 技术、AMD 的 AMD-V 技术等。这些硬件技术能够协助加速内存虚拟化中的地址转换、内存访问权限控制等操作,有效提升内存虚拟化管理的效率,减少软件处理带来的性能损耗。
应用场景与意义
-
在云计算数据中心中广泛应用,通过内存虚拟化管理,能让一台物理服务器上同时运行多个用户的虚拟机实例,提高物理服务器的资源利用率,降低硬件成本以及能源消耗。
-
对于企业进行服务器整合也极为重要,可将多个分散的业务系统整合到少数几台物理服务器上,通过合理的内存虚拟化管理,保障各个业务系统稳定、安全地运行,同时便于统一管理和维护。
硬件级内存虚拟化,硬件级物理内存映射到虚拟机
-
英特尔硬件虚拟化技术EPT,Extended Page Table
-
AMD硬件虚拟化技术NTP,Nested Page Table
3、硬盘的虚拟化
概念
硬盘虚拟化(Storage Virtualization)是指通过技术手段对物理硬盘、阵列等存储资源进行抽象化处理,打破物理设备的硬件限制,将分散的存储资源整合为一个统一的、可灵活调配的虚拟存储池。它让虚拟机(VM)或应用程序能够像访问本地物理硬盘一样使用虚拟存储资源,同时实现存储资源的集中管理与高效利用,屏蔽了底层物理存储设备的型号、接口、位置等差异。
核心功能
-
存储资源整合与分配
-
将多块物理硬盘、不同品牌的存储阵列等异构存储设备整合为逻辑上统一的存储池,消除 “存储孤岛” 问题。例如,可将服务器本地 SATA 硬盘与远程 FC 存储阵列的资源合并,形成容量可动态扩展的虚拟存储池。
-
支持根据业务需求灵活分配存储资源,为不同虚拟机或应用程序按需分配专属虚拟磁盘(如 VMDK、VHD 格式),分配容量可根据负载变化实时调整,避免物理硬盘容量浪费。
-
数据隔离与安全保障
-
为每个虚拟磁盘设置独立的访问权限与隔离边界,确保不同虚拟机之间的存储数据互不干扰。即使某台虚拟机遭遇病毒攻击或数据损坏,也不会影响其他虚拟磁盘中的数据安全。
-
集成数据保护机制,如快照(Snapshot)、克隆(Clone)和备份功能。快照可快速保存虚拟磁盘的某一状态,后续出现问题时能一键恢复;克隆则能基于现有虚拟磁盘快速生成新的存储副本,助力业务快速部署。
-
存储性能优化与扩展
-
通过缓存加速、负载均衡等技术提升存储性能。例如,将频繁访问的数据存入高速缓存,减少物理硬盘的 I/O 操作;同时智能分配存储请求,避免单一物理设备过载。
-
支持横向扩展,当存储容量或性能不足时,可直接新增物理存储设备并融入现有存储池,扩展过程无需中断业务运行,满足业务长期增长需求。
实现技术与机制
-
基于主机的实现方式
-
依赖安装在宿主机上的软件(如 VMware 的 vSphere Storage、Windows 的 iSCSI Initiator)实现虚拟化。宿主机操作系统或 Hypervisor 直接管理物理存储设备,通过软件层将物理存储抽象为虚拟磁盘分配给虚拟机。
-
优势在于部署成本低、架构简单,适用于中小型企业或测试环境;不足是存储性能受宿主机资源限制,且难以实现跨主机的集中管理。
-
基于网络的实现方式
-
借助专用的存储网络设备(如存储交换机、存储控制器)和协议(如 iSCSI、FC、NFS)构建集中式存储架构。存储资源由独立的存储服务器或存储阵列管理,通过网络为多个宿主机提供虚拟存储服务。
-
典型技术包括 iSCSI(通过 TCP/IP 网络传输 SCSI 指令,实现 IP 网络上的存储共享)和 FC SAN(基于光纤通道构建高速专用存储网络,适用于高性能需求场景)。这种方式支持跨主机、跨数据中心的存储资源调度,是企业级环境的主流选择。
-
基于设备的实现方式
-
由物理存储设备自身提供虚拟化功能,如带虚拟化功能的磁盘阵列。阵列控制器通过硬件芯片实现存储资源的抽象、整合与分配,无需依赖主机或网络层面的额外软件。
-
优势在于性能损耗低、稳定性高,可直接对物理磁盘进行 RAID 配置、容量扩展等操作,同时支持与多种虚拟化平台兼容,简化运维管理。
应用场景与意义
-
云计算数据中心:作为云存储服务的核心支撑技术,硬盘虚拟化让云服务商能够将海量物理存储整合成虚拟存储池,为用户提供弹性伸缩的云硬盘服务。用户可根据自身需求随时创建、扩容或释放存储资源,按实际使用量付费,大幅降低企业的 IT 投入成本。
-
企业服务器整合:帮助企业将分散在各物理服务器上的本地硬盘资源集中整合,将多个业务系统的存储需求迁移至统一虚拟存储平台。不仅减少了物理存储设备的采购数量,还通过集中管理降低了运维难度,提升了数据安全性与可用性。
-
开发测试环境:利用虚拟磁盘的快照、克隆功能,开发者可快速搭建多套独立的测试环境,每个环境拥有专属虚拟存储空间,避免测试数据相互污染。测试完成后可直接删除虚拟磁盘,释放存储资源,提高资源复用率。
-
灾备与业务连续性保障:通过跨地域的存储虚拟化部署,可实现数据的远程同步与灾备。当主数据中心发生故障时,可快速切换至备用数据中心的虚拟存储副本,确保业务不中断,为企业提供高可靠的存储保障。
网络虚拟化
用软件的方式给每个虚拟机虚拟一块网卡和MAC地址,当通信时使用同一块物理网卡,网卡通讯有排队方式,在同一台物理网卡上,排队执行任务。(将物理网卡设为混杂模式;无论是不是发向本机物理网卡的内容都给与接收);此时将物理网卡也虚拟化一个MAC地址,把物理网卡当作交换机来使用。
4、IO虚拟化
概念
IO 虚拟化(I/O Virtualization)是指通过技术手段对物理输入输出设备(如网卡、显卡、磁盘控制器、USB 设备等)进行抽象、隔离与共享,使多个虚拟机(VM)能够高效、安全地共享物理 IO 资源,同时让虚拟机操作系统(Guest OS)以接近原生的体验访问虚拟 IO 设备。它屏蔽了底层物理 IO 设备的硬件细节与位置差异,解决了虚拟化环境中 IO 资源分配不均、性能瓶颈及设备隔离等关键问题。
核心挑战
-
性能损耗问题:早期纯软件 IO 虚拟化需通过虚拟机监视器(VMM/Hypervisor)中转所有 IO 请求,VMM 需拦截、解析并转发虚拟机的 IO 指令,多次上下文切换与数据拷贝会导致显著的性能开销,尤其在高带宽、低延迟的 IO 场景(如数据库读写、视频流传输)中表现突出。
-
资源隔离与安全风险:多个虚拟机共享同一物理 IO 设备时,若缺乏严格的隔离机制,可能出现 IO 请求冲突、数据泄露等问题。例如,某虚拟机的恶意 IO 操作可能占用全部设备带宽,导致其他虚拟机 IO 响应延迟,甚至通过设备漏洞非法访问其他虚拟机的 IO 数据。
-
设备兼容性与标准化:物理 IO 设备型号繁多、驱动程序各异,虚拟机直接适配不同硬件会面临兼容性难题。同时,缺乏统一的虚拟 IO 设备接口标准,会导致虚拟机迁移时因目标主机硬件不同而无法正常使用 IO 资源,限制了虚拟化环境的灵活性。
主流实现技术
-
全虚拟化(Full Virtualization)
-
又称 “模拟虚拟化”,由 VMM 完全模拟物理 IO 设备的硬件接口(如模拟标准 PCI 网卡、IDE 控制器),虚拟机操作系统无需修改即可识别并使用虚拟 IO 设备,依赖自带的原生驱动程序运行。
-
典型代表为 VMware 的 EMulation 技术,优势在于兼容性极强,支持几乎所有主流操作系统;不足是性能损耗较高,模拟复杂设备时延迟明显,适用于对 IO 性能要求较低的场景(如办公桌面虚拟化)。
-
半虚拟化(Para-Virtualization)
-
采用 “前端 - 后端(Frontend-Backend)” 架构,虚拟机内安装特制的前端驱动,VMM 中部署对应的后端驱动,二者通过标准化接口(如 Xen 的 Split Driver 模型)直接通信,无需 VMM 全程中转 IO 请求。
-
该技术摒弃了对物理设备的完整模拟,通过精简指令交互降低性能损耗,IO 处理效率较全虚拟化提升 30%-50%。但缺点是需修改虚拟机操作系统以适配前端驱动,兼容性受限,多见于特定虚拟化平台(如 Xen)的企业级部署。
-
硬件辅助虚拟化(Hardware-Assisted Virtualization)
-
依托处理器与 IO 设备的硬件虚拟化技术,通过硬件层面实现 IO 请求的直接转发与隔离,从根源上降低性能损耗。核心技术包括英特尔的 VT-d(Virtualization Technology for Directed I/O)和 AMD 的 IOMMU(IO Memory Management Unit)。
-
工作原理为:硬件直接将虚拟机的 IO 请求映射到物理设备,无需 VMM 中转,同时通过 IOMMU 实现 IO 地址空间的隔离与权限控制。搭配 “设备直通(Passthrough)” 技术时,可将物理 IO 设备直接分配给单个虚拟机,性能接近原生物理机,是高性能场景(如云计算、AI 训练)的首选方案。
-
SR-IOV 技术(Single Root I/O Virtualization)
-
基于硬件辅助虚拟化的扩展技术,允许物理 IO 设备(如支持 SR-IOV 的网卡)在硬件层面虚拟出多个独立的 “虚拟功能(VF)”,每个 VF 可直接分配给一台虚拟机,同时保留一个 “物理功能(PF)” 由 VMM 管理。
-
虚拟机通过 VF 直接与物理设备交互,无需 VMM 介入,兼顾了性能与资源共享性。例如,一块 8 端口 SR-IOV 网卡可虚拟出 64 个 VF,分配给 64 台虚拟机实现独立的网络 IO,同时保持接近原生的网络带宽与延迟,广泛应用于数据中心的云服务器场景。
应用场景与价值
-
云计算数据中心:作为云基础设施的核心技术之一,IO 虚拟化支撑了云服务器的弹性 IO 服务。通过 SR-IOV 网卡虚拟化,云服务商可向用户提供不同带宽的弹性公网 IP;借助磁盘控制器虚拟化,实现云硬盘与虚拟机的灵活绑定,满足从 Web 服务到大数据分析的多样化 IO 需求。
-
高性能计算(HPC):HPC 集群中,多台虚拟机需协同处理大规模数据计算,IO 虚拟化通过硬件辅助技术降低数据传输延迟。例如,AI 训练场景中,通过 GPU 直通技术将物理显卡直接分配给虚拟机,确保深度学习框架对显卡的高效调用,提升模型训练速度。
-
桌面虚拟化环境:在企业桌面虚拟化部署中,IO 虚拟化解决了多用户共享外设的问题。通过 USB 设备虚拟化,员工可在虚拟桌面中无缝使用本地 U 盘、打印机等设备;借助显卡虚拟化,设计师可在虚拟工作站中流畅运行 CAD 等图形密集型软件,兼顾办公灵活性与性能体验。
-
边缘计算节点:边缘设备通常资源有限,IO 虚拟化可实现硬件资源的高效复用。例如,边缘服务器通过 IO 虚拟化将单块网卡虚拟为多个 VF,同时支撑工业物联网设备的数据采集、边缘计算应用的网络通信与远程管理通道,减少边缘节点的硬件部署成本。
I/O全虚拟化技术
通过VMM模拟I/O设备(磁盘和网卡等)实现虚拟化。
Guest OS所能看到就是一组统一的I/O设备。VMM截获Guest OS对I/O设备的访问请求,然后通过软件模拟真实的硬件。这种方式对Guest而言非常透明,无需考虑底层硬件的情况。
I/O半虚拟化技术
通过前端(Front-End)/后端(Back-End)模拟实现虚拟化。
Guest OS中的驱动程序为前端,VMM提供的与Guest通信的驱动程序为后端。前端驱动将Guest OS的请求通过与VMM间的特殊通信机制发送给VMM的后端驱动,后端驱动在处理完请求后再发送给物理驱动。
I/O透传技术
设备透传就是向一个特定客户操作系统提供一种设备隔离,对于性能而言,使用设备透传可以获得近乎本机的性能。对于某些网络应用程序(或那些拥有高磁盘 I/O 的应用程序)来说,这种技术简直是完美的。这些网络应用程序没有采用虚拟化,原因是穿过管理程序(达到管理程序中的驱动程序或从管理程序到用户空间模拟)会导致竞争和性能降低。但是,当这些设备不能被共享时,也可以将它们分配到特定的客户机中。例如,如果一个系统包含多个视频适配器,则那些适配器可以被传递到特定的客户域中。
Intel虚拟化技术
Intel虚拟化技术其实可以大致分为三类:
第一类是处理器相关的,称为VT-x,是实现处理器虚拟化的硬件扩展,这也是硬件虚拟化的基础;
第二类是芯片组相关的,成为VT-d,是从芯片组的层面为虚拟化提供必要支持,通过它,可以实现诸如直接分配物理设备给客户机的功能;
第三类是输入输出设备相关的,主要目的是通过定义新的输入输出协议,使新一代的输入输出设备可以更好地支持虚拟化环境下的工作,比如Intel网卡自有的VMDq技术和PCI组织定义的单根设备虚拟化协议(SR-IOV)。
三.主流的虚拟化技术
主流的技术框架有计有开源的KVM,Xen、微软的Hyper-V、VMware的ESX/ESXi等。
虚拟化技术对比
| 虚拟化技术 | KVM | Xen | Hyper-v | VMware ESX/ESXi |
|---|---|---|---|---|
| 领导厂家 | 红帽 | 思杰(Citrix) | 微软 | VMware |
| 虚拟化种类 | 全虚拟化 | 全/半虚拟化 | 全/半虚拟化 | 全虚拟化 |
| 是否开源 | 是 | 是 | 否 | 否 |
| CPU与内存虚拟化 | KVM内核实现 | Xen内核实现 | Hyper-V内核实现 | ESXi内核实现 |
| 磁盘/网络IO虚拟化 | QEMU实现 | 由Domain0(主机上启动的第一个管理VM)实现 | 根分区实现 | 虚拟化内核实现 |
| 虚拟化调度与管理 | Linux进程管理 | 由Domain0(主机上启动的第一个管理VM)实现 | Hyper-V内核实现 | 虚拟化内核实现 |
| 硬件要求 | 广泛 | 广泛 | 1.CPU支持AMD-V或Intel-VT;2.CPU支持64位运算;3.CPU支持DEP技术 | 很少,只支持主流服务器厂家 |
| Windows 支持度 | 一般 | 良好 | 良好,win8以上最好 | 良好 |
| Linux支持度 | 最好 | 良好 | 良好,内核已内置显卡驱动 | 良好,内核已内置显卡驱动 |
Vmware或Hyper-v虚拟windows系统,不管是虚拟化软件本身,还是其中的子系统,都要支付许可费用。
Xen或KVM虚拟windows,其中的子系统要支付许可费用
KVM
KVM是Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM已成为学术界的主流VMM之一。
KVM的虚拟化需要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。
KVM 中,虚拟机被实现为常规的 Linux 进程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常规的 Linux 进程。这使得 KVM 能够使用 Linux 内核的已有功能。但是,KVM 本身不执行任何硬件模拟,需要客户空间程序通过 /dev/kvm 接口设置一个客户机虚拟服务器的地址空间,向它提供模拟的 I/O,并将它的视频显示映射回宿主的显示屏。目前这个应用程序是 QEMU。

KVM基本结构
KVM驱动,现在已经是linux kernel的一个模块了。其主要负责虚拟机的创建,虚拟内存的分配,VCPU寄存器的读写以及VCPU的运行。
QEMU,用于模拟虚拟机的用户空间组件,提供I/O设备模型,访问外设的途径。

Xen
Xen是由剑桥大学计算机实验室开发的一个开源项目,是一个开源的可直接运行于硬件层之上的虚拟化软件,它属于Type-1型虚拟化系统。
Xen早期是基于软件模拟的Para-Virtualization,新版本则是基于硬件支持的完全虚拟化。Xen本身有自己的进程调度器,存储管理模块等,所以代码较为庞大。
Xen仅对CPU和Memory直接接管,而其它IO硬件驱动则由其上运行的第一个虚拟机来提供支持,它能够在计算机硬件上并发的运行多个客户操作系统(Guest OS)。支持x86、x86-64、安腾( Itanium)、Power PC和ARM多种处理器,因此Xen可以在大量的计算设备上运行,目前Xen支持Linux、NetBSD、FreeBSD、Solaris、 Windows和其他常用的操作系统作为客户操作系统在其管理程序上运行。
在Xen环境中,主要有两个组成部分。一个是虚拟机监控器(VMM),也叫hypervisor。Hypervisor层在硬件与虚拟机之间,是必须最先载入到硬件的第一层。Hypervisor载入后,就可以部署虚拟机了。在Xen中,虚拟机叫做“domain”。在这些虚拟机中,其中一个扮演着很重要的角色,就是domain0,具有很高的特权。通常,在任何虚拟机之前安装的操作系统才有这种特权。
Domain0要负责一些专门的工作。由于hypervisor中不包含任何与硬件对话的驱动,也没有与管理员对话的接口,这些驱动就由domain0来提供了。通过domain0,管理员可以利用一些Xen工具来创建其它虚拟机(Xen术语叫domainU)。这些domainU也叫无特权domain。这是因为在基于i386的CPU架构中,它们绝不会享有最高优先级,只有domain0才可以。
在domain0中,还会载入一个xend进程。这个进程会管理所有其它虚拟机,并提供这些虚拟机控制台的访问。在创建虚拟机时,管理员使用配置程序与domain0直接对话。

Hyper-V
Hyper-V 是微软提出的一种系统管理程序虚拟化技术,采用微内核的架构,兼顾了安全性和性能的要求。Hyper-V 底层的 Hypervisor 运行在最高的特权级别下,微软将其称为 ring -1(而 Intel 则将其称为 root mode),而虚机的 OS 内核和驱动运行在 ring 0,应用程序运行在 ring 3 下,这种架构就不需要采用复杂的 BT(二进制特权指令翻译)技术,可以进一步提高安全性。从架构上讲 Hyper-V 只有“硬件-Hyper-V-虚拟机”三层,本身非常小巧,代码简单,且不包含任何第三方驱动,所以安全可靠、执行效率高,能充分利用硬件资源,使虚拟机系统性能更接近真实系统性能。
Hyper-V 支持按分区隔离。分区是虚拟机监控程序支持的逻辑隔离单元,其中将会运行操作系统。Microsoft 虚拟机监控程序必须至少具有一个运行 Windows 的父分区或根分区,用于运行 64 位版本的 Windows Server 2008 操作系统。虚拟化管理堆栈在父分区中运行,并且可以直接访问硬件设备。随后,根分区会创建子分区用于承载来宾操作系统。根分区使用虚拟化调用应用程序编程接口 (API) 来创建子分区。
分区对物理处理器没有访问权限,也不能处理处理器中断。相反,它们具有处理器的虚拟视图,并运行于每个来宾分区专用的虚拟内存地址区域。虚拟机监控程序负责处理处理器中断,并将其重定向到相应的分区。Hyper-V 还可以通过输入输出内存管理单元 (IOMMU) 利用硬件加速来加快各个来宾虚拟地址空间相互之间的地址转换。IOMMU 独立于 CPU 使用的内存管理硬件运行,并用于将物理内存地址重新映射到子分区使用的地址。从系统的结构图,我们可以看出来 Hyper-V 与 Xen 的架构很相似。

Hyper-V 具有基于 Type-1 的虚拟机监控程序体系结构。 虚拟机监控程序虚拟化处理器和内存,并为根分区中的虚拟化堆栈提供机制,用于管理 (虚拟机) 子分区,并向虚拟机公开 I/O 设备等服务。
根分区拥有并有权直接访问物理 I/O 设备。 根分区中的虚拟化堆栈为虚拟机、管理 API 和虚拟化 I/O 设备提供内存管理器。 它还实现模拟设备,例如集成设备电子 (IDE) 磁盘控制器和 PS/2 输入设备端口,并支持特定于 Hyper-V 的合成设备以提高性能和降低开销。
VMware ESX/ESXi
VMWare (Virtual Machine ware)是一个“虚拟PC”软件公司。VMware ESXi本身可以看做一个操作系统,采用Linux内核,安装方式为裸金属方式,可直接安装在物理服务器上,不需安装其他操作系统,它是专为运行虚拟机、最大限度降低配置要求和简化部署而设计,提供接近本机性能的祼机体系结构、各种旨在提高整合率的功能(例如取消内存复制),以及用于在共享存储上管理虚拟机文件的群集文件系统。VMware ESXi 和 VMware ESX 为灵活的动态虚拟基础架构提供了关键基础。
在生产环境VMWare ESX用的比较多,VMWare ESXi在生产环境用的比较少

四.在 Rocky Linux 9 上安装 KVM
1.安装必要的 KVM 组件
运行以下命令安装 KVM 及相关管理工具:
sudo dnf update -y
sudo dnf install -y qemu-kvm libvirt virt-install virt-manager virt-viewer

2.启动并设置 libvirtd 服务自启
sudo systemctl start libvirtd
sudo systemctl enable libvirtd
sudo systemctl status libvirtd # 验证服务是否正常运行

3.验证安装
运行以下命令查看 KVM 相关信息:
virsh --version
virsh list --all

安装完成后,可以通过virt-manager命令启动图形化管理界面,或者使用virsh命令行工具来创建和管理虚拟机。
五.总结
虚拟化技术是云计算的核心基础,它通过软件模拟在一台物理服务器上创建多个虚拟机(VM),共享CPU、内存、硬盘和网络等资源。虚拟化由Hypervisor(如KVM、Xen、VMware等)实现,分为全虚拟化和半虚拟化两种类型。服务器虚拟化属于IaaS层,包括CPU、内存、硬盘和I/O的虚拟化,其中CPU虚拟化通过指令模拟和资源调度实现高效利用。主流虚拟化技术包括开源的KVM、Xen,以及商业的Hyper-V和VMware ESX/ESXi,各有优缺点。以Rocky Linux 9为例,安装KVM需要配置相关组件并启动libvirtd服务。虚拟化技术提高了资源利用率,便于系统管理、隔离和灵活部署,广泛应用于数据中心、云计算和开发测试环境。
380

被折叠的 条评论
为什么被折叠?



