沉淀再出发:OpenStack初探
一、前言
OpenStack是IaaS的一种平台,通过各种虚拟化来提供服务。我们主要看一下OpenStack的基本概念和相应的使用方式。
二、OpenStack的框架和使用
2.1、OpenStack简介
OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的*软件和开放源代码项目。OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
OpenStack云计算平台,帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基础架构服务(Infrastructure as a Service, IaaS)。OpenStack 包含两个主要模块:Nova 和 Swift,前者是 NASA 开发的虚拟服务器部署和业务计算模块;后者是 Rackspace开发的分布式云存储模块,两者可以一起用,也可以分开单独用。
2.2、OpenStack的架构
OpenStack 本身是一个分布式系统,不但各个服务可以分布部署,服务中的组件也可以分布部署。这种分布式特性让 OpenStack 具备极大的灵活性、伸缩性和高可用性。
2.3、OpenStack的组成
OpenStack开源项目由社区维护,包括OpenStack计算(代号为Nova),OpenStack对象存储(代号为Swift),OpenStack镜像服务(代号Glance)的集合。 OpenStack提供了一个操作平台,或工具包,用于编排云。整个OpenStack是由控制节点,计算节点,网络节点,存储节点四大部分组成。这四个节点也可以安装在一台机器上,单机部署。
控制节点负责对其余节点的控制,包含虚拟机建立,迁移,网络分配,存储分配等等
计算节点负责虚拟机运行
网络节点负责对外网络与内网络之间的通信
存储节点负责对虚拟机的额外存储管理等等
控制节点包括以下服务:
(1)管理支持服务包含MySQL与Qpid两个服务
MySQL:数据库作为基础/扩展服务产生的数据存放的地方
Qpid:消息代理(也称消息中间件)为其他各种服务之间提供了统一的消息通信服务
(2)基础管理服务包含Keystone,Glance,Nova,Neutron,Horizon五个服务
Keystone:认证管理服务,提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库。
Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板。
Nova:计算管理服务,提供了对计算节点的Nova的管理,使用Nova-API进行通信。
Neutron:网络管理服务,提供了对网络节点的网络拓扑管理,同时提供Neutron在Horizon的管理面板。
Horizon:控制台服务,提供了以Web的形式对所有节点的所有服务的管理,通常把该服务称为DashBoard。
(3)扩展管理服务包含Cinder,Swift,Trove,Heat,Centimeter五个服务
Cinder:提供管理存储节点的Cinder相关,同时提供Cinder在Horizon中的管理面板
Swift:提供管理存储节点的Swift相关,同时提供Swift在Horizon中的管理面板
Trove:提供管理数据库节点的Trove相关,同时提供Trove在Horizon中的管理面板
Heat:提供了基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性。
Centimeter:提供对物理资源以及虚拟资源的监控,并记录这些数据,对该数据进行分析,在一定条件下触发相应动作
网络节点
网络节点仅包含Neutron服务,Neutron负责管理私有网段与公有网段的通信,以及管理虚拟机网络之间的通信/拓扑,管理虚拟机之上的防火等等。网络节点包含三个网络端口:
eth0:用于与控制节点进行通信
eth1:用于与除了控制节点之外的计算/存储节点之间的通信
eth2:用于外部的虚拟机与相应网络之间的通信
计算节点
计算节点包含Nova,Neutron,Telemeter三个服务。计算节点包含最少两个网络端口:
eth0:与控制节点进行通信,受控制节点统一调配
eth1:与网络节点,存储节点进行通信
基础服务:
Nova:提供虚拟机的创建,运行,迁移,快照等各种围绕虚拟机的服务,并提供API与控制节点对接,由控制节点下发任务
Neutron:提供计算节点与网络节点之间的通信服务
扩展服务:
Telmeter:提供计算节点的监控代理,将虚拟机的情况反馈给控制节点,是Centimeter的代理服务。
存储节点
存储节点包含Cinder,Swift等服务。存储节点包含最少两个网络接口:
eth0:与控制节点进行通信,接受控制节点任务,受控制节点统一调配
eth1:与计算/网络节点进行通信,完成控制节点下发的各类任务
Cinder:块存储服务,提供相应的块存储,简单来说,就是虚拟出一块磁盘,可以挂载到相应的虚拟机之上,不受文件系统等因素影响,对虚拟机来说,这个操作就像是新加了一块硬盘,可以完成对磁盘的任何操作,包括挂载,卸载,格式化,转换文件系统等等操作,大多应用于虚拟机空间不足的情况下的空间扩容等等。
Swift:对象存储服务,提供相应的对象存储,简单来说,就是虚拟出一块磁盘空间,可以在这个空间当中存放文件,也仅仅只能存放文件,不能进行格式化,转换文件系统,大多应用于云磁盘/文件。
2.4、OpenStack的组件和关系
Compute (Nova) 计算服务
Identity Service (Keystone) 认证服务
Image Service (Glance) 镜像服务
Networking (Neutron) 网络服务
Dashboard (Horizon) 仪表板
Object Storage (Swift) 对象存储
Block Storage (Cinder) 块存储
Orchestration (Heat) 编排
Telemetry (Ceilometer) 监控
Database Service (Trove) 数据库服务
Data Processing (Sahara) 数据处理
Openstack 包含以下服务:
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版本,群集拓扑结构和节点的硬件信息即可。
2.5、OpenStack的部署
三、总结
简单的认识了OpenStack的一些组件以及之间的联系,后续将在虚拟机上安装一下OpenStack,对于安装有着相应的工具fuel可以加快安装。