它最早由美国国家航空航天局(NASA)和 Rackspace 在 2010 年合做研发,如今参与的人员和组织聚集了来自 100 多个国家的超过 9500 名的我的和 850 多个世界上赫赫有名的企业,如 NASA、谷歌、惠普、Intel、IBM、微软等。html
目前包括 6 个核心组件(Nova、Neutron、Swift、Cinder、Keystone、Glance)和 14 个可选组件,每一个组件包含若干个服务,后续版本中组件分类及数量均可能会发生变化,如图 1 所示。数据库
参考swift
openstack主要功能模块api
A.Horizon-UI服务:提供ui层的功能,主要将用户或者运维人员的操做转化为对api的调用。restful
B.keystone: 身份认证模块。网络
基本概念:运维
user 用户 租户:tenent 用户可以访问资源的集合 角色:表明一组用户能够访问的权限 服务:nova,glance,swift,这些服务都会在keystone上注册,当用户访问这些服务后就会进行权限控制。 endpoint: 服务访问的地址,若是访问一个服务必须知道其endpoint token: 访问资源的令牌
keystone提供的服务:ide
identity: 用户认证服务 token服务:生成token而且验证token是否有效 catalog: 提供端点发现服务的注册表 policy: 基于规则的身份验证引擎
C.Nova 计算组件ui
OpenStack的核心服务:spa
实例生命周期管理(vm,裸机,容器) 计算资源的管理。 向外提供restful风格的api.
包含nova-api,nova-scheduler,nova-comput模块
nova-api: 负责对外提供api
nova-scheduler: 负责决定vm建立在哪台具体的物理机上。
nova-compute: 负责vm的具体建立以及资源的分配等等,不提供虚拟化功能,但支持kvm,xen等等。
三个模块经过mq进行消息解耦。nova-api->nova-scheduler->nova-compute.
D.Glance 镜像服务组件
提供镜像的存储,搜索和查询等的服务,主要为nova提供服务。
依赖存储和数据库服务。存储提供镜像的物理存储,数据库记录镜像的元信息。
E.swift 对象存储服务
高可用的对象存储服务。
account->container->object
F.cinder 块存储服务
块存储服务,管理全部块存储服务,块存储须要挂靠在vm上。
cinder request->cinder api->rabbit mq -> cinder scheduler ——> cinder volume
G.neutron
提供云环境下的虚拟网络功能
为每个租户提供独立的网络环境
主要有三种模式:
flat模式
flat dhcp模式
vlan 模式:为每个租户设置一个虚拟子网,用户能够本身设置本身的私有ip。