1 基本介绍
OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单,可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成。OpenStack云计算平台,帮助服务商业和企业内部实现类似于Amazon EC2 和 S3 的云基础架构服务(Infrastructure as a Service,IaaS)。OpenStack包含两个主要模块:Nova和Swift,前者是NASA开发的虚拟服务器部署和业务计算模块;后者是Rackspace开发的分部署云存储模块,两者可以一起用,也可以分开单独用。OpenStack除了有RackStack和NASA的大力支持外,还有包括Dell、Citrix、Cisco、Canonical等重量级公司的贡献和支持,发展速度非常快,有取代另一个业界领先的开源云平台Eucalyptus的态势。
2 体系结构
下图展示了OpenStack服务之间的关系,OpenStack由几个独立的部分组成,成为OpenStack服务。所有服务都是通过身份服务进行身份验证。各个服务通过公共API相互交互,除非需要特权管理员命令。
在内部,OpenStack服务由几个进程组成,所有服务至少有一个API进程,它监听API请求,预处理它们并将它们传递给其他部分。除身份服务外,实际工作由不同的流程完成。对一个服务进程之间的通信,使用AMQP消息代理。服务的状态存储在数据库中。在部署和配置OpenStack云时,您可以选择多种消息代理和数据库解决方案,例如RabbitMQ,MySQL、MariaDB和SQLite。
用户可以通过Horizon Dashboard实现基于Web用户界面,命令行客户端以及通过浏览器插件或curl工具法术API请求来访问OpenStack。对于应用程序,可以使用多SDK。最终,所有这些访问方法都会向各种OpenStack服务发出REST API调用。