南京邮电大学2015届本科生毕业设计(论文)
第二章 IaaS及关键技术相关介绍
2.1 Iaas概述
IaaS(Infrastructure as a Service,基础架构即服务)通过互联网提供了数据中心、基础架构硬件和软件资源。IaaS可以提供服务器、操作系统、磁盘存储、数据库和/或信息资源。最高端IaaS的代表产品是亚马逊的AWS(Elastic Compute Cloud),不过IBM、Vmware和惠普以及其他一些传统IT厂商也提供这类的服务
[2]
。IaaS通常会按照\弹性云\的模式引入其他的使用和计价模式,也就是在任何
一个特定的时间,都只使用你需要的服务,并且只为之付费。
2.2 IaaS服务特征及优势
IaaS主要具有以下服务特征及优势: (1)更低的门槛
用户可以以最低的成本租用所需的计算机资源,而不需要进行大量的硬件和软件资源的采购。
(2)更好的扩展性
用户可以根据需要,动态增加或减少服务资源,不用考虑资源来源或者资源是否够用。
(3)管理方便
资源可以直接通过互联网管理,不需要到资源所在机房现场操作,降低管理成本。
(4)使用灵活
用户可获得完全独立的服务器,并拥有管理员权限,因此用户可以不受限制的进行任何操作。
(5)资费灵活
所需资源可以随时开始和停止,用户只需要为自己所使用的资源付费。
2.3 IaaS整体架构
虚拟化技术主要实现了对底层物理资源的抽象,使其成为一个个可以被灵活生成、调度、管理的基础资源单位[8]。而要将这些资源进行有效的整合,从而生成一个可以统一管理、灵活分配跳读、动态迁移、计费度量的基础服务设施资源
5
南京邮电大学2015届本科生毕业设计(论文)
池,并向用户提供自动化基础设施即服务,就需要IaaS管理平台。
如图图2.1,这是对资源管理平台的实现。
图2.1 IaaS交互模型
资源管理平台负责对物理资源和虚拟化资源进行统一的管理和调度,形成统一的资源池,实现IaaS服务的可管、可控,其核心是对每个基础资源单位的生命周期管理能力和对资源的管理调度能力。
在上面的模型中,假定了与云交互的四种人员(开发商、开发人员、操作员、用户),还定义了三层架构(表现、逻辑、资源)和两个正交领域(集成和管理)。
表现层,组件与用户交互,接受并显示用户的信息。这一层为非开发人员提供了一个Web 图形界面,为开发人员提供了 API,还存在负载均衡、控制台代理、安全、命名服务。
逻辑层,为云和控制功能提供情报。这层内包括部业务流程(工作流程复杂的任务),调度(确定作业对资源的映射),政策(配额等),镜像注册表(例如镜像的元数据),日志(事件和计量)。
资源层,提供实际的计算,网络和存储资源给客户。提供服务的资源可能是服务器,网络交换机,网络附加存储或其他。
集成功能,大多数服务提供商已经有一个客户的身份和计费系统。任何云架构将需要与这些系统集成。
管理功能,提供一个 API 来管理云并提供监控功能。
6
南京邮电大学2015届本科生毕业设计(论文)
2.4 IaaS关键技术介绍 2.4.1 虚拟化技术
虚拟化技术(Virtualization)已经对计算机发展产生了重要的影响,尤其是最近发展非常热门的云计算技术。其实,在计算机领域,虚拟化的思想早已经存在,最早 IBM 在二十世纪六十年代就提出并实现了在一台物理机上运行多个不同的操作系统实例,它颠覆了传统的一台计算机运行一个操作系统实例的计算模式。多个操作系统运行在一个物理机上,共享物理机资源(CPU 资源、内存资源、网络资源、存储资源等)[3]。随着计算机硬件资源的不断快速发展,现有的很多软件已不能充分的利用计算机硬件的资源存在很多的资源浪费现象。虚拟化技术的出现,提高了物理机或者服务器的硬件资源的利用率,充分地利用了硬件所提供的并行性和高性能,也使系统管理员免去了管理大量物理机的所花费的精力和时间。虚拟化技术的这些特点,使得虚拟化技术成为整个计算机软件技术中最受到重视的技术之一,它在云计算技术中起着至关重要的作用,是云计算技术的基础。
虚拟化就是通过脱耦合把应用软件和在其上的虚拟的操作系统与底层的物理设备分离开来。物理机系统的虚拟化究其根本就是通过某种手段把底层的物理设备和其上的软件运行环境分割的技术。然而虚拟化技术的出现,远远不止于虚拟出虚拟的操作系统,现在已经看到了,内存,网络,CPU,文件,存储等的虚拟化。从一种更高的抽象、一个更广泛的环境中来了解虚拟化技术,它实际上已经成为了一个非常大的概念,可以为用户企业带来很大的便利。
虚拟化技术主要实现了对底层物理资源的抽象,使其成为一个个可以被灵活生成、调度、管理的基础资源单位,如图2.2。而要将这些资源进行有效的整合,从而生成一个可以统一管理、灵活分配跳读、动态迁移、计费度量的基础服务设施资源池,并向用户提供自动化基础设施即服务,就需要IaaS管理平台。
资源管理平台负责对物理资源和虚拟化资源进行统一的管理和调度,形成统一的资源池,实现IaaS服务的可管、可控,其核心是对每个基础资源单位的生命周期管理能力和对资源的管理调度能力。
2.4.2 KVM与QEMU
KVM虚拟机是基于Linux内核虚拟化,自Linux2.6.2之后就集成在Linux的各个主要发行版本中。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。KVM的虚拟化需要硬件的支持(如Intel VT技术或者AMD V
7
南京邮电大学2015届本科生毕业设计(论文)
图2.2虚拟化架构
技术),是基于硬件的完全虚拟化。而Xen早期则是基于软件模拟的para-virtualization,新版本是基于硬件支持的完全虚拟化[3]。
QEMU是一种模拟处理器,现在运用最多的就是将KVM和QEMU结合起来。准确来说,KVM是Linux kernel的一个模块,可以用命令modprobe去加载KVM模块[13]。加载了该模块后,才能进一步通过工具创建虚拟机。但是仅有KVM模块是不够的。因为用户无法直接控制内核去做事情,还必须有一个运行在用户空间的工具才行。这个用户空间的工具,KVM开发者选择了已经成型的开源虚拟化软件QEMU。说起来QEMU也是一个虚拟化软件。它的特点是可虚拟不同的CPU。比如说在x86的CPU上可虚拟一个power的CPU,并可利用它编译出可运行在power上的CPU,并可利用它编译出可运行在power上的程序。KVM使用了QEMU的一部分,并稍加改造,就成了可控制KVM的用户空间工具了。所以你会看到,官方提供的KVM下载有两大部分(QEMU和KVM)三个文件(KVM模块、QEMU工具以及二者的合集)。也就是说,你可以只升级KVM模块,也可以只升级QEMU工具。这就是KVM和QEMU 的关系,如图2.3。
2.4.3 数据存储技术
为保证高可用、高可靠和经济性,云计算采用分布式存储的方式来存储数据,采用冗余存储的方式来保证存储数据的可靠性,即为同一份数据存储多个副本。另外,云计算系统需要同时满足大量用户的需求,并行地为大量用户提供服务。
8
南京邮电大学2015届本科生毕业设计(论文)
图2.3 KVM与QEMU关系
因此,云计算的数据存储技术必须具有高吞吐率和高传输率的特点。 云计算的数据存储技术主要有谷歌的非开源的 GFS(Google File System)和Hadoop 开发团队开发的 GFS 的开源实现 HDFS(Hadoop Distributed File System)。大部分 IT 厂商,包括 Yahoo、Intel 的“云”计划采用的都是 HDFS 的数据存储技术。未来的发展将集中在超大规模的数据存储、数据加密和安全性保证、以及继续提高 I/O速率等方面[4]。
2.4.4 资源管理技术
在多节点并发执行环境,分布式资源管理系统是保证系统状态正确性的关键技术。系统状态需要在多节点之间同步,关键节点出现故障时需要迁移服务,分布式资源管理技术通过锁机制协调多任务对于资源的使用,从而保证数据操作的一致性。典型的资源管理技术如Google公司的 Chubby文件系统。
2.4.5 能耗管理技术
随着云计算的快速发展,如今云服务的推出使许多中小企业用户转而向云计算服务提供商订购云计算服务。而这类云服务大多是安装在主机托管服务提供商所拥有的大型数据中心。那么,关于数据中心的能耗问题便成了数据中心管理者
9