OpenStack是一个开源的云计算管理平台项目,目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack是当前活跃的基础云实现软件,是一种可用的开源云计算解决方案,是一个构建云环境的工具集,基于OpenStack可以搭建私有云或公有云。从其名称中的Open可以看出其开源的理念、开放式的开发模式,从其名称中的Stack可以理解它是由一系列相互独立的子项目组合而成,协同合作完成某些工作。同时,OpenStack也是一个十分“年轻”的开源项目,2010年7月,NASA(美国国家航空航天局)联手Rackspace在建设NASA私有云的过程中基于Apache 2.0开源模式创建了OpenStack项目。
OpenStack本身是一个分布式系统,不但可以分布式部署各个服务,也可以分布式部署服务中的组件。这种分布式特性让OpenStack具备极大的灵活性、伸缩性和高可用性。OpenStack项目并不是单一的服务,其含有子组件,子组件内由模块来实现各自的功能。通过消息队列和数据库,各个组件可以互相调用、互相通信。这样的消息传递方式解耦了组件、项目之间的依赖关系,所以才能灵活地满足实际环境的需要,组合出合适的架构。
如图1-19所示,OpenStack包含许多组件。有些组件会首先出现在孵化项目中,待成熟后进入下一个OpenStack发行版的核心服务中,同时,也有部分项目是为了更好地支持OpenStack社区和项目开发管理,不包含在发行版代码中。OpenStack主要组件如下。
● Nova:提供计算服务。
● Keystone:提供认证服务。
● Glance:提供镜像服务。
● Quantum:提供仪表盘服务。
● Horizon:提供仪表盘服务。
● Swift:提供对象存储服务。
● Cinder:提供块存储服务。
● Heat:提供编排服务。
● Ceilometer:提供计费和监控服务。
● Trove:提供数据库服务。
● Sahara:提供数据处理服务。
图1-19 OpenStack的总体架构