云计算概述
云计算概述
本文根据《云计算概述》课件(共 33 页 PDF,扫描版)逐页识别整理,保留原有知识脉络,把图示中的标注转写为文字,删去重复的示意图。
部分数字与英文缩写受扫描件清晰度影响可能有识别误差,如与课件原文冲突,以原文为准。
一、传统 IT 架构面临的挑战
中国迅速攀升的互联网普及率带来了大量的流量、用户以及数据,传统 IT 架构已经不能满足企业高速发展的需求。
课上用游戏开新服排队的例子说明这种落差:新版本上线时玩家挤在登录界面,热门道具被瞬间抢空,服务器撑不住流量,排队动辄 24 小时甚至一个礼拜。这背后是传统架构的六类典型问题:
- 业务上线慢:采购、上架、装系统、调网络,一个流程走下来以周甚至月计
- TCO 居高不下:TCO 即总体拥有成本(Total Cost of Ownership),包含采购、机房、电力、运维、人力在内的全部投入
- I/O 瓶颈导致延迟:存储和网络的吞吐跟不上业务增长
- 扩展困难:纵向扩容有上限,横向扩容受架构限制
- 生命周期管理复杂:从部署、监控、升级到下线,全靠人工
- 可靠性不强:单点故障多,缺乏冗余和快速恢复手段
架构演进的三步
- 传统企业 IT 架构:一台服务器跑一个业务,资源利用率低,大量硬件闲置
- 虚拟化架构:一台物理机上跑多台虚拟机,提升资源利用率、降低成本、绿色减排
- 企业云化 IT 架构:资源统一池化、按需分配、自动化交付,代表是华为云、阿里云、腾讯云
二、虚拟化与云计算的定义
什么是虚拟化
虚拟化(Virtualization)的含义很广泛:将任何一种形式的资源抽象成另一种形式的技术都是虚拟化,是资源的一种逻辑表示。
虚拟化的核心是资源池化:把网络、服务器、存储、应用及服务抽象成共享资源池,资源能够快速供应并释放,使管理资源的工作量降到最低。
传统模式下,操作系统必须与硬件紧耦合,换硬件就要重装系统;虚拟化之后:
- 资源被抽象成共享资源池
- 上层操作系统与硬件解耦,操作系统从资源池中分配资源
- 同一台物理机上可以并存 Windows、Ubuntu、Redhat 等不同系统
什么是云计算
美国国家标准与技术研究院(NIST)的定义:云计算是一种模型,它可以实现随时随地、便捷地、随需应变地从可配置计算资源共享池中获取所需的资源(如网络、服务器、存储、应用和服务),这些资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。
维基百科的定义:云计算是一种通过 Internet,以服务的方式提供动态可伸缩的虚拟化资源的计算模式。
一句话概括:云计算就是能够像使用水、电一样,随时随地、便捷地、按需地使用计算资源。 一百年前电也是这样——家家自备发电机,后来集中发电、按表计费,用电才变得简单。
生活中随处可见:云音乐、云文档、云相册、云盘。
三、云计算的发展阶段
| 阶段 | 关键词 | 代表技术 | 解决的问题 |
|---|---|---|---|
| 云计算 1.0 | 计算虚拟化 | Hyper-V、XEN、KVM、VMware ESX | 提升资源利用率 |
| 云计算 2.0 | 软件定义与整合 | OpenStack、VMware、AWS | 基础设施云化,资源服务标准化、自动化 |
| 云计算 3.0 | 云原生与重构业务 | Cloud Foundry、容器与 Kubernetes | 应用云化,应用开发与生命周期管理 |
三个阶段是递进的:先解决"一台机器当几台用",再解决"几百台机器统一管",最后解决"应用天生为云而写"。
四、云计算的特征
云计算有五个基本特征:
- 按需自助服务:用户自己申请、自己开通,不需要打电话找运维
- 广泛网络接入:通过网络随时随地访问
- 资源池化:计算、存储、网络资源统一成池,按需划分
- 快速弹性伸缩:业务高峰自动扩容,低谷自动缩容
- 可计量服务:用量可计量、可计费,像水电表一样
五、服务模式:IaaS、PaaS、SaaS
先看分层模型,从下到上是:网络资源 → 存储资源 → 计算资源 → 虚拟化 → 操作系统 → 中间件 → 运行环境 → 数据 → 应用程序。其中网络、存储、计算三层的虚拟化层属于 Infrastructure,操作系统与中间件属于 Platform,运行环境、数据、应用属于 Software。
三种服务模式的差别,就在于这条分界线画在哪里:
| 模式 | 含义 | 用户负责 | 服务商负责 |
|---|---|---|---|
| IaaS(基础设施即服务) | 提供计算、存储、网络等基础资源 | 操作系统及以上全部 | 虚拟化层及以下硬件 |
| PaaS(平台即服务) | 提供运行环境与中间件 | 应用与数据 | 操作系统、中间件、运行环境及以下 |
| SaaS(软件即服务) | 直接提供可用软件 | 只管使用 | 全部 |
课上用烧烤打比方,非常形象:
- 传统模式:自己养猪、杀猪、切块、串起来、生碳、撒孜然、烤、吃——全流程自己干
- IaaS:食材别人给你备好(猪已经杀好切好),你自己串、生碳、撒孜然、烤、吃
- PaaS:别人把串都串好了、炉子也生好了,你负责烤、撒孜然、吃
- SaaS:端上来直接吃
六、部署模式与代表厂商
三种部署模式
- 公有云(Public Cloud):云服务运营商拥有云基础设施,为公众或企业用户提供云服务。比喻:饭店,面向所有人(阿里云、腾讯云、华为云、天翼云)。
- 私有云(Private Cloud):基础设施由单一组织拥有,并且仅为该组织运营。比喻:自家厨房,面向内部(OpenStack、华为云 Stack、阿里私有云)。
- 混合云(Hybrid Cloud):由两种或多种云组成,对外仍表现为一个整体。比喻:既下馆子也自己做饭。
选型上通常是这样:小公司直接用公有云;大公司把非核心业务放公有云、核心业务放私有云,形成混合云。
主流厂商及代表技术
- 华为云:一站式云服务平台,代表技术有 ECS(弹性计算服务)、OBS(对象存储服务)、EVS(弹性卷服务)、CCE(云容器引擎)
- AWS(亚马逊):代表技术有 EC2(弹性计算云)、S3(简单存储服务)、RDS(关系型数据库服务)
- Azure(微软):代表技术有虚拟机、Blob 存储、Azure SQL 数据库
- Google Cloud:代表技术有 Compute Engine(计算引擎)、Cloud Storage(云存储)
- IBM Cloud:代表技术有 Virtual Servers(虚拟服务器)、Object Storage(对象存储)
- 阿里云:代表技术有 ECS(弹性计算服务)、OSS(对象存储服务)
- VMware Cloud Foundation:全栈云基础设施平台,代表技术有 vSphere(核心虚拟化平台)、NSX(网络虚拟化与安全平台)、vSAN(超融合基础设施 HCI)、Workstation(桌面虚拟化软件)
七、服务器基础
计算产业的三个阶段
- 计算 1.0:专用计算——大型机、小型机时代,性能强但昂贵、封闭
- 计算 2.0:通用计算——x86 架构服务器进入数据中心,标准化、低成本
- 计算 3.0:智能计算——全栈全场景,CPU + GPU + NPU 异构算力
去 IOE
- IBM 大型机 → x86 服务器
- Oracle 数据库 → MySQL
- EMC 存储 → 软件定义存储(SDS)、Ceph
去 IOE 的本质是用开放、廉价、可水平扩展的通用方案,替代封闭、昂贵、纵向扩展的专用设备。
服务器分类(按硬件形态)
- 塔式服务器:像台式机主机,体积大、扩展槽多,适合小微企业、10 人以内场景
- 机架服务器:标准机柜安装,1U/2U 高度,机房主流,适合 50 人以上、需要集中部署的场景
- 刀片服务器:多块"刀片"插在机框中,共享电源和散热,密度最高
几个常见的量纲:
- 1U = 1.75 英寸 ≈ 45 mm,"2 路"指 2 颗 CPU
- 42U 机柜约 1.87 米,常用于大型数据中心
- 47U 机柜约 2.1 米,适合大型机房或云服务节点
国内主流服务器品牌
- 浪潮信息 Inspur:国内出货量头部,NF 系列机架服务器,AI 服务器、GPU 集群很强,IDC、运营商大量采购
- 华为:TaiShan 泰山服务器(鲲鹏 ARM 架构)、FusionServer X86 机架服务器,政企、国产化项目首选
- 超聚变:原华为服务器业务拆分,X86 服务器,FusionServer 系列,国产化市场主力
- 联想 Lenovo:ThinkSystem 系列(如 SR650)、ThinkServer,国内政企市场份额高,全球排名靠前
- H3C 新华三:UniServer 服务器,网络 + 服务器一体化方案,运营商、教育、政务项目常见
- 中科曙光 Sugon:高性能计算 HPC、超算很强,也有通用 X86 服务器,科研、气象、算力中心
- 中兴 ZTE:服务器 + 通信设备配套,运营商机房使用较多
八、硬盘与 RAID
硬盘是计算机最主要的存储设备。硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据;不同接口决定着连接速度,直接影响程序运行快慢和系统性能。
主流接口对比
| 接口 | 转速(RPM) | 主流容量 | MTBF(小时) | 典型场景 |
|---|---|---|---|---|
| SATA | 7200 | 1T / 2T / 3T | 1,200,000 | 个人电脑 |
| SAS | 15000 / 10000 | 0.6T / 0.9T | 1,600,000 | 服务器 |
| NL-SAS | 7200 | 2T / 3T / 4T | 1,200,000 | 近线存储 |
| SSD | 无机械转速 | 0.6T / 0.8T / 1.2T / 1.6T | 2,000,000 | 高性能场景 |
补充几点:
- SATA:串行传输,SATA 3.0 达 600 MB/s,年故障率约 2%
- SAS:专为高性能企业需求设计,兼容 SATA 硬盘,链路速率 3.0 Gb/s 到 12 Gb/s,年故障率小于 2%
- NL-SAS:带有 SAS 接口的"企业级 SATA 驱动器",由 ATA 硬盘发展而来,年故障率约 2%
- SSD:用固态电子存储芯片阵列(FLASH 芯片、DRAM 芯片)制成,接口规范和外形尺寸与普通硬盘相同,由控制单元和存储单元组成
RAID 卡
RAID 卡又名磁盘阵列卡,简称阵列卡(如 LSI SAS3108)。它的作用是把若干硬盘驱动器按一定要求组成一个整体,由阵列控制器统一管理,从而提高磁盘子系统的性能及可靠性。
九、服务器带外管理与 BIOS
IPMI 与 BMC
IPMI(Intelligent Platform Management Interface,智能平台管理接口)是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。
IPMI 信息通过**基板管理控制器(BMC)**进行交流,使用低级硬件智能管理,不依赖操作系统。这意味着即使系统没装好、甚至宕机,只要服务器通电、网线插着,就能通过 BMC 远程开机、重启、看硬件状态、装系统——这就是"带外管理"。客户机侧支持 IPMI 的管理工具即可接入。
BIOS
BIOS(Basic Input/Output System,基本输入输出系统)实际上是固化到计算机中的一组程序,为计算机系统提供最底层的、最直接的硬件控制服务,解决硬件的实时需求。
主要功能:
- 检测和初始化硬件
- 操作系统引导
- 高级电源管理
进入方式:开机出现品牌 LOGO 时连续快速敲击对应按键;Windows 开了快速启动时,直接关机再按无效,要走"重启"再按。部分笔记本需要按住 Fn 再按 F 键。
常见热键(不同机型有差异,以开机屏幕提示为准):
| 品牌 | BIOS 热键 | 启动菜单(选 U 盘/硬盘) |
|---|---|---|
| 华硕 ASUS | 台式 Del,轻薄本 F2 | F12 |
| 微星 MSI | Del | F12 |
| 技嘉 Gigabyte | Del | F12 |
| 华擎 ASRock | Del / F2 | F12 |
| 戴尔 Dell | F2(外星人先按 F12 进启动菜单再选 Setup) | F12 |
| 联想 ThinkPad | F1(部分机型 Fn+F1),另有 Novo 小孔键 | F12 |
| 联想 IdeaPad / 小新 / 拯救者 | F2(或 Fn+F2) | F12 |
| 惠普 HP | F10(先按 Esc 调出启动菜单,再按 F10) | F9 |
| 宏碁 Acer | F2 | F12 |
| 三星 Samsung | F2 | F12 |
十、网络基础
IP 地址相关概念
课堂上给出的例子:IP 地址 192.168.49.100,子网掩码 255.255.255.0。
- 网段:掩码与前 24 位相与,得到
192.168.49.0/24 - 可用主机地址:
192.168.49.1~192.168.49.254,共 254 个 - 广播地址:
192.168.49.255 - IP 地址长度:IPv4 为 32 位;MAC 地址长度:48 位
三个必答的概念:
- 子网掩码的作用:区分网络位和主机位,判断目标 IP 是否在同一网段
- 网关的作用:跨网段通信的出口,数据要发给别的网段,就先交给网关
- DNS 的作用:把域名解析成 IP 地址
常见网络设备
1. 双绞线(网线):一对一连接,最大传输距离 100 米。
2. 中继器:对信号进行再生放大,延长传输距离。
3. 交换机(Switch):距离终端用户最近的设备,用于终端用户接入网络、对数据帧进行交换。工作在二层(Layer 2 Switching),负责终端设备(PC、服务器等)的网络接入,隔离冲突域但不隔离广播域。
4. 路由器(Router):网络层设备,可以在因特网中进行数据报文转发。根据所收到的报文的目的地址选择一条合适的路径,将报文传送到下一个路由器或目的地,路径中最后的路由器负责将报文送交目的主机。
它的主要职能包括:维护路由表(Routing Table)、运行路由协议、路径选择、IP 报文转发、广域网接入、网络地址转换(NAT)、隔离广播域。
5. 光猫:光信号转成电信号。光猫 = 光纤 + Modem,专业名词是光调制解调器,由运营商提供,负责把入户光纤的光信号转成网线里的电信号。
6. 防火墙(Firewall):网络安全设备,用于控制两个网络之间的安全通信。它通过监测、限制、更改跨越防火墙的数据流,尽可能对外部屏蔽网络内部的信息、结构和运行状况,以此实现对网络的安全保护。
功能包括:隔离不同安全级别的网络、实现不同安全级别网络之间的访问控制(安全策略)、用户身份认证、远程接入、数据加密与 VPN 业务、网络地址转换等。典型部署中会划出 DMZ 区(隔离区),放置对外提供服务的服务器。
7. 无线设备:两种组网方式——
- AC + 瘦 AP:无线控制器(AC,Access Controller)统一管理多个瘦 AP(Fit AP),配置集中在 AC 上,适合企业大规模部署
- 胖 AP:Fat AP,每台设备独立配置,适合家庭、小店
十一、存储基础
存储架构的演进
| 阶段 | 形态 | 解决的问题 | 遗留的问题 |
|---|---|---|---|
| 1950s | 硬盘在服务器内部(本地存储) | —— | 硬盘成为系统瓶颈、槽位有限容量小、单盘可靠性差、空间利用率低 |
| 1980s | 外挂存储(JBOD) | 有限硬盘槽位、容量小 | 仍无冗余保护 |
| 1990s | 存储网络 + 磁盘阵列 | 性能瓶颈、可靠性差 | 成本高、扩展受限 |
| 本世纪 | 分布式存储、云存储 | 海量扩展、弹性 | —— |
JBOD(Just a Bunch Of Disk)在逻辑上把几块物理磁盘串联在一起,目的纯粹是增加容量,本身不提供冗余。
磁盘阵列(RAID)在控制器中包含 RAID 功能和大容量 cache,同时使阵列具有多种实用功能,如提高读写性能、提升数据安全性。
硬盘关键指标
- 硬盘容量(Disk Capacity)
- 转速(Rotational Speed):机械硬盘指标
- 平均访问时间(Average Access Time)
- 数据传输率(Data Rate)
- IOPS(Input/Output Operations Per Second)
两类性能指标要分清:
- 带宽:单位时间内最大的输入输出,反映连续大文件读写性能
- IOPS:每秒的输入输出次数,反映不连续小文件读写性能
不同介质的典型表现(4K 随机写 IOPS / 128K 顺序读带宽):
| 硬盘类型 | IOPS | 带宽 |
|---|---|---|
| SATA HDD | 330 | 200 MB/s |
| SAS 10K | 350 | 195 MB/s |
| SAS 15K | 450 | 290 MB/s |
| SATA SSD | 30 ~ 60K | 540 MB/s |
| SAS SSD | 155K | 1000 MB/s |
| NVMe SSD | 300K | 3500 MB/s |
可以看到:机械盘拼的是容量和成本,IOPS 被 SSD 甩开两个数量级;NVMe 又把 SATA SSD 的带宽翻了数倍。
三种存储形态
DAS(Direct Attached Storage,直连附加存储)
- 时间:70 年代
- 背景:用户最早因为数据量增多而产生存储需求,由此诞生最早、最简单的存储架构
- 连接方式:FC、SAS,链路速率 3 Gbit/s、6 Gbit/s、12 Gbit/s
- 访问方式:直连式存储与服务器主机之间的连接通道通常采用 SAS
- 能力:提供快照、备份等功能
NAS(Network Attached Storage,网络附加存储)
- 时间:90 年代初
- 背景:网络飞速发展,大量数据需要共享和交换,出现专用的 NAS 存储设备,成为数据共享与交换的核心
- 访问方式:多台前端服务器共享后端存储设备,后端 NAS 上的存储空间通过 CIFS(Windows)、NFS(类 Unix) 协议共享给前端主机,可同时对同一目录或文件进行并发读写
- 特点:文件系统位于后端存储设备,提供文件级共享
SAN(Storage Area Networks,存储区域网络)
用专用高速网络将一个或多个网络存储设备和服务器连接起来的专用存储系统,提供块级访问。
- FC-SAN:90 年代中后期出现,为解决 DAS 扩展性差的问题,将存储设备网络化,可同时连接上百台服务器。连接方式为 FC 光纤,使用专用 FC 交换机;后端存储空间可划分为多个 LUN 供前端服务器使用;链路速率 2 Gbit/s、4 Gbit/s、8 Gbit/s;提供快照、容灾等高级数据保护功能。
- IP-SAN:2001 年出现,为解决 FC-SAN 在价格及管理上的门槛而产生。采用以太网作为连接链路,用普通以太网交换机;基于 iSCSI;后端存储空间同样划分为多个 LUN;链路速率 1 Gbit/s、10 Gbit/s;提供快照、容灾等功能。它被看好的原因是:可以直接复用非常成熟的 IP 网络管理工具和基础设施,IP 网络使用普遍,能为企业节省大笔建设、管理及人事成本。
集中式存储与分布式存储
集中式存储系统,即整个存储集中在一个系统中。企业级存储设备一般都是集中式存储,但它并不是一个单独的设备,而是集中在一套系统当中的多个设备——以华为的存储为例,整个存储系统可能需要几个机柜来存放。
集中式存储按技术架构可划分为 SAN 和 NAS,其中 SAN 又可细分为 FC-SAN 和 IP-SAN。
集中式存储最大的特点是部署结构简单,无需考虑如何对服务进行多节点的部署,也就不用考虑多个节点之间的分布式协作问题。
块、文件、对象存储的直观区别
- 块存储:速度快、容量小——像跑车
- 对象存储:速度慢、容量海量——像货轮
- 文件存储:速度中等、容量中等——像卡车
常见厂商
- 网络设备:华为、H3C、锐捷、神州数码、Cisco
- 存储设备:华为 OceanStor、HPE、EMC、Dell
十二、虚拟化技术
四个核心概念
| 概念 | 含义 |
|---|---|
| Host Machine | 宿主机,物理服务器 |
| Host OS | 运行在物理机之上的操作系统 |
| Guest Machine / 虚拟机 | 运行在虚拟化层之上的虚拟机 |
| Guest OS | 虚拟机里的操作系统 |
| Hypervisor | 虚拟机监视器(VMM,Virtual Machine Monitor),虚拟化软件层 |
虚拟化技术发展史
- 1950 年代:IBM 开始尝试在大型机上实现虚拟化
- 1972 年:IBM 推出运行在大型机上的虚拟机
- 1999 年:VMware 推出 x86 架构的虚拟化产品
- 2002 年:Xen 正式被开源
- 2006 年:Qumranet 宣布 KVM
- 2007 年:惠普发布针对 HP-UX 的 Integrity 虚拟机
- 2008 年:微软在 Windows Server 2008 R2 中加入 Hyper-V
- 2008 年:Linux 容器技术出现
- 2010 年:红帽 6.0 版本中默认仅提供 KVM 虚拟化机制
- 2011 年:IBM、红帽、惠普和英特尔成立开放虚拟化联盟,加速 KVM 推广
- 2013 年:Docker 推出
- 2014 年:Rocket 推出
三种虚拟化实现方式
全虚拟化:使用 VMM 实现 CPU、内存、设备的虚拟化,而 OS 和计算机系统硬件都不需要修改。兼容性好,但会给处理器带来额外开销。
半虚拟化:使用 VMM 实现 CPU 和内存虚拟化,设备虚拟化由 OS 实现。需要修改 OS,使其能够与 VMM 协同工作。兼容性差,但性能较好。
硬件辅助虚拟化:借助硬件(主要是处理器)的支持来实现高效的全虚拟化。不需要修改 Guest OS,兼容性好。该技术将逐渐消除软件虚拟化技术之间的差别,成为未来的发展趋势。
虚拟化的四个特点
- 分区:在单一物理服务器上同时运行多台虚拟机
- 隔离:在单一物理服务器上的多台虚拟机之间相互隔离
- 封装:整台虚拟机执行环境封装在独立文件中,可以通过移动文件的方式来迁移该虚拟机
- 相对于硬件独立:虚拟机无需修改,即可在任何服务器上运行
展开来说:
分区意味着虚拟化层为多台虚拟机划分服务器资源的能力。每台虚拟机可以同时运行一个单独的操作系统(相同或不同),使你能够在一台服务器上运行多个应用程序;每个操作系统只能看到虚拟化层为其提供的"虚拟硬件"(虚拟网卡、CPU、内存等),以使它认为运行在自己的专用服务器上。
隔离是指虚拟机之间互相隔离。一台虚拟机的崩溃或故障(操作系统故障、应用程序崩溃、驱动程序故障等)不会影响同一服务器上的其他虚拟机;一台虚拟机中的病毒、蠕虫等与其他虚拟机相隔离,就像每台虚拟机都位于单独的物理机器上一样。同时可以进行资源控制以提供性能隔离:为每台虚拟机指定最小和最大资源使用量,确保某台虚拟机不会占用所有资源而导致其他虚拟机无资源可用。还可以在单一机器上同时运行多个负载/应用程序/操作系统,而不会出现传统 X86 服务器体系结构中的应用程序冲突、DLL 冲突等问题。
封装意味着将整台虚拟机(硬件配置、BIOS 配置、内存状态、磁盘状态、CPU 状态)储存在独立于物理硬件的一小组文件中。这样,只需复制几个文件就可以随时随地根据需要复制、保存和移动虚拟机。
相对于硬件独立:因为虚拟机运行于虚拟化层之上,只能看到虚拟化层提供的虚拟硬件,而此虚拟硬件也同样不必考虑物理服务器的具体情况。这样虚拟机就可以在任何 X86 服务器(IBM、Dell、HP 等)上运行而无需任何修改,打破了操作系统与硬件、应用程序与操作系统/硬件之间的约束。
CPU 虚拟化的原理
先看 CPU 的分级保护域。在这种保护模式中,CPU 被分成 4 个环——Ring 0、Ring 1、Ring 2、Ring 3,Ring 0 权限最高,Ring 1 次之,Ring 2 再次之,Ring 3 最低。
Ring 0 的权限可以直接操作硬件,一般只有操作系统和驱动才拥有此权限;Ring 3 权限最低,所有程序都可以拥有。为了保护计算机,一些危险的指令只能由操作系统执行,防止恶意软件随意调用硬件资源——比如某个程序需要开启摄像头,就必须向 Ring 0 的驱动程序请求开启特权指令。
指令分三类:特权指令、敏感指令、普通指令。
- RISC 精简指令集(如 ARM):所有敏感指令都属于特权指令
- CISC 复杂指令集(如 x86):部分敏感指令属于普通指令
问题就出在这里:x86 架构最初并不适合于虚拟化——它存在 19 条敏感的非特权指令,这些指令在虚拟化环境中执行时会导致系统异常:Guest OS 以为自己还在 Ring 0,实际已被降级到 Ring 1,执行这些指令时既不会触发陷入,VMM 也无法拦截。
另外,x86 与 ARM 的路线差异也很典型:x86 高性能、高功耗、高热量;ARM 低性能、低功耗、低热量。
三种解决思路
思路一:全虚拟化之二进制翻译(BT,Binary Translation)
工作原理:Guest OS 指令段在执行前进行整段翻译,将其中的敏感非特权指令替换为在 Ring 0 中执行对应特权指令;非特权指令直接执行;特权指令首先被陷入到 VMM,VMM 通过一系列模拟操作实现此特权指令,然后返回给 Guest OS,Guest OS 从上次被中断的地方继续执行。
优点是 Guest OS 无需修改、感知不到虚拟化的发生;缺点是负载较大、敏感指令频繁执行时性能低下。
思路二:半虚拟化(Para-Virtualization)
在 Hypervisor 上运行的 Guest OS 已经集成了与半虚拟化有关的代码,能够非常好地配合 Hypervisor 实现虚拟化。Hypervisor 提供 Hypercall 接口来满足 Guest OS 的关键内核操作,如内存管理、中断和时间同步等。
优点是性能非常接近物理机;缺点是不支持未修改的操作系统,兼容性和可移植性差。
思路三:硬件辅助虚拟化
引入 VMX 模式(Virtual Machine eXtension),把 CPU 划分为 VMX 根模式(运行 Hypervisor)和 VMX 非根模式(运行 Guest OS),通过 VM-Entry / VM-Exit 在两者之间切换,从根本上解决"非特权敏感指令无法陷入"的问题。
内存虚拟化
把物理机的真实物理内存统一管理,包装成多份虚拟内存,动态分配给若干虚拟机使用。KVM 通过内存虚拟化共享物理系统内存,动态分配给虚拟机。
虚拟机看到的内存总是从 0 开始、连续使用,因此地址要经过两次转换:
- GVA(Guest Virtual Address):客户机虚拟地址
- GPA(Guest Physical Address):客户机物理地址
- HPA(Host Physical Address):宿主机物理地址
即 GVA → GPA → HPA,硬件辅助下由 EPT/NPT 完成第二级转换。
KVM
KVM(Kernel-based Virtual Machine)是基于内核的虚拟机。
- 本质是 Linux 内核中的虚拟化功能模块
kvm.ko,利用 Linux 做大量的事,如任务调度、内存管理与硬件设备交互 - 开源软件,2007 年 2 月被集成到 Linux 2.6.20 内核中
- 在 KVM 中,虚拟机其实就是一个 Linux 进程,由 CPU 进行调度运行
- KVM 运行在内核空间,提供 CPU、内存的虚拟化,它本身不执行任何模拟
- 运行在用户空间的 QEMU 提供硬件 I/O 的虚拟化模拟
两种虚拟化类型:
- 裸金属型虚拟化(1 型):VMM 直接跑在硬件上,如 KVM、Xen、ESXi
- 宿主型虚拟化(2 型):VMM 跑在 Host OS 之上,如 VMware Workstation、VirtualBox
KVM 与 QEMU 的分工
在 KVM 虚拟化方案中,KVM 主要负责 CPU 和内存的虚拟化,I/O 设备的虚拟化则由 QEMU 完成。
QEMU 是一个纯软件实现的开源模拟软件,能够模拟整套虚拟机的实现,包括 CPU、内存、I/O 设备、USB、网卡等。
- QEMU 性能差,但 I/O 设备支持得多
- KVM 性能强,主要负责 CPU、内存虚拟化
两者合起来就是 qemu-kvm:一个虚拟机对应一个 QEMU 进程,进程里通过 /dev/kvm 与内核中的 KVM 交互。
Libvirt 与配套工具
Libvirt 是一套由 C 语言开发的 API,主要目标是提供一种通用并且稳定的软件层,来管理物理主机上多种不同的虚拟化方式和虚拟主机,并支持远程管理。
它是 Linux 上的虚拟化库,也是一个开源项目,是非常强大的虚拟化平台管理工具。被管理的虚拟化平台可以是 KVM,也可以是 Xen、VMware 以及 Hyper-V 等。
常用工具:
- virsh:libvirt 原生命令行管理工具,功能最全。用来对虚拟机做生命周期管理——启动、关闭、重启、快照、迁移、编辑 XML 配置、管理存储池/虚拟网络,适合脚本自动化、无图形服务器运维。
- virt-manager:图形化虚拟机管理界面(GUI)。底层调用 libvirt,可以可视化创建、管理本地/远程 KVM 虚拟机,看资源监控、配置网络存储,内置控制台,适合桌面运维人员。
- virt-viewer:轻量虚拟机图形控制台客户端。只做一件事——连接虚拟机的 VNC/SPICE 画面,单独弹出虚拟机窗口,不具备虚拟机创建、修改等管理能力,virt-manager 内部也会调用它。
- virt-install:命令行虚拟机创建工具。通过参数指定 CPU、内存、磁盘、ISO 镜像,在命令行一键新建虚拟机,常用于批量自动化部署,virt-manager 新建虚拟机底层也是调用它。
- Others:其他配套工具,例如 virt-clone(克隆虚拟机)、virt-sysprep(修改虚拟机配置)、virt-sparsify(虚拟机镜像清理)等。
常见的虚拟化产品
KVM、Xen、QEMU、Hyper-V、VMware ESX、VirtualBox、LXC、FusionCompute、Virtuozzo、Hypervisor.framework。
三个重要概念
- 节点(Node):一个物理机器,上面可能运行着多个虚拟客户机。Hypervisor 和 Domain 都运行在节点上。
- Hypervisor:也称虚拟机监控器(VMM),如 KVM、Xen、VMware、Hyper-V 等,是虚拟化中的一个底层软件层,可以虚拟化一个节点让其运行多个虚拟客户机(不同客户机可能有不同的配置和操作系统)。
- 域(Domain):在 Hypervisor 上运行的一个客户机操作系统实例。域也被称为实例(instance,如亚马逊 AWS 中客户机就被称为实例)、客户机操作系统(Guest OS)、虚拟机(Virtual Machine),它们都是指同一个概念。
十三、OpenStack 简介
部署架构
OpenStack 生产环境部署分为控制节点、计算节点、存储节点、网络节点,各类服务按角色分布部署:
- 控制节点:Dashboard、Identity、Compute Management、Block Storage Management、Network Management、Image、Orchestration 等管理类服务,以及 MariaDB、RabbitMQ、Memcached 等基础设施
- 计算节点:Compute 与 Hypervisor,运行虚拟机
- 存储节点:Block Storage(卷)、Object Storage
- 网络节点:L2/L3 Agents,负责网络转发
核心组件
| 组件 | 中文名 | 作用 |
|---|---|---|
| Horizon | 仪表盘 | OpenStack 仪表板的官方实现,可扩展,为各服务提供基于 Web 的用户界面 |
| Keystone | 身份服务 | 实现 OpenStack 身份标识 API,提供 API 客户端认证、服务发现以及分布式多租户授权,支持 LDAP、OAuth、OpenID Connect、SAML 和 SQL |
| Glance | 镜像服务 | 包括发现、注册和检索虚拟机镜像,提供 RESTful API 查询镜像元数据并检索实际镜像,镜像可存放在文件系统或对象存储(如 Swift)中 |
| Nova | 计算服务 | 提供大规模可扩展、按需自服务访问计算资源的能力,包括裸机、虚拟机和容器 |
| Cinder | 块存储 | 虚拟化对块存储设备的管理,为最终用户提供自助服务 API,使其能请求和使用资源而无需了解实际部署位置和设备类型,通过 LVM 参考实现或其他存储插件驱动实现 |
| Swift | 对象存储 | 高可用性、分布式、最终一致性的对象/块存储系统,适合存储海量非结构化数据,专为扩展而构建 |
| Neutron | 网络 | 专注于在虚拟计算环境中提供网络即服务(NaaS)的 SDN 网络项目 |
| Heat | 编排 | 根据以文本文件形式存在的模板(可视为代码)为云应用编排基础设施资源,提供原生 REST API 及兼容 CloudFormation 的查询 API,并支持自动扩展 |
| Ceilometer | 计量与数据采集 | 高效收集、标准化和转换由 OpenStack 服务产生的数据,用于创建不同视图并支撑各类遥测用例(Aodh、Gnocchi 是其数据扩展服务) |
此外架构图中还能看到 Nova(虚拟机)、Ironic(裸机)、Magnum/Trove/Zun(容器与数据库)、Neutron 及其扩展 Octavia(负载均衡)、Designate(DNS)、Barbican(密钥管理)、Placement(资源调度)、Cyborg(硬件加速)、Watcher/Vitrage(资源优化)、CloudKitty(计费)、Tempest(测试)等大批项目——OpenStack 的特点就是"大而全",按需组合。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)