版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、天云软件探究路线一OpenStack发展沿革二OpenStack基础技术三OpenStack架构详解四OpenStack项目分解五OpenStack部署方式六相关参考?发展沿革云网络速度安全性控制力技术积累 传统软件兼容性 隔离基本的要求 构建、部署类型OpenStack起源OpenStack是一个由美国国家航空航天局(NASA)和Rackspace合作研发,并发起的,以Apache许可证授权的自由软件和开放源代码项目。它是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算
2、管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。OpenStack历程SwiftGlanceNovaCinderKeystoneLINUXLinuxHeatORCHESTRATIONCeilometerMEASUREMENT SERVICEHorizonDASHBOARDTroveDATABASE2010.102011.22015.102015.42011.42011.9AUSTINBEXARCACTUSDIABLOKILOLIBERTYE-J EdtionOpenstack发展至今已满5年,从当初的“小项目”,现已经发展
3、成为Apache顶级项目之一。当初只有“NOVA”和“SWIFT”两个项目,在后续的发展中,逐渐把功能扩展,形成今天我们看到的每一个项目。探究路线一OpenStack发展沿革二OpenStack基础技术三OpenStack架构详解四OpenStack项目分解五OpenStack部署方式六相关参考虚拟化思想应用程序函数库操作系统硬件API抽象层硬件抽象层计算机系统层次结构每一层只需要考虑本层的设计以及相邻层间的交互接口,从而大大减低系统设计的复杂性,提高了软件的移植性。依据上层次的划分,在不同层次的虚拟化就可以带来不同的虚拟化概念。对于云计算而言,更关心硬件抽象层上的虚拟化。虚拟化层应用程序操作
4、系统硬件虚拟机1虚拟硬件抽象层应用程序操作系统虚拟机2虚拟硬件抽象层硬件抽象层系统虚拟化这样的硬件抽象层上的虚拟化又被称为系统虚拟化,每个虚拟出来的计算机系统(简称为虚拟机,也叫客户机)都拥有自己的虚拟硬件,如CPU、内存和设备等,并提供独立的虚拟机执行环境。通过虚拟机控制器(Virtual Machine Monitor,VMM,也可称为Hypervisor)的模拟。虚拟化是一个广义的术语,它既包括将一台物理设备虚拟成多台逻辑设备(一虚多),也包括将多台物理设备虚拟成一台逻辑设备使用(多虚一),目前业界主流的虚拟化包括服务器虚拟化、存储虚拟化与网络虚拟化。虚拟化技术完全虚拟化完全虚拟化:使用
5、hypervisor软件,在虚拟服务器和底层硬件之间建立一个抽象层。VMware和微软的VirtualPC是代表该方法的两个商用产品,而基于核心的虚拟机(KVM)是面向Linux系统的开源产品。hypervisor可以捕获CPU指令,为指令访问硬件控制器和外设充当中介。因而,完全虚拟化技术几乎能让任何一款操作系统不用改动就能安装到虚拟服务器上,而它们不知道自己运行在虚拟化环境下。主要缺点是,hypervisor给处理器带来开销。准虚拟化:准虚拟化:完全虚拟化是处理器密集型技术,因为它要求hypervisor管理各个虚拟服务器,并让它们彼此独立。减轻这种负担的一种方法就是,改动客户操作系统,让它
6、以为自己运行在虚拟环境下,能够与hypervisor协同工作。这种方法就叫准虚拟化(para-virtualization)。准虚拟化技术的优点是性能高。经过准虚拟化处理的服务器可与hypervisor协同工作,其响应能力几乎不亚于未经过虚拟化处理的服务器。系统虚拟化系统虚拟化:操作系统层的虚拟化而言,没有独立的hypervisor层。主机操作系统本身就负责在多个虚拟服务器之间分配硬件资源,并且让这些服务器彼此独立。一个明显的区别是,如果使用操作系统层虚拟化,所有虚拟服务器必须运行同一操作系统。基础技术虚拟化实现硬件虚拟化技术多用于小型机分区中,硬件资源被划分成若干个分区,每个分区享有独立的C
7、PU、内存,并安装独立的操作系统。硬件虚拟化技术与具体硬件服务器捆绑。虚拟化软件直接运行在裸硬件上充当主机操作系统,而由虚拟化软件管理的虚拟服务器运行客户端操作系统(guest OS)。虚拟化软件可以捕获CPU指令,为指令访问硬件控制器和外设充当中介。因而,完全虚拟化技术几乎能让任何一款操作系统不用改动就能安装到虚拟服务器上,而它们也并不知道自己运行在虚拟化环境下。探究路线一OpenStack发展沿革二OpenStack基础技术三OpenStack架构详解四OpenStack项目分解五OpenStack部署方式六相关参考11OpenStack Services OverviewHigher-l
8、evel services Orchestration Heat Orchestrates multiple composite cloud applications by using either the native HOT template format or the AWS CloudFormation template format, through both an OpenStack-native REST API and a CloudFormation-compatible Query API. Database service Trove Provides scalable
9、and reliable Cloud Database-as-a-Service functionality for both relational and non-relational database engines. Data processing service Sahara Provides capabilties to provision and scale Hadoop clusters in OpenStack by specifying parameters like Hadoop version, cluster topology and nodes hardware de
10、tails. Service Project Name Description Dashboard Horizon Provides a web-based self-service portal to interact with underlying OpenStack services, such as launching an instance, assigning IP addresses and configuring access controls. Compute Nova Manages the lifecycle of compute instances in an Open
11、Stack environ- ment. Responsibilities include spawning, scheduling and decommis- sioning of virtual machines on demand. Networking Neutron Enables Network-Connectivity-as-a-Service for other OpenStack services, such as OpenStack Compute. Provides an API for users to define networks and the attachmen
12、ts into them. Has a pluggable architecture that supports many popular networking vendors and technolo- gies. Storage Object Storage Swift Stores and retrieves arbitrary unstructured data objects via a RESTful, HTTP based API. It is highly fault tolerant with its data replication and scale-out archit
13、ecture. Its implementation is not like a file server with mountable directories. In this case, it writes objects and files to multiple drives, ensuring the data is replicated across a server cluster. Block Storage Cinder Provides persistent block storage to running instances. Its pluggable driver ar
14、chitecture facilitates the creation and management of block storage devices. Shared services Identity service Keystone Provides an authentication and authorization service for other OpenStack services. Provides a catalog of endpoints for all OpenStack services. Image service Glance Stores and retrie
15、ves virtual machine disk images. OpenStack Compute makes use of this during instance provisioning. Telemetry Ceilometer Monitors and meters the OpenStack cloud for billing, benchmarking, scalability, and statistical purposes. OpenStack Conceptual Architecture(kilo) VMsNovaGlanceNeutronIronicTroveHea
16、tSaharaSwiftCinderKeystoneCeilomrterHorizonOpenStack通用技术即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。Erlang中的实现有 RabbitMQ等。n消息总线(AMQP)nSQLAlchemy和数据库(Shane)nRESTful和WSGInEventletnOpenStack通用库OsloSQLAlchemy是Pyth
17、on编程语言下的一款开源软件。提供了SQL工具包及对象关系映射(ORM)工具,使用MIT许可证发行。SQLAlchemy“采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”。SQLAlchemy的理念是,SQL数据库的量级和性能重要于对象集合;而对象集合的抽象又重要于表和行。因此,SQLAlchmey采用了类似于Java里Hibernate的数据映射模型,而不是其他ORM框架采用的Active Record模型。不过,Elixir和declarative等可选插件可以让用户使用声明语法。REST(英文:Representational State Tran
18、sfer,简称REST)描述了一个架构样式的网络系统,在REST中,每一个对象都是通过URL来表示的,对象用户负责将状态信息打包进每一条消息内,以便对象的处理总是无状态的。WSGI是Web Server Gateway Interface的缩写。以层的角度来看,WSGI所在层的位置低于CGI。但与CGI不同的是WSGI具有很强的伸缩性且能运行于多线程或多进程的环境下,这是因为WSGI只是一份标准并没有定义如何去实现。实际上WSGI并非CGI,因为其位于web应用程序与web服务器之间,而web服务器可以是CGI,mod_python(现通常使用mod_wsgi代替),FastCGI或者是一个定
19、义了WSGI标准的web服务器就像python标准库提供的独立WSGI服务器称为wsgiref。Eventlet是一个用来处理和网络相关的python库函数,而且可以通过协程来实现并发,在eventlet里,把“协程”叫做greenthread(绿色线程)。所谓并发,就是开启了多个greenthread,并且对这些greenthread进行管理,以实现非阻塞式的I/O。顾名思义,Oslo库中包含了许多通用的可复用的代码和功能,此部分的内容也在不断增加,某一部分的代码在OpenStack发展中,需要重复的使用,这部分便可以申请在社区里“孵化”,直到审核通过时就可以加到这个通用库中。探究路线一Op
20、enStack发展沿革二OpenStack基础技术三OpenStack架构详解四OpenStack项目分解五OpenStack部署方式六相关参考15OpenStack项目结构OpenStack能帮我们建立自己的IaaS,提供类似AmazonWebService的服务给客户。为实现这一点,我们需要提供几个高级特性:允许应用拥有者注册云服务,查看运用和计费情况;允许Developers/DevOpsfolks创建和存储他们应用的自定义镜像;允许他们启动、监控和终止实例;允许CloudOperator配置和操作基础架构OpenStack Core Services提供云计算的网络虚拟化技术,为Ope
21、nStack其他服务提供网络连接服务。为用户提供接口,可以定义Network、Subnet、Router,配置DHCP、DNS、负载均衡、L3服务,网络支持GRE、VLAN。插件架构支持许多主流的网络厂家和技术。 自Folsom版本集成到项目中。一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作,配置CPU、内存等信息规格。 自Austin版本集成到项目中。一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。可为Glance提供镜像存储,
22、为Cinder提供卷备份服务。 自Austin版本集成到项目中Cinder接口提供了一些标准功能,允许创建和附加块设备到虚拟机,如“创建卷”,“删除卷”和“附加卷”。还有更多高级的功能,支持扩展容量的能力,快照和创建虚拟机镜像克隆。 自Folsom版本集成到项目中。一套虚拟机镜像查找及检索系统,支持多种虚拟机镜像格式(AKI、AMI、ARI、ISO、QCOW2、Raw、VDI、VHD、VMDK),有创建上传镜像、删除镜像、编辑镜像基本信息的功能。 自Bexar版本集成到项目中。为OpenStack其他服务提供身份验证、服务规则和服务令牌的功能,管理Domains、Projects、Users、
23、Groups、Roles。 自Essex版本集成到项目中。OpenStack Optional Services为用户在OpenStack的环境提供可扩展和可靠的关系和非关系数据库引擎服务。自Icehouse版本集成到项目中。提供了一种通过模板定义的协同部署方式,实现云基础设施软件运行环境(计算、存储和网络资源)的自动化部署。自Havana版本集成到项目中。OpenStack中各种服务的Web管理门户,用于简化用户对服务的操作,例如:启动实例、分配IP地址、配置访问控制等。自Essex版本集成到项目中。像一个漏斗一样,能把OpenStack内部发生的几乎所有的事件都收集起来,然后为计费和监控以
24、及其它服务提供数据支撑。自Havana版本集成到项目中。为用户在OpenStack的环境提供对分布式弹性计算的支持。功能包括:域和备案管理的 REST API;多租户;集成了 Keystone 认证;在框架中整合了 Nova 和 Neutron 通知支持 PowerDNS 和 Bind9开箱OpenStack Manila文件共享服务目前正在快速成长中,借助共享文件系统,增加共享实际上直接将Guest VM连接至了后端。在部署和管理BareMetal的过程中需要存储的信息和部署虚拟机是不同的,为了避免使用Nova API来获取这些信息,因此将BareMetal的实现剥离称为独立的项目。用于 W
25、eb 开发者的多租户云消息服务,包括了Amazon的SQS产品理念,完全基于RESTful 的 API,开发者可通过不同的通信模式在 SaaS 和移动应用的不同组件之间进行通信。Barbican 是为安全储存、配置和隐私管理而设计的REST API,它主要目的是使用于所有环境,包括大规模临时云。它是组成 CloudKeep 生态系统应用程序的一部分。18OpenStack Logical Architecture (Kilo)19OpenStack 典型架构OpenStack 架构一直努力使每个项目尽可能的独立,这使得用户可以选择只部署一个功能子集,并将它与提供类似或互补功能的其他系统和技术相
26、集成。然而,这种独立性不应掩盖这样一个事实:全功能的私有云很可能需要使用几乎所有功能才可以正常运作,而且各元素需要被紧密地集成。甚至许多功能模块的实现需要其他开源软件的支持。典型的 OpenStack 实现将会集成大多数的项目,其之间关系架构如下图,也是本次探讨重点关注的模块。Nova 被认为是 OpenStack 的核心,负责处理工作负载的流程。它的计算实例通常需要进行某种形式的持久存储,它可以是基于块的(Cinder)或基于对象的(Swift)。Nova 还需要一个镜像来启动一个实例。Glance 将会处理这个请求,它可以有选择地使用 Swift 作为其存储后端。三个元素将会与系统中的所有
27、组件进行交互。Horizon 是图形用户界面,管理员可以很容易地使用它来管理所有项目。Keystone 处理授权用户的管理,Neutron 定义提供组件之间连接的网络。NovaHorizonKeystoneNeutronGlanceSwiftCinder20OpenStack Operations ArchitectureNova-计算服务OpenStack Compute (Nova) 控制云计算架构(基础架构服务的核心组件)。它用 Python 编写的,创建一个抽象层,让 CPU、内存、网络适配器和硬盘驱动器等商品服务器资源实现虚拟化,并具有提高利用率和自动化的功能。它的实时 VM 管理具
28、有启动、调整大小、挂起、停止和重新引导的功能,这是通过集成一组受支持的虚拟机管理程序来实现的。还有一个机制可以在计算节点上缓存 VM 镜像,以实现更快的配置。在运行镜像时,可以通过应用程序编程接口(API)以编程方式存储和管理文件。nova-nova-apiapi:API服务器提供了云设施与外界交互的接口,它是外界用户对云实施管理的唯一通道。通过使用web服务来调用各种EC2的API,接着API服务器便通过消息队列把请求送达至云内目标设施进行处理。作为对EC2-api的替代,用户也可以使用OpenStack的原生API,我们把它叫做“OpenStack API”。Queue:Queue:Ope
29、nStack内部在遵循AMQP(高级消息队列协议)的基础上采用消息队列进行通信。Nova对请求应答进行异步调用,当请求接收后便则立即触发一个回调。由于使用了异步通信,不会有用户的动作被长置于等待状态。例如,启动一个实例或上传一份镜像的过程较为耗时,API调用就将等待返回结果而不影响其它操作,在此异步通信起到了很大作用,使整个系统变得更加高效。nova-computenova-compute:运算工作站的主要任务是管理实例的整个生命周期。他们通过消息队列接收请求并执行,从而对实例进行各种操作。在典型实际生产环境下,会架设许多运算工作站,根据调度算法,一个实例可以在可用的任意一台运算工作站上部署。
30、 nova-scheduler:nova-scheduler:调度器负责把nova-API调用送达给目标。调度器以名为“nova-schedule”的守护进程方式运行,并根据调度算法从可用资源池中恰当地选择运算服务器。有很多因素都可以影响调度结果,比如负载、内存、子节点的远近、CPU架构等等。强大的是nova调度器采用的是可插入式架构。Neutron-网络服务Networking (Neutron) 之前被称为 Quantum,它提供了管理局域网的能力,具有适用于虚拟局域网(VLAN)、动态主机配置协议和 Internet Protocol 版本 6 的一些功能。用户可以定义网络、子网和路由器
31、,以配置其内部拓扑,然后向这些网络分配 IP 地址和 VLAN。浮动 IP 地址允许用户向 VM 分配(和再分配)固定的外部 IP 地址。虚拟网络管理面向租户的网络管理(SDN)高度可配置的plug-in架构基于 REST 的APISwift 对象存储服务可靠对象存储无单点故障支持 S3 API海量对象安全存储大文件(对象)存储数据冗余管理归档能力处理大数据集为虚拟机和云应用提供数据容器处理流媒体备份与归档良好的可伸缩性 OpenStack Object Storage (Swift) 以 Rackspace Cloud Files 产品为基础,对于向外扩展的存储来说,它是理想的冗余存储系统。
32、OpenStack 确保了在其池中的所有设备上的数据复制和分发,让用户可以利用商用硬盘和服务器,而不是更昂贵的设备。如果某个组件发生故障,那么 OpenStack 可以将来自其他活动系统的内容补充给新的集群成员。该架构还支持横向扩展,因为它很容易根据需要利用其他服务器来扩展存储集群。Swift 是一个分布式存储系统,主要用于静态数据,比如 VM 镜像、备份和存档。该软件将文件和其他对象写入可能分布在一个或多个数据中心内的多个服务器上的一组磁盘驱动器,在整个集群内确保数据复制和完整性。Cinder 块存储服务OpenStack Block Storage (Cinder) 管理计算实例所使用的块
33、级存储。块存储非常适用于有严格性能约束的场景,比如数据库和文件系统。与 Cinder 配合使用的最常见存储是 Linux 服务器存储,但也有一些面向其他平台的插件,其中包括 Ceph、NetApp、Nexenta 和 SolidFire。云用户可通过仪表板管理他们的存储需求。该系统提供了用于创建块设备、附加块设备到服务器和从服务器分离块设备的接口。另外,也可以通过使用快照功能来备份 Cinder 卷。提供类似EBS 的块存储减少Nova的复杂性,降低Nova的负载支持多种后端存储Glance 镜像服务OpenStack Image Service (Glance) 为 VM 镜像(尤其是为启动
34、 VM 实例中所使用的系统磁盘)提供了支持。除了发现、注册和激活服务之外,它还有快照和备份功能。Glance 镜像可以充当模板,快速并且一致地部署新的服务器。API 服务器暴露了 Representational State Transfer(REST,具象状态传输)接口,用户可以利用它来列出并获取分配给一组可扩展后端存储(包括 OpenStack Object Storage)的虚拟磁盘镜像。用户可采用多种格式为服务提供私有和公共镜像,这些格式包括 VHD(Microsoft( Hyper-V)、VDI(VirtualBox)、VMDK(VMware)、qcow2(Qemu/基于内核的虚拟机
35、),以及 Open Virtualization Format。其他一些功能包括注册新的虚拟磁盘镜像、查询已公开可用的磁盘镜像的信息,以及流式传输虚拟磁盘镜像等。镜像注册、查询基于角色的访问控制支持多格式的镜像(raw,qcow2 e.g.)支持多种后端存储(S3, Swift,File system e.g.)Keystone 身份认证服务Keystone采用两种授权方式,一种基于用户名/密码,另一种基于令牌(Token)。除此之外,Keystone提供以下三种服务:令牌服务:含有授权用户的授权信息目录服务:含有用户合法操作的可用服务列表策略服务:利用Keystone具体指定用户或群组某些访
36、问权限 OpenStack Identity Management (Keystone) 管理用户目录以及用户可以访问的 OpenStack 服务的目录。其目的是跨所有 OpenStack 组件暴露一个中央身份验证机制。Keystone 本身没有提供身份验证,它可以集成其他各种目录服务,如 Pluggable Authentication Module、Lightweight Directory Access Protocol (LDAP) 或 OAuth。通过这些插件,它能够实现多种形式的身份验证,包括简单的用户名密码凭据,以及复杂的多因子系统。OpenStack Identity 使得管理
37、员配置的集中式策略能够跨用户和系统得到应用。他们可以创建项目和用户并将其分配给管理域,定义基于角色的资源权限,并与其他目录(如 LDAP)集成。目录包含由单一注册表中所有已部署服务组成的一个列表。用户和工具可以检索一个服务列表,它们能够以编程方式发出请求或通过登录到仪表板来访问这些服务,它们还可以用这些服务来创建资源,并将这些资源分配给它们的帐户。认证服务流程Horizon 控制面板服务Horizon是一个用以管理、控制OpenStack服务的Web控制面板,它可以管理实例、镜像、创建密匙对,对实例添加卷、操作Swift容器等。除此之外,用户还可以在控制面板中使用终端(console)或VNC
38、直接访问实例。 实例管理:创建、终止实例,查看终端日志,VNC连接,添加卷等 访问与安全管理:创建安全群组,管理密匙对,设置浮动IP等 偏好设定:对虚拟硬件模板可以进行不同偏好设定 镜像管理:编辑或删除镜像 查看服务目录 管理用户、配额及项目用途 用户管理:创建用户等 卷管理:创建卷和快照 对象存储处理:创建、删除容器和对象 为项目下载环境变量Ceilometer 计量服务Ceilometer主要负责监控数据的采集,采集的项目包括虚拟机的性能数据,neutron-l3-router使用的网络带宽,glance&cinder&swift等租户使用信息,甚至是通过snmp采集物理机
39、的信息,以及采集支持opendaylight的网络设备信息。Ceilometer采集机制agent-*三个采集组件分别负责采集不同类型的信息: agent-notification负责收集各个组件推送到oslo-messaging的消息,oslo-messaging是openstack整体的消息队列框架,所有组件的消息队列都使用这个组件; agent-compute只负责收集虚拟机的CPU内存I/O等信息,所以他需要安装在Hypervisor机器上; agent-central是通过各个组件API方式收集有用的信息; agent-notification只需监听AMQP中的queue即可收到信
40、息,而agent-compute和agent-central都需要定期Poll轮询收集信息。Heat 编排服务模板定义环境云资源拓扑与编排服务兼容AWS CloudFormationHeat是一套业务流程平台,旨在帮助用户更轻松地配置以OpenStack为基础的云体系。利用Heat应用程序,开发人员能够在程序中使用模板以实现资源的自动化部署。Heat能够启动应用、创建虚拟机并自动处理整个流程。它还拥有出色的跨平台兼容性,能够与Amazon Web Services业务流程平台CloudFormation相对接Barbicanlogical diagram for Barbican.In general, components from the Oslo commons project are used within Barbican, such as config, messaging and logging.The API node(s) handle incoming REST reque
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论