OpenStack简介
OpenStack版本发展
OpenStack版本系列字母以A~Z命名,从2010年发布的第一个版本"Austin"到当前稳定版本"ocata"一共经历了15个版本,第16个版本"pike"正在开发中。
这七年中OpenStack在不断的更新迭代,虽然还未完全歩入商用化,但是已经受到很多厂商的青睐,很多厂商基于OpenStack做公有云或私有云的云计算操作系统。容器的出现为OpenStack的发展又加了一管血,OpenStack与容器协作可以有效提高开发团队的速度和效率,尤其是在OpenStack私有云环境中。随着容器与OpenStack结合,容器的应用范围将会进一步扩大,另一方面容器也将会对OpenStack市场深化产生助推作用。
OpenStack架构
OpenStack 是一个开源云计算操作系统,通过一个数据中心管理大量的计算、存储、网络资源。管理员通过dashboard高效地管控这些资源,用户则通过web接口使用这些资源。
OpenStack支持多种类型的云环境,试图打造一个部署简单、操作灵活、可大规模扩展、标准统一的云计算管理平台。OpenStack通过各种各样的服务灵活地提供基础设施即服务(IaaS)解决方案,并且每种服务都提供了API接口以便更加灵活的集成。OpenStack的服务主要包括:
- dashboard
a) horizon:提供了一个基于web的自服务门户,与OpenStack底层服务交互,用户无需通过命令,直接在dashboard界面上就能够完成创建实例、分配IP地址以及配置访问控制等操作。
- 计算服务
a) nova:在OpenStack环境中计算实例的生命周期管理。按需响应完成生成、调度、回收虚拟机等操作。除了管理虚拟机外还可以管理网络,如分配网络地址、vlan和隔离等。
- 网络服务
a) neutron:neutron之前被称为quantum,主要负责为其它OpenStack服务提供网络连接即服务,neutron基于插件架构因此可以支持众多的网络提供商和技术。基于neutron服务,用户可以在openstack上建立负载平衡、VPN、route、配置网络地址和网段等。
- 存储服务:
a) 对象存储swift: swift的实现方式像是一个文件服务器需要挂载目录,在这样的方式下,swift将对象和文件写到多个存储装置中。swift上存储的一般是图片、文字和多媒体等,基于数据复制和可扩展架构的swift具有很高的容错性,当一台存储装置故障时,其他存储装置中仍然保留着资料。
b) 块存储cinder:为运行实例而提供的持久性块存储。可插拔驱动的架构有助于创建和管理块存储设备。管理员可以通过cinder创建volume、创建虚拟机快照等。
- 共享服务:
a) identity(keystone):为其他OpenStack服务提供认证和授权服务,为所有的OpenStack服务提供一个端点目录。keystone本身无法提供身份验证,但是可以集成各种其他目录服务实现多种形式的身份验证。
b) image(glance):存储和检索虚拟机磁盘镜像,OpenStack计算服务会在部署实例时使用glance服务。
c) telemetry:为OpenStack云的计费、基准、扩展性以及统计等目的提供监测和计量。
- 高层次服务:
a) 编排:Orchestration服务支持多样化的综合的云应用,通过调用OpenStack-native REST API和CloudFormation-compatible Query API,支持:term:HOT <Heat Orchestration Template (HOT)>格式模板或者AWS CloudFormation格式模板。
OpenStack架构图如下所示:
- 位于最上面的dashboard是图形用户界面,底层服务提供ui接口给dashboard,dashboard可以与底层服务交互从而为用户提供web自服务。
- network不仅向dashboard提供ui,还需要为compute服务提供网络连接。
- compute被认为是OpenStack的核心,负责处理工作负载流程。compute服务不仅依赖network服务为其提供网络连接,还需要block存储服务提供volumes。此外compute服务会将镜像存储在镜像服务中。
- image服务负责存储和检索虚拟机磁盘镜像,compute服务会将镜像存储在image中,并且需要依赖image中的镜像部署vm。
- image将disk文件存储在object存储中,vm通过restful API将对象数据存储在swift中,cinder也可以将volumes备份到swift中。
- block存储为compute服务提供volumes, 在VM看来block存储提供的volume就像是虚拟硬盘,可以用来存储数据
- identity为所有服务提供认证和权限管理,简而言之,OpenStack上的每一个操作都需要通过keystone的审核。