服务器虚拟化技术介绍
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
牛津大学第一计算机学教授 Christopher Strachey的论 文《大型高速计算机中的时 间分配》
3
虚拟化发展历史
1965年 IBM System/360 Model 40 VM 1990年 1998年 VMWare公司诞生
大型机虚拟化
20世纪90年代后期小型机、微机的虚拟机
2006年以后 Intel、ADM逐步退出带有 硬件虚拟化技术的处理器 1997年 在Disco系统中虚拟 普通桌面操作系统
Ring 2
Ring 1 Ring 0
普通指令
User
普通指令
敏感
特权指令
Kernel
敏感
特权指令
无法使用传统的 特权解除和陷入
使用传统的特权 解除和陷入
9
X86系统虚拟化-修改VMM
代表产品: Qemu Virtual box VMware Workstation和早期的ESX
Guest OS
Emulation Scan-and-Patch Binary Translation
Ring 2
Ring 1 Guest OS Ring 0 Ring 3 Ring 2 Ring 1 VMM Ring 0
VMX root Operation (根虚拟化操作)
17
VMX模式切换
Guest OS1
VMCALL
Guest OS2
VMRESUME VMLUNCH
VMXON
VMRESUME VMLUNCH
不做修改
缺点: VMM 性能差、效率低
修改
硬件(CPU)
不做修改
10
X86系统虚拟化-修改Guest OS
代表产品: Xen和Hyper-V
修改内核中 Guest OS 的敏感指令 缺点: 应用范围不广 公布接口函数
修改
VMM
不做修改
硬件(CPU)
不做修改
11
X86系统虚拟化-修改硬件
代表产品: KVM和VMware ESXi
特权指令与敏感指令关系: 所有特权指令都是敏感指令; 但并不是所有敏感指令都是特权指令。 如果系统所有的敏感指令都是特权指令, 则可以虚拟化; 如果系统中敏感指令不全是特权指令的, 则不可以虚拟化;
8
Biblioteka Baidu
敏感指令分类
X86系统 存在虚拟 复杂指令集(CISC ) 化漏洞
Ring 3
非X86系统 精简指令集(RISC)
服务器虚拟化技术介绍
课程目标
学习完本课程,您应该能够:
了解X86和非X86系统的虚拟
化差别 了解硬件辅助虚拟机 熟悉KVM虚拟化方案 了解主流虚拟化方案的差异
目录
虚拟化介绍 硬件辅助虚拟化 KVM虚拟化方案 主流虚拟化方案比较
为什么需要虚拟化
设备昂贵,硬件资源无法充分利用
Linux内核空间
26
虚拟机创建、运行和退出流程
VMX Non-root Operation 虚拟机 VM exit VMX root Operation VM entry
虚拟机内存
1、内存从0开始
2、内存连续
物理内存
20
内存虚拟化-影子页表和EPT
虚拟内存空间
GVA
虚拟地址
客户机操作系统内的页表
客户机物理内存空间
GPA
客户机物理地址
影子页表 缺点: 实现复杂 内存开销大
硬件 EPT TLB
客户机物理地址与客户机 物理地址映射表 宿主机物理内存空间 宿主机物理地址
HPA
23
KVM虚拟化思想
进度调度 IO管理
内存管理
进 程
APP OS
进 程
APP OS
Hypervisor
KVM虚拟化
24
KVM内核模块组成
系统调用方式: open close ioctl
25
KVM用户模块
KVM内核模块运行在Linux内核中,而用户无法直 接操作内核。
QEMU
/dev/kvm
KVM模块
1980年 IBM System/370 VM/370 虚拟化技术真正成熟
4
虚拟化定义
系统虚拟化:将一台物理计算机系统虚拟化为一台或多台虚拟机计算机 系统,每个虚拟计算系统(简称虚拟机)都拥有自己的虚拟硬件(包括 CPU、内存、设备等),以便提供一个独立的虚拟机执行环境。
应用程序 应用程序 操作系统
VT-d
I/O 虚拟化
…….
网络 虚拟化
16
处理器虚拟化(VT-x)
非特权敏感指令无法陷入问题的解决思路: 引入VMX模式(Virtual Machine eXtension) Application Ring 3
VMX Non-root Operation (非根虚拟化操作) VM Exit VM Enter
应用程序 操作系统
操作系统 硬件
虚拟化层
硬件
传统架构
虚拟化架构
5
虚拟化层(VMM)介绍
运行于服务器硬件和虚拟机之间的中间软件层; 对资源有完全控制能力和管理权限,包括资源的分配、监控 和回收。
VM VM Hypervisor (VMM)
Hardware
欺下瞒上
6
传统虚拟化技术-特权解除和陷入
特权指令:操作和管理系统资源的指令。
1、赋予VMM超级特权 2、解除Guest OS运行特权指令权限 3、Guest OS运行特权指令时产生异常 4、VMM捕获异常,模拟执行并返回结果
APP
非最高特权级
运行普通指令
OS VMM
最高特权级
运行特权指令
7
能否虚拟化条件-敏感指令
敏感指令:操作特权资源的指令。如读取 敏感的寄存器或内存,访问所有I/O指令 等等。
Guest OS
不做修改
VMM
Intel VT技术 AMD-V技术
不做修改
主流虚拟化方式
硬件(CPU)
修改
12
主流的虚拟化产品
13
目录
虚拟化介绍 硬件辅助虚拟化 KVM虚拟化方案 主流虚拟化方案比较
虚拟化任务
15
Intel VT技术
VT
VT-x
处理器 虚拟化
EPT
内存 虚拟化
VMM
VMXOFF
18
虚拟机控制结构-VMCS
VM 1
VMX Non-root Operation
VM 2
VM 3 Ring 3 Ring 0
Ring 3 Ring 0
Ring 3
Ring 0
VMSC 1
VMSC 2
VMSC 3
VMX root Operation
Ring 0 VMM
19
内存虚拟化-内存要求
21
目录
虚拟化介绍 硬件辅助虚拟化 KVM虚拟化方案 主流虚拟化方案比较
22
KVM概述
KVM由以色列的Qumranet公司开发。 Qumranet公司于2008年9月被红帽收购,红帽放弃Xen。 KVM(Kernel-based Virtual Machine)是基于硬件的完全 虚拟化,需要硬件的支持。