[云计算]HCIA-2-计算虚拟化
1.虚拟化前
- 资源独立
- 操作系统与硬件紧耦合
- APP:OS:Phy = 1:1:1
2.虚拟化后
- 资源池化
- 操作系统与底层硬件解耦合
- APP:OS:Phy = n:n:1
3.虚拟化的好处
- 提高资源利用率
- 降低能耗、绿色节能
- 提高IT运维效率
- 上层操作系统与硬件之间解耦合
4.计算虚拟化中的相关概念
- Host Machine:指主机硬件
- Host OS:指运行在主机上的操作系统
- APP:应用程序
- Hypervisor/VMM:虚拟机监视器 ( Virtual Machine Monitor,VMM )
- Guest OS:虚拟机的操作系统
5.VMM的功能
虚拟硬件资源
VMM利用底层硬件资源来构建一个包含虚拟CPU、内存和外设等的虚拟环境。在这个环境中,Guest OS认为自己运行在一台真是的计算机上,并唯一拥有这台“虚拟”机器上的所有资源。
虚拟环境的调度
VMM可以同时构建多个虚拟机环境,从而允许多个Guest OS并发执行,VMM利用一套策略来有效的调度资源。
虚拟化环境的管理接口
VMM提供一组完备的管理接口,来支持虚拟环境的创建、删除、暂停和迁移等功能。上层的管理程序通过调用VMM提供的管理接口,为用户提供管理界面。
6.虚拟化的特点
- 分区
- 隔离
- 封装
- 独立
7.计算虚拟化的分类
分类
- I型 - 裸金属型虚拟化:Hypervisor直接安装在物理机上,比如Xen、VMware的ESXI、6.3版本之前的FusionCompute
- II型 - 宿主型虚拟化:物理机上首先安装常规的操作系统,比如Reahat、Ubantu和Windows,Hypervisor作为OS上的一个程序模块运行,并对虚拟机进行管理。KVM、VirtualBox和VMware Workstation都属于这个类型。
区别
- I型性能比II型高
- II型能支持虚拟机嵌套
7.CPU虚拟化
Ring 等级
Ring 3:优先级最低,主要应用在应用程序
Ring1&2:优先级次中,主要应用在操作系统服务
Ring0:优先级最高,主要应用在操作系统内核,驱动程序
CPU指令
-
特权指令:指具有特殊权限的指令,比如清理内存,重置时钟等,该指令只在Ring 0级别才能执行
-
用户指令:指在各种级别都能执行的指令
当应用程序要执行特权指令时,由于其处于Ring 3等级,无权限执行该操作,于是进行用户态和内核态之间的切换,由内核态执行该指令,这种叫做系统调用。
- 特权 - 解除:将Guest OS的Ring 0 级别降为Ring1/2
- 陷入 - 模拟:将Guest OS下发的特权指令由Hypervisor捕获并进行模拟相关操作
CPU虚拟化漏洞:存在17条敏感指令(对系统有害但是属于非特权指令)
解决方式:
- 全虚拟化:Hypervisor接受Guest OS的所有指令,会加重Hypervisor的负担
- 半虚拟化:通过修改Guest OS的代码,使得Guest OS能够下发Hypervisor能够识别的敏感指令,减轻Hypervisor的负担;但是只能够针对开源的Guest OS进行修改
- 硬件辅助虚拟化:使虚拟机Guest OS处于Ring 0级别但属于非Root模式,并利用Root模式下的CPU来减轻Hypervisor的负担
8.内存虚拟化
识别
操作系统对内存的识别:
- 从0开始识别
- 需要连续的内存地址空间
通过内存映射解决虚拟机内存的问题
内存复用的三种技术
-
内存共享,写时复制:虚拟机共享同一物理内存空间,此时只对内存做只读操作。当需要写操作时,需另开辟一内存空间,并修改映射。
-
内存气泡:hypervisor通过vmtools创建气泡进程欺骗空闲虚拟机已占用进程大小的内存空间,给其他需要内存空间的虚拟机。当其他虚拟机空闲下来了气泡进程会缩小,也就相当于内存空间还回来了。从而提高内存利用率。
-
内存置换:通过LRU将长时间未访问的内存内容置换到存储(Windows叫虚拟内存,linux叫swap交换空间)中,并建立映射,当虚拟机访问时再置换到内存中。
9.IO虚拟化
- 模拟(完全模拟):完全使用软件来模拟真实硬件,模拟通常硬件,例如键盘鼠标,通过焦点捕获,哪个主机捕获焦点就被哪个主机使用,性能很差。
- 半虚拟化:对硬件驱动由前端(IO frontend)直接转到后端(IO backend)调用,通常仅适用于硬盘和网卡,性能高。
- IO-through:IO穿透,直接分配给虚拟机物理设备,例如直接分配一个硬盘或网卡给虚拟机,需要硬件具备IO透传技术,在Xen下由Dom0分配,但是访问使用直接使用,不经过Dom0,需要硬件支持。
10.云计算与虚拟化之间的区别
- 云计算是一种模式;虚拟化是一种技术
- 云计算不一定需要使用虚拟化
- 虚拟化在IaaS层起到了关键的作用
11.主流虚拟化技术
分类
- 开源:XEN、KVM
- 闭源:微软Hyper-V、VMware vSphere 、华为 FusionSphere
XEN简介
Xen Hypervisor
直接运行于硬件之上,是Xen客户操作系统与硬件资源之间的访问接口。通过将客户操作系统与硬件进行分类,Xen管理系统可以允许客户操作系统安全,独立的运行在相同硬件环境之上。
Domain 0
运行在Xen管理程序之上,具有直接访问硬件和管理其他客户操作系统的特权的客户操作系统。
Domain U
运行在Xen管理程序之上的普通客户操作系统或业务操作系统,不能直接访问硬件资源(如:内存,硬盘等),但可以独立并行的存在多个。
KVM简介
KVM实际是Linux内核提供的虚拟化架构,可以将内核直接充当Hypervisor使用。
KVM需要处理器本身支持虚拟化扩展,如inter-VT 和AMD-V技术。
KVM体系架构
-
libvirt:主要是用于管理KVM和Hypervisor
-
virt-manager:是kvm图形化管理工具
-
virt-instal:是kvm的CLI命令,主要是用于创建虚拟机
-
virt-viewer:显示虚拟机的图形控制台的最小工具
FusionCompute简介
FusionCompute是云操作系统软件,主要负责对虚拟资源、业务资源、用户资源的集中管理。它采用统一的接口,对这些虚拟资源进行集中调度和管理,从而降低业务的运行成本,保证系统的安全性和可靠性,协助运营商和企业构筑安全、绿色、节能的云数据中心能力。
FusionCompute架构
-
CNA(ComputingNode Agent):计算节点代理
-
VNA虚拟节点代理,部署在CNA上,实施计算、存储、网络的虚拟化的配置管理。
-
VRM(Virtual Resource Manager):虚拟资源管理器
VRM是FusionCompute系统的管理单元,一般运行在虚拟机上,能够对系统的虚拟资源、业务资源、用户资源进行集中管理,为管理员提供统一的维护操作接口。
FusionCompute组件的作用
CNA
-
提供虚拟计算功能。
-
管理计算节点上的虚拟机。
-
管理计算节点上的计算、存储、网络资源。
VRM
-
管理集群内的块存储资源。
-
管理集群内的网络资源(IP/VLAN),为虚拟机分配IP地址。
-
管理集群内虚拟机的生命周期以及虚拟机在计算节点上的分布和迁移。
-
管理集群内资源的动态调整。
-
通过对虚拟资源、用户数据的统一管理,对外提供弹性计算、存储、IP等服务。
-
通过提供统一的操作维护管理接口,操作维护人员通过WebUI远程访问FusionCompute对整个系统进行操作维护,包含资源管理、资源监控、资源报表等。