襄阳职业技术学院信息技术中心 441100
一、前言
云计算作为一种全新的计算模式,通过对底层资源进行抽象、封装、整合以及调度管理,提供给终端用户一个可伸缩、可定制、可隔离的即插即用式的计算环境。平台为每个用户都提供独立的计算环境,不同用户创建的资源实例和应用数据都是私有的,从而解决了不同用户的应用程序运行环境冲突的问题。
虚拟化是云计算平台中最核心的技术,通过虚拟化技术将服务器、存储、网络等硬件设备资源池化,使整个 IT 环境比单独的物理硬件具有更高的可用性、安全性和扩展性,满足用户对于降低成本、简化管理、提高安全性和扩展性的需求,助力用户核心业务向云计算迁移、构建云数据中心。
二、云计算平台虚拟化技术方案
2.1虚拟化的定义
虚拟化(Virtualization)是资源的逻辑表示,实现虚拟资源与物理硬件解耦。虚拟化技术的实现形式是在系统中加入一个虚拟化层,将下层的资源抽象成另一形式的资源,提供给上层使用。从广义上来说,虚拟化就是一种采用软硬件分区、聚合、部分或完全模拟、分时复用等方法来管理计算资源、构造一个或者多个计算环境的技术。所构建的计算环境还需要有以下三个特点:
保真性:应用程序在虚拟机上执行,将表现为与在物理硬件上相同的执行行为。
高性能;在虚拟执行环境中,应用程序的绝大多数指令能够在 VMM((Virtual Machine Monitor)不干预的情况下,直接在物理硬件上执行。
安全性:物理硬件应该由 VMM 全权管理,被虚拟出来的执行环境中的程序(包括操作系统)不得直接访问硬件。
虚拟化使软件和硬件相互分离,把软件从主要安装硬件中分离出来。在操作系统与硬件之间,虚拟化软件通过空间上的分割、时间上的分时以及模拟,抽象出一个虚拟的硬件接口,向上层操作系统提供一个与它原先期待一致的服务器硬件环境,使得上层操作系统可以直接运行在虚拟环境上,可允许多个操作系统同时运行在单个物理服务器上。
服务器虚拟化的虚拟化软件层称为虚拟机监控器(Virtual Machine Monitor,VMM),常见虚拟机监控器分为两类:
宿主模式:在 VMM 之下还有一层宿主操作系统,并不直接运作在裸机上。由于Guest OS 对硬件的访问必须经过宿主操作系统,而带来了额外的性能开销,但可充分利用宿主操作系统提供的设备驱动和底层服务来进行内存管理、进程调度和资源管理等。
独立监控器模式:VMM 直接运作在裸机上,管理和实用底层硬件资源,Guest OS 对硬件资源的访问都要通过 VMM 来完成,作为底层硬件的直接操作者,VMM 拥有硬件的驱动程序。
2.2 CPU虚拟化
现代计算机体系结构一般至少有两个特权级(即用户态和核心态,X86 架构的 CPU有四个特权级 Ring0~Ring3)用来分隔系统软件和应用软件。那些只能在处理器的最高特权级(内核态)执行的指令称之为特权指令,一般可读写系统关键资源的指令(即敏感指令)绝大多数都是特权指令。如果执行特权指今时处理器的状态不在内核态,通常会引发一个异常而交由系统软件来外理这个非法访问(陷入)。经典的虚拟化方法就是使用“特权解除”和“陷入-模拟”的方式,即将Guest OS 运行在非特权级,而将 VMM 运行于最高特权级(完全控制系统资源)。解除了 Guest OS 的特权级后,Guest OS 的大部分指令仍可以在硬件上直接运行,只有执行到特权指令时,才会陷入到 VMM 模拟执行(陷入-模拟)。“陷入-模拟” 的本质是保证可能影响 VMM 正确运行的指令由VMM 模拟执行,大部分的非敏感指令还是照常运行。
2.3 内存虚拟化
操作系统对内存有两点认识,首先,内存都是从物理地址0开始的;其次,内存是连续的,或者至少在一些大的粒度(如 256M)上连续。但是在虚拟化环境下,物理内存被多个客户机操作系统同时使用,物理地址0只有一个,可以保证为每台虚拟机分配连续内存,却牺牲了使用效率。而 VMM 需要“欺骗”客户机操作系统,使客户机操作系统认为其对内存的两点要求都还满足。这种欺骗的过程,即内存虚拟化。
内存虚拟化的核心,即引入一层新的地址空间:客户机物理地址空间。由此,内存虚拟化前两层地址映射关系扩展为三层地址映射关系。
内存虚拟化要处理好以下两个问题:首先,给定一个虚拟机,维护客户机物理地址到宿主机物理地址之间的映射关系;其次,截获虚拟机对客户机物理地址的访问,并根据所记录的映射关系,将其转换至宿主机物理地址。
在全虚拟化技术中,VMM 负责了客户机物理地址到宿主机物理地址间的映射;半虚拟化技术中,KVM 将客户机物理地址到机器地址的翻译表(P2M 表)暴露给客户操作系统,从 VMM 中获得属于本虚拟机的内存空间信息;在硬件辅助虚拟化技术中,以Intel EPT 技术为例,通过硬件实现的扩展页表(Extended Page Table)技术,加速实现了客户机逻辑地址到宿主机物理地址的转换。
2.4 I/O设备虚拟化
在虚拟环境中,I/O 设备面临着有限的外设资源与多个客户操作系统对外设访问需求的矛盾。而 VMM 则需要截获客户机操作系统对外设的访问请求,以软件或硬件辅助的方式模拟真实物理设备的效果。
设备模拟的方式上,全虚拟化技术使用软件精确模拟与物理设备完全一样的接口,客户操作系统驱动无须修改就能驱动这个虚拟设备;半虎拟化技术通过修改客户操作系统,使前后端相互协作,提供更加高效的 1/O 虚拟化:而硬件辅助虚拟化技术直接将物理设备分配给某个客户操作系统,由客户操作系统直接访问I/O 设备不经过VMM。
VMM 通过 I/O 虚拟化来复用有限的外设资源,其通过截获Guest OS对I/O设备的访问请求,然后通过软件模拟真实的硬件。
2.5 存储虚拟化
存储虚拟化技术将底层存储设备进行抽象化统一管理,向服务器层屏蔽存储设备硬件的特殊性,而只保留其统一的逻辑特性,从而实现了存储系统的集中、统一、方便的管理。
存储虚拟化可以将用户与存储资源中大量的物理特性隔绝开来,对于用户来说,虚拟化的存储资源就像是一个巨大的“存储池”,用户不会看到具体的存储磁盘、磁带,也不必关心自己的数据经过哪一条路径通往哪一个具体的存储设备。
存储虚拟化还提供精简置备/厚置备、磁盘快照、存储冷热迁移、扩容及克隆等虚拟磁盘相关功能。
2.6 网络虚拟化
网络虚拟化其实不是为了云计算而诞生的,像常用的VPN、隧道技术等都属于网络虚拟化。
虚拟机会虚拟出包含自己MAC和IP的虚拟网卡,再利用虚拟交换机完成虚拟机的网络通信。 虚拟机通过vSwitch来连接网络,vSwitch通过主机上的物理网卡作为上行链路与外界网络进行连接。
vSwitch连接虚拟网卡和物理网卡,将虚拟机上的数据报文从物理网口转发出去。与物理交换机一样,vSwitch的作用就是用来转发数据。
每个vSwitch都有两种接口,上联口和下联口。上联口用来连接物理网卡,每个上联口绑定一个物理网卡。一个vSwitch至少要有一个上联口,多个上联口可以进行捆绑。上联口可以配置IP地址,方便进行管理操作。下联口用于连接虚拟机,每个下联口连接一台虚拟机。与物理交换机不同的是,vSwitch下联口不会自动学习MAC地址,都是静态绑定的。上联口的IP和虚拟机的IP没有必然的关系,可以配置为不同的网段。
三、结束语
虚拟化更多是从管理员视角提供资源管理和运维能力,由管理员进行业务发放,强调集中管控;云则是从租户视角来进行资源申请和服务部署,强调分权管理,互不干扰。虚拟化服务于内部运营,通过统筹资源,自动运维,来降低企业IT系统的运行成本;云则是服务于海量的、弹性的外部租户,通过资源共享、弹性伸缩、计量计费来实现IT资源的商业变现。
1 / 4