前言
接触openstack不久,希望能够写下这一系列的安装部署过程,不仅仅是要记录自我学习提升的每一步,也希望能够为其他人提供一些参考,能贡献自己的一点力量。
本次安装部署openstack主要参考了官方文档,具体情况请见OpenStack Installation Guide for Ubuntu。
本文档的所有操作均在超级用户的权限下操作,按本文档操作前请输入命令sudo su,进入超级用户权限。或者在下列所有的输入命令前输入sudo。
本次部署最简化,只安装基本组件,节点也只有控制节点和计算两个节点。
云计算简介
云计算的概念
狭义的云计算是指IT基础设施的交付和使用模式
广义的云计算是指服务的交付和使用模式
云计算资源
网络资源
存储资源
计算资源
......
云计算服务模型
1、laas(基础架构即服务)
提供底层IT基础设施服务,包括处理能力、存储空间、网络资源等
面向对象一般是IT管理人员
2、PaaS(平台即服务)
把安装好开发环境的系统平台作为一种服务通过互联网提供给用户
面向对象一般是开发人员
3、Saas(软件即服务)
直接通过互联网为用户提供软件和应用程序等服务
面向对象一般是普通用户
什么是openstack
由NASA(美国国家航空航天局)和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权的开源代码项目。
为公有云及私有云的建设与管理提供软件的开源项目
覆盖了网络,虚拟化,操作系统,服务器等各个方面
发布模型:
1.私有云(使用计费)
云基础架构被一个组织独立地操作,可能被这个组织或者第三方机构所管理,可能存在于某种条件下或者无条件存在。
2.社区云
云基础架构被几个组织所共享,并且支持一个互相分享概念(例如,任务、安全需求、策略和切合的决策)的特别的社区。可能被这些组织或者第三方机构所管理,可能存在于某种条件下或者无条件存在。
3.公有云
云基础架构被做成一般公共或者一个大的工业群体所使用,被某个组织所拥有,并出售云服务。
4.混合云(公有云,私有云)
云基础架构是由两个或者两个以上的云组成,这些云保持着唯一的实体但是通过标准或者特有的技术结合在一起。这些技术使得数据或者应用程序具有
OpenStack服务
服务 项目名称 描述
Compute Nova 负责实例生命周期的管理,计算资源的单位。对Hypervisor进行屏蔽,支持多种虚拟化技术(红帽默认为KVM),支持横向扩展
(计算服务)
Network Neutron 负责虚拟网络的管理,为实例创建网络的拓扑结构。是面向租户的网络管理,可以自己定义自己的网络,各个租户之间互不影响
(网络服务)
Identity Keystone 类似于LDAP服务,对用户、租户和角色、服务进行认证与授权,且支持多认证机制
(身份认证服务)
Dashboard Horizon 提供一个Web管理界面,与OpenStack底层服务进行交互
(控制面板服务)
Image Service Glance 提供虚拟机镜像模板的注册与管理,将做好的操作系统拷贝为镜像模板,在创建虚拟机时直接使用,可支持多格式的镜像
(镜像服务)
Block Storage Cinder 负责为运行实例提供持久的块存储设备,可进行方便的扩展,按需付费,支持多种后端存储
(块存储服务)
Object Storage Swift 为OpenStack提供基于云的弹性存储,支持集群无单点故障
(对象存储服务)
Telemetry Ceilometer 用于度量、监控和控制数据资源的集中来源,为OpenStack用户提供记账途径
(计量服务)
OpenStack优势
1、控制性
完全开源的平台,提供API接口,方便与第三方技术集成
2、兼容性
OpenStack兼容其他公有云,方便用户进行数据迁移
3、可扩展性
模块化设计,可以通过横向扩展,增加节点、添加资源
4、灵活性
根据自己的需要建立相应基础设施、增加集群规模
5、行业标准
众多IT领军企业已经加入到OpenStack项目
OpenStack架构
概念图
全局模块:
keystoue (认证授权模块)
Ceilometer(统计计费服务)
Horizon(控制面板服务)
辅助模块:
Sahara
Heat
Trove(数据库)
Ironic(裸金属)
核心模块
Nova(计算服务),
Glance(镜像服务),
Cinder(块存储服务),
Neutron(网络服务)
Swift (对象存储服务)
创建虚拟机需要网络资源、存储资源、镜像资源,提供给Nova 统一给虚拟机
逻辑
这个图主要说明
openstack内部组件如何通讯和交互的
它是通过api对接的 由消息代理rabbitmq去承载消息队列的载体
介绍单个组件的子功能组件以及单个功能模块之间如何通讯的
举例nova这组说明
nova的核心功能是管理实列的生命周期
由nvaapi作为一个统一的交互入口 ,而有很多的内部组件做具体的任务处理 单个的内部组件的api不负责做具体的事,只做分发任务、接受请求并且把返回结果和需要返回的资源响应给请求客户端 ,而客户端会对这姓请求做预处理(预处理是把这些返回的请求由keystone进行认证授权,成功之后才会把请求分发给自己内部的各个组件进行处理)
这个架构里面是有很多子功能模块构成的 每个子功能模块都做事务处理 他们之间通讯的话 是由消息队列做为载体交互数据传输数据的
OpenStack组件通信关系:
.基于AMQP协议的通信
用于每个项目内部各个组件之间的通信。
基于SQL的通信
用于各个项目内部的数据库通信。
基于HTTP协议进行通信
通过各项目的API建立的通信关系,API都是RESTful Web API。
通过Native API实现通信
OpenStack各组件和第三方软硬件之间的通信。
RESTful:标准化通讯协议
httpd->提供了一个可视化的web页面(http承载API)->API->API会有自己的具体位置,而这个具体的位置可以是URL(域名,网址)
http通过域名与域名,IP地址+端口进行通信
openstack中的API是一个很核心的概念
restful:是一种交互/通讯的规范
web:由Apache承载API,Apache提供了一个Web展示页面
API:组件和组件对接的技术(点到点)
URL->对接->URL(域名)
endpoint—>endpoint(端点)
OpenStack是一种模块化的设计
HTTPD也是一种模块化的设计