虚拟化考点

第一章

1.虚拟化是对资源的逻辑抽象,隔离,再分配,管理的一个过程;

2.广义的虚拟化:将不存在的事物或现象“虚拟”成为存在的事物或现象的方法;计算机科学中的虚拟化包括平台虚拟化、存储虚拟化、网络虚拟化、设备虚拟化。狭义的虚拟化:在计算机上模拟运行多个操作系统平台;

3.计算机的服务层次结构:硬件(Hardware)--操作系统(OS)--框架库(Framework)--应用程序(Application)--服务(Service)

4.虚拟化的做法:为了避免层次之间的紧密依赖性,将上一层对下一层的依赖撤销。也就是,将本层的依赖从底层中抽离出来。可以说“虚拟化就是一个不断抽离依赖的过程”

5.虚拟化的目的:对IT基础设施和资源管理方式的简化,以帮助企业减少IT资源的开销,整合资源,节约成本。

6.虚拟机的发展历程:

(1):第一阶段是大型机上的虚拟化,就是简单地、硬性地划分硬件资源;

(2):第二阶段就是大型机技术开始向UNIX系统或类UNIX系统迁移;

(3).第三个阶段就则是针对X86平台地虚拟化技术地出现;                              

(4).第四阶段就是近几年开始出现或者被人注意地虚拟化技术;

7.虚拟化分类的方法

(1).从虚拟化支持的层次划分:软件辅助的虚拟化和硬件支持的虚拟化

(2).从虚拟化平台的角度来划分:全虚拟化和半虚拟化

(3).从虚拟化实现的结构:Hypervisor型虚拟化、宿主虚拟化和混合模型虚拟化

(4).从虚拟化在云计算中被应用的领域来划分:服务器虚拟化、存储虚拟化、应用程序虚拟化、平台虚拟化、桌面虚拟化

7.全虚拟化为虚拟机的配置提供了最大程度的灵活性,不需要对客户机操作系统做任何修改,即可正常运行任何非虚拟机环境中已存在的基于X86平台的操作系统和软件

8.全虚拟化的优点是客户机操作系统不用修改直接就可以使用

9.主流的虚拟化产品:KVM、Xen、VMware、Hyper-v、VirtualBox

9.KVM的初始化过程:

(1).初始化CPU硬件

(2).打开CPU控制寄存器CR4中的虚拟化模式开关,并通过执行特定指令将宿主机操作系统置于虚拟化模式中的跟模式

(3).KVM模块创建特殊设备文件/dev/kvm,并等待来自用户空间的命令

(4).用户空间使用工具的创建、管理,以及关闭虚拟客户机。

第二章

1.系统虚拟化的核心思想是:用虚拟化技术将一台物理计算机系统虚拟化为一台或多台虚拟计算机系统

2.虚拟环境由三部分组成:硬件、VMM和虚拟机

3.通过虚拟化层的模拟,虚拟机中的操作系统认为自己独占一个操作系统

4.虚拟机所具有的三个典型特征:同质、高效和资源受控

5.特权指令:系统中和管理关键系统资源的指令。特权指令只能够在最高特权上正确执行,如果在非最高特权级上执行,特权指令就会引发异常,使得处理器陷入到最高特权级,交由系统软件来处理

6.敏感指令:虚拟化世界里操作特权资源的指令,包括修改虚拟机运行模式或者物理机的状态,读写敏感的寄存器或内存

所有的特权指令都是敏感指令,但并非所有的敏感指令都是特权指令

7.“陷入再模拟”:将VMM运行在系统的最高权限上,而将客户机操作系统运行在非最高特权级上。此时,当客户机操作系统因执行敏感指令而陷入到VMM时,VMM模拟执行引起异常的敏感指令。

8.处理器虚拟化实现技术--Intel VT-x技术

9.全虚拟化可以采用二进制代码动态翻译技术,半虚拟化可以通过修改客户机操作系统 来解决虚拟机执行特权指令的问题。被虚拟化平台托管的客户机操作系统需要修改其操作系统,将所有敏感指令替换为对底层虚拟化平台的超级调用。

10.在KVM环境中有三种模式:用户,内核,客户 模式

11.vCPU本质是一个结构体,vCPU可以划分为两个部分:VMCS结构、VMCS没有保存而由VMM使用和更新的内容(VMCS以外的部分)

12.vCPU:创建(创建vCPU描述符)

13.Intel  VT-x为处理器增加了一套名为虚拟机扩展的指令集  在非跟模式下包括19条不能被虚拟化的敏感指令

14.内存都是从物理地址0开始;内存地址都是连续的,或者说至少在一些大的粒度上连续

15.内存虚拟化面对的问题:物理内存要被多个客户机操作系统实验,但是物理内存只有一份,物理地址0也只有一个,无法满足所有客户及操作系统从0开始的需求(EPT/NPT技术);由于使用内存分区方式,把物理地址分给多个客户机操作系统使用,虽然可以保证虚拟机的内存访问是连续的,但是内存使用效率低。

16.在引入客户机物理地址空间后,可以通过两次地址转换来支持地址空间的虚拟机,客户机虚拟地址--客户机物理地址--宿主机物理地址

17.Intel EPT是Intel VT-x 提供的内存虚拟化支持技术

18.EPT页表相对于影子页表,其表现方式大大简化,主要地址转化工作都由硬件自动完成,而且客户机内部的缺页异常也不会导致VM-Exit,因此客户机性能更好,开销更小

19.I/O虚拟化实现技术--Intel VT-d

20.设备所有的DMA传输都会被DMA重映射硬件截获

21.跟条目:描述PCI总线,每条总线对应一个跟条目,由于PCI架构支持最多256条总线,故最多可以有256个跟条目;上下文条目 :描述某个具体的PCI设备(逻辑设备)

  1. KVM是x86架构且硬件支持虚拟化技术的Linux全核全虚拟化的解决法方案。 Hypervisor也叫VMM虚拟机监控器,任务:管理真实的物理硬件平台,为每一个虚拟客户机提供对应的虚拟硬件平台。

  2. Linux-RHEL6中,集成了最新的KVM虚拟机

  3. Xen支持半虚拟化。在裸机物理硬件上引导系统时,Xen虚拟机管理程序自动启动一个名为Domain0或管理域的著虚拟机,该虚拟机提供了对所有在该物理主机上运行的其他虚拟机

  4. 虚拟化架构模型基本分为三类,一类是一般的Hypervisor虚拟化架构模型,也叫Hypervisor型虚拟化;另一类是Linux作为Hypervisor的虚拟化架构模型,也叫宿主模型虚拟化;还有一类是混合模型的虚拟化架构模型,综合了以上两种虚拟化技术

  5. Hypervisor模型:虚拟机监控器在系统加电之后首先加载运行,传统的操作系统运行在其创建的虚拟机中。这类Hypervisor可以视为一个特别为虚拟机而优化裁剪的操作系统内核,Hypervisor运行在最底层,实现诸如系统的虚拟化,物理资源的管理等功能。此外,对虚拟机进行创建、调度和管理,与操作系统对进程的创建、调度和管理相似。这一类型的Hypervisor通常会提供一个具有一定特权的特殊虚拟机,由这个特殊虚拟机来运行提供用户日常操作和管理使用的操作系统环境

  6. KVM模块让Linux主机成为一个虚拟机监视器,并且在原有的Linux两种执行模式的(内核模式和用户模式)基础上新增加了客户模式,客户模式拥有自己的内核模式。

  7. KVM模块的职责就是打开并初始化系统硬件以支持虚拟机的运行

  8. QEMU本身并不是KVM的一部分,是一套由Febrice Bellard编写的模拟处理器的自由软件

  9. QEMU的运作模式:User Mode 模拟模式;System Mode模拟模式

  10. KVM模块仅仅是Linux内核的一个模块,管理和创建完整的KVM虚拟机

  11. KVM和QUMU相辅相成,QEMU通过KVM达到了硬件虚拟化的速度,而KVM则通过QEMU来模拟设备

  12. QEMU和KVM的关系:KVM之模拟CPU和内存,因此一个客户机操作系统可以在宿主机上面跑起来,但是你看不到它,无法和它沟通

  13. KVM需要硬件虚拟化技术的支持,在X86-64架构的处理器中,KVM必需的硬件虚拟化支持分别为:英特尔的虚拟化技术(Intel VT和AMD的AMD-V技术

  14. 处理器不仅需要在硬件上支持VT技术,还需要BIOS中将其功能打开 ,因为打开后KVM才能使用

  15. 虚拟化技术条件的支持:芯片组自身的支持、BIOS提供的支持、处理器自身的支持、操作系统的支持

  16. 创建一个用于安装KVM的硬盘 qemu-ing create -f qcow2 ubuntu.img 10G

  17. 启动KVM:qemu-system-x86_64 -m 1024 -smp 4 -boot order=cd -hda ubuntu.img -cdrom /root/kvm/ubuntu-12.04-desktop-and64.iso

  18. 硬件和BIOS对虚拟化的支持是KVM运行的先行条件,因此,在搭建KVM环境之前,需要对硬件环境进行查看、对BIOS进行配置,代开BIOS中对虚拟化的支持

    第四章

1.QEMU命令的基本格式:qemu-kvm [options] [disk_image],标准选项主要涉及主机类型、CPU模式、NUMA、软驱设备、光驱设备以及硬件设备等。可以使用命令“qemu-system-x86_64 -M?”获取所支持的所有类型

2.在QEMU中,主要给客户机提供的网络配置方案:基于网桥(Bridge)的虚拟网卡模式;基于NAT的虚拟网络模式;QEMU内置的用户模式网络;直接分配网络设备模式

3.如果没有配置任何的“net”参数,则默认使用“-net nic -net user”参数。即指示QEMU使用一个QEMU内置的用户模式网络,这种模式是默认的。

4.在网桥模式下,客户机和宿主机共享一个物理网络,客户机的IP是独立的,它和宿主机是在同一个网络里面。客户机可以访问外部网络,外部网络也可以访问这台客户机

5.使用NAT模式,就是让客户机借助NAT功能,通过宿主机所在的网络来访问互联网

6.KVM内核指的是一个提供硬件的抽象层,磁盘及文件系统控制的多任务、多功能的系统软件

第五章

1.KVM作为开源虚拟化软件,与其他虚拟化技术相比有独特的特征

(1).基于x86架构且硬件支持虚拟化技术(Intel VT-x、AMD-V)的Linux全虚拟化解决方案

(2).KVM包含一个为处理器提供底层虚拟化的可加载的核心模块kvm.ko(kvm-intel.ko或kvm-amd.ko)

(3).KVM需要一个经过修改的QEMU软件作为虚拟机的上层控制和应用界面

(4).KVM能在不改变Linux或Windows镜像的情况下同时运行多个虚拟机,即多个虚拟机使用同一镜像,并未每一个虚拟机配置个性化硬件环境(网卡、磁盘、图形适配器、处理器)

2.KVM API是一组ioctls指令的集合,主要功能是为了控制虚拟机的整个生命周期

3./dev/kvm作为Linux系统的一个标准字符设备,可以使用常见的系统调用如open、close、ioctl

4.作为VMM,KVM分为两部分,分别是运行于Kernel模式的KVM内核模块和运行于User模式的QEMU模块

5.KVM保证客户机正确执行的基本手段就是当客户机执行I/O指令或者其他特权指令时,引发处理器异常,从而陷入到跟操作模式,由KVM Driver模拟执行。可以说,虚拟化保证客户机正确执行的基本手段就是异常处理机制。和此相关的一个重要数据结构是虚拟机控制结构VMCS

6.VMCS数据域包含了六类信息:客户机状态域、宿主机状态域、VM-Execution控制域,VM-Entry控制域、VM-Exit控制域以及VM-Exit信息域

第六章

1.QEMU采用动态翻译技术,先将目标代码翻译成一系列等价的被称为“微操作”的指令,然后再对这些指令进行拷贝、修改、链接,最后产生一块本地代码。这些微操作排列复杂,从简单的寄存器转换模拟到整数/浮点数数学函数模拟 再到load/store操作模拟,其中load/store操作的模拟需要目标操作系统分页机制支持。

2.QEMU的精确模拟:中断控制器、总线驱动器、磁盘驱动、键盘、鼠标、显卡以及网卡的模拟

3.QEMU特征:全系统仿真模拟、用户态仿真模拟

4.QEMU的通用特征:

(1).用户态空间或者全系统模拟;(2)在合理的时间内动态翻译成本地代码;(3).可以在x86、x86_64和PowerPC 32/64等架构的宿主机运行;

(4).支持代码的自动修改; (5).支持精确的异常提示;(6).支持浮点数运算库

5.QEMU全系仿真特征:

(1).为了保证更大的可移植性,QEMU使用了一个全软件的MMU;(2).QEMU可以选择性地使用一个内核级地加速器,比如KVM;

(3).可以仿真不同地硬件设备

6.QEMU用户态仿真特征:

(1).通用Linux系统调用转换,包括大部分ioctls系统函数;(2)函数clone()仿真使用本地CPU克隆函数来调用Linux的线程调度

(3).通过宿主信号到目标信号的重映射从而保证信号的精确处理

7.对于QEMU来说,除了支持KVM之外,还支持全虚拟机和kqemu加速模块方式

(1).第一种模式是通过kqemu加速模块来实现内核态的加速

(2).第二种模式是在不借用任何底层加速模块的情况下直接在用户态下运行QEMU

(3).第三种模式利用Linux内核中集成的KVM加速模块

8.QEMU线程事件模型:当一个文件描述符准备完毕、一个定时器过期或者是一个BHs被调度时,事件循环就会调用一个回调函数来回应这些事件

9.QEMU主线程:函数main_loop_wait是主线程主要执行函数,当文件描述符、定时器或下半部触发相应事件后,将执行相应的回调函数

10.KVM开发小组提供libkvm模块,包装了针对设备文件/dev/kvm具体的ioctl操作,使libkvm模块成为了一个可重复使用的用户空间的控制模块,供其他程序开发包所使用,如:libvirt

11.Virtio是半虚拟化Hypervisor中位于设备上的抽象层

第七章

1.libvirt包含了一个守护进程和一个管理工具,能提供对虚拟化客户机的管理和对虚拟化网络和存储的管理

2.libvirt的主要目标是提供一种单一的方式,管理多种不同的虚拟化提供方式和Hypervisor

3.libvirt概念

(1).节点(node):通常是指一个物理机器,在这个物理机器上通常运行着多个虚拟客户机

(2).Hypervisor:通常指VMM,Hypervisor可以控制一个节点,让其能够运行多个虚拟机

(2)域(domain):指在Hypervisor上运行的一个虚拟机操作系统实例

4.libvirt主要功能:

(1).虚拟机管理 ;(2).远程节点的管理; (3).存储管理; (4).网络接口管理; (5).虚拟NAT和基于路由的网络

5.libvirt概括起来包含一个程序编程接口库(API)库,一个daemon(守护进程,libvirtd)和一个命令行工具(virsh)

6.libvirt分为三个层次结构:接口层(virsh,libvirt API),抽象驱动层(libvirt libary,libvirtd),具体驱动层(qemu,xen,LXC)

7.libvirtd是libvirt虚拟化管理工具的服务器端的守护程序,libvirtd负责执行其他管理工具发送给他的虚拟化管理操作指令

8.virsh是一个虚拟化管理工具,是一个用于管理虚拟化环境中的客户机和Hypervisor的命令行工具

9.libvirt API介绍:

(1).libvirt-domain:管理libvirt域的API,提供了一系列以virDomain开头的函数

(2).libvirt-event:管理事件的API,提供了一系列virEvent开头的函数

(3).libvirt-host:管理宿主机的API

(4).libvirt-network:管理网络的API,提供了一系列以virConnect和virNetwork开头的函数

(5).libvirt-nodedev:管理节点的API,提供了一系列virNode开头的函数

(6).libvirt-storage管理存储池和卷的API,提供了一系列以virStorage开头的函数

(7).libvirt-stream:管理数据流的API,提供了一系列以virStream开头的函数

(8).virterror:处理libvirt库的错误处理接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值