又被称为 OpenStack Compute,主要作用是控制虚拟机的创建,以及改变它的容量和配置,还可以做虚拟机的销毁,虚拟机的整个生命周期都是由 Nova 来控制的;
Nova的部署运行一般有两种情况:一类是 Nova 作为 Controller 节点去运行,Controller 节点是用来控制其它的一些计算节点的;另外一类节点就是 Compute 节点,是计算节点,上面是运行实际的虚拟机的;
那么有什么区别呢?
Nova Cell 的作用是级联
控制虚拟机的生命周期
控制节点:Scheduler(决定虚拟机的启动位置)、Conductor(对所有的计算节点进行统一管理)、Nova Cell(级联)
计算节点:对虚拟机进行控制
Cinder 组件主要的用途是提供块存储服务,最核心的两个部分是Scheduler 和 Cinder Volume。有读写存储服务请求的时候,Schduler决定通过哪个Cinder Volume进行读取操作,Cinder Volume是实际控制存储的设备
有一个非常火的一个概念叫作SDN,软件定义网络,在OpenStack里边的一个实现,Neutron 有一个很大的特点就是提供Plugin模块,这个是用户可以自己去写的。
Swift 是一个比较有趣的组件,从OpenStack的诞生之初就已经有Swift的这个项目了,但是它发展到现在还是比较独立的,和其他组件的交互关系比较少,一个相对独立的发展套路,美国有一个公司叫作SwiftStack专门用Swift来做的一个初创公司,Swift是提供对象存储服务的 ,提供一个类似于像亚马逊S3或者像国内的七牛这样的一个存储服务。
其他的组件如果要用到对象存储的时候,就去Swift里边去写数据,读数据;
Swift可以利用Keystone来做认证
用Swift最多的一个组件,主要是用Swift来存虚拟机的镜像、快照等等这样一些东西
主要是为各个组件提供用户的认证、建权等等这样的一些服务
图形界面
是用来做各个服务的编排的
把Hadoop能够放在OpenStack上去运行的一个组件
OpenStack三大核心组件(网络,计算,存储)
概念架构图
逻辑架构图
1.Horizon(UI模块)
页面调用api(两种用户云管理员,云用户)
2.keystone(身份服务模块)
1)用户身份认证(Idemity)
user:用户(租户下有很多用户,验证方式用户名密码,API keys等)
kenant:租户(可以访问资源的集合)
role:角色 (一组用户可以访问资源的权限)
2)访问请求控制(Token)
Service(nova,glance,swift等服务需要在keystone上注册)
Endpoint(service暴露出来的访问地址)
Token(访问资源的令牌,具有时效性)
3)注册表服务(Catalog)
openstack服务需要注册到keystone注册表中
4)身份验证引擎(Policy)
决定用户有哪些访问控制权限
易购环境的集成(Key Value Store,MemcachedSQL,PAM,LDAP)
3.Nova(计算服务组件)
openstack核心组件,核心服务包括:实例生命周期的管理(虚拟机),计算资源的管理,对外提供Restful API。
Nova组件主要有三个模块构成(nova-api,nova-scheduler,nova-compute),
nova-api在表示层主要负责处理外部请求,nova-scheduler在逻辑控制层,主要负责选择那个主机创建VM,nova-compute虚拟机创建和资源分配,不提供虚拟化功能,但是支持kvm,LXC,xen等。
三个组件通过rabbit MQ进行消息传递。
4.Glance(镜像服务组件)
主要功能:提供虚拟机镜像的存储,查询和检索功能,为nova进行服务,依赖于存储服务(存储镜像本身)和数据库服务(存储镜像相关的数据)。
5.Swift(对象存储服务模块)
openstack核心组件,主要功能:高可用分布式对象存储服务,特点是无限和扩展没有单点故障。
account-->container-->Object 某个账户下的某个容器的某个对象,可以通过HTTP(S),Object API,S3进行存取。
6.Cinder(块存储服务模块)
主要功能:管理所有块存储设备,为VM服务。
cinder-api处理发送过来的请求,处理结果发送到rabbit MQ,通过消息中间件把所有请求发送到cinder-scheduler,通过调度器决定存储到哪里,并且创建VM,cinder-volume管理存储模块的生命周期。
7.Neutorn(网络服务组件)
主要功能:为云计算提供虚拟的网络功能,为每个不同的租户建立独立的网路环境。
三种不同的网络模式(Flat模式 Flat DHCP模式,Vlan模式)
8.Ceilometer(监控服务组件)
Ceilometer 的目标是 计量 Metering 方面,为上层的计费、结算或者监控应用提供统一的资源使用数据收集功能。
核心组件间的关系
访问控制流程
---------------------------------------------------------------------------------------------------------