一、OpenStack的基础知识
openstack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache2.0许可证(兼容GPLv3以及DFSG)授权的自由软件和开放源代码项目。
OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。
OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。本文希望通过提供必要的指导信息,帮助大家利用OpenStack前端来设置及管理自己的公共云或私有云。
二、openstack的基本架构
- Horizon(Dashboard):为用户提供了一个图形化的WEB前端的控制台,用于管理openstack的资源和服务,使其相对直观化;
- nova:通过虚拟化提供计算资源池;
- neutron:实现虚拟机网络资源管理;
- keystone:身份认证管理;
- swift:对象存储;
- cinder: 块存储;
- glance:镜像;
- ceilometer:采集,计量;
- heat:自动化部署;
- Trove:数据库
其中openstack的三大核心组件是
Nova:Compute
Neutron:Networking
Swift:Storage
三、项目简述
1. Openstack Compute(Nova)
Nova是云计算环境中的主要控制器,主要采用Python语言编写使用目前成熟的虚拟化技术(KVM、 XenServer)来管理和自动化计算资源池的操作OpenStack 只是作为一个平台存在,并不充当计算资源的提供者和资源的消费者。
Openstack Object Storage(swift)
Swift是OpenStack的对象存储(Object Storage)项目,是一个可扩展并且提供了冗余的存储系统。
对象和文件分散存储在同一集群中的多台服务器的磁盘上,由OpenStack负责数据的复制和一致性。
对象存储系统是用于存储大量静态数据的分布式存储系统,没有主节点或者管理节点,便于系统的扩展和数据的冗余和持久化。
存储的集群可以通过添加服务器完成横向的扩展。
如果集群中服务器或者磁盘出现失败的情况,OpenStack会复制数据到集群中的其他节点。Openstack Block Storage(Cinder)
Cinder是OpenStack的块存储服务。
为云环境中的计算实际提供块设备的创建、添加和卸载。
Cinder目前支持多种存储平台(Linux
server storage, Ceph, CloudByte, Coraid, EMC (VMAX and VNX), GlusterFS,
IBM Storage (Storwize family, SAN Volume Controller, and XIV Storage
System), linux LIO, NetApp, Nexenta, Scality, SolidFire and HP (Store Virtual and StoreServ 3Par families)。
块设备适用于对性能要求较高的应用场景:比如数据库。
块设备的快照功能可以实现基于块存储卷的数据备份,而且也可以利用快照进行数据恢复。Openstack Networking(Neutron)
OpenStack 的网络服务,现已由之前的 Quantum 改名为 Neutron。
Neutron 提供云计算环境下的虚拟网络功能,目的是为 OpenStack 云更灵活地划分物理网络,在多租户环境下提供给每个租户独立的网络环境。
用户可以创建自己的网络,控制网络流量,也可以控制服务器和设备连接一到时多个网络。
Neutron 服务网络管理的三种模式:
— FlatDHCP 模式
— Flat 模式
— VLAN 模式Openstack Dashboard(Horizon)
Dashboard为管理员提供了一个图形化的接口。
可以访问和管理基于云计算的资源— 计算、存储、网络等。
提供了很高的可扩展性,支持添加第三方的自定义模块,比如:计费、监控和额外的管理工具。
支持其他云计算提供商在Dashboard进行二次的开发。Openstack Identity Service(Keystone)
提供了用户目录的集中式存储,便于其他OpenStack服务的访问。
可以和现有的目录服务(如LDAP)相结合,提供企业内部的单点目录的访问。
创建用户和租户,并且以基于角色的方式限制用户和租户访问云计算中的计算、网络和存储等资源。
支持多种方式的校验:
— 标准的用户名和密码的校验
— 基于令牌的认证
— 基于证书的认证Openstack Image Service(Glance)
Glance是OpenStack的镜像服务,提供了磁盘和服务器虚拟镜像的查询、注册和传输的功能 。
Glance本身并不存储镜像,它只是一个代理,充当镜像存储服务和其他OpenStack组件之间的纽带。
可以将磁盘和服务器镜像存储在OpenStack的后端服务上,比如对象存储系统上。
管理员可以利用镜像服务创建镜像模板,用户可以选择现有的镜像创建服务器。Openstack Telemetry Service(Ceilometer)
测量服务:可以收集云计算中不同服务的统计信息,云操作人员可以查看所有资源的统计信息或者单个资源的统计信息像一个漏斗一样,能把OpenStack内部发生的几乎所有的事件都收集起来,然后为计费和监控以及其它服务提供数据支撑Openstack Orchestration Service(Heat)
部署编排服务:提供了一种通过模板定义的协同部署方式。
模板驱动的引擎,允许应用开发人员使用提供的模板语言描述云环境的架构,并且以自动化的方式进行部署云计算资源。
通过和Telemetry service结合,可以更好的实现云计算资源扩展的自动化。Openstack Database Service(Trove)
为用户在OpenStack的环境提供可扩展和可靠的关系型数据库引擎服务。
主要用于帮助用户在复杂管理时进行资源的隔离,方便进行自动化的管理操作
用户可以根据需要创建多个数据库。