虚拟化技术入门

虚拟化技术入门

云计算虚拟化技术
7课时 |
14882人已学 |
(19 评论)

加入学习
加入学习

虚拟化技术概述

重定向。

进程级虚拟化:应用层面抽象

系统虚拟化:平台层面的抽象(重定向)

full vietualization

para-virtualization

vmm硬件资源抽象:

控制硬件、有效隔离客户机、多客户机强隔离

 

[展开全文]
学叔氪 · 2019-01-06 · 虚拟化技术概述 0

CPU虚拟化技术(X86)

lX86架构存在虚拟化漏洞,x86 ISA 中有19条敏感指令不是特权指令,因此 x86 无法使用经典的虚拟化技术完全虚拟化。

ISA(Instruction Set Architecture)指令集架构。不同的 ISA使得虚拟机的每一条指令都需要在物理机上模拟执行,从而造成性能上的极大下降。

解决方案:

  • binary traslation 二进制翻译,软件扫描。(实现复杂、性能损失)50-60%,全虚拟化。
  • para-virtualization ,半虚拟化,修改Guest源码,只支持开源。
  • 硬件辅助虚拟化(VT-X技术)
[展开全文]
学叔氪 · 2019-01-06 · CPU虚拟化技术 0

内存虚拟化面临困难:

  • 操作系统内存地址从0开始
  • 操作系统要求内存地址是连续的

内存虚拟化解决方案:

hypervisor内存重映射

MMU内存虚拟化

  1. direct page table
  • guest and hypervisor共享页表
  • 需要修改内核,不支持windows
  • 广泛用于XEN linux32
  • 优点:切换效率高
  • 缺点:安全性必须通过审计保证
  • 效率85%左右。
  1. virtual TLB
  • 不需要修改内核
  • 相对简单
  • 只能处理访问过的虚拟地址
  1. shadow page table
  • (hypervisor里面有一张影子列表)
  • 不需要修改内核
  • 效率较低
  1. extended page table
  • 硬件层操作,无需软件接入。95-99%性能。
[展开全文]
学叔氪 · 2019-01-06 · 内存虚拟化技术 0

CPU虚拟化技术

Binary Translation (X86架构不指出虚拟化,动态替换指令)软件扫描,效率低

Para-Virtualization:修改Guest源码,效率高不支持Windows

硬件辅助虚拟化 :芯片解决,比较完美

[展开全文]
10ngui · 2018-10-06 · CPU虚拟化技术 0

虚拟化定义及分类:

  1. Full virtualization
  • Hardware-assisted virtualization
  • Binary Translation etc
       2.Para-virtualization
 
Virtual Machine Monitor(VMM)
   hypervisor
 
常见虚拟机监视器软件
Xen
KVM
Hyper-v
VMware ESX Server
VMware worksation
VirtualBox
[展开全文]
10ngui · 2018-10-06 · 虚拟化技术概述 0

虚拟化技术应用:弹性计算

虚拟化技术原理探析

开源虚拟化项目Xen&KVM

Xen安全漏洞热修复技术

 

Elastic Compute Service ECS 弹性计算服务

云服务的规格

CPU

内存

磁盘

 

[展开全文]

学习了,笔记在哪看?

[展开全文]
groots · 2018-04-25 · 内存虚拟化技术 0

云服务器和物理服务器的区别:

1.管理方式比物理服务器更简单高效、更稳定、更安全的应用

2.降低开发运维的难度和整体IT成本

3.使客户更专注于核心业务创新

4.可以自由选购云服务器规格、CPU、内存、操作系统

 

[展开全文]
felizlink_andy · 2017-09-30 · 虚拟化技术应用:弹性计算 0

Xen起源于2002年剑桥大学的开源项目,2003年发布Xen2.0支持PV,2006年发布Xen3.0支持PVHVM,后来被Citrix以5亿美元收购,目前Xen仍处于研发状态,最新的Xen 4.6支持PVH。

Xen的PV模式,需要修改Guest OS内核,将所有的I/O,中断等重新定义,形成与x86完全不同的架构。而Xen的HVM模式,借助CPU的硬件辅助(VT-x),将Hypervisor运行在Ring0,Guest Kernel运行在Ring1上。HVM无需修改Guest OS内核。

Xen还提供了另外一些技术:用于挂载PV驱动的Xen Bus,还有用于信息存储和交换的Xen Store。

Xen对于I/O设备的支持包括软件模拟、半虚拟化(PV)和设备直通。

Xen的商业化云平台包括:亚马逊AWS、阿里云等。

 

KVM通过在Linux内核中加入一个模块,把Linux内核扩展成为Hypervisor。KVM最早由以色列的一家公司于2007年创建并引入Linux内核。它依赖于VT技术,最初仅支持x86架构,后来被RedHat以1亿美元收购。

KVM基于Linux内核开发而来,依赖Intel VMX或AMD SVM技术,完成CPU和内存的虚拟化,借助what I/O架构实现I/O虚拟化。此外,KVM还通过Para-virtualized spinlocks解决自旋锁的性能损失问题,通过Para-virtualized Timing解决时间虚拟化的问题,通过Para-virtualized Huge page降低内存虚拟化开销。

KVM的商业化云平台包括:Google GCE、阿里云ECS 2.0。

 

Xen和KVM的共同点:借助硬件技术模拟CPU和内存,使用Qemu模拟非关键设备,通过PV增强虚拟化I/O的性能。

Xen和KVM的不同点:Xen是Type-1 Hypervisor而KVM是Type-2;Xen的软件复杂度(代码量)远大于KVM。

[展开全文]
charles.shih · 2017-05-30 · 开源虚拟化项目 0

I/O设备的工作原理

- 虚拟中断

- 虚拟寄存器访问

- 虚拟DMA

 

I/O虚拟化的实现方式

软件模拟

Hypervisor通过捕获访问,然后解码并进行模拟。这种方式的效率很低,并且仅出现在早期的虚拟化中。

半虚拟化(PV)

重新定义I/O架构,例如Xen引入split diver,通过共享内存交换数据,摒弃了寄存器和DMA的操作方式,因此效率很高,唯一的不足是软件复杂度较高。采用PV虚拟化的I/O解决方案大量出现于商业级虚拟化软件中,例如Xen和KVM。

设备直通(VT-d+SRIOV)

CPU厂商通过在北桥芯片中加入VT-d技术,解决中断及DMA的remapping(重映射)问题,联合I/O设备对SRIOV技术的支持,解决物理设备独占访问的问题,最终使得I/O虚拟化的大部分工作由硬件完成,提高了效率并且降低了软件复杂度。

[展开全文]
charles.shih · 2017-05-29 · IO虚拟化技术 0

内存虚拟化挑战:

1. 操作系统要求内存从0开始

2. 操作系统要求内存地址连续

低段内存连续

管理更高效

使用superTLBS加速访问效率

 

内存重映射技术

MMU(内存管理单元)虚拟化技术

- Direct page table 直接页表

- Virtual TLB 虚拟TLB

- Shadow page table 影子页表

- Extended page table 硬件扩展页表

 

Direct page table

通过修改内核使Guest和Hypervisor共享同一张页表,使用段保护的方式对地址空间分段,让Guest无法访问Hypervisor的空间。这种技术广泛应用于XenLinux32,因为无需切换页表而相当高效,但安全性必须通过审计保证,且不支持Windows。

Virtual TLB

当Guest访问虚拟地址时触发page fault,Hypervisor通过分析得知是Guest的正常请求,于是将其翻译为Hypervisor的内存地址。该实现方案简单,但因为它只能缓存访问过的虚拟地址,因此效率非常低。

Shadow page table

在Guest内部有一张页表的同时,在Hypervisor中为其建立一张对应的转换表,即影子页表。影子页表的建立过程相对复杂(Guest访问虚拟内存,引发缺页异常,Hypervisor捕获并查询Guest中的页表,最终将Guest到Hypervisor的地址转换关系放入影子页表中)。该实现方案无需修改内核,但效率较低(相对物理机而言,XenLinux32的转换效率为84%左右,而XenLinux64仅为65%左右)。

Extend page table

CPU厂商引入硬件支持,完成虚拟机内存到物理机内存的转换,整个过程无需Hypervisor介入。而Hypervisor唯一需要做的就是在创建虚拟机时,将地址的映射关系放入CPU的某个寄存器当中。该实现方案的效率极高(相对物理机而言,使用4K页的转换效率可达95%以上,而使用2M页可达98%以上)。

[展开全文]
charles.shih · 2017-05-29 · 内存虚拟化技术 0

CPU虚拟化:

1. 二进制翻译(早期x86技术不支持虚拟化)

扫描Guest OS指令,对敏感指令进行替换;实现复杂,效率低。

2. 半虚拟化(修改Guest OS中的敏感指令)

不需要扫描Guest OS指令,效率很高。

3. 硬件辅助虚拟化

CPU厂商从硬件上支持虚拟化指令。

 

[展开全文]
charles.shih · 2017-05-29 · CPU虚拟化技术 0

对资源的抽象:

- 进程级虚拟化——应用层面抽象

- 系统虚拟化——平台层面抽象

 

虚拟化技术分类:

1. 全虚拟化

a. 硬件辅助虚拟化

b. 基于二进制翻译等

2. 半虚拟化

需要Guest OS做出支持

 

Hypervisor(VMM)

- Type 1:硬件之上直接运行Hypervisor

- Type 2:硬件之上运行Host OS并在内核中包含一个Hypervisor的功能

 

设计标准:

Hypervisor:

1. 必须能够控制硬件资源(CPU、内存、IO等)

2. 必须有效隔离客户机(免受客户机的威胁)

3. 多客户机之间强隔离

虚拟机:

1. 等价性(硬件资源的等价性)

2. 高效性(emulator不够高效,不被称为虚拟机)

 

常见的Hypervisor:

1. Xen - 剑桥大学 2002

亚马逊、rackspace、阿里云

2. KVM - 以色列 2007

基于Linux内核

3. Hyper-v - 微软 2006

4. VMware ESX Server(高端服务器)

5. VMware workspace (工作站)

6. VirtualBox(PC上常用的虚拟化技术)

 

 

[展开全文]
charles.shih · 2017-05-29 · 虚拟化技术概述 0

VM monitor是虚拟话监控,是虚拟话必备组件

[展开全文]
浮夸点点 · 2017-05-25 · 虚拟化技术概述 1

授课教师

云生态下的创新人才工场
阿里云开发者社区全面升级
一站式体验,助力云上开发!
进入新社区

相关课程

查看更多 >