这里写目录标题
一、云计算三种服务模式简介
- IaaS(基础架构即服务)
提供底层IT基础设施服务,包括处理能力、存储空间、网络资源等
面向对象一般是IT管理人员
- PaaS(平台即服务)
把安装好开发环境的系统平台作为一种服务通过互联网提供给用户
面向对象一般是开发人员
- SaaS(软件即服务)
直接通过互联网为用户提供软件和应用程序等服务
面向对象一般是普通用户
二、openstack概述
2.1、 openstack简介
- OpenStack是一个开源软件,它提供了一个部署云的平台。
- NASA(美国国家航空航天局)和Rackspace共同发起以Apchae许可证授权的自由软件和开放源代码项目。
- 为公有云及私有云的建设与管理提供软件的开源项目覆盖了网络、虚拟化、操作系统、服务器等各个方面。
2.2、openstack的用作
- OpenStack能帮我们建立自己的IaaS,提供类似Amazon Web Service的服务给用户:
- 普通用户可以通过它注册云服务,查看运行和计费情况
- 开发和运维人员可以创建和存储他们应用的自定义镜像,并通过这些镜像启动、监控和终止实例
- 平台的管理人员能够配置和操作网络,存储等基础架构
2.3、openstack的优点
- 控制性:
完全开源得平台,提供API接口,方便与第三方技术集成
- 兼容性:
OpenStack兼容其他公有云,方便用户进行数据迁移
- 可扩展性/模块松耦合:
模块化设计,可以通过横向扩展,增加节点、添加资源,添加独立功能的组件非常简单。有时候,不需要通读整个OpenStack的代码,只需要了解其接口规范及API使用,就可以轻松地添加一个新的模块
- 灵活性:
根据自己得需要建立相应基础设施、增加集群规模,服务可以安装在不同节点,即使部分服务挂了也不会影响。
- 行业标准:
众多IT领军企业已经加入到OpenStack项目
三、 openstack逻辑架构图
3.1、 openstack主要组件介绍
-
Nova(计算服务)
负责实例生命周期的管理,计算资源的单位。对Hypervisor进行屏蔽,支持多种虚拟化技术,主要和kvm相结合,提供底层的资源给自己的服务,支持横向扩展 -
Neutron (网络服务)
负责虚拟网络的管理,为实例创建网络的拓扑结构。是面向租户的网络管理,可以自己定义自己的网络,各个租户之间互不影响 -
Keystone (身份认证服务)
类似于LDAP服务,对用户、租户和角色、服务进行认证与授权,且支持多认证机制。就是相当一个ca机构,提供多种方式(密钥,哈希等)授权,来进行身份认证 -
Horizon(控制面板服务)
提供一个Web管理界面,提供图形化界面控制台,与OpenStack底层服务进行交互 -
Glance (镜像服务)
提供虚拟机镜像模板的注册与管理,将做好的操作系统拷贝为镜像模板,在创建虚拟机时直接使用,可支持多格式的镜像 -
Cinder (块存储服务)
负责为运行实例提供持久的块存储设备,可进行方便的扩展,按需付费,支持多种后端存储,简单来说就是为虚拟机提供磁盘空间的。 -
Swift (对象存储服务)
为OpenStack提供基于云的弹性存储,支持集群无单点故障,就比如nginx集群部署,一台宕机了,还有顶替的,防止了单点故障。 -
Ceilometer (计量服务)
用于度量、时刻监控和控制数据资源的集中来源,汇报数据,为OpenStack用户提供记账途径 -
Trove:提供数据库服务
-
Ironic:提供裸金属管理服务
-
Heat:提供资源编排能力
-
Sahara:提供在OpenStack上构建大数据服务的能力
3.2 、openstack架构图
云平台用户在经过Keystone服务认证授权后,通过Horizon或者Reset API模式创建虚拟机服务,创建过程中包括利用Nova服务创建虚拟机实例,虚拟机实例采用Glance提供镜像服务,然后使用Neutron为新建的虚拟机分配IP地址,并将其纳入虚拟网络中,之后在通过Cinder创建的卷为虚拟机挂载存储块,整个过程都在Ceilometer模块资源的监控下,Cinder产生的卷(Volume)和Glance提供的镜像(lmage)可以通过Swift的对象存储机制进行保存。
3.3 、OpenStack逻辑架构
这幅架构图:
- 首先展示了内部核心组件、外部组件、全局组件各核心、辅助组件之间是怎么对接的展示了各组件中,一部分核心的功能模块进行通讯展示openstack原生架构(基础)
- OpenStack包括若干个称为OpenStack服务的独立组件,独立的小组件都是由队列连接的。所有服务均可通过一个公共身份服务进行身份验证。除了那些需要管理权限的命令,每个服务之间均可通过公共API进行交互。
- 每个OpenStack服务又由若干组件组成。包含多个进程。所有服务至少有一个API进程,用于侦听API请求,对这些请求进行预处理,并将它们传送到该服务的其他组件。除了认证服务,实际工作都是由具体的进程完成的至于一个服务的进程之间通信,则使用AMQP消息代理。服务的状态存储在数据库中。
3.4 OpenStack组件通信关系
-
基于AMQP协议得通信
用于每个项目内部各个组件之间的通信 -
基于SQL得通信——在不同场景下运用不同的通信方式
用于各个项目内部得通信 -
基于HTTP协议进行通信
通过个项目得API建立的通信关系,API都是RESTful Web API——在控制台上将前端和后端通过restful api网关接口进行通讯
- 通过Native API实现通信
OpenStack各组件和第三方软硬件之间的通信——native api使原生架构与第三方组件进行通讯