云安全
云安全概述
阿里云概述
亚马逊AWS概述
云计算导论
云计算概述
云计算的关键技术
虚拟化
分布式文件系统
云存储
数据处理
并行计算
OpenStack
容器
Kubernetes概述
Serverless
Hadoop
云原生
云数据中心
微服务
对象存储OSS
云存储
对象存储
对象文件(Object)
存储桶(存储空间)
通过外网访问OSS
存储桶漏洞
STS访问OSS
权限与访问控制
访问控制
Bucket&RAM Policy
预签名
Docker
01docker概述
02docker安装
03目录结构
04基础操作
05底层原理【理论】
06底层原理【实践】
07DockerFile
08容器反查Dockerfile
09Docker 逃逸
-
+
首页
虚拟化
虚拟化是云计算的技术基石;云计算是虚拟化技术的商业化和服务化延伸。 ## 什么是虚拟化 虚拟化是指计算机元件在虚拟的基础上而不是在真实、独立的物理硬件基础上运行。 虚拟化是一种资源管理技术。它的核心思想是将一台物理计算机的硬件资源(如CPU、内存、存储、网络等)进行抽象、转换和隔离,从而创建多个独立的、模拟出来的计算机环境(即虚拟环境)。 这些虚拟环境通常被称为虚拟机(Virtual Machine),它们就像是一台台真实的计算机,拥有自己的操作系统和应用程序,但彼此之间以及与底层物理硬件之间是相互隔离的。 > 比喻 传统方式(非虚拟化):这栋大房子里只住了一家人(一个操作系统),并且运行一个主要任务(比如一个网站服务器)。这会造成很大的空间和资源浪费,因为大部分房间可能是空着的。 虚拟化方式:虚拟化技术就像一位神奇的建筑管理大师(Hypervisor),它把这栋大房子巧妙地分割成多个独立的公寓(虚拟机)。 每个公寓都: - 功能完整:拥有自己虚拟的厨房、卧室、卫生间(即虚拟的CPU、内存、硬盘)。 - 完全隔离:公寓之间有坚固的墙壁(隔离)。一户人家在装修、甚至家里漏水(系统崩溃),都不会影响到隔壁的邻居。 - 自成一体:每个公寓里可以住完全不同的人,装修成完全不同的风格(可以安装不同的操作系统,如Windows、Linux)。 简单来说,虚拟化就是将一台物理计算机的硬件资源“分割”成多个独立的、虚拟的计算机来使用。 虚拟化是一种对计算机资源进行管理的技术,它将各种IT实体资源抽象转换成逻辑表示。 ## 虚拟化的原理 所有虚拟化技术的核心都是虚拟机监控器(Hypervisor,简称 VMM),它是介于物理硬件和 “虚拟机(VM)” 之间的一层软件 / 固件,承担三大核心职责: 1. 硬件抽象:将物理 CPU、内存、硬盘、网卡等资源 “抽象” 为多个独立的 “虚拟硬件实例”(如虚拟 CPU、虚拟内存)。 2. 资源分配:根据需求将物理资源分配给不同的虚拟机,例如为 VM1 分配 2 核 CPU、4GB 内存,为 VM2 分配 4 核 CPU、8GB 内存。 3. 隔离与调度:确保多个虚拟机之间完全隔离(一个 VM 崩溃不影响其他 VM),同时调度物理资源的使用(如 CPU 时间片分配、内存访问控制)。 根据 Hypervisor 的部署方式,可分为两类,其原理略有差异: | 类型 | 部署位置 | 典型案例 | 核心原理 | | ------------------ | ------------------------------------ | ----------------------------------------------------- | ------------------------------------------------------------ | | Type 1(裸金属型) | 直接安装在物理硬件上(替代操作系统) | VMware ESXi、Citrix Hypervisor、KVM(Linux 内核集成) | 直接控制物理硬件,无需中间层,资源调度效率高,适合企业级虚拟化(如服务器集群)。 | | Type 2(宿主型) | 安装在传统操作系统(Host OS)上 | VirtualBox、VMware Workstation、Parallels | 依赖宿主 OS 管理物理硬件,VMM 作为应用运行,原理更简单(适合个人开发 / 测试,效率略低于 Type 1)。 | ## 三大核心资源的虚拟化原理 ### CPU 虚拟化 这是指将物理CPU(pCPU)的时间片分配给多个虚拟CPU(vCPU),主要经历了三种技术演进: > 全虚拟化 - 二进制翻译技术 原理:Hypervisor在客户操作系统和物理CPU之间动态地扫描并替换敏感指令。当客户操作系统执行特权指令时,Hypervisor会捕获它,并用一段安全的、功能等效的代码(陷阱)来模拟执行,然后将结果返回。 优点:客户操作系统无需任何修改,兼容性极好。 缺点:性能开销较大。 代表:早期VMware Workstation。 > 半虚拟化 原理:修改客户操作系统的内核,将其中的所有敏感指令替换为对Hypervisor的超级调用。这相当于客户操作系统“知道”自己运行在虚拟环境中,主动与Hypervisor合作。 优点:性能远高于全虚拟化,因为避免了指令捕获和翻译的开销。 缺点:需要修改操作系统源码,兼容性差(Windows等闭源系统无法使用)。 代表:Xen的半虚拟化模式。 > 硬件辅助虚拟化 原理:CPU厂商(Intel和AMD)在硬件层面直接增加了虚拟化功能(Intel VT-x 和 AMD-V)。它引入了新的根模式和非根模式。Hypervisor运行在根模式,客户操作系统运行在非根模式。当客户操作系统执行特权指令时,CPU会自动切换到根模式的Hypervisor进行处理,处理完毕再切回。 优点:完美解决了软件虚拟化的性能瓶颈和复杂性。客户操作系统无需修改,性能接近原生。 现状:这是现代服务器虚拟化(如VMware ESXi, KVM)的主流和基石。 ### 内存虚拟化 每个虚拟机都认为自己拥有一段连续的、从零开始的物理内存地址,但这显然是假的。Hypervisor需要维护一个映射关系: > 原理 客户操作系统维护着 “客户虚拟内存”到“客户物理内存” 的映射表。 Hypervisor维护着 “客户物理内存”到“机器物理内存” 的映射表。 当客户操作系统访问内存时,需要通过这两级映射才能找到真正的物理内存地址。 > 硬件辅助(影子页表 -> 扩展页表EPT/嵌套页表NPT) 早期(影子页表):Hypervisor为每个虚拟机维护一个复杂的“影子页表”,动态同步客户操作系统的页表,性能开销大。 现代(EPT/NPT):CPU硬件直接支持二级映射。内存管理单元(MMU)可以自动完成“客户虚拟->客户物理->机器物理”的地址转换,极大提升了内存访问效率。 ### I/O 虚拟化 让多个虚拟机安全、高效地共享物理设备(如网卡、硬盘)。 原理: - 设备模拟:Hypervisor模拟一个标准的、通用的硬件设备(如Intel E1000网卡),虚拟机的驱动程序向这个虚拟设备发送指令,Hypervisor捕获这些指令,并将其翻译成对物理设备的实际操作。这种方式兼容性好,但性能差。 - 半虚拟化:在虚拟机和Hypervisor之间使用一个高效的通訊机制(如Xen的Frontend/Backend驱动,virtio标准),虚拟机安装特殊的“感知虚拟化”的驱动(前端驱动),直接与Hypervisor中的后端驱动通信,避免了模拟开销,性能更高。 - 硬件辅助直通(如Intel VT-d, AMD-Vi):将物理设备直接分配给某个虚拟机独占使用,Hypervisor几乎不介入,虚拟机可以直接与硬件对话,性能达到原生水平。缺点是该设备无法被其他虚拟机共享。 ## 分类 按照虚拟化的对象(资源类型)进行分类 ### 服务器虚拟化 核心定义:将一台物理服务器的硬件资源(计算、存储、网络)进行抽象、隔离和整合,从而在一台物理服务器上创建并同时运行多个相互隔离的虚拟机。每个虚拟机都拥有自己的虚拟硬件(vCPU、vRAM、虚拟磁盘等),可以运行独立的操作系统和应用程序。 技术原理:依赖于核心软件——Hypervisor。Hypervisor直接运行在物理服务器上(Type-1)或宿主操作系统上(Type-2),负责抽象底层硬件,并将物理资源动态地分配给各个虚拟机。 关键特性: - 资源池化:将离散的物理资源整合成一个统一的资源池。 - 隔离性:虚拟机之间在故障、性能和安全上相互隔离。 - 封装性:整个虚拟机(硬件配置、操作系统、应用)被封装为一组文件,便于迁移、备份和克隆。 - 硬件独立性:虚拟机与底层物理硬件解耦,可以自由地在不同硬件配置的服务器之间迁移。 主要优势: - 服务器整合:大幅提高资源利用率,减少物理服务器数量,降低TCO。 - 提高业务连续性:支持热迁移、快照、高可用等高级功能,减少停机时间。 - 加速部署:通过模板快速部署新服务器环境。 - 简化运维:集中管理平台统一管理大量虚拟机。 代表技术与产品:VMware vSphere/ESXi, Microsoft Hyper-V, Citrix Hypervisor, 开源KVM, Red Hat Virtualization。 ### 桌面虚拟化 核心定义:将用户的桌面环境(操作系统、应用程序、用户数据)与物理终端设备(如PC、笔记本)分离,将其托管在数据中心的服务器上。用户通过各种终端设备(瘦客户端、PC、平板、手机)通过网络远程访问自己的个人桌面。 > 主要实现模式 VDI:为每个用户提供一个专用的虚拟机,桌面操作系统在数据中心的虚拟机中运行。 - 持久化VDI:用户拥有固定的虚拟机,可以个性化定制并保存设置。 - 非持久化VDI:用户每次登录都从一个标准模板获取一个“全新”的桌面,注销后更改不保存。常用于呼叫中心、实验室等场景。 RDSH / 基于会话的虚拟化:多个用户共享一台服务器操作系统(如Windows Server),每个用户建立一个独立的远程会话。比VDI更节省资源,但个性化程度和隔离性较低。 > 主要优势 集中化管理与安全:所有数据和桌面都集中在数据中心,易于统一管理、打补丁和进行安全策略部署,数据不会泄露到终端设备。 支持灵活办公:用户可从任何地点、任何设备安全地访问自己的桌面。 提高业务连续性:后端服务器故障可快速恢复用户桌面。 延长旧设备寿命:可使用性能较低的瘦客户端访问高性能的虚拟桌面。 代表技术与产品:VMware Horizon, Citrix Virtual Apps and Desktops, Microsoft Remote Desktop Services (RDS)。 ### 应用虚拟化 核心定义:将应用程序与其底层的操作系统解耦。应用程序及其所有依赖(如动态链接库、运行时环境、配置文件)被打包在一个独立的“容器”中,可以在未安装该应用的系统上直接运行,而不会与宿主操作系统上安装的其他应用发生冲突。 技术原理:应用程序在运行时,其对外部资源的请求(如文件读写、注册表访问)被虚拟化层拦截并重定向到沙箱环境中,从而与真实系统隔离。 主要优势: - 解决应用兼容性问题:例如,让一个只能在Windows XP上运行的老旧程序,无缝运行在Windows 11上。 - 并行运行冲突版本:在同一台电脑上运行同一个软件的不同版本(如Java 8和Java 11)。 - 简化应用部署与管理:管理员只需打包一次应用,即可分发给所有用户,无需考虑用户本地环境的差异。 代表技术与产品:Microsoft App-V, VMware ThinApp, Citrix App layering。 ### 网络虚拟化 核心定义:将物理网络资源(如交换机、路由器、防火墙、负载均衡器等)的硬件功能与软件解耦,通过软件方式创建、配置和管理独立的虚拟网络。这些虚拟网络与物理网络拓扑无关,可以跨越底层物理网络设施。 核心技术与概念: - 软件定义网络(SDN):核心思想是控制平面与数据平面分离。由一个集中的SDN控制器通过开放协议(如OpenFlow)来智能地管理网络流量,而网络设备只负责根据指令转发数据。 - 网络功能虚拟化(NFV):将传统上由专用硬件实现的网络功能(如防火墙、负载均衡器、路由器),用软件来实现,并运行在通用的x86服务器上。 主要优势: - 敏捷性与灵活性:在几分钟内通过软件创建复杂的虚拟网络,而无需手动配置物理设备。 - 多租户隔离:在共享的物理网络基础设施上,为不同部门或客户创建完全逻辑隔离的网络环境。 - 自动化与简化管理:通过策略实现网络配置的自动化。 - 降低成本:用通用服务器代替昂贵的专用网络硬件。 代表技术与产品:VMware NSX, Cisco ACI, 开源Open vSwitch, OpenStack Neutron。 ### 存储虚拟化 核心定义:将来自不同厂商、不同型号的多个物理存储设备(如SAN、NAS、DAS)抽象成一个统一的存储池。然后,从这个池中按逻辑方式创建虚拟磁盘(或卷)并分配给服务器或应用,隐藏了底层物理存储的复杂性。 实现层次: - 基于主机的虚拟化:在服务器操作系统上通过逻辑卷管理软件实现。 - 基于存储设备的虚拟化:由高端磁盘阵列自身实现,如异构存储虚拟化。 - 基于网络的虚拟化:最主流的方式,在存储区域网络(SAN)中增加一个虚拟化设备或软件来实现。 主要优势: - 统一管理与简化运维:管理员只需管理一个统一的存储池,而非多个独立的存储系统。 - 提高存储利用率:打破存储孤岛,实现资源的灵活分配和动态扩展,避免空间浪费。 - 提升灵活性与可用性:可在不中断业务的情况下进行数据迁移、存储设备维护和升级。 - 降低成本:通过整合和优化,提高存储投资回报率。 代表技术与产品:IBM SAN Volume Controller, Dell EMC VPLEX, 开源Ceph, VMware vSAN。
毛林
2025年10月27日 20:30
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码