云计算 毕业设计.docx
《云计算 毕业设计.docx》由会员分享,可在线阅读,更多相关《云计算 毕业设计.docx(29页珍藏版)》请在冰豆网上搜索。
云计算毕业设计
毕业设计(论文)
课题名称:
云计算与openstack
***********************
系别:
电子信息系
专业:
计算机网络技术
班级:
12计网四班
***************************
摘要
随着互联网带宽的不断升级,云计算在日常生活中的应用已经相当普及。
云计算(CloudComputing)从狭义上将指IT基础设施的交付和使用模式,及通过网络以按需、易扩展的方式获得所取资源。
广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展获得所需服务。
提供资源的网络成为“云”,其计算能力通常是由分布式大规模集群和服务器虚拟化软件搭建决定的。
“云”中的资源在用户端看来是可以无限扩展的,并可以随时获取、按需使用、随时扩展、按使用付费的。
云计算是一种“云-管-端”的计算模型。
云计算分布式计算和虚拟资源管理等技术,通过网络将分散的资源(包括计算与存储服务器、应用运行平台、软件等)集中起来形成共享的资源池,并以动态按需可度量的方法向用户提供服务。
用户可以使用各种形式的终端(如PC、平台电脑、智能手机甚至只能电视等)通过互联网这个载体获取计算资源服务。
【关键词】云计算IaaS平台openstack
一、绪论
1.1云计算概述
狭义云计算是指计算机基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源(硬件、平台、软件)。
提供资源的网络被称为“云”。
“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
广义云计算是指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的服务。
这种服务可以是计算机和软件、互联网相关的,也可以是其他的服务。
云计算是并行计算(Parallel Computing)、分布式计算(Distributed Computing)和网格计算(Grid Computing)的发展,或者说是这些计算机科学概念的商业实现。
云计算是虚拟化(Virtualization)、效用计算(Utility Computing)、IaaS(基础设施即服务)、PaaS(平台即服务)、SaaS(软件即服务)等概念混合演进并跃升的结果。
1.2云计算的特点和优势
(1)超大规模“云”具有相当的规模,Google云计算已经拥有100多万台服务器,Amazon、IBM、微软、Yahoo等的“云”均拥有几十万台服务器。
企业私有云一般拥有数百上千台服务器。
“云”能赋予用户前所未有的计算能力。
(2)虚拟化云计算支持用户在任意位置、使用各种终端获取应用服务。
所请求的资源来自“云”,而不是固定的有形的实体。
应用在“云”中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置。
只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需要的一切,甚至包括超级计算这样的任务。
(3)高可靠性“云”使用了数据多副本容错、计算节点同构可互换等措施来保障服务的高可靠性,使用云计算比使用本地计算机可靠。
(4)通用性云计算不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个“云”可以同时支撑不同的应用运行。
(5)高可扩展性“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。
(6)按需服务“云”是一个庞大的资源池,你按需购买;云可以像自来水,电,煤气那样计费。
(7)极其廉价。
由于“云”的特殊容错措施可以采用极其廉价的节点来构成云,“云”的自动化集中式管理使大量企业无需负担日益高昂的数据中心管理成本,“云”的通用性使资源的利用率较之传统系统大幅提升,因此用户可以充分享受“云”的低成本优势,经常只要花费几百美元、几天时间就能完成以前需要数万美元、数月时间才能完成的任务。
云计算可以彻底改变人们未来的生活,但同时也要重视环境问题,这样才能真正为人类进步做贡献,而不是简单的技术提升。
(8)潜在的危险性。
云计算服务除了提供计算服务外,还必然提供了存储服务。
但是云计算服务当前垄断在私人机构(企业)手中,而他们仅仅能够提供商业信用。
对于政府机构、商业机构(特别象银行这样持有敏感数据的商业机构)对于选择云计算服务应保持足够的警惕。
一旦商业用户大规模使用私人机构提供的云计算服务,无论其技术优势有多强,都不可避免地让这些私人机构以“数据(信息)”的重要性挟制整个社会。
对于信息社会而言,“信息”是至关重要的。
另一方面,云计算中的数据对于数据所有者以外的其他用户云计算用户是保密的,但是对于提供云计算的商业机构而言确实毫无秘密可言。
所有这些潜在的危险,是商业机构和政府机构选择云计算服务、特别是国外机构提供的云计算服务时,不得不考虑的一个重要的前提。
二、云计算核心架构
IaaS的虚拟化技术、PaaS的分布式技术以及SaaS的在线软件技术是构建云计算核心架构的关键技术,是开展云计算服务的技术基础,其安全重要性不言而喻。
本节将在对IaaS、PaaS、SaaS关键技术进行分析的基础上,提出安全防护措施及相关安全策略要求,以提高云计算底层架构的安全性。
2.1IaaS核心架构安全
虚拟化技术是开展IaaS云服务的基础。
它把数据中心包括服务器、存储、网络在内的IT硬件资源抽象化成逻辑的虚拟资源池后,通过网络传递给客户,从而实现资源的统计复用。
虚拟化技术是将底层物理设备与上层操作系统、软件分离的一种去耦合技术,它通过软件或固件管理程序(Hypervisor)构建虚拟层并对其进行管理,把物理资源映射成逻辑的虚拟资源,对逻辑资源的使用与物理资源差别很小甚至没有区别。
虚拟化的目标是实现IT资源利用效率和灵活性的最大化。
虚拟化技术具有悠久的历史,20世纪60年代为提高硬件利用率对大型机硬件进行分区就是最早的虚拟化原型。
经过多年的发展,业界已经形成多种虚拟化技术,包括服务器虚拟化、网络虚拟化、存储虚拟化、应用虚拟化等,与之相关的虚拟化运营管理技术也被广泛研究。
虚拟化能有效整合数据中心服务器,提升资源的利用率,简化数据中心结构,减少运营成本,并能提高关键应用的可靠性。
这些优点,使得虚拟化逐渐成为企业数据中心IT基础架构的关键部分。
2.2IaaS关键技术
(1)服务器虚拟化
服务器虚拟化也称系统虚拟化,它把一台物理计算机虚拟化成一台或多台虚拟计算机,各虚拟机间通过被称为虚拟机监控器(VirtualMachineMonitor,VMM)的虚拟化层共享CPU、网络、内存、硬盘等物理资源,每台虚拟机都有独立的运行环境,如图4-1所示。
虚拟机可以看成是对物理机的一种高效隔离复制,要求同质、高效和资源受控。
同质说明虚拟机的运行环境与物理机本质上是相同的;高效指虚拟机中运行的软件需要有接近在物理机上运行的性能;资源受控指VMM对系统资源具有完全的控制能力和管理权限。
按VMM提供的虚拟平台类型可将VMM分为两类:
完全虚拟化(FullVirtualization),它虚拟的是现实存在的平台,现有操作系统无须进行任何修改即可在其上运行,完全虚拟化技术又分为软件辅助和硬件辅助两类;类虚拟化(Para-Virtualization),它虚拟的平台是VMM重新定义的,需要对客户机操作系统进行修改以适应虚拟环境。
按VMM的实现结构还可将VMM分为以下三类:
Hypervisor模型,该模型下VMM直接构建在硬件层上,负责物理资源的管理以及虚拟机的提供;宿主模型,VMM是宿主操作系统内独立的内核模块,通过调用宿主机操作系统的服务来获得资源,VMM创建的虚拟机通常作为宿主机操作系统的一个进程参与调度;混合模型,是上述两种模式的结合体,由VMM和特权操作系统共同管理物理资源,实现虚拟化。
对服务器的虚拟化主要包括CPU虚拟化、内存虚拟化和I/O虚拟化三部分,部分虚拟化产品还提供中断虚拟化和时钟虚拟化。
最初的系统虚拟化主要通过软件方式实现。
CPU虚拟化是服务器虚拟化最核心的部分,通常通过指令模拟和异常陷入实现。
内存虚拟化通过引入客户机物理地址空间实现多客户机对物理内存的共享,常用的内存虚拟化技术有影子页表。
I/O虚拟化通常只模拟目标设备的软件接口而不关心具体硬件实现,可采用全虚拟化、半虚拟化和软件模拟等几种方式。
为弥补计算机硬件体系架构在虚拟化方面的缺陷,如因敏感指令导致的虚拟化漏洞,解决软件实现虚拟化存在的性能问题,Intel、AMD等芯片厂商纷纷提出了各自的虚拟化技术,在CPU、芯片组、I/O设备等硬件中增加对虚拟化的支持。
Intel在x86体系架构上提供了其虚拟化硬件支持技术VT,包括CPU处理VT技术(VT-x)、芯片组VT技术(VT-d)和网络VT技术(VT-c)。
AMD则提出了AMD-V(Virtualization)技术。
硬件虚拟化技术的出现,极大提高了系统虚拟化技术的性能和效率。
(2)存储虚拟化
存储系统可分为直接依附存储系统(DirectAttachedStorage,DAS)、附网存储系统(Network-attachedStorage,NAS)和存储区域网络(StorageAreaNetwork,SAN)三类。
DAS是服务器的一部分,由服务器控制输入/输出,目前大多数存储系统都属于这类。
NAS将数据处理与存储分离开来,存储设备独立于主机安装在网络中,数据处理由专门的数据服务器完成。
用户可以通过NFS或CIFS数据传输协议在NAS上存取文件、共享数据。
SAN向用户提供块数据级的服务,是SCSI技术与网络技术相结合的产物,它采用高速光纤连接服务器和存储系统,将数据的存储和处理分离开来,采用集中方式对存储设备和数据进行管理。
随着时间的积累,数据中心通常会配备多种类型的存储设备和存储系统,这一方面加重了存储管理的复杂度,另一方面也使得存储资源的利用率极低。
于是存储虚拟化技术应运而生,它通过在物理存储系统和服务器之间增加一个虚拟层,使物理存储虚拟化成逻辑存储,使用者只访问逻辑存储,从而实现对分散的、不同品牌、不同级别的存储系统的整合,简化对存储的管理,如图2-2所示。
通过整合不同的存储系统,虚拟存储具有如下优点:
1)能有效提高存储容量的利用率;2)能根据性能差别对存储资源进行区分和利用;3)向用户屏蔽了存储设备的物理差异;4)实现了数据在网络上共享的一致性;5)简化了管理,降低了使用成本。
图2-2虚拟化存储
目前,业界尚未形成统一的存储虚拟化标准,各存储厂商一般都根据自己所掌握的核心技术来提供虚拟存储解决方案。
从系统的观点看,有三种实现虚拟存储的方法,分别是主机级虚拟存储、设备级虚拟存储和网络级虚拟存储。
主机级虚拟存储主要通过软件实现,不需要额外的硬件支持。
它把外部设备转化成连续的逻辑存储区间,用户可通过虚拟管理软件对它们进行管理,以逻辑卷的形式进行使用。
设备级虚拟存储包含两方面内容:
对存储设备物理特性的仿真,以及对虚拟存储设备的实现。
仿真技术包含磁盘仿真技术和磁带仿真技术,磁盘仿真利用磁带设备来仿真实现磁盘设备,磁带仿真则相反,是利用磁盘存储空间仿真实现磁带设备。
虚拟存储设备的实现,是指将磁盘驱动器、RAID、SAN设备等组合成新的存储设备。
设备级虚拟存储技术将虚拟化管理软件嵌入在硬件实现,可以提高虚拟化处理和虚拟设备I/O的效率,性能和可靠性较高,管理方便,但成本也高。
网络级虚拟存储是基于网络实现的,通过在主机、交换机或路由器上执行虚拟化模块,将网络中的存储资源集中起来进行管理。
它有三种实现方式:
1)基于互联设备的虚拟化,虚拟化模块嵌入到每个网络的每个存储设备中;2)基于交换机的虚拟化,将虚拟化模块嵌入到交换机固件或者运行在与交换机相连的服务器上,对与交换机相连的存储设备进行管理;3)基于路由器的虚拟化,虚拟化模块被嵌入到路由器固件上。
网络存储是对逻辑存储的最佳实现。
上述三种虚拟存储技术可以单独使用,也可以在同一存储系统中配合使用。
(3)网络虚拟化
狭义的网络虚拟化概念就是指传统虚拟专用网络,通过VPN或者VLAN的方式在公共网络上建立虚拟专用网。
近年来随着虚拟化技术的不断发展成熟,网络虚拟化的概念也在不断外延。
网络虚拟化与计算虚拟化是不可分割的,计算虚拟化的发展及成熟给IT行业带来了革命性的变化,网络虚拟化是计算虚拟化发展的必然结果,而计算虚拟化则是促进网络虚拟化发展的主要因素。
计算虚拟化“多对一”的特征对网络提出了虚拟化的要求,传统网络逐步向虚拟交换机、虚拟网卡、动态感知技术以及大二层网络的方向发展。
为了满足虚拟服务器的通信需求,网络也需要延伸到服务器内部,由此产生了虚拟交换机,虚拟交换机技术是实现网络虚拟化的主要技术之一。
如图2-3所示,虚拟交换机是虚拟化平台与物理网卡之间创建的一个中间层,也就是说一台物理服务器上的各台虚拟服务器通过虚拟交换机可直接进行通信,这部分流量并不会出现在物理交换机上,而是在物理服务器内部就被消化掉了。
因此,通过虚拟交换机提供的交换能力,将虚拟服务器与物理网络无缝连接起来,满足业务部署的需要,可解决服务器虚拟化之后的虚拟交换的基本需求。
然而,由于在服务器内部新增了虚拟网络设备,这也给数据中心管理员的运维方式带来了一定的影响:
一方面,服务器管理员需要参与网络的管理,而网络管理员也不得不参与服务器内部的管理;另一方面,由于在服务器内部新增了虚拟交换机,这也给服务器带来了额外的性能开销。
同时,由于虚拟化之后热迁移技术的支持,如何保证虚拟机的网络属性也能够迅速迁移,适应虚拟机的迁移需求,也成为亟待解决的问题。
图2-3网络虚拟化
2.3IaaS核心架构安全防护
从功能角度看,IaaS系统的逻辑架构如图2-4所示,包含业务管理平台、虚拟网络系统、虚拟存储系统、虚拟处理系统,以及最上层的客户虚拟机。
图2-4IaaS系统逻辑架构
其中虚拟网络系统是通过在物理网络上运行虚拟化将物理网络虚拟成多个逻辑独立的网络,如虚拟交换机等。
主要涉及的物理设备有服务器、交换机、路由器、网卡等部件。
虚拟存储系统是通过在主机和物理存储系统上运行虚拟化软件将物理存储虚拟成满足上层需要的特定存储服务。
主要涉及的物理设备有存储交换机、磁盘阵列等部件。
虚拟处理系统是通过在物理主机上运行虚拟机平台软件将异构的物理主机虚拟成满足上层需要的虚拟主机。
主要涉及的物理设备有主机服务器。
虚拟处理系统可以使用本地硬盘、SAN、iSCSI等作为存储,也可以使用虚拟存储系统作为存储。
客户虚拟机是虚拟处理系统将物理主机进行虚拟产生的虚拟机,是客户操作系统安装的位置。
业务管理平台负责向用户提供业务受理、业务开通、业务监视、业务保障等能力。
业务平台通过与客户、计费系统、虚拟化平台的交互实现IaaS业务的端到端运营和管理。
在虚拟化安全方面,应充分利用虚拟化平台提供的安全功能,进行合理配置,防止客户虚拟机恶意访问虚拟平台或其他客户的虚拟机资源。
(1)服务器虚拟化安全
虚拟机管理器VMM是用来运行虚拟机VM的内核,代替传统操作系统管理着底层物理硬件,是服务器虚拟化的核心环节。
其安全性直接关系到上层的虚拟机安全,因此VMM自身必须提供足够的安全机制,防止客户机利用溢出漏洞取得高级别的运行等级,从而获得对物理资源的访问控制,给其他客户带来极大的安全隐患。
在具体的安全防护及安全策略配置上,应满足如下要求。
●虚拟机管理器应启用内存安全强化策略,使虚拟化内核、用户模式应用程序及可执行组件(如驱动程序和库)位于无法预测的随机内存地址中。
在将该功能与微处理器提供的不可执行的内存保护结合使用时,可以提供保护,使恶意代码很难通过内存漏洞来利用系统漏洞。
●虚拟机管理器应开启内核模块完整性检查功能,利用数字签名确保由虚拟化层加载的模块、驱动程序及应用程序的完整性和真实性。
●在安全管理上采取服务最小化原则:
虚拟机管理器接口应严格限定为管理虚拟机所需的API,并关闭无关的协议端口。
●规范虚拟机管理器补丁管理要求。
在进行补丁更新前,应对补丁与现有虚拟机管理器系统的兼容性进行测试,确认后与系统提供厂商配合进行相应的修复。
同时应对漏洞发展情况进行跟踪,形成详细的安全更新状态报表。
●对每台物理机之上的虚拟平台,严格控制对虚拟平台提供的HTTP、Telnet、SSH等管理接口的访问,关闭不需要的功能,禁用明文方式的Telnet接口。
●在用户认证安全方面,采用高强度口令,降低口令被盗用和破解的可能性。
另外,在服务器虚拟化高可用性方面,目前一些主流虚拟化软件提供商推出了成熟的虚拟化高可用性技术或方案,如高可用性HA(HighAvailability)、零宕机容错FT(FaultTolerance)、备份与恢复DT(DataRecovery)等方式快速恢复故障用户的虚拟机系统,提高用户系统的高可用性。
1)高可用性:
在宿主物理机发生故障时,受影响的虚拟机在其他宿主物理机上的备份自动重启,从而为虚拟机用户提供易于使用和经济高效的高可用性。
其具体原理是虚拟化平台实时监控系统内虚拟机的运行状态,若该虚拟机没有在指定时间内生成检测信号,就认为其发生了故障并自动重新启动该虚拟机。
对于启用该服务,要求虚拟机与其备份虚拟机必须不在一台宿主物理机上。
2)零宕机容错:
通过构建容错虚拟机的方式,在虚拟机发生数据、事务或连接丢失等故障时快速启用容错虚拟机。
容错可提供比HA更高级别的业务连续性。
其具体要求是虚拟机与其容错虚拟机必须不在同一台宿主物理机上,容错保护的虚拟机文件也必须存储在共享存储器上。
3)备份和恢复:
可以实现对虚拟机进行全面和增量的恢复,也能进行个别文件和目录的恢复。
在不中断虚拟机的使用或虚拟机提供的数据和服务的情况下,创建并管理虚拟机备份,并在这些备份过时后将其删除。
可以根据故障虚拟机的状态选定虚拟机的存储点,然后将该虚拟机重新写入目标主机或资源池。
在重写的过程中,DataRecovery仅改写有变动的数据,重写完后该虚拟机即可重新启动。
(2)网络虚拟化安全网络虚拟化安全主要通过在虚拟化网络内部加载安全策略,增强虚拟机之间以及虚拟机与外部网络之间通信的安全性,确保在共享的资源池中的信息应用仍能遵从企业级数据隐私及安全要求。
(3)存储虚拟化安全存储虚拟化通过在物理存储系统和服务器之间增加一个虚拟层,使物理存储虚拟化成逻辑存储,使用者只访问逻辑存储,从而把数据中心异构的存储环境整合起来,屏蔽底层硬件的物理差异,向上层应用提供统一的存取访问接口。
虚拟化的存储系统应具有高度的可靠性、可扩展性和高性能,能有效提高存储容量的利用率,简化存储管理,实现数据在网络上共享的一致性,满足用户对存储空间的动态需求。
三、Openstack云计算开源解决方案
就如同在实体的计算机上,操作系统可以用来控制实体计算机上的硬件机制,让应用程序和底层实体硬件隔离。
操作系统提供了一个可以跨硬件的共通执行环境,让应用程序不用受制于不同服务商、规格的硬件功能。
同样的逻辑,云操作系统作为云端应用程序和实体数据中心的中间层,让云端应用不用受制于实体数据中心内各种硬设备的局限,同样可以提供一个共通的云端执行环境。
OpenStack不是唯一一套可以实现这个构想的技术,已有不少成熟的商用软件,如VMware和微软的虚拟化平台,同样也能实现这样的目标。
但是,OpenStack不一样,它是一套免费开源的云操作系统(CloudOS)。
就像早在Linux出现之前,已有不少商用操作系统。
但是免费开源Linux却掀起了新的开放革命。
随着计算机硬件成本越来越低,Linux让计算机的进入门坎更低,甚至软件成本几乎可以忽略,也不用受限于特定软硬件厂商的绑定。
任何人只要买了一台实体计算机,就能用免费的Linux打造出一个低成本的桌面执行环境,甚至是应用系统的执行环境。
Linux提供了商用软件产品以外的另一个选择,打破了IT厂商垄断OS平台的局面。
同样道理,OpenStack对云端平台的价值,如同是Linux对个人计算机的价值一样。
OpenStack可以让企业打造出一套免费的云平台,来实现上云端的目标,不论是公有云、私有云,都可以使用OpenStack来建设。
3.1Openstack简介
OpenStack是一套使用Python程序语言撰写的软件,也是个开放原始码计划,以Apache许可证授权。
OpenStack内部包括运算模块、网通模块和储存模块,再搭配一个可集中管理上述三大类模块的仪表板模块,最后组合而成一套OpenStack共享服务,并且可以提供虚拟机器的方式,对外提供运算资源以便弹性扩充或调度。
换句话说,OpenStack也是一套可以用来打造IaaS服务的开源软件。
对应用程序而言,只要通过API就可以和OpenStack沟通,例如用API来调度虚拟机器的部署等,OpenStack再负责和不同厂商的硬件设备,或是软件系统沟通。
3.2OpenStack三大优势
OpenStack有三大优势。
首先,OpenStack可解决云服务被单一厂商绑定的问题。
惠普企业业务事业群总经理监范钦辉表示,假设企业选择使用某家服务供货商的云服务,厂商会提供管理接口让企业了解硬件资源的运作情形,还会提供API,让企业在云平台上,客置化更多的加值服务,像是负载平衡、监控工具等。
不过,若是有天,企业想使用其它厂商的云服务,势必就要重新建立各式各样的应用程序,因为不同厂商的API是无法共通的。
而若是服务供货商提供的云平台,都是基础OpenStack,企业就可以将应用程序无缝转移到其它厂商的平台上。
其次,对于想要打造云服务,而不想花费大量成本购买商业化解决方案的企业来说,OpenStack可帮助他们节省部署成本。
这是因为,OpenStack是个开源的软件,只要不违背软件授权的规范,每个人都可以从网站上公开取得。
像是CERN在选择使用OpenStack打造私有云之前,就曾评估过,若是使用公有云服务,虽然一开始的成本负担不多,但是,一旦需要增加网络资源时,所需的成本就会提升3~5倍之多。
第三个优势就是是开源社群的技术支持,在OpenStack网站上注册的开发人员近万人,遍布全球87个国家。
不只在网络上已有许多参考文件或是视频,可作为企业IT人员的学习范本,若是遇到无法解决的问题,也可求助几乎遍布全球的OpenStack用户社群。
目前OpenStack共有9个不同的项目套件,9个不同的项目套件分别提供虚拟化技术、网络、储存、镜像文件管理等功能,许多程序代码甚至是来自这些IT技术领域的领导厂商所贡献的,像是x86服务器、刀片服务器、路由器、交换器、储存设备、Linux、虚拟化技术这七大领域的市占率前3名领导业者都参与OpenStack的开发。
3.3Openstack平台架构
3.4Openstack核心组件
3.4.1Keytone
Keystone(OpenStackIdentityService)是OpenStack框架中,负责身份验证、服务规则和服务令牌的功能,它实现了OpenStack的IdentityAPI。
Keystone类似一个服务总线,或者说是整个Openstack框架的注册表,其他服务通过keystone来注册其服务的Endpoint(服务访问的URL),任何服务之间相互