openstack的理解和简介

OpenStack是一个开源的云计算管理平台,由NASA和Rackspace共同研发,提供计算、存储、网络资源的管理。本文详细介绍了OpenStack的组件,如Nova(计算)、Swift(对象存储)、Glance(镜像服务)、Keystone(身份服务)等,并阐述了私有云的逻辑架构、核心项目以及OpenStack的认证、调度、网络和存储管理。此外,还探讨了Keystone的联合身份管理、OAuth1和Trust功能,以及Glance的基本功能。OpenStack的分布式架构和模块化设计使其易于扩展和管理。
摘要由CSDN通过智能技术生成

简介篇
众所所知openstack是一个开源的云计算管理平台,由几个主要的组件组合起来完成具体工作。OK,先普及下云计算:
云计算是基于互联网的相关服务的增加、使用和交付模式,涉及通过互联网提供动态易扩展的以及经常是虚拟化的资源。云是网络、互联网的一种比喻。
同样也用来表示互联网和底层基础设施(如CPU/网卡/磁盘/服务器/路由等)的抽象。甚至可以体验每秒10亿次的运算能力,或许越来越强大的计算能力,可以有不一样的体验及价值!用户还可以通过多方渠道(如电脑、笔记本、手机等)接入数据中心,按自己需要进行运算。首先美国国家标准与技术研究院(NIST)定义云计算:云计算是一种按使用量付费的模式,可提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(包括网络、服务器、存储、应用软件、服务),资源能够快速提供,只需投入少量的管理工作。
一、关于openstack
openstack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以apache许可证授权的自有软件和开放源代码的项目。openstack是一个开源的云计算管理平台项目,由几个主要的组件组合来完成具体工作。几乎支持所有类型的云环境,此项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。openstack通过各种互补的服务提供了基础设施即服务(Iaas)的解决方案,每个服务模块通过API进行集成。
OpenStack是一个云操作系统,在一个数据中心中控制了大量的计算、存储和网络资源,所有这些都通过一个控制面板进行管理,这让管理员可以控制,同时让用户通过一个web界面来提供资源。
IAAS概念架构。展示层—组件和用户交互,接受和呈现信息,包括:compute API、image API、User Dashboard、customer portal;逻辑层—为云提供逻辑和控制功能。部署、调度、策略、镜像注册、日志。

二、openstack核心项目
计算(compute):nova—提供计算即服务。一套控制器,用于为单个用户或使用群组管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。负责虚拟机创建、开机、关机、挂起、暂停、调整、迁移、重启、销毁等操作
对象存储(Object Storaage):Swift—提供存储即服务。一套用于在大规模可扩展系统中通过内置冗余及高容错机制实现对象存储的系统,允许进行存储或者检索文件。可为glance提供镜像存储,为cinder提供卷备份服务。
镜像服务(image service):glance—提供虚拟机镜像服务。一套虚拟镜像查找机检索系统,支持多种虚拟机镜像格式(AKI/AMI/API/ISO/QCOW2/RAW/VDI/VHD/VMDK),有创建上传镜像、删除镜像、编辑镜像基本信息的功能。
身份服务(identity service):keystone。为openstack其他服务提供身份验证、服务规则和服务令牌的功能,管理domains、projects、users、groups、roles。
网络&地址管理(network):neutron。提供云计算的网络虚拟化技术,为openstack其他服务提供网络连接服务。为用户提供接口,可以定义network、subnet、router,配置DHCP、DNS、负载均衡、L3服务,网络支持VLAN、vxlan、GRE等。插件架构支持许多主流的网络厂家和技术。
块存储(block storage):cinder。为运行实例提供稳定的数据块存储服务,它的插件驱动架构有利于块设备的创建和管理,如创建卷、删除卷,在实例上挂载和卸载卷。
UI界面(dashboard):horizon。openstack中各种服务的web管理门户,用于简化用户对服务的操作,例如:启动实例、分配IP地址、配置访问控制、安全组等。
测量(metering):celiometer。类似漏斗一样,能把openstack内部发生的几乎所有的事情都收集起来,然后为计费和监控以及其他服务提供数据支撑。
部署编排(orchestration):heat。提供了一种通过模板定义的协同部署方式,实现云基础设施软件运行环境(计算、存储和网络资源)的自动化部署。
数据库服务(database service):trove。为用户在openstack的环境提供可扩展和可靠的关系和非关系数据库引擎服务。

三、浅谈私有云(逻辑架构)
首先肯定是设计正确的硬件和网络环境。尽管openstack允许在一个单一的平面网络上部署一切,从安全角度来看并不安全。取决于所使用的管理程序以及虚拟网络接口,它会允许guest虚拟机嗅探管理流量。所以两块网卡:一个用来管理流量,一个用来进行虚拟机之间的对话。这意味着所有的云计算节点中需要两个网卡(一个运行实例)和网络管理者。
这些应该运行在不同的IP范围内(姑且理解为不同网络)。计算节点和实例的网络也需要支持VLAN标记,因为这是在“项目”之间隔绝流量所使用的机制。每一个项目都有自己的管理员和用户,在既定项目中的所有实例可以彼此通信。通过指派每一个项目自己的VLAN以及内部和外部的IP地址池来执行。
硬件和网络设置好,下面就需要确定在哪里部署所有的openstack组件。一般部署应有一个控制器和一系列计算节点。控制器运行消息服务器,数据库和其他的组件编排云,同时计算节点运行实例。当然也可以分解(比如单独的neutron、glance等),对于安全而言,最关键的是确保每一部分安装在安全的主机上,然后只需将其附加在网络上,让云运转即可。

逻辑架构(详情部署,参考另一篇,此处只说明)
1、域的创建,域相当于总框架
2、admin表示管理任务服务的项目;demo表示常务服务的项目;service表示每个服务包含独有用户的项目
3、service项目中对应每个模块的一个实体
4、每个模块对应三个变种端点;public(公共)、internal(内部)、admin(管理)
5、除了service独有用户的项目之外,基本其他项目都对应一个用户、角色
6、每个模块的用户我们使用openstack项目名称做代表(keystone、glance、nova等),当然也可以自定义
7、而每个模块下的用户基本会对应一个角色
8、基本架构可理解为:域–>项目–>用户–>角色
···················································↓
···················································变种端点

ONE、openstack之keystone概念介绍
注:按照官方解释,5000是公用端口;35357则是管理端口。
keystone体系结构(概念):
1、domain:域。keystone中的域是一个虚拟的概念,有特定的项目(project)来承担。一个域是一组user、group或project的容器,一个域可以对应一个大的机构,一个数据中心,必须全局唯一。云服务的客户是domain的所有者,他们可以在自己的domain中创建多个project、users、group和roles。通过引入domain,云服务客户可以对其拥有的多个project进行统一管理。

2、user:用户。通过keystone访问openstack服务的个人、系统亦或是某个服务,keystone会通过认证信息验证用户请求的合法性,通过验证的用户将会分配到一个特定的令牌,该令牌可以用作后续资源访问的一个通行证,非全局唯一,只需要在域内唯一即可。

3、group:用户组。一个组users的容器,可以向group中添加用户,并直接给group分配角色,那么在这个group中的所有用户都拥有了group所拥有的角色权限。通过引入group的概念,keystone实现了对用户组的管理,达到了同时管理一组用户权限的目的。

4、project:项目。项目是各个服务中的一些可以访问的资源集合,例如,在nova中,我们可以把项目理解成一组虚机的拥有者,在swift中则是一组容器的拥有者。基于此,我们需要在创建虚拟机是指定某个项目,在cinder创建卷也是要指定具体的项目。用户默认的总是绑定到某些项目上,用户访问项目的资源前,必须具有对该项目的访问权限,或者说是在特定项目下赋予了特定的角色。

5、role:角色。一个用户所具有的角色,角色不同意味着被赋予的权限不同,只有知道用户所被授予的角色才能知道该用户是否有权限访问某资源。用户可以被赋予一个域或者项目内的角色。一个用户被赋予域的角色意味着对域内所有的项目具有相同的角色,而特定项目的角色只具有对特定项目的访问权限。角色可以继承,在一个项目树下,用于对父项目的访问权限也意味着同时拥有对子项目的访问权限。角色必须全局唯一。

6、service:服务。比如nova、swift、glance、neutron等。根据user、tenant和role一个服务可以确认当前用户是否具有访问其他资源的权限。服务对外暴露一个或者多个端点(endpoint),用户只有通过这些端点才可以访问所需资源或者执行某些操作。

7、endpoint:端点。端点是指一个可以用来访问某个具体服务的网络地址,因此我们可以将端点理解为服务的访问点。如果需要访问一个服务,就必须知道它的endpoint。一般以一个URL地址来表示一个端点,URL细分为public、internal和admin3种,public URL是为全局提供的服务端点,internal URL相对于public URL来说提供给内部服务之间的访问,admin URL提供给系统管理员使用。

8、token:令牌。令牌是允许访问特定资源的凭证。无论通过某种方式,keystone最终的目的就是对外提供一个可以访问资源的令牌。用户可以通过credential获取在某个项目下的令牌。

9、credential:凭证。用户的用户名和密码。

基于这心核心概念,keystone主要提供了authentication(认证)、token(令牌)、catalog(目录)和policy(安全策略/访问控制)4个方面的核心服务。
1、authentication:对用户的身份进行验证,用户的身份凭证通常是以用户名和密码形式呈现,认证服务同时提供了与该用户相关的元数据,例如用户的项目角色。

2、token:确认用户的身份之后,会给用户提供一个核实身份并且可以用于后续资源请求的令牌,token服务则验证并管理用于验证身份的令牌。keystone会颁发给通过认证服务的用户两种类型的令牌,一类是无明确访问范围的令牌(unscoped token),此种类型的令牌存在的主要目的是用来保存用户的credential,可以基于此令牌获取有确定访问范围的令牌(scoped token)。虽然意义不大,但是keystone还是保留了基于unscoped token查询project列表的功能,用户选择要访问的project,继而可以获取与project或者域绑定的令牌,只有通过与某个特定项目或者域相绑定的令牌,才可以访问此项目或者域内的资源。令牌只在有限的时间内有效。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值