openstack哪个组件可以提供服务注册的功能 neutron keystone cinder swift

本书对各主流云管理平台进行介绍及对比后,主要对OpenStack平台进行重点介绍。包括OpenStack项目的存储管理(Cinder)模块、Neutron架构及具体功能、Ceilometer的架构及关键组件、Openstack中编排子系统(Heat)的相关概念/架构及其实现、Ironic的架构/运行原理,后阐述云计算带来的包括虚拟化安全、数据安全、身份和访问管理安全等新的安全挑战。本书作者是长期从事云计算的一线研发专家,他们从云计算的关键技术着手,同时从云计算提供者、使用者、IT建设决策者的多方角度来阐述云计算的应用场景、技术。本书采用通俗易懂的语言深入剖析OpenStack架构的设计理念及具体实现,配合大量的图文以及部分核心代码,形象地表述出OpenStack技术实现原理和业务处理流程。本书各章节逐一介绍OpenStack核心模块(Nova、Cinder、Glance、Neutron、Keystone、Swift等)的软件架构、业务处理流程,以及与IT软硬件设备的集成方案,使读者全面了解OpenStack的系统架构,为基于OpenStack实现公有云、私有云和混合云打下坚实基础。
出版社:机械工业出版社
出版日期:2016年8月
ISBN:978-7-111-54333-6
价:69.00元
免责声明:图书版权归出版社和作者所有, 仅提供试读
本书详细信息
前言与目录
第1章 云管理平台概述
第2章 计算管理(Nova)
随便说两句
可以匿名发言哦!
(点击进行更换)
作译者简介
陆平 赵培 左奇&&
本作者其他图书
作者:周自恒译
&&这是一本兼具趣味性、实用性与学习性的操作系统图书。作者从计算机的构造、汇编语言、C 语言开始解说,让读者在实践中
相关技术专题
            &&
51CTO旗下网站更多最新文章相关作者文章搜狗:感谢您阅读OpenStack培训课程安排 本文版权归原作者所有,本文由网友投递产生,如有侵权请联系 ,会第一时间为您处理删除。当前位置: >>
OpenStack概述
OpenStack概述唐 卓 湖南大学信息科学与工程学院 2015-09 目录? ? ? ?OpenStack核心组件 OpenStack快速部署 OpenStack 集群HA实现 操作界面介绍 什么是OpenStack??概念OpenS
tack 最 早 由 美 国 国 家 航 天 局 ( NASA ) 研 发 的 Nova 和 Rackspace 研发的 Swift 组成;后来以 Apache 许 可证授权,是一个旨在为公共及私有云的建设,面向云 平台管理的自由软件和开放源代码项目。?核心项目组成Nova:计算 Glance:镜像 Neutron:网络 Heat:编排 Keystone:认证 Cinder:块存储 Swift:对象存储 Ceilometer:计量 OpenStack概念架构? Horizon(Dashboard)与其他主要模块的关联(包括 Nova,Cinder,Glance,Swift,Neutron,keystone)? 通过Ceilometer(监控功能)可以监控的模块 (包括Nova,Glance,Cinder,Neutron) ? Keystone(身份验证功能)模块可以对其他模块进 行相应操作进行身份及权限验证(包括 Nova,Glance,Cinder,Swift,Neutron,Ceilometer)VM? Nova为VM提供计算资源 ? Glance为VM提供镜像 ? Cinder为VM提供块存储资源 ? Neutron为VM提供网络资源及网络连接? Cinder连接VM后所产生的数据可以备份到Swift对 象存储中 ? Glance提供镜像可以保存在Switf对象存储中 OpenStack 最简物理架构2类节点:? Cloud Controller Node:? ? ? ? ? Keystone(身份验证服务) Glance(镜像管理服务) Nova (计算资源管理服务) 数据库服务(MySQL) 消息服务(RabbitMQ或QPid)? Compute Node:? Nova-Compute ? Nova-Network ? KVM虚拟化系统2种网络:? Internal Network(内部网络)? 用于提供Provider网络(VM to Provider) ? 用于tenant网络(VM to VM)? External Network(外部网络)? 用于外部用户与VM通信及控制(VM to Internet) OpenStack 管理方式?Web自助管理界面? ?使用方便,支持Chrome/Firefox/Safari,支持IE10以 上 实现大部分OpenStack功能,少部分功能不支持 需要在客户端安装,OpenStack每个服务都有自己对 应的工具 功能强大,方便进行定制配置?CLI客户端工具? ? OpenStack主要逻辑模块CHorizon Dashboard服务在整个Openstack应用体系框架中,Horizon就是整个应用的入口。它提供了一 个模块化的,基于web的图形化界面服务门户。用户可以通过浏览器使用这个Web图 形化界面来访问、控制他们的计算、存储和网络资源,如启动实例、分配IP地址、设 置访问控制等。基于Django框架实现 OpenStack主要逻辑模块CHorizon 两种功能界面Horizon为以下两种角色的用户提供了不同的功能及使用界面: ? 云管理员: 提供一个整体视图,可以总览整个云的资源规模及运行状况.可以创建终端用户和 项目,想终端用户分配项目并进行项目可使用的资源配额管理。 ? 终端用户(云用户): 提供了一个自助服务门户,可以在由云管理分配的项目中,在不超过配额限制的 范围内,自由的操作、使用和分配资源。云管理员云 用 户 OpenStack主要逻辑模块- Nova?计算管理(codenamed “Nova”) 基于用户需求为VM提供计算 资源管理. 基于Python语言编写。 Nova-API:对外统一提供标准化接口.接受和响应最终用户 Compute API的请求,同时还实现与Openstack其他各逻辑模块 的通讯与服务提供 Nova-Scheduler:从队列上得到一个虚拟机实例请求并且决定 它应该在哪里运行(使用多种过滤器或算法调度) Queue:提供了一个守护进程之间传递消息的中央枢纽。消 息队列系统作用还可以实现与Openstack其他各逻辑模块之间 的通信建立连接枢纽 Nova-Database:存储云基础设施的编译时和运行时的状态,从 理论上讲,OpenStack Nova可以支持任何SQL-Alchemy支持 的数据库,但是目前被广泛使用的数据库有sqlite3(只适用于 测试和开发工作),MySQL和PostgreSQL。 Nova-Compute:主要是一个人工守护进程,它可以通过虚拟 机管理程序的API(XenAPI for XenServer/XCP, libvirt for KVM or QEMU, VMwareAPI for VMware等)来创建和终止 虚拟机实例。支持多种虚拟化平台 Nova还提供控制台的服务,让最终用户通过代理服务器访问 他们的虚拟实例的控制台。这涉及到多个守护进程(novaconsole,nova-novncproxy、nova-xvpnvncproxy和novaconsoleauth)?????? Nova的架构 Nova处理过程 请求一个虚拟机实例过程 Nova支持的虚拟化平台KVMOpenstack 支持的 虚拟化技术XenLXCQEMUUMLvSph erehttp://docs.openstack.org/admin-guide-cloud/content/section_hypervisors.html Nova支持的调度器和过滤器?All HostFilter ?ImagePropertiesFilter ?ChanceScheduler随机调度器 ?SimpleScheduler简单调度器 ?FilterScheduler过滤调度器 ?MultiScheduler多重调度器 ?AvailabilityZoneFilter?ComputeFilter ?CoreFilter?IsolateHostFilter ?RamFilter ?SimpleCIDRAffinityFilter ?DifferentHostFilter ?SameHostFilter OpenStack主要逻辑模块CKeystone身份验证服务Keystone作为Openstack的核心模块,为Nova(计 算),Glance(镜像),Swift(对象存储),Cinder(块存 储),Neutron(网络)以及Horizon(Dashboard)提供 认证服务 基本概念?项目(project),有时也称为租户(tenant)? ? ?一组资源的容器,包括CPU/内存/硬盘/IP地址等每个项目可以使用的资源有限额,称之为配额(quotas) 一个项目中可以有多个用户 必须至少属于一个项目 可以同时属于多个项目 目前常用的主要就admin和member两种角色?用户(user)? ?? ?角色(role)?虚拟机(instance) OpenStack主要逻辑模块CGlance镜像服务Glance是OpenStack镜像服务,用来注册、 登陆和检索虚拟机镜像。Glance服务提供 了一个REST API,使你能够查询虚拟机镜 像元数据和检索的实际镜像。通过镜像服 务提供的虚拟机镜像可以存储在不同的位 置,从简单的文件系统对象存储到类似 OpeenStack对象存储系统。镜像服务组件:? Glance-API :接收最终用户或Noav对镜像 的请求,检索和存储镜像的相关API调用。 ? Glance-registry: 存储,处理和检索有关镜像 的元数据,元数据大小、类型等等。 ? Database :存储镜像元数据,可以支持多种数 据库,现在使用比较广泛的是mysql和sqlite. Glance与Openstack其他模块的关系KeystoneImage权限控制HorizonImage可视化Glance模块 (镜像功能) Nova调用ImageSwift存储Image OpenStack主要逻辑模块- 块存储Cinder?块存储管理模块(codenamed “Cinder”) 提供到虚拟机的永 久性块存储卷.类似AWS的EBS块存储服务?多个卷可以被挂载到单一虚拟机实例,同时卷可以在虚拟 机实例间移动,单个卷在同一时刻只能被挂载到一个虚拟 机实例块存储系统管理块设备到虚拟机的创建,挂载以及卸载. 块设备卷完全与Openstack Compute集成,并支持云用户在 Dashboard中管理数据自己的存储. 除了支持简单的Linux服务器本地存储之外,还支持众多 的存储平台,包括 Ceph, NetApp, Nexenta, SolidFire, Zadara. 快照管理提供了强大的在块存储上实现数据备份的功能可 以用来作为引导卷使用 块存储适合性能敏感性业务场景,例如数据库存储 大规模 可扩展的文件系统或服务器需要访问到块级裸设备存储.? ???? Cinder如何支持典型存储1.本地存储对于本地存储,cinder-volume 可 以使用 LVM 驱动,该驱动当前的实现 需要在主机上事先用 LVM 命令创建一 个 cinder-volumes 的卷组 , 当该主机接 受到创建卷请求的时候,cinder-volume 在该卷组 上创建一个逻辑卷, 并且用 openiscsi 将这个卷当作一个 iscsi tgt 给 输出.当然还可以将若干主机的本地存 储用 sheepdog 虚拟成一个共享存储, 然后使用 sheepdog 驱动。2.块存储 OpenStack编排服务- Heat编排模板?Heat编排服务Nova Glance 镜像存储NeutronHeat(编排服务)可以提 供如各种应用的高可用配 置,负载均衡和自动线性 扩展等功能,是一个非常 强大而有用的工具。左图 说明了Heat与其他项目之 间的交互关系。 Heat将服务器的配置抽象 成一个模板,然后将这个 JSON格式的模板转化成一 个云端应用。Cinder ? ? ? ? 虚拟机 Cloud-init Cfn-init Cfn-hup Cfg-push-stats Swift?Ceilometer Heat的组成Heat包括下图所示的一些进程,这些服务都属于控制服务,并运行于控制节点。 控制服务 访问服务进程 通过API来访问编排服务 Heat-api 接收API请求,并发送到 heat-engine去处理 内部服务进程 Heat Heat-engine 编排模板,并将事件 返回给请求者命令行Heat 命令行工具,将编排请 求发送到heat-api去处理 OpenStack主要逻辑模块CQuantum/Neutron网络服务?网络服务 (codenamed “Quantum/Neutron”) 提供在被管理设备之间的网络连接服务 . 允许用户自己创建自己的网络并attach端口使 用. 通过开发的Plugins支持SDN和OpenFlow 用户自定义子网地址,私有网络/公有网络以及 Floating IP分配规则?? ?Neutron Drivers Quantum/Neutron 的关键概念? 网络Network? ?一个L2二层网络单元 租户可通过Quantum/Neutron API 创建自己的网络 一段IPV4/IPV6地址段 为Instance提供私网或公网地址 三层路由器 为租户的Instance提供路由功能 虚拟交换机上的端口 管理Instance的网卡? 子网Subnet? ?? 路由器Router? ?? 端口Port?? OpenStack主要逻辑模块CCeilometer计费?Ceilometer可以用来跟踪OpenStack集群,首先目的是为了计费,但是整个框 架非常通用,可以扩展到其他用途,如资源监控、性能报告、问题调试、容 量分析、智能调度 、优化等。计费通常包括以下三步。?(1)收集运行数据。(2)将运行数据转化为可以计费的条目,并计算费用。 (3)生成计费表单,收集付费。 Ceilometer计量服务的组成访问服务进程 通过API来访问 Ceilometer-api 通过API来访问 DataStore,获取收集 的计费数据。 设置阈值以告警 Ceilometer-alarmnotifier 可以针对收集的计量数 据设置阈值。 Telemetry (ceilometer) 计费数据收集进程计费收集进程Ceilometer-collector 监控消息队列的通知或计 费数据,处理后转化为计费 信息并发送回消息队列。Ceilometer-agent-central 收集虚机和计算节点之 外的资源使用数据。 计费节点、虚拟机计费数据收集 Ceilometer-agent-compute 进行于每个计算节点, 收集资源使用统计信息。 目录? ? ? ?OpenStack核心组件 OpenStack快速部署 OpenStack 集群HA实现 操作界面介绍 快速部署组件: KickStart 快速安装什么是KickStart?为了满足系统管理员使用自动化的安装方法来安装Red Hat/CentOS ISO,特别是大规模安装的情况下;RedHat创建了KickStart安装方法。 通过使用KickStart,系统管理员可以创建一个文件,这个文件包含了典型的安装过 程中所遇到的系统选项的答案。 KickStart文件可以存放于单一的服务器上,或者就在被安装的镜像文件中,在安 装过程中被安装的机器所读取。这种方法安装方法可以使用单一KickStart文件在多台主 机上安装Red Hat/CentOS Linux,对于网络和系统管理员来说是个理想的选择。 快速部署组件: Puppet管理系统什么是Puppet ?Puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的 Puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。Puppet把 这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资 源间的依赖关系。 Puppet采用客户/服务器 的架构,所有的客户端和一个或几个服务器交互。每个 客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该 配置信息同步。每个Puppet客户端每半小时(可以设置)连接一次服务器端, 下载最新的配 置文件,并且严格按照配置文件来配置客户端. 配置完成以后,Puppet客户端可以反馈给服 务器端一个消息. 如果出错,也会给服务器端反馈一个消息。 Ganglia监控什么是Ganglia ?Ganglia是加州伯克利大学千 禧计划中的一个开源集群监视项目, 设计用于测量数以千计的节点。 Ganglia的核心包含gmond、gmetad 以及一个Web前端。主要是用来监 控系统性能,如:cpu 、mem、硬 盘利用率, I/O负载、网络流量情 况等,通过曲线很容易见到每个节 点的工作状态,对合理调整、分配 系统资源,提高系统整体性能起到 重要作用。 第三方工具:DevStack什么是DevStack?DevStack是由Shell脚本来控制搭建的完整的OpenStack开发环境。目前DevStack支持Ubuntu 12.04 (Precise)、Fedora 20和CentOS/RHEL 6.5。其中Ubuntu版本由于非常容易上手, 并且文件较小,容易分享,得到了非常 广泛的应用。 IBM OpenStack Solusion for System X什么是IBM OpenStack Solusion for System X?IBM OpenStack Solusion for System X是由IBM研发的,基于OpenStack社区版和内部改进版本快速搭建企业级IaaS和部分PaaS的工具和一组软件。该项目从OpenStack Folsom版本开始,先后支持Grizzly、Havanna版本,同时 支持CentOS 6.4与Red Hat 6.4两种操作系统版本供用户选择。 它不但很好地解决了各种部署拓扑的安装问题,而且自带有许多OpenStack社区 本身不具有的运维管理方面的工具。它可以帮助客户在几个小时内快速搭建企业私有 云,融合了领先的OpenStack技术,是开源工具和许多硬件管理实施方面的最佳实践。 Red Hat RDO什么是Red Hat RDO?RDO是用来部署OpenStack到Red Hat Enterprise Linux、Fedora和其他基于CentOS、Scientific Linux的社区。这里有文档、论坛等可以帮助用户和其他各个地方 的人们一起,开始学习部署OpenStack,同时还有社区支持的最新的OpenStack安装包 和脚本供下载。OpenStack依赖于底层的操作系统和虚拟机管理程序。RDO是一站式的、基于 Red Hat 平台的社区。 Mirantis Fuel什么是Mirantis Fuel?OpenStack CAMPS Mirantis 是一家非常活跃的杰出的OpenStack服务集成商。Mirantis Fuel 是Mirantis开发的一款用于OpenStack安装和管理的免费软件,具有良好 的GUI交互体验,并支持多个OpenStack版本及插件,版本更新节奏非常快,平均每两 个月就能提供一个相对稳定的社区版。Mirantis Fuel是个管理和部署OpenStack端到端“一键部署” 工具,其功能含 盖自动的PXE方式的操作系统安装,DHCP服务,Orchestration服务 和Puppet 配置管 理相关服务等,此外还有OpenStack关键业务健康检查和日志实时查看等非常好用的服 务。 用图形化界面,并且关注使用时的具体问题,是Mirantis Fuel最大的优点和亮点。 目录? ? ? ?OpenStack核心组件 OpenStack快速部署 OpenStack 集群HA实现 操作界面介绍 Opensatck HA 的实现: KeepalivedKeepalivedKeepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平 时说的第3层、第4层和第5层交换。 Keepalived的作用是检测web服务 器的状态,如果有一台web服务器 死机,或工作出现故障, Keepalived将检测到,并将有故障 的web服务器从系统中剔除,当 web服务器工作正常后Keepalived 自动将web服务器加入到服务器群 中,这些工作全部自动完成,不需 要人工干涉,需要人工做的只是修 复故障的web服务器。 Opensatck HA 的实现: Keepalived+HAproxyHaproxyHaproxy是稳定、高性能、高可用 性的负载均衡解决方案,支持 HTTP及TCP代理后端服务器池, 因支持强大灵活的7层acl规则,广 泛作为HTTP反向代理。右图详细 介绍如何利用它的四层交换与 Keepalived实现一个负载均衡器, 适用于Socket、ICE、Mail、 Mysql、私有通讯等任意TCP服务。 目录? ? ? ?OpenStack核心组件 OpenStack快速部署 OpenStack 集群HA实现 操作界面介绍 OpenStack界面操作?Web登录是用户名, 不是项目名 管理员部分 概览(管理员)总体资源使用情况单个项目的资 源使用情况 项目一览创建/删除项目? 修改项目拥 有的用户 ? 编辑项目资 料 ? 查看项目资 源使用情况 ? 修改项目配 额 创建项目(1)?项目基本资料项目名称 项目描述是否启用项目, 默认勾选 创建项目(2)?添加/移除用户移除用户选择用户在 项目中的 role 添加用户 创建项目(3)?设置项目配额项目可用CPU上限 项目可创建虚拟机数目上限项目可用块存储数 目上限项目可用块存储容量上限项目可用内存上限项目可用外网地址数目上限 查看项目资源使用情况项目总体资源使用情况单个虚拟机资源使用情况 用户一览创建/删除用户修改用户资料 创建/修改用户修改用户 密码用户所属 主项目 模板一览创建/删除模板修改模板 配置模板模板名称CPU数目内存大小 根硬盘容量瞬态硬盘容量 用户部分 概览(用户)自身配额和资源使 用情况单个虚拟机的 资源使用情况 用户部分网络管理 网络基本概念虚拟机内网地址 (fixed IP)内部网络 (Network)子网 (Subnet)外部网络 (Network)路由器 (Router)外网地址 (floating IP) 网络一览?虚拟机必须至少连接到一个虚拟网络中,所以在创建 虚拟机之前必须先创建虚拟网络创建/删除网络? 编辑网络 ? 增加子网,一 个网络可以拥 有多个子网 ? 删除网络 创建网络(1)网络名称默认为up,若改为down则在 网络不能够转发包 创建网络(2)?设置子网?地址范围必须限定在管理员分配的地址段内子网名称, 可为空 子网地址范围 (必填项) IP v4 or v6? 默认是v4 网关地址,可为空。默认为 地址范围第一个可用地址是否禁用网关 (默认否) 创建网络(3)?设置子网细节?以下所有配置都是可选项是否使用 DHCP网络可分配地址段, 若不填表示所有地址DNS设置 增加子网?一个网络可以拥有多个子网?在已有subnet的network,中可在添加subnet只是一 个特性,用途不多 路由器配置?若需要两个网络之间能够通信,或网络上虚机需 要连接到外网,则需要建立router来建立连接创建和删除 router 点击即可设 置router 设置网关 路由器设置网关和接口?新建完一个router后,使用router前需要为其设置? ?若要连接外网则需要设置gateway,即连接到公网 Router的interface用于连接网络设置 gateway设置 interface 网络拓扑可视化?Openstack提供了清晰的网络连接拓扑显示,而且可在此快速创建虚 机、网络、路由器快速创建虚机、网 络、路由。具体过 程与之前过程完全 一致点击虚机和网 络可以查看具 体信息网络拓扑位置 用户部分虚拟机管理 虚拟机基本概念? ? ? ?镜像(Image)?操作系统、中间件及应用 描述了虚拟机的配置参数,包括CPU/内存/硬盘等 虚拟机的访问规则,用户可自由配置模板(flavor)?安全组(Security group)?快照?虚拟机运行状态的备份 虚拟机一览创建/删除虚拟机 状态: Active or ErrorIP地址虚拟机名称模板配置秘钥对? 创建快照 ? 绑定floating IP ? 编辑虚拟机 ? VNC界面 ? 暂停虚拟机 ? 休眠虚拟机 ? 重启虚拟机 ? 删除虚拟机 创建虚拟机(1)以下都是必填项虚拟机来源: 镜像 or 快照镜像名称 虚拟机名称, 可重复 模板创建虚拟机 数量,支持 批量创建项目资源使用 情况及配额 创建虚拟机(2)选择秘钥 对选择安全 组? 至少选择一个网络 ? 虚拟机可以同时加入多 个网络,但必须在创建 时选择,创建后不可更 改 根据需求选择是 否在volume中 启动(选项有是、 否、从快照中)创建虚拟机(3)选择启动的 volumeVolume 在虚机中 的挂载点对虚机自 定义的脚 本 创建虚拟机快照只需写名字即可 绑定外网IP地址?一个外网IP只能绑定到一台虚拟机上点击链接即可到虚机的 详细信息、log、vnc选择外网IP 地址 需要绑定的虚拟机 VNC窗口VNC窗口的键盘输入无响应,需要先用鼠 标点击此灰色地带,即可正常输入 用户部分块存储管理 块存储一览创建/删除块存储 块存储被挂载 到哪台虚拟机状态: In-Use Available Error挂载/卸载块 存储 块存储名称 存储容量more中有创建块存 储快照,不能处于 挂载状态 创建块存储块存储名称块存储容量块存储使用 情况和配额 挂载块存储挂载的虚拟机挂载的位置 用户部分镜像/快照管理 镜像/快照一览创建/删除镜像镜像是否共有镜像格式虚拟机快照创建虚拟机 创建虚拟机块存储快照 创建镜像镜像名称 格式(9种): aki ami ari iso qcow2 raw vdi vhd vmdk镜像地址,必 须是http的启动镜像的最小磁 盘需求,默认为0启动镜像的最小内存 需求,默认为0是否开启共有?否则 只有本租户的用户可 以看到 用户部分访问/安全管理 访问&安全一览创建/删除安全组设置安全组规则安全组名称 访问&安全一览?默认拒绝,只有规则允许的流量才能访问虚拟机创建/删除安全组删除规则 规则协议tcp、 udp、icmp 允许通过的端 口或端口范围允许通过的ip 或ip范围81 外网IP地址管理分配和删除外 网ip绑定外网ip到 虚机从虚机解绑外 网ip 绑定外网IP地址选择外网地址选择虚拟机 密钥对管理?产生秘钥后会在浏览器中下载一个私钥用于秘钥登录登 录虚机,如果用putty登录,需要把pem改为ppk格式产生秘钥对上传自己的秘钥删除秘钥对新产生的秘钥 会自动下载 用户部分对象存储管理 基本概念 容器(container)组织单位,有些类似文件夹对象(object)存储基本单元,类似文件最终一致性read-your-writes consistency 对象存储一览对象存储需要先建立container,然后在 container中上传object先创建 container然后可以在 container中 上传objectOpenStack调研:OpenStack是什么、版本演变、组件关系(Havana)、同类产品及个人感想 - ZisZ - 推酷
OpenStack调研:OpenStack是什么、版本演变、组件关系(Havana)、同类产品及个人感想 - ZisZ
一点调研资料,比较浅,只是觉得部分内容比较有用,记在这里;
首先,关于云计算,要理解什么是SAAS、PAAS、IAAS,这里不述;关于虚拟化,需要知道什么是Hypervisor,这里也不述;
OpenStack是什么
OpenStack是一个由美国宇航局NASA与Rackspace公司共同开发的云计算平台项目,且通过Apache许可证授权开放源码。它可以帮助服务商和企业实现类似于Amazon EC2和S3的云基础架构服务。下面是OpenStack官方给出的定义:
OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.
OpenStack是一个可以管理整个数据中心里大量资源池的云操作系统,包括计算、存储及网络资源。管理员可以通过管理台管理整个系统,并可以通过web接口为用户划定资源。
由以上可以知道OpenStack的主要目标是管理数据中心的资源,简化资源分派。它管理三部分资源,分别是:
?&& &计算资源:OpenStack可以规划并管理大量虚机,从而允许企业或服务提供商按需提供计算资源;开发者可以通过API访问计算资源从而创建云应用,管理员与用户则可以通过web访问这些资源;
?&& &存储资源:OpenStack可以为云服务或云应用提供所需的对象及块存储资源;因对性能及价格有需求,很多组织已经不能满足于传统的企业级存储技术,因此OpenStack可以根据用户需要提供可配置的对象存储或块存储功能;
?&& &网络资源:如今的数据中心存在大量的设置,如服务器、网络设备、存储设备、安全设备,而它们还将被划分成更多的虚拟设备或虚拟网络;这会导致IP地址的数量、路由配置、安全规则将爆炸式增长;传统的网络管理技术无法真正的可高扩展、高自动化地管理下一代网络;因而OpenStack提供了插件式、可扩展、API驱动型的网络及IP管理;
OpenStack的版本演变
OpenStack的每个主版本系列以字母表顺序(A~Z)命名,以年份及当年内的排序做版本号,从第一版的Austin(2010.1)到目前最新的稳定版Havana(2013.2),共经历了8个主版本,第9版的Icehouse仍在开发中。以下是各个版本的简单描述(注:描述摘取自官方文档
,当版本描述较多时,仅选取个人认为比较重要(且能看懂)的部分):
Under development
Current stable release, security-supported
Oct 17, 2013
Security-supported
Apr 4, 2013
May 9, 2013
Jun 6, 2013
Aug 8, 2013
Oct 17, 2013
Sep 27, 2012
Nov 29, 2012
Dec 13, 2012
Jan 31, 2013
Apr 11, 2013
Apr 5, 2012
Jun 22, 2012
Aug 10, 2012
Oct 12, 2012
Sep 22, 2011
Jan 19, 2012
Deprecated
Apr 15, 2011
Deprecated
Feb 3, 2011
Deprecated
Oct 21, 2010
?&& &作为第一正式版本的OpenStack,主要包含两子项目,Swift是对象存储模块,Nova是计算模块;
带有一个简单的控制台,允许用户通过web管理计算和存储;
带有一个部分实现的Image文件管理模块,未正式发布;
正式发布Glance项目,负责Image的注册和分发;
?&& &Swift增加了对大文件(大于5G)的支持;增加了支持S3接口的中间件;
增加了一个认证服务中间件Swauth;
?&& &Nova增加对raw磁盘镜像的支持,增加对微软Hyper-V的支持;等;
开始了Dashboard控制台的开发;
?&& &Nova增加新的虚拟化技术支持,如LXC容器、VMWare/vSphere、ESX/ESXi 4.1;支持动态迁移运行中的虚机;增加支持Lefthand/HP SAN做为卷存储的后端;
?&& &Glance提供新的CLI工具以支持直接访问;支持多种不同的Image格式;
整合Keystone认证
;支持KVN的暂停恢复;KVM的块迁移;全局防火墙规则;
?&& &Glance
整合Keystone认证
;增加事件通知机制;
正式发布Horizon项目,支持开发第三方插件扩展web控制台;正式发布Keystone项目,提供认证服务;
?&& &Swift支持对象过期;在swift CLI接口上支持Auth 2.0 API;支持URL以允许通过控制台向要求认证的swift集群上传对象;
完全依赖Keystone
管理用户、项目、角色等;支持根据角色设定访问控制;
计算与网络解耦,使得网络可以通过独立的服务进行管理;卷管理使用了独立api;
为消息队列增加额外的后端模块;元数据分离;支持浮动ip池;
正式发布Quantum项目,提供网络管理服务;正式发布Cinder项目,提供块存储服务;
?&& &Nova中libvirt驱动增加支持以LVM为后端的虚机实例;Xen API增加支持动态迁移、块迁移等功能;增加可信计算池功能;
卷管理服务抽离成Cinder;
?&& &Nova支持将分布于不同地理位置的机器组织成的集群划分为一个cell;支持通过libguestfs直接向guest文件系统中添加文件;通过Glance提供的Image位置URL直接获取Image内容以加速启动;支持无image条件下启动带块设备的实例;支持为虚机实例设置(CPU、磁盘IO、网络带宽)配额;
?&& &Keystone中使用PKI签名令牌代替传统的UUID令牌;
?&& &Quantum中可以根据安全策略对3层和4层的包进行过滤;引入仍在开发中的load balancer服务;
?&& &Cinder中支持光纤通道连接设备;支持LIO做ISCSI的后端;
正式发布Ceilometer项目
,进行(内部)数据统计,可用于监控报警;
正式发布Heat项目
,让应用开发者通过模板定义基础架构并自动部署;
网络服务Quantum变更为Neutron;
?&& &Nove中支持在使用cell时同一cell中虚机的动态迁移;支持Docker管理的容器;使用Cinder卷时支持加密;增加自然支持GlusterFS(If qemu_allowed_storage_drivers is set to gluster in nova.conf then QEMU is configured to access the volume directly using libgfapi instead of via fuse);
?&& &Glance中按组限制对Image的元属性的访问修改;增加使用RPC-over-HTTP的注册 API;增加支持Sheepdog、Cinder、GridFS做后端存储;
?&& &Neutron中引入一种新的边界网络防火墙服务;可通过VPN服务插件支持IPSec VPN;
?&& &Cinder中支持直接使用裸盘做存储设备无需再创建LVM;新支持的厂商中包含IBM的GPFS;
注:红字部分指出系统添加了新的服务组件,或是新组件出现前的铺垫工作;
OpenStack的架构及组件(Havana)
用户通过该服务与OpenStack的各服务进行交互,如启动虚机实例、分配IP地址、设置访问控制等;
按需分派并管理虚机;
通常是计算服务通过该服务管理网络设置之间的连接,也可以允许终端用户创建并添加网络接口;通过一个插件式架构支持大量网络广商设备及网络技术;
存取文件,但并不提供传统挂载式的文件服务;
向虚机提供可用于持久存储的块存储服务;
为OpenStack提供认证及授权服务。
提供虚机镜像的注册服务;同时计算服务也使用该服务分派实例;
计量/监控服务
Ceilometer
用于计费、基准测试及数据统计等功能
更高层服务
编排组织服务
使用自带的HOT模板或AWS的CloudFormation模板,通过OpenStack中各服务的REST API,将各组件的资源组织形成云应用;
逻辑架构图如下(注:原图在
,Ceilometer与Heat与服务逻辑无关,因而不在这张图中体现)
计算服务是OpenStack的核心服务,它由nova-compute模块通过libvirt、XenAPI等管理hypervisor,从而管理虚机,此外它还通过nova-api服务向外提供如EC2兼容、管控功能等的接口,通过nova-scheduler模块提供虚机调研逻辑等;这些模块间的通信全部通过消息队列完成;
对象存储服务是OpenStack最早期的两个服务之一(另一个是计算服务),在OpenStack平台中,任何的数据都是一个对象;swift-proxy模块对外提供如HTTP(S)、OpenStack Object API及与S3兼容的存取接口。对象的存取经swift-proxy接入后,还需要经三个模块进行定位,即account、container、object;这是因为在OpenStack中一个对象被描述为:某个帐户下某个容器中的某个对象;
Glance的出现是解决虚机镜像的管理问题;在生成一个镜像后,需要将镜像注册到系统的数据库中;当要实例化一个虚机时,需要将镜像分派到一台具体的实机上用来以启动虚机;因而Glance最重要的接口是镜像的注册和分派;
Essex将nove的卷管理api独立化后,Folsom终于将卷管理服务抽离成了Cinder;Cinder管理所有的块存储设备,块设备可以挂接在虚机的实例中,然后虚机里的guest系统可以像操作本地卷一样操作块存储设备;
Cinder需要处理的主要问题应该是接入各种块设备,如本地磁盘、LVM或各大广商提供的设备如EMC、NetApp、HP、HuaWei,还有如Vmware提供的虚拟块设备等。
值得一提的是发现在Cinder的驱动列表中出现了NFS,按理说NFS提供的不是块访问接口,而是文件访问接口,走到文档中看到说明为:NFS based cinder driver. Creates file on NFS share for using it as block device on hypervisor.竟然是用NFS上的文件模拟块设备。为什么不直接写一个将本地文件模拟为块设备的驱动呢?应该是写成NFS驱动,可以将NFS的挂载动作封装在驱动中。
经过一定时间的演变,网络管理也抽离成一个独立的服务;在OpenStack的网络管理流程中,通常需要经过以下几个步骤:
1.&& &创建一个网络;
2.&& &创建一个子网;
3.&& &启动一个虚机,将一块网卡对接到指定的网络上;
4.&& &删除虚机;
5.&& &删除网络端口;
6.&& &删除网络;
身份服务需要进行认证凭证的验证及关于用户、角色等的信息,及所有相关的元数据;这些数据全都由Keystone服务管理,并提供CRUD的操作方法;另外这些信息可以从另一个认证服务中获取,例如使用LDAP做Keystone的后端。
OpenStack与VM
以上这些服务与服务、服务与虚机的关系如下图所示:
真正服务于VM的服务只有Nova、Glance、Neutron、Cinder:
Nova调派资源实例化虚机;
Glance提供虚机实例化时需要的镜像;
Neutron提供网络连接;
Cinder提供外接的块存储服务;
Ceilometer从上面与虚机相关的几个服务中收集数据,用于统计、监控、计费、报警等;
Swift可以为Glance提供镜像的存储服务,可以为Cinder提供卷的备份服务;
Keystone为所有服务提供认证、授权等服务;
Horizon为所有服务提供基于Web的操作接口;
通过Heat可以方便地将各组件组织起来;
?&&& 来自加拿大
CANARIE机构的
?&&& 微软的Azure:
?&& &亚马逊AWS(EC2及配套的S3等):
?&&& 来自UCSB的Eucalyptus:
,中文入门资料:
?&&& Google GCE:
至于Google的App Engine?应该是PAAS了,不算同类;
---------以上是正文---------
---------以下是个人的一点看(fei)法(hua)---------
OpenStack无疑是当前最火的开源IAAS方案,而且已经得到大量厂商的支持,如HP、IBM、Intel、EMC、Huawei,当然还不能忘记Ubuntu系统等,看一下Cinder的api中那一堆的驱动,再看一下Nova不断支持的各类虚拟化技术,不由会去想当年Linux是否也是这样蓬勃发展起来的。个人感觉,厂商积极参与的最终目标肯定还是想捞金,试想如果突然冒出大批公司做OpenStack平台,这必然有大量存储和计算设备可以卖啊$$
2011年我在Intel实习,有幸参与了OpenStack的开发工作,当初使用的D版只有三大模块,因为自己研究方向偏Storage,所以碰过Swift和Glance,又因为有Security背景,所以也在Nova中为Intel TXT打通了上下层接口。研究版本演变时,看到可信计算池功能被F版支持,感觉一点点小成就感,虽然我的代码可能早被refactor了。
两年后再来看H版的OpenStack,子项目已经暴增到9个,对一个新人而言也许难以下手,但如果可以从发展的角度看,会清楚很多,我是这样理解:最初的A版应该是学习AWS的EC2+S3,只抽象出计算与存储两个服务;存储一直是一个比较容易理解的层次,接口明晰,而计算/VM则变数很多,一开始也只能将Image的管理剥离出来,成为Glance;后来,为了产品化,出于安全性及简化使用的需求,洐生了Keystone和Horizon;再后来,E版对Nova进行了大的调整,尽量解耦,从而允许网络和卷管理独立,为后来Neutron和Cinder的出现做了铺垫;再后应该是出于监控和统计的需求,出现了Ceilometer;然后发现过度解耦,提供的选择太多,组织起来比较麻烦,所以做了Heat(我相信,如果OpenStack继续像Linux那样发展下去,将来Heat会变成今天Linux Kernel的menuconfig:)。从这个过程可以看出,大部分的功能,都是慢慢从最核心的计算需求中抽离出来的。
OpenStack的演变过程,也正是一家公司的基础平台发展过程的缩影。区别在于,在公司,基础平台的目标不是产品化,所以很难出现一个Horizon和Heat,而以SLA或PKI为目标时,Ceilometer会变得过分重要,会重要到影响其它组件的发展,比如Nova永远得不到调整,因为调整前,上头就可能要问你:为什么要这样做,能带来什么收益,拿出点数据看看;而这个后果就是,各组件越来越难用越来越难以维护,成为恶性循环。算了,吐槽有点过。废话到此吧,以后有时间我会继续关注OpenStack的发展,看能否得到新的感悟。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信