我对openstack的一些见解
OpenStack基础必会
云计算服务模型
Iaas(基础及服务)
提供裸金属
PaaS(平台及服务)
提供裸金属和开发环境
SaaS(软件及服务)
提供产品服务 不涉及机密
OpenStack概述
由NASA (美国国家航空航天局)和Rackspace共同发起的开源代码项目,也是为公有云及私有云的建设与管理提供软件的开源项目,它覆盖了网络、虚拟化、操作系统、服务器等各个方面。
。OpenStack服务 8个组件
服务 |
项目名称 |
描述 |
Compute(计算服务) |
Nova |
负责实例生命周期的管理,计算资源的单位。对Hypervisor进行屏蔽,支持多种虚拟化技术(红帽默认为KVM),支持横向扩展 |
Network(网络服务) |
Neutron |
负责虚拟网络的管理,为实例创建网络的拓扑结构。是面向租户的网络管理,可以自己定义自己的网络,各个租户之间互不影响 |
ldentity(身份认证服务) |
Keystone
|
类似于LDAP服务,对用户、租户和角色、服务进行认证与授权,且支持多认证机制 |
Dashboard(控制面板服务) |
Horizon
|
提供一个Web管理界面,与OpenStack底层服务进行交互 |
Image Service(镜像服务) |
Glance
|
提供虚拟机镜像模板的注册与管理,将做好的操作系统拷贝为镜像模板,在创建虚拟机时直接使用,可支持多格式的镜像 |
Block Storage(块存储服务) |
Cinder
|
负责为运行实例提供持久的块存储设备,可进行方便的扩展,按需付费,支持多种后端存储 |
Object Storage(对象存储服务) |
Swift
|
为OpenStack提供基于云的弹性存储,支持集群无单点故障
|
Telemetry (计量服务)
|
Ceilometer
|
用于度量、监控和控制数据资源的集中来源,为OpenStack用户提供记账途径 |
OpenStack优势
■控制性
●完全开源的平台,提供API接口,方便与第三方技术集成
兼容性
●OpenStack兼容其他公有云,方便用户进行数据迁移
■可扩展性
●模块化设计,可以通过横向扩展,增加节点、添加资源
■灵活性
● 根据自己的需要建立相应基础设施、增加集群规模
■行业标准
●众多IT领军企业已经加入到OpenStack项目
openstack架构
学习Openstack的部署和运维之前,应当熟悉其架构和运行机制, OpenStack
作为开源、可扩展、富有弹性的云操作系统,其设计基本原则如下:
■按照不同的功能和通用性划分不同项目,拆分子系统
■按照逻辑计划、规范子系统之间的通信
■通过分层设计整个系统架构
■不同的功能子系统间提供统- -的API接口
Openstack概念架构
第一层全局组件 管理虚拟机和全局 Keystone提供认证 Ceilometer监控 Horizon控制台
第二层外部组件(也是为虚拟机提供服务 辅助组件) Sahara与Heat 协同完成数据的处理(编排等) Trove数据库类型(非关系和关系) Ironic裸金属(硬件存储)
第三层 所有组件为虚拟机(实例)提供服务 Glance提供镜像 Neutron提供网络 Swift和Cinder提供存储 Nova管理虚拟机的生命周期 所以资源先给Nova然后给虚拟机
Openstack逻辑架构
Keystone有权限 再通过api接口进行通信
1.(各组件通讯用api)
2.1每个openstack服务,通过监听api进程,api监听收到请求,交给keystone进行认证,是否有权限。这是预处理。(不是自己主动发起,而是接收到请求的组件一方把请求交给keystone,让keystone进行验证。)除了认证服务,实际工作都是有具体的进程完成的。
2.2 api鉴权通过,将请求传送给其他服务组件。api只是认证.\
类比linux 像mkdir即使用命令,通过shell翻译给内核,相当于调用api接口去控制使用获取对应的功能。
3.服务的进程间通讯,用AMQP消息队列代理。(作为消息传递的载体,解决消息在传播过程中的高并发问题(请求传递的高并发))(如下图 nova计算中各个进程就是通过队列进行通信)
openstack物理架构
4个 类型 并不是四个节点
控制节点
Mysql存储 Rabbit MQ消息队列
基础服务 扩展服务
keystone认证 Swift
Glance 镜像 和Cinder提供存储
Nova 管理虚拟机生命周期 Trove数据库类型(非关系和关系)
Neutron 网络 Heat 协同完成数据的处理(编排等)
Horizon 提供ui Ceilometer 监控
管理网络(有网卡管理openstack网络)
(控制节点的定位是管理整个openstack平台,所以需要Keystone认证,bashbord控制台,ceilometer监控等全局组件 看着讲 为虚拟机服务 所以需要以下这些东西支持服务,因为控制节点虚管理整个集群,而整个集群不止控制节点这一种服务器构成,我要管理整个集群,需借助网络,会有网卡专门管理集群。即管理网络 )