虚拟化简介

虚拟化概念

将任何一种形式的资源抽象成另一种形式的技术都是虚拟化;虚拟化是资源的逻辑表示,其不受物理限制的约束;虚拟化是云计算的基础;简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。
在计算机方面,虚拟化一般指通过对计算机物理资源的抽象,提供一个或多个操作环境,实现资源的模拟、隔离或共享等。

常见的虚拟化有:

内存虚拟化 Page File/计算资源虚拟化
磁盘虚拟化 RAID,Volume/存储资源虚拟化
网络虚拟化 VLAN/网络资源虚拟化
虚拟化创建了一层隔离层,把硬件和上层应用分离开来,允许在一个硬件资源上运行多个逻辑应用。

FusionSphere实现的是x86服务器的虚拟化,更确切地说,包含以下三个方面:

计算能力:CPU/Memory的虚拟化
存储:VIMS文件系统
网络:分布式虚拟交换机

虚拟化中的几个重要概念

①虚拟机:虚拟机VM(Virtual Machine)是指使用虚拟化技术,通过软件模拟完整的计算机硬件系统功能,构造出的完整虚拟计算机系统。

②Hypervisor:即虚拟机监视器VMM(Virtual Machine Monitor),是一种运行在基础物理服务器和操作系统之间的中间软件层,Hypervisor是一种在虚拟环境中的“元”操作系统。Hypervisor是所有虚拟化技术的核心

③Xen Hypervisor:是一个开源的采用半虚拟化技术的VMM,负责在各虚拟机之间进行CPU调度和内存分配;Xen Hypervisor无需特殊硬件支持,就能达到高性能的虚拟化。

④宿主操作系统:宿主操作系统(Host OS)指被虚拟的物理机的操作系统。

⑤客户操作系统:客户操作系统(Guest OS)指运行在虚拟机上的操作系统。

⑥Domain 0:指运行Host OS的虚拟机。Domain 0是其他虚拟主机的管理者和控制者,可以构建其他更多的Domain,并管理虚拟设备。它还能执行管理任务,比如虚拟机的休眠、唤醒和迁移其他虚拟机。

⑦Domain U:指除Domain 0之外的虚拟机。

虚拟化的特点

⑴分区:分区意味着虚拟化层为多个虚拟机划分服务器资源的能力;

⑵隔离:虚拟机是互相隔离的:

⑶封装:封装意味着将整个虚拟机(硬件配置、BIOS 配置、内存状态、磁盘状态、CPU 状态)储存在独立于物理硬件的一小组文件中;

⑷相对于硬件独立:虚拟机运行于虚拟化层之上,只能看到虚拟化层提供的虚拟硬件;

虚拟机的优势

虚拟机易于创建、易于管理,用户可以更方便地获取计算资源,减少整体拥有成本,包括管理、维护等

⑴降低运营成本;
⑵缩短上线周期;
⑶提高可靠性;
⑷提高资源利用率;
⑸动态资源调度(DRS);

虚拟机的三个特征:

⑴同质 (Equivalence);
⑵高效 (Efficiency);
⑶资源受控 (Resource control);

虚拟化架构

⑴寄居虚拟化:寄居虚拟化架构指在宿主操作系统之上安装和运行虚拟化程序,依赖于宿主操作系统对设备的支持和物理资源的管理;

⑵裸金属虚拟化:裸金属虚拟化架构指直接在硬件上面安装虚拟化软件,再在其上安装操作系统和应用,主要实现两个基本功能:首先是识别、捕获和响应虚拟机所发出的CPU特权指令或保护指令;其次,它负责处理虚拟机队列和调度,并将物理硬件的处理结果返回给相应的虚拟机(华为公司的统一虚拟化平台使用的是裸金属虚拟化架构)

⑶操作系统虚拟化:操作系统虚拟化架构在操作系统层面增加虚拟服务器功能。所有虚拟服务器必须运行同一操作系统(不过每个实例有各自的应用程序和用户账户)

⑷混合虚拟化:将一个内核级驱动器插入到宿主操作系统内核,这个驱动器作为虚拟硬件管理器来协调虚拟机和宿主操作系统之间的硬件访问,混合虚拟化需要底层硬件支持虚拟化扩展功能;

虚拟机的概念

虚拟机 (Virtual Machine) 是由虚拟化层提供的高效、独立的虚拟计算机系统,其皆拥有自己的虚拟硬件(CPU,内存,I/O 设备)。
【VMM的功能:虚拟资源、虚拟环境的调度、虚拟化环境的管理接口】

Hypervisor介绍

⑴裸机型Hypervisor Bare-metal(Type 1 Hypervisor):直接安装在硬件计算资源上,直接管理和调用硬件资源,不需要底层操作系统,主流的虚拟化产品都使用裸机型的Hypervisor,其中包括VMware ESX Server、Microsoft Hyper-V和Citrix XenServer。此种方案的性能处于主机虚拟化和操作系统虚拟化之间。

⑵主机型的Hypervisor Hosted(Type 2 Hypervisor):也有Hypervisor可以内嵌在硬件计算资源的固件套装中和主板BIOS位于同一级别;跑在操作系统上的应用软件;
托管型/主机型Hypervisor运行在基础操作系统上,构建出一整套虚拟硬件平台(CPU/Memory/Storage/Adapter),主机虚拟化中VM的应用程序调用硬件资源时需要经过:VM内核->Hypervisor->主机内核,性能是虚拟化技术中最差的。与使用这种方式的有Hitachi Virtage、VMware ESXi和Linux KVM——基于内核的虚拟机。

宿主型的Hypervisor是运行在操作系统内部的应用程序,其它操作系统和应用程序实例可以运行在VMware Server和Microsoft Virtual Server之上,以及其它很多基于终端的虚拟化平台,诸如VMware Workstation、Microsoft Virtual PC和Parallels Workstation,这些都是宿主型的Hypervisor。

根据Hypervisor的实现方式和所处的位置虚拟化可以分为:

⑴裸机1型虚拟化:Hypervisor 直接安装在物理机上,多个虚拟机在 Hypervisor 上运行。Hypervisor 实现方式一般是一个特殊定制的 Linux 系统。Xen 和 VMWare 的 ESXi 都属于这个类型。

⑵主机2型虚拟化:物理机上首先安装常规的操作系统,比如 Redhat、Ubuntu 和 Windows。Hypervisor 作为 OS 上的一个程序模块运行,并对管理虚拟机进行管理。KVM、VirtualBox 和 VMWare Workstation 都属于这个类型。

理论上讲:

裸机1型虚拟化一般对硬件虚拟化功能进行了特别优化,性能上比2型要高。

主机2型虚拟化因为基于普通的操作系统,会比较灵活,比如支持虚拟机嵌套。嵌套意味着可以在KVM虚拟机中再运行KVM。

KVM介绍

KVM 全称是 Kernel-Based Virtual Machine。也就是说KVM是嵌入在Linux操作系统标准内核中的一个虚拟化模块,是基于 Linux 内核实现的。
KVM有一个内核模块叫 kvm.ko,只用于管理虚拟 CPU 和内存。KVM是一个独特的管理程序,KVM使用标准Linux调度程序、内存管理器和其他服务,将虚拟技术建立在内核上而不是去替换内核。

KVM架构各有所长

KVM平台架构侧重性能:KVM之间以及与Host Kernel之间对共享区域的访问和映射无需Hypervisor进行授权,故整个访问路径较短使用Linux baremetal内核,无pvops性能损耗; KVM内核模块本身只能提供CPU和内存的虚拟化;

KVM的原理概述

Kvm负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其他设备。qemu模拟IO设备(网卡,磁盘等),kvm加上qemu之后就能实现真正意义上服务器虚拟化。 Qemu是一个模拟器,它向Guest OS模拟CPU和其他硬件,Guest OS认为自己和硬件直接打交道,其实是同Qemu模拟出来的硬件打交道,Qemu将这些指令转译给真正的硬件。由于所有的指令都要从Qemu里面过一手,因而性能较差。

Xen架构

xen作为最优秀的半虚拟化引擎,在基于硬件的虚拟化帮助下,也完全支持虚拟化MS Windows。被设计成一个独立的内核,只需要Linux执行 I/O,并且它有自己的调度程序、内存管理器、计时器和机器初始化程序。Domain 0(特权虚拟机)是其他虚拟机的管理者和控制者,可以构建其他更多Domain,并管理虚拟设备。
Xen平台架构侧重安全性:为保证安全性,各Domain之间对共享区域的访问和映射必须通过Hypervisor授权。

当前Xen已经对如上问题有了相关优化或改进方案

1)增加针对Persistent Grant机制:通过该机制规避Grant操作,单路网络性能即可提升30%-70%,其中TCP场景接近物理网卡线速;

2)引入Driver Domain技术:使用专有HVM domU运行网络后端驱动。UDP场景性能再提升80%;

3)采用PVH Dom0技术:使用硬件虚拟化技术处理特权指令和页表操作。其性能提升效果同上;

XEN介绍

Xen 的 VMM ( Xen Hyperviso ) 位于操作系统和硬件之间,负责为上层运行的操作系统内核提供虚拟化的硬件资源,负责管理和分配这些资源,并确保上层虚拟机(称为域 Domain)之间的相互隔离。Xen采用混合模式,因而设定了一个特权域用以辅助Xen管理其他的域,并提供虚拟的资源服务,该特权域称为Domain 0,而其余的域则称为Domain U。

Xen架构简介

Xen通过hypervisor软件访问物理层硬件,实现在一台单独的计算机上运行多个各自独立、彼此隔离的子操作系统。Hypervisor指挥硬件访问和协调来自各子系统的请求。

Xen环境中,主要是虚拟机控制器(VMM),也叫Hypervisor。Hypervisor层硬件与虚拟机之间,是最先被载入到硬件的第一层。Hypervisor载入就可以部署虚拟机。在Xen中的Domain(域)由Xen控制,可高效的利用CPU资源。Domain可分为Domain0,Domain1……

Domain0:属于有特权的Domian。在虚拟机中,Domain0具有很高的特权,负责一些专门的工作,并提供虚拟的资源服务。由于Hypervisor中不包含任何与硬件对话的驱动,也没有与管理对话的接口,这些驱动就有Domain0完成。

Domain1,Domain2……:属于无特权的Domain,管理员利用Xen工具通过Domain0来创建其他虚拟机Domain1,Domian2……Domain0是其他虚拟主机的管理者和控制者;
Domain内部包含了真是的驱动设备,可以直接访问物理硬件,负责与Xen提供的管理API交互,并通过用户模式下的管理工具来管理Xen的虚拟机环境。

一些概念

1.控制接口——控制接口仅能被Domian0使用,用于帮助Domian0控制管理其它的域。控制接口提供的具体功能包括Domain的创建、销毁、暂停、恢复及迁移,对其他Domain的CPU调度、内存分配及设备访问。

2.安全硬件接口——提供除虚拟CPU和MMU之外的所有硬件虚拟工作,包括DMA/IO、驱动程序、虚拟的PCI地址配置、虚拟硬件中断等。该接口只能具有原生设备驱动的Domain使用,而其他Domain则仅能通过设备通道提供虚拟硬件服务。

3.事件通道——事件通道是子域通信的事件提示机制。事件通道是用于Domian和Xen之间、Domain相互之间的一种异步事件通知机制,用于处理GuseOS中的虚拟中断、物理中断以及Domian之间的通信。

4.虚拟处理器——VCPU为每个Domain建立了VCPU结构,用以接收GuestOS中传递的指令,其中大部分的指令被VCPU直接提交到物理CPU执行,而对于特权指令则需要经过确认和提交Xen代为执行。

5.虚拟内存管理单元——虚拟MMU用于帮助GusetOS完成虚拟地址到机器地址的转换。Xen系统中增加了客户物理地址层,因而地址由原来的二层结构变为三层结构。Xen通过虚拟的MMU仍能使用硬件MMU来完成地址转换。

你可能感兴趣的:(笔记)