OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。由NASA(美国国家航空航天局)和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权的开源代码项目。
OpenStack为私有云和公有云提供可扩展的弹性的云计算服务。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台
用户能从中申请到硬件或虚拟硬件,包括裸机或虚拟机,然后在上边安装操作系统或其他应用程序
OpenStack就是一种IaaS
应用:
提供底层IT基础设施服务,包括处理能力,存储空间、网络资源
一般面对对象是IT管理人员
用户能从中申请到一个安装了操作系统以及支撑应用程序运行所需要的运行库等软件的物理机或虚拟机,然后在上边安装其他应用程序,但不能修改已经预装好的操作系统和运行环境
应用:
把安装好开发环境的系统平台作为一种服务通过互联网提供给用户
一般面对对象是开发人员
用户可以通过网络以租赁的方式来使用一些软件,而不是购买,比较常见的模式是提供一组账号密码
应用:
直接通过互联网为用户提供软件和应用程序的服务
一般面向对象是普通用户
服务 | 项目名称 | 描述 |
---|---|---|
Compute(计算服务) | Nova | 负责实例生命周期的管理,计算资源的单位。对Hypervisor进行屏蔽,支持多种虚拟化技术(红帽默认为KVM),支持横向扩展 |
Network(网络服务) | Neutron | 负责虚拟网络的管理,为实例创建网络的拓扑结构。是面向租户的网络管理,可以自己定义自己的网络,各个租户之间互不影响 |
ldentity(身份认证服务) | Keystone | 类似于LDAP服务,对用户、租户和角色、服务进行认证与授权,且支持多认证机制 |
Dashboard(控制面板服务) | Horizon | 提供一个Web管理界面,与OpenStack底层服务进行交互 |
lmage Service(镜像服务) | Glance | 提供虚拟机镜像模板的注册与管理,将做好的操作系统拷贝为镜像模板,在创建虚拟机时直接使用,可支持多格式的镜像 |
Block Storage(块存储服务) | Cinder | 负责为运行实例提供持久的块存储设备,可进行方便的扩展,按需付费,支持多种后端存储 |
Object Storage(对象存储服务) | Swift | 为OpenStack提供基于云的弹性存储,支持集群无单点故障 |
Telemetry(计量服务) | Ceilometer | 用于度量、监控和控制数据资源的集中来源,为OpenStack用户提供记账途径 |
OpenStack概念架构图
每个OpenStack服务又由若干组件组成。包含多个进程。所有服务至少有一个API进程,用于侦听API请求,对这些请求进行预处理,并将它们传送到该服务的其他组件。除了认证服务,实际工作都是由具体的进程完成的
至于一个服务的进程之间通信,则使用AMQP消息代理。服务的状态存储在数据库中。
openstack设计的基本原则如下:
按照不同的功能和通用性划分不同项目,拆分子系统
按照逻辑计划、规范子系统之间的通信
通过分层设计整个系统架构
不同的功能子系统间提供统一的API接口
一个镜像从上传可以使用得几个状态、过程
初始化过程——queued
导入数据库过程——saving
提交给服务识别过程(让服务可调用)——uploding
准使用(服务已识别、可调用)——importing
以上表明的是从上传到识别
以下标识是镜像上载完成后的状态类型
active——表示可使用
deactivated——表示只对管理员开放的权限
killed——表示镜像上传中发生错误
deletd——镜像将在不久后自动删除,镜像不可用(保留数据)
pending_delete——与deleted类似,但是删除后无法恢复
全局
openstack中由很多核心服务组成(相互独立)
keystone(全局授权、鉴权)
OpenStack组件通信关系
基于AMQP协议得通信
用于每个项目内部各个组件之间的通信
基于SQL得通信——在不同场景下运用不同的通信方式
用于各个项目内部得通信
基于HTTP协议进行通信
通过个项目得API建立的通信关系,API都是RESTful Web API——在控制台上将前端和后端通过restful api网关接口进行通讯
通过Native API实现通信
OpenStack各组件和第三方软硬件之间的通信——native api使原生架构与第三方组件进行通讯
,API都是RESTful Web API——在控制台上将前端和后端通过restful api网关接口进行通讯
通过Native API实现通信
OpenStack各组件和第三方软硬件之间的通信——native api使原生架构与第三方组件进行通讯