什么是OpenStack
OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的云计算。
OpenStack项目是一个支持所有云环境的开源云计算平台。提升易用性,支持大规模扩展和提供更多优秀的特性。全球的云计算专家都在为openstack项目作出贡献。Openstack 通过一系列服务,形成了一个IaaS解决方案,每一个服务都提供了相应的API来更好地使用。
Openstack服务简述
DashBoard | Horizon | 提供WEB界面 |
Computer | Nova | 计算也就是虚拟机 |
Networking | Neutron | 提供给nova网络支持 |
Object Storage | Swift | 提供对象存储 |
Block Storage | Cinder | 提供云硬盘给nova,同时备份到Swift |
Identity Sservice | Keystone | 提供所有组件的认证 |
Image Service | Glance | 提供给nova镜像服务 |
Telemetry Service | Cellometer | 监控 cinder,neutron,nova,glance |
Orchestration Service | Heat | 与AWS cloud兼容 |
1)Dashboard
该服务的工程名为Horizon,目的是提供基于Web的自服务门户,来实现用户与底层服务的交互,比如启动实例,分配IP地址,配置访问控制策略等等。
2)Compute
该服务的工程名为Nova,目的是管理运行在Openstack环境中的计算实例,比如按需创建,调度和销毁虚拟机。
3)Networking
该服务的工程名为Neutron,目的是为Openstack的服务,比如计算服务,提供网络连接服务。提供了API供用户定义网络及其相关内容。基于"插件式"的架构,支持众多主流的网络提供商和技术。
4)Object Storage
该服务工程名为Swift。目的是通过REST API的形式存储和检索非结构化数据。由于采用了数据复制和高扩展性架构,所以具有很高的容错性。该项目的实现并不像具有可挂载目录的文件服务器,Object Storage通过写对象和文件到多个驱动器的实现方式,确保了数据能够在群集之间复制。
5)Block Storage
该服务的工程名为Cinder。提供一个持久化的块存储来运行实例。该服务的"可插拔驱动器"模式,提升了创建和管理块存储设备的能力。
6)Identity Service
该服务的工程名为Keystone。为Openstack服务提供认证和授权,为Openstack服务提供了服务端点目录。
7)Image Service
该服务的工程名为Glance。存储和检索虚拟机磁盘镜像,Openstack 计算服务在实例配置的过程中会使用到这个服务。
8)Telemetry
该服务的工程名为Ceilometer。监控和计量Openstack云服务,为Openstack提供计费,阀值管理,扩展和分析等服务。
9)Orchestration
该服务的工程名为Heat。通过本地的HOT模板格式或者AWS CloudFormation模板格式,甚至Openstack本地REST API和兼容CloudFormation的Query API,来编排多个混合的基于云的应用。
10)Database Service
该服务的工程名为Trove。为数据库引擎提供了可靠的,高扩展性的"云数据库即服务"。
11)Data Processing Service
该服务的工程名为Sahara。提供了在Openstack中配置和扩展Hadoop群集的能力,而实现这一点只需要传hadoop版本,群集拓扑结构和节点的硬件信息即可。
Openstack 概念架构图
在部署过程中,最精简的架构需要四个节点组成,控制节点(Controller),计算节点(Compute),网络(Networking),存储(Storage),其他的节点是可选的,根据实际需要进行选择,各个节点主要服务安装情况如下:
1)控制节点
安装Identity Service,Image Service,计算和网络服务的管理部分,网络部分的插件及Dashboard。
2)网络节点
安装Networking服务及相关的Agent来配置网络,分配交换机,路由器,提供NAT,DHCP服务。
3)计算节点
安装KVM 作为Hpervisor,部分网络服务。
4)存储节点
安装Storage服务。
各个部分的内容如下图: