服务器虚拟化的技术和原理,虚拟化一、虚拟化技术基础原理

一、虚拟化

虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

虚拟化使用软件的方法重新定义划分IT资源,可以实现IT资源的动态分配、灵活调度、跨域共享,提高IT资源利用率,使IT资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。

在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。

在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件

二、cpu虚拟化

1、模拟emulation

软件方式实现,上层架构和底层可以不一样;需要模拟环0,1,2,3

2、虚拟virtulization

上层架构和底层要保持一致

完全虚拟化(full-virtulization):宿主机完全虚拟出一个完整的平台,guest不清楚自己运行在虚拟环境中;只需要模拟环0,假设各guest的内核运行在环1(实际上不可能运行在环1,因为环1没有特权指令)

BT:二进制翻译(软件)

HVM:硬件辅助的虚拟化(硬件),模拟出环-1,host的内核运行在环-1,guest内核运行在环0上,此时环0上没有特权指令,guest运行特权时指令cpu会被触发,这个过程不需要hyper进行监控,提高性能

半虚拟化(para-virtulization):各host知道自己运行在虚拟化环境中,当需要运行特权指令时,直接请求宿主机的内核

vm monitor=hypervisor 虚拟化监视器相当于内核

hypervisor运行在硬件平台上,对底层硬件(cpu和内存不包括io)使用分配过程虚拟成hyper call(hyper 调用),虚拟机的内核运行特权指令时,调用hyper call

二、内存虚拟化

进程视角看内存:线性地址空间 虚拟地址

内核视角看内存:物理地址空间

MMU将线性地址转化为物理地址

1、MMU:memory management unit,称为内存管理单元,或者是存储器管理单元,

MMU是硬件设备,它被保存在主存(main memory)的两级也表控制,并且是由协处理器CP15的寄存器1的M位来决定是enabled还是disabled。MMU的主要作用是负责从CPU内核发出的虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。MMU使得每个用户进程拥有自己的地址空间(对于WINCE5.0,每个进程是32MB;而对于WINCE6.0,每个进程的独占的虚拟空间是2GB),并通过内存访问权限的检查保护每个进程所用的内存不被其他进程破坏。

VA:virtual address 称为虚拟地址

PA:physical address称为物理地址

CPU通过地址来访问内存中的单元,如果CPU没有MMU,或者有MMU但没有启动,那么CPU内核在取指令或者访问内存时发出的地址(此时必须是物理地址,假如是虚拟地址,那么当前的动作无效)将直接传到CPU芯片的外部地址引脚上,直接被内存芯片(物理内存)接收,这时候的地址就是物理地址。如果CPU启用了MMU(一般是在bootloader中的eboot阶段的进入main()函数的时候启用),CPU内核发出的地址将被MMU截获,这时候从CPU到MMU的地址称为虚拟地址,而MMU将这个VA翻译成为PA发到CPU芯片的外部地址引脚上,也就是将VA映射到PA中。MMU将VA映射到PA是以页(page)为单位的,对于32位的CPU,通常一页为4k,物理内存中的一个物理页面称页为一个页框(page frame)。

虚拟地址空间划分成称为页(page)的单位,而相应的物理地址空间也被进行划分,单位是页框(frame).页和页框的大小必须相同。

2、CPU访问内存时的硬件操作顺序

1)CPU内核发出VA请求读数据,TLB(translation lookaside buffer)接收到该地址,那为什么是TLB先接收到该

你可能感兴趣的:(服务器虚拟化的技术和原理)