OpenStack架构
openstack模块简介
openstack主要由七个核心组建组成,分别为计算(Compute),对象存储(Object Storage),认证(Identity),用户界面(Dashboard),块存储(Block Storage),网络(Network)和镜像服务(Image Service),而每个组建又是多个服务的集合。
Compute(Nova)
Copmute的代号为Nova,它根据需求提供虚拟机服务,比如创建虚拟机或者对虚拟机做热迁移。
Nova主要分为一下几个组件:
- API Server (nova-api)
- Message Queue (rabbit-mq server)
- Compute Workers (nova-compute)
- Network Controller (nova-network)
- Volume Worker (nova-volume)
- Scheduler (nova-scheduler)
Nova在OpenStack中的位置如下图:
详细的关于Nova的内容参见 OpenStack-Nova
Object Storage(Swift)
Object Storage的项目代号为Swift,他允许存储或检索对象,也可以认为他允许存储或检索文件,它能以低成本的方式通过RESTful API管理大量的无结构数据。
Swift主要由一下一系列进程或者服务组成:
- proxy-server
- account-server
- container-server
- object-server
Swift典型部署结构
Swift对象存储模型
想要深入了解,点击:Swift入门 或者Swift资料整理及CAP原理 或者 Swift 原理、架构与 API 介绍
Identity(Keystone)
Identity的项目代号为Keystone,为所有OpenStack服务提供身份验证和授权,跟踪用户以及他们的权限,提供一个可用的服务以及API的列表.
Keystone构成比较简单,只包含接收前台请求的Keystone API和后台的Keystone-db,但是却在整个系统中占据这至关重要的位置。
keystone在openstack的位置如下:
详细内容参见:openstack keystone整体架构与功能
Dashboard(Horizon)
Dashboard的项目代号是Horizon,他为所有OpenStack的服务提供一个模块化的基于Django的界面,通过这个界面,不论是最终用户还是运维管理人员都可以完成大多数的操作,比如启动虚拟机,分配IP地址,动态迁移等。
详见:openstack horizon小结
Block Storage(Cinder)
Block Storage的项目代号为Cinder,提供块存储服务。
Cinder由一下几个部分组成:
- cinder-api
- cinder-volume
- cinder-db
- volumeprovider
- cinder-scheduler
Network(Neutron)
Network的项目代号为Neutron,用于提供网络连接服务,允许用户创建自己的虚拟网络并连接各种网络设备接口。
详细内容参见:OpenStack 网络-Neutron 初探
Image Service(Glance)
Image Service的项目代号为Glance,他是Openstack的镜像服务组件,相对于其他组件来说,Glance功能比较单一代码量也比较的少。
Glance由glance-api,glance-registry和glance-db三个组件组成。
关于Glance详细参见:OpenStack Glance简介