OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。由NASA(美国国家航空航天局)和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权的开源代码项目。OpenStack为私有云和公有云提供可扩展的弹性的云计算服务。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。
OpenStack有二十多个核心组件,但是不是所有组件都像Nova、Cinder、Glance那样成熟和重要。在这里将介绍6个必备核心组件:
1、Nova是OpenStack Compute Service的项目名称,从OpenStack第一个版本Nova就集成在项目中,是最核心和最复杂的组件之一。它管理计算资源,负责虚拟机实例的所有活动,包括虚拟机创建、开机、关机、挂起、迁移等等操作。但是,Nova自身并不能提供虚拟化能力,而是通过API来对外提供服务。它使用Keystone 来执行身份验证,使用 Horizon 作为其管理接口,并用Glance 提供其镜像。
2、Glance是OpenStack Image Service的项目名称,它负责管理OpenStack集群中的镜像,可以创建、删除、编辑镜像基本信息,支持多种虚拟机镜像格式。但是,Glance本身并不存储信息,它只保存描述镜像的元数据和状态信息,存储工作由cinder和swift等项目负责。
3、Cinder 是OpenStack Block Storage 的项目名称,它负责为运行实例提供稳定的块存储服务,可以为设备提供创建卷、删除卷、挂载或卸载卷等功能。对于可扩展的文件系统、企业存储服务以及需要访问访问块级的应用程序而言,块存储是必不可少的。Cinder可以为Glance提供镜像存储,是EMC公司参与较多的项目之一。
4、自OpenStack成立以来Swift就一直是核心组件,功能类似于一个分布式、可访问API的存储平台,可直接将它集成到应用程序中,或者用于存储VM镜像、备份和归档文件。
对象存储包括对象和容器,容器类似于文件夹,对象就是存储实体,对象必须存储在容器中,因此您必须拥有至少一个容器才能使用对象存储。对象可以分布在数据中心的多个磁盘中,主要是文件相关的内容和元数据。Swift也可以为Glance提供镜像存储,为Cinder提供卷备份服务。
5、Keystone主要为OpenStack提供身份验证服务、用户的角色信息、服务规则和令牌服务。Keystone为其它组件提供了服务和管理API接口,后端可以接其它认证服务,比如使用LDAP服务做为认证服务。
6、Neutron设计的目的是为OpenStack虚拟环境提供灵活地网络功能,为多租户环境下的每个租户提供独立的网络环境,功能类似于VMware NSX虚拟网络功能,可是实现原理不同。Neutron通过API实现这种目标,用户可以创建自己的网络对象,该项目发展迅速。