云计算系统:云计算虚拟化

虚拟化技术

虚拟化的定义

虚拟化是一种计算资源管理技术,它在虚拟的、抽象的基础上运行计算机元件,而非真实的、独立的物理硬件。其核心是将有限的物理资源根据需求进行重新规划,以达到最大利用率。例如,CPU 虚拟化允许单 CPU 模拟多 CPU 并行,使一个平台能同时运行多个相互隔离的操作系统与应用。在物理主机上,由虚拟机监控器 Hypervisor管理多个客户虚拟机 Guest OS实现,Hypervisor 负责资源分配、调度及虚拟机间通信。
image

虚拟化的发展

虚拟化的发展有以下几个阶段:

虚拟化发展阶段 年份 说明
萌芽 1959 Christopher Strachey 首次提出虚拟化基本概念。
雏形 20 世纪 60 年代 IBM 首次在大型机上实现虚拟化,通过 VMM 将一台硬件虚拟为多台独立虚拟机。
标准提出 1974 Popek 和 Goldberg 提出了虚拟化的形式化准则。
现代发展 20 世纪 90 年代至今 虚拟化技术逐渐应用于 x86 等标准服务器,解决资源利用率低、管理复杂等问题,并成为云计算的基石。

虚拟化的优势

虚拟化技术带来了如下优势:

虚拟化技术的优势 说明
提高资源利用率 打破“一台服务器一个应用”的模式,将硬件资源聚合成池。将强大的“巨型计算机”虚拟成多个独立系统,共享资源,动态调配空闲资源,减少服务器规模。
降低成本 减少物理服务器数量,从而降低硬件采购、机房空间、电力消耗和散热成本。提高管理效率,减少运维人员需求。
统一管理 将分散的硬件资源整合,简化维护、升级和容量扩展流程,提高工作效率。
提高安全性 虚拟机之间相互独立实现系统隔离,一个系统被攻陷不影响其他系统。通过快照和备份机制,可快速恢复受损系统,也能避免不同系统间的兼容性问题。

虚拟化与云计算的关系

系统虚拟化的核心是使用虚拟化软件在一台物理机上虚拟出多台虚拟机。其实施通常有以下四个步骤:

  1. 容量规划与服务器整合:使用工具进行容量规划,决定整合方案,优先整合同平台、低利用率、分布式、访问高峰错开或多层架构的应用。
  2. 虚拟化 I/O 和存储:将多套异构磁盘阵列整合为统一的存储资源池,实现资源共享、灵活调整和通用数据服务;将网卡、交换机等网络资源虚拟化,优化网络容量,降低复杂度,提高服务器整合效率。
  3. 统一管理虚拟资源池:在虚拟化平台搭建后,需实施有效管理以确保整个 IT 架构正常运转,实现异构平台的统一管理、快速部署、资源优化,降低管理复杂性。
  4. 从虚拟化迈向云计算:云计算是系统虚拟化的高级形态和演进方向,云计算将大量计算资源组成 IT 资源池,以服务方式通过网络提供,实现跨系统的资源动态调整与按需供给。

虚拟化是一种实现资源抽象与隔离的具体技术,是实现云计算的关键技术之一;云计算是一种按需服务的业务模式/产业形态,是虚拟化技术的重要应用场景和价值体现。二者的主要关系有:

云计算和虚拟化的关系 说明
云计算特性实现 没有虚拟化,云计算的弹性、池化、按需等特性无法实现。
封装与标准化 虚拟化封装硬件差异,为上层应用提供统一运行环境,适合云计算的大规模部署。
分离关注点 虚拟化分离了硬件与软件,使云计算能更聚焦于软件即服务

虚拟化是云计算落地的关键,但虚拟化的应用不限于云计算,则云计算必定是虚拟化的。

虚拟化的分类

服务器虚拟化

服务器虚拟化的作用是区分资源优先级,使多个操作系统误以为各自独占硬件,实现动态分配服务器资源,简化管理、提高效率。x86 服务器虚拟化技术主要有如下几种:

服务器虚拟化技术 原理 特点
完全虚拟化 Hypervisor 在虚拟机与硬件间建立抽象层,捕获并翻译所有 CPU 指令。 操作系统无需修改即可运行,但是 Hypervisor 带来一定的性能开销。
准虚拟化 需要修改客户操作系统内核,使其知晓自己运行在虚拟环境中,能与 Hypervisor 协同工作。 性能接近物理机,开销小。
操作系统层虚拟化 在主机操作系统内核上直接创建多个隔离的用户空间实例(容器)。 无独立 Hypervisor,所有虚拟实例必须运行同一操作系统,轻量、高效。

image

网络虚拟化

网络虚拟化能够将不同网络的硬件和软件资源组合成一个虚拟整体,典型的网络虚拟化技术有:

网络虚拟化技术 说明
虚拟局域网 在物理局域网上逻辑划分出多个广播域,提供灵活的网络管理。
虚拟专用网 在公网(如互联网)上建立加密隧道,构成一个安全的虚拟私有网络。
软件定义网络 将网络设备的控制权集中到软件控制器,屏蔽底层设备差异,使网络配置更灵活、敏捷,便于自动化管理和创新。
网络功能虚拟化 使用通用 x86 服务器+虚拟化技术,来替代传统专用的网络硬件设备(如路由器、防火墙),将网络功能以软件形式运行在虚拟机上。

image

存储虚拟化

存储虚拟化将多个异构的物理存储设备抽象整合为一个大的逻辑存储池,供服务器统一使用,数据可在池内灵活迁移。实现方式是将物理存储实体与其逻辑表示(逻辑卷)分离,服务器只与逻辑卷交互,由卷管理软件、存储控制器或专用网络设备管理映射关系。实现层级包括主机级、存储子系统级、网络级,相关技术/产品有:RAID(雏形)、NAS、SAN、EMC Invista、IBM SVC 等。

应用虚拟化

应用虚拟化包含两层含义:应用软件虚拟化将应用程序从操作系统中分离、封装,使其无需安装、不修改本地系统即可运行,便于管理和安全控制;桌面虚拟化将应用的人机交互逻辑与计算逻辑分离,计算在后台服务器完成,只将屏幕图像、键鼠操作等交互信息传输给前端瘦客户端。该技术实现应用的快速交付、集中管理、统一维护,客户端无需安装完整软件,典型应用包括:Citrix XenDesktop, VMware Horizon, 微软远程桌面服务。
1774310-20260309011645994-1083455056

开源虚拟化技术

Xen

Xen 是一个开源的裸机虚拟机监控器,它允许在一台物理计算机上同时运行多个操作系统实例。它属于Type-1 Hypervisor,这意味着它直接运行在硬件之上,而不是像 VMware Workstation 那样运行在操作系统之上,因此具有极高的性能和资源效率。由于用户感知暂停极短,Xen 支持虚拟机实时迁移。Xen 的核心特点有:

Xen 的特点 说明 优点
半虚拟化 客户操作系统知道自己是运行在虚拟机中的,并且会主动与 Hypervisor 配合,通过修改内核来优化 I/O 操作。 减少了虚拟化的性能开销,使虚拟机的性能非常接近物理机。
硬件辅助虚拟化 随着 Intel VT-x 和 AMD-V 技术的普及,Xen 也支持全虚拟化,此时无需修改客户操作系统即可直接运行 扩展了 Xen 的兼容性。
安全性 Xen 遵循最小权限原则,Hypervisor 非常精简,代码量小、攻击面也小。 在安全性和稳定性方面表现优异。

image

Xen 的架构中有一个特殊的角色 Domain 0

Xen 角色 说明
Domain 0 (Dom0) 是 Xen 第一个启动的虚拟机,拥有管理权限。它运行着一个经过修改的 Linux 内核,负责管理硬件驱动、创建和销毁其他虚拟机。
Domain U (DomU) 除了 Dom0 之外的其他普通虚拟机,它们可以是半虚拟化的(PV)或全虚拟化的(HVM)。

Xen 是许多大型云服务商(如早期的 AWS EC2、阿里云、Rackspace)的底层技术基础,因为它能提供高性能、高密度的虚拟机部署,可以将多台物理服务器整合到一台高性能服务器上。但近年来在通用服务器虚拟化领域,KVM 凭借其与 Linux 内核的深度集成和更简单的架构,逐渐成为了开源虚拟化的主流选择。不过,Xen 在特定领域(如嵌入式系统、安全关键领域)以及一些大型云平台中仍有广泛应用。

KVM

KVM(Kernel-based Virtual Machine)是一个开源的、内置于 Linux 内核的虚拟化技术。KVM 不是一个独立进程,而是以可加载内核模块的形式存在,将 Linux 内核本身转变为一个 Type-1 Hypervisor,使其能够在不修改主机操作系统的情况下运行多个虚拟机。KVM 必须运行在支持硬件虚拟化扩展的 CPU 上,通过调用 Intel VT-x 或 AMD-V 技术来提供高效的全虚拟化,支持运行未经修改的 Windows、Linux 等操作系统。
image

KVM 本身的代码量非常小,只提供 CPU 虚拟化和内存虚拟化等核心功能。I/O 虚拟化和管理功能则由一个用户空间的守护进程 QEMU 来处理。

KVM 组件 说明
KVM 模块 负责 CPU 和内存的虚拟化,将 Linux 内核变成 Hypervisor,创建和管理虚拟机的执行环境。
QEMU 作为用户空间的设备模拟器,负责模拟虚拟机的硬件设备(如网卡、磁盘、显卡),并处理 I/O 请求。每个虚拟机在主机上都是一个普通的 QEMU-KVM 进程,由 Linux 调度器统一管理。

由于 KVM 直接集成在内核中,并充分利用硬件辅助虚拟化,虚拟机的性能损耗极低,I/O 性能表现优异。KVM 与 Xen 的主要区别如下:

特性 KVM Xen
架构 是 Linux 内核的一部分,与主机操作系统集成 独立的 Hypervisor,运行在硬件之上
启动与依赖 依赖于 Linux 主机操作系统启动,是内核的一个功能 不依赖任何操作系统,可独立启动
管理虚拟机 通过 Linux 的进程调度和管理工具进行 通过一个特权虚拟机进行管理。
发状 目前开源虚拟化领域的主流和默认选择 在某些特定领域(如嵌入式、安全敏感型云)仍有应用,但整体已被 KVM 超越

OpenVZ

OpenVZ 是一个基于 Linux 内核的操作系统级虚拟化技术。与 KVM、Xen 等完整虚拟化技术不同,它创建的并不是一个拥有独立内核和完整硬件的虚拟机,而是在单一 Linux 内核实例上运行多个被称为容器的相互隔离的用户空间实例。由于没有硬件虚拟化和独立内核的开销,OpenVZ 容器的创建速度极快,单台宿主机可运行数百个容器,非常适合运行大量相同的 Linux 工作负载。
1774310-20260309005016689-1359898332~1

OpenVZ 的资源控制功能包括:

OpenVZ 的资源控制 说明
用户隔离 每个容器拥有独立的文件系统、用户、进程、网络等
资源管理 可以动态设置和调整 CPU、内存、磁盘空间、进程数等配额
公平共享调度 确保在资源紧张时,容器能公平地获得资源
资源限制 为每个容器设置硬性上限

OpenVZ 包含以下主要组件:

OpenVZ 组件 说明
OpenVZ 内核 一个打了特定补丁的 Linux 内核,提供了虚拟化和隔离功能。
用户空间工具 用于创建、启动、停止、配置和管理容器的命令行工具。
容器模板 预配置的操作系统镜像,用于快速部署容器。

与 KVM/Xen 的相比,OpenVZ 具有以下特征:

特性 OpenVZ KVM/Xen
虚拟化类型 操作系统级虚拟化 硬件级虚拟化
内核 所有容器共享宿主机内核 每个虚拟机拥有独立的内核
兼容性 只能运行与宿主机内核兼容的 Linux 可运行任何操作系统
性能开销 极低 较低(有少量硬件虚拟化开销)
隔离性 进程/文件系统/网络隔离,安全性较弱 完整的硬件级隔离,安全性强
典型应用 高密度 Linux VPS、Web 托管、批处理 需要运行异构操作系统、强安全隔离的企业应用、云主机

OpenVZ 的许多核心技术(如 cgroupsnamespaces)已贡献给 Linux 内核,成为现代容器技术的基石。由于内核补丁的维护复杂,以及更通用的容器技术的兴起,OpenVZ 的流行度有所下降。它的一个分支是 Virtuozzo,更主流的开源容器技术是 LXC/LXDDocker

虚拟化的发展趋势

虚拟化技术将持续向更开放、更安全、兼容性更好、用户体验更佳的方向演进,一些未来的发展方向如下:

  1. 连接协议标准化:各厂商的协议是私有的(如 VMware PCoIP, Citrix ICA, 微软 RDP),在未来需要推动协议标准化,解决终端与云平台间的兼容性。
  2. 平台开放化:虚拟化管理平台从封闭走向开放架构,未来将支持多厂商虚拟机共存,吸引应用厂商丰富云应用生态,避免供应商锁定。
  3. 公有云私有化:企业担心公有云数据安全,因此在公有云上通过技术(如虚拟网络)为企业构建出逻辑上隔离的“私有云”环境,兼顾公有云的便利性与私有云的安全性。
  4. 虚拟化客户端硬件化:当前虚拟化对多媒体的体验有差距,终端芯片(包括PC、Pad、智能手机)将加强硬件辅助虚拟化支持,通过硬件加速提升用户体验,推动虚拟化技术在移动终端落地。

参考资料

《云计算导论(第2版)》,吕云翔、柏燕峥、许鸿智、张璐、王佳玮 编著,清华大学出版社

posted @ 2026-03-09 01:48  乌漆WhiteMoon  阅读(59)  评论(0)    收藏  举报