openstack发展历程及其架构简介

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

openstack发展历程及其架构简介
1.0 Openstack介绍
OpenStack既是⼀个社区,也是⼀个项⽬和⼀个开源软件,它提供了⼀个部署云的操作平台或⼯具集。

其宗旨在于,帮助组织运⾏为虚拟计算或存储服务的云,为公有云、私有云,也为⼤云、⼩云提供可扩展的、灵活的云计算。

2.0 Openstack版本历程
2.1 2010.10 Austin
作为OpenStack第⼀个正式版本,Austin主要包含两⼦项⽬,Swift是对象存储模块,Nova是计算模块;带有⼀个简单的控制台,允许⽤户通过web管理计算和存储;带有⼀个部分实现的Image⽂件管理模块,未正式发布。

2.2 2011.2 Bexar
Bexar 在此基础上补充了 Image Service (Glance),它在许多⽅⾯与计算和存储有交集。

1、镜像代表存储在 OpenStack 上的模板虚拟机,⽤于按需快速启动计算实例;
2、Swift增加了对⼤⽂件(⼤于5G)的⽀持;
3、增加了⽀持S3接⼝的中间件;
4、增加了⼀个认证服务中间件Swauth;
5、Nova增加对raw磁盘镜像的⽀持,增加对微软Hyper-V的⽀持;
6、开始了Dashboard控制台的开发。

2.3 2011.4 Cactus
1、Nova增加新的虚拟化技术⽀持,如LXC容器(Linux containers的简称,是⼀种基于容器的操作系统层级的虚拟化技术)、
VMWare/vSphere、ESX/ESXi 4.1;
2、⽀持动态迁移运⾏中的虚机;
3、增加⽀持Lefthand/HP SAN作为卷存储的后端。

2.4 2011.9 Diablo
1、Nova整合了Keystone认证;
2、⽀持KVM的暂停恢复;
3、KVM的块迁移;
4、采⽤了全局防⽕墙规则。

2.5 2012.4 Essex
Essex 的发布增加了两个核⼼项⽬。

1、OpenStack Identity (Keystone) 隔离之前由 Nova 处理的⽤户管理元素;
2、OpenStack Dashboard (Horizon) 的引⼊则标准化和简化了⽤户界⾯(UI),使之同时适⽤于每个租户和 OpenStack 管理⼈员。

2.6 2012.9 Folsom
Folsom 使得版本项⽬数量⼜增加了两个。

1、增加了Cinder块存储,以及Quantum⽹络模块,后来更名为Neutron。

正式发布Quantum项⽬,提供⽹络管理服务;
2、正式发布Cinder项⽬,提供块存储服务;
3、Nova中libvirt驱动增加⽀持以LVM为后端的虚机实例;
4、Xen API增加⽀持动态迁移、块迁移等功能;
5、增加可信计算池功能;
6、卷管理服务抽离成Cinder。

2.7 201
3.4 Grizzly
1、Nova⽀持将分布于不同地理位置的机器组织成的集群划分为⼀个cell(池);
2、⽀持通过libguestfs直接向guest⽂件系统中添加⽂件;
3、通过Glance提供的Image位置URL直接获取Image内容以加速启动;
4、⽀持⽆image条件下启动带块设备的实例;
5、⽀持为虚机实例设置(、磁盘IO、⽹络带宽)配额;
6、Keystone中使⽤PKI签名令牌代替传统的UUID令牌;
7、Quantum中可以根据安全策略对3层和4层的包进⾏过滤;
8、引⼊仍在开发中的load balancer服务;
9、Cinder中⽀持光纤通道连接设备;
10、⽀持LIO做ISCSI的后端。

2.8 201
3.10 Havana
1、正式发布Ceilometer项⽬,进⾏(内部)数据统计,可⽤于监控报警;
2、正式发布Heat项⽬,让应⽤开发者通过模板定义基础架构并⾃动部署;
3、⽹络服务Quantum变更为Neutron;
4、Nove中⽀持在使⽤cell时同⼀cell中虚机的动态迁移;
5、⽀持Docker管理的容器;使⽤Cinder卷时⽀持加密;
6、增加⾃然⽀持GlusterFS;
7、Glance中按组限制对Image的元属性的访问修改;
8、增加使⽤RPC-over-HTTP的注册 API;
9、增加⽀持Sheepdog、Cinder、GridFS做后端存储;
10、Neutron中引⼊⼀种新的边界⽹络防⽕墙服务;
11、可通过VPN服务插件⽀持IPSec VPN;
12、Cinder中⽀持直接使⽤裸盘做存储设备⽆需再创建LVM;
13、新⽀持的⼚商中包含IBM的GPFS。

2.9 2014.4 IceHouse
1、针对集成项⽬(Integrated Project),主要关注每个项⽬的稳定性与成熟度,同时包含新功能以及更好地与平台其他服务相整合;
2、⼀致性的⽤户体验,提⾼测试的门槛,特别是针对存储⽅⾯;
3、对象存储(Swift)项⽬有⼀些⼤的更新,包括可发现性的引⼊和⼀个全新的复制过程(称为s-sync)以提⾼性能;
4、新的块存储功能使OpenStack在异构环境中拥有更好的性能;
5、联合⾝份验证将允许⽤户通过相同认证信息同时访问OpenStack私有云与公有云;
6、新项⽬Trove (DB as a Service)现在已经成为版本中的组成部分,它允许⽤户可以在OpenStack环境中管理关系数据库服务2.10 2014.10 Juno
1、Nova ⽹络功能虚拟化项⽬组在五⽉Atlanta峰会成⽴,新的功能已经在JUNO中逐渐显现;
2、包括救援模式等很多运维层⾯的更新⼯作也落在nova-network中;
3、通过StackForge增加了多个重要的驱动,如⽀持Ironic和Docker;
4、⽀持调度和在线升级;Cinder 块存储添加了⼗种新的存储后端;
5、改进了第三⽅存储系统的测试;Cinder v2 API集成进Nova;
6、块存储在每个开发周期中不断成熟;
7、Neutron ⽀持IPv6和第三⽅驱动,保证⽹络的可靠性和可持续性;
8、API层⾯添加了插件⽀持;⽀持三层⽹络⾼可⽤;
9、⽀持分布式⽹络模式;
10、Swift 存储策略的推出对于对象存储是具有⾥程碑意义的,存储策略给予⽤户更多的控制与性能的提升;
11、⽀持Keystone;Horizon ⽀持部署Apache Hadoop集群;
12、扩展了RBAC系统;
13、Keystone 联邦认证使⽤户可以通过同⼀套认证体系访问私有和共有OpenStack服务;
14、可以配置使⽤多个认证后端;
15、与LDAP的集成更加便捷;
16、Heat 出错后更易于回滚操作和环境清理;
17、可以授权⽆权限⽤户操作;
18、Ceilometer 提⾼性能;
19、⽀持负载均衡、防⽕墙与VPN;
20、Glance 扩展image定义;
21、异步处理进程;
22、可控下载策略;
23、Sahara 应⽤Hadoop和Spark实现⼤数据集群快速搭建与管理。

2.11 2015.4 Kilo
Horizon在K版本除了增强了对新增模块的⽀持,从UE的⾓度也为我们带来了很多新功能裸机服务Ironic完全发布,增加互操作性。

2.12 2015.10 Liberty
在Liberty版本中,更加精细的访问控制和更简洁的管理功能⾮常亮眼。

这些功能直接满⾜了OpenStack运营⼈员的需求。

1、增加了通⽤库应⽤和更有效的配置管理功能;
2、为Heat编排和Neutron⽹络项⽬增加了基于⾓⾊的访问控制(RBAC)。

这些可以帮助运维⼈员更好地调试不同级别的⽹络和编排功能的安全设置和API;更⾯向企业,包括开始对跨⼀系列产品进⾏滚动升级的⽀持,以及对管理性和可扩展性的增强。

3、引⼊了Magum容器管理,⽀持Kubernetes,Mesos和Docker Swarm。

2.13 2016.4 Mitaka
OpenStack的第13个版本,也就是4⽉份最新颁布的⼀版——新版本Mitaka聚焦于可管理性、可扩展性和终端⽤户体验三⽅⾯。

1、重点在⽤户体验上简化了Nova,Keynote的使⽤;
2、使⽤⼀致的API调⽤创建资源;
3、Mitaka版本中可以处理更⼤的负载和更为复杂的横向扩展。

2.14 2016.10 Newton
OpenStack的第14个版本。

推出的新功能包括:
1、Ironic裸机开通服务;
2、Magnum容器编排集群管理器;
3、Kuryr容器组⽹项⽬可将容器、虚拟和物理基础设施⽆缝集成于统⼀控制⾯板;
4、Newton还可解决扩展性和弹性问题;
5、Newton可⼤⼤降低实现架构性和功能性扩展的难度,可实现跨平台、跨地域的向上扩展和向下扩展,从⽽提升OpenStack在搭建各类规模云解决⽅案中的主导作⽤;
6、Newton在⾼可⽤性、适应性以及⾃我修复功能⽅⾯提升显著,⽆论负载需求有多⼤,都可以满⾜运营商对稳定性的要求。

其中,项⽬组件Cinder、Ironic、Neutron以及Trove都可提供增强的⾼可⽤功能;
7、Newton的安全性也得以提升,例如,Keystone提供的升级中包括PCI合规和加密证书。

Cinder增加了对重新录⼊加密⽂件到解密流量的⽀持,反之亦然;
8、Cinder还包含微版本⽀持,可借助集联功能使⽤快照⽅式来删除流量,同时提供备份服务可扩展⾄多个实例;
9、Newton版本显著提升了OpenStack作为单⼀云平台对虚拟化、裸机及容器的管理,并为运营商及应⽤开发者增⾼了易⽤性,令OpenStack的安装、运⾏、变更及维修变得更加便捷和⾃动化;
2.15 2017.02 Ocata
1、新的Nova计算“取代”原有应⽤编程接⼝(简称API),旨在帮助⽤户更为智能地根据应⽤需求分配资源;
2、Cells v2亦作为默认配置以提升Nova可扩展性;
3、OpenStack的Horizon仪表板现在提供新的OS配置UI以实现各keystone间联动,意味着运营⼈员能够在各项OpenStack服务之间检测性能问题;
4、Keystone⾝份联动机制如今能够⾃动动态配置项⽬,并在验证成功后为联动⽤户分配⾓⾊;
5、Ironic裸机服务迎来⽹络与驱动程序增强;
6、Telemetry各项⽬实现性能与CPU使⽤量改进:如今⽤户可利⽤Ceilometer配合Gnocchi存储引擎每秒存储数百万条指标;
7、Cinder块存储服务中的主动/主动⾼可⽤性如今可通过驱动程序实现;
8、Congress治理框架现在迎来政策语⾔增强,旨在实现⽹络地址操作以实现更好的⽹络与安全性治理。

9、Ocata亦在⽹络层对基于容器的应⽤框架提供更为出⾊的⽀持能⼒;
10、在最新版本当中,⼤家亦可对OpenStack各服务进⾏容器化。

这意味着我们将能够更轻松地将OpenStack作为微服务应⽤进⾏部署与管理。

11、OpenStack还引⼊了新的基于容器应⽤框架及部署⼯具。

其中具体包括⽤于实现OpenStack服务容器化的Kolla、⽤于桥接容器⽹络与存储资源的Kuryr以及⽤于容器管理的Zun;
12、新引⼊的“nova-status upgrade check”命令允许运营⼈员测试其部署的准备情况,从⽽使其了解其是否能够安全升级⾄Ocata。

如果⽆法安全升级,该命令将提⽰其需要解决相应问题后再⾏升级。

3.0 openstack的主要模块介绍
OpenStack 是⾯向 Iaas 服务的,即基础架构云平台。

该平台的可以⽐喻成⼀个⽣产虚拟化基础架构的车间。

这个车间主要⽣产 a. 虚拟机实例,b. 虚拟存储块,c. 虚拟⽹段等云服务组件,⽽每种服务组件都有相应的“车间主任”进⾏管理、调度和分配,这⾥的“车间主任”就是OpenStack 云平台的管理模块,下⾯对 OpenStack 的管理模块进⾏介绍:
3.1 Identify(Keystone)
为OpenStack其它⼏个模块提供认证服务,整个keystone其实就是在数据库中建⽴⽤户(user)、⾓⾊(role)、Tenant、服务(service)、endpoint以及其相互对应关系。

Tenant在之前的版本中叫做Project,Tenant是⼀个独⽴的资源容器。

每个Tenant都可以定义独⽴的VLAN, volumes, instances, images, keys, users等。

服务指的是OpenStack所提供的那⼏种服务(network, volume, image, identify, compute, swift)。

endpoint是指各服务的内部、外部及管理接⼝址(REST API)。

这个模块可以看做是云系统车间的安全部门。

3.2 Compute(Nova)
这个模块很重要,可以说是 OpenStack 的核⼼模块之⼀,以⾄于在 OpenStack 的初期版本⾥⼤部分的云系统管理功能都是由该模块负责管理的,只不过后来为了减轻该“车间主任”的压⼒,也便于功能分配管理,才把虚拟存储、⽹络等部分分离出来,⽽使该模块主要负责云虚拟机实例(Compute 或 Instance) 的⽣成、监测、终⽌等管理功能。

它由nova-compute模块通过libvirt、XenAPI等管理hypervisor,从⽽管理虚机,此外它还通过nova-api服务向外提供如EC2兼容、管控功能等的接⼝,通过nova-scheduler模块提供虚机调研逻辑等;这些模块间的通信全部通过消息队列完成。

3.3 Image(Glance)
提供云虚拟机上的服务镜像(Image)功能,该模块可看成车间⾥的模具⽣产部门,该模具最基本的使⽤⽅式就是在为云虚拟机实例提供安装操作系统的模式,⽐如 RedHat Linux、Ubuntu、Windows 等。

同时云服务使⽤者也可以在已经⽣成和个性化安装后的云虚拟机实例来⽣成⾃定义的镜像。

这样以后就可以根据该⾃定义镜像直接⽣成所需的虚拟机实例。

3.4 Network(Neutron)
提供 OpenStack 虚拟⽹络服务,也是 OpenStack 重要的核⼼模块之⼀,该模块最开始是 Nova 的⼀部分,叫 nova-network,后来从Nova 中分离出来,开始名字为 Quantum,后来由于商业名权的原因改为了 Neutron。

该模块之所以重要是因为如果没有虚拟⽹络服
务,OpenStack 就变为单纯提供虚拟机实例和虚拟存储服务的平台,这就违背了提供分布式虚拟服务的云计算核⼼价值。

该模块不仅提供基本的创建⼦⽹、路由和为虚拟机实例分配 IP 地址功能,还提供了 a. 同时⽀持多种物理⽹络类型,⽀持 Linux Bridge、Hyper-V 和 OVS bridge 计算节点共存;b. ⽀持防⽕墙服务;c. ⽀持虚拟⽹络中节点间 VPN 服务;d. SDN 实现完善和提⾼。

在OpenStack的⽹络管理流程中,通常需要经过以下⼏个步骤:
1.创建⼀个⽹络;
2.创建⼀个⼦⽹;
3.启动⼀个虚机,将⼀块⽹卡对接到指定的⽹络上;
4.删除虚机;
5.删除⽹络端⼝;
6.删除⽹络;
3.5 Block Storage(Cinder)
提供 OpenStack 存储块(Volume)服务,该管理模块原来也为 Nova 的⼀部分,即 Nova-volume,后来从 Folsom 版本开始使⽤ Cinder 来分离出块存储服务。

具体地说 Cinder 是云存储服务的调度监控模块,它需要与如 NFS、Ceph 等⽹络⽂件系统配合使⽤。

3.6 Dashboard(Horizon)
为 OpenStack 提供交互式界⾯的 UI 组件。

3.7 Object Storage(Swift)
对象存储,存储的是⼀些资源⽂件,如图⽚、代码等⽂件。

对象存储服务是OpenStack最早期的两个服务之⼀(另⼀个是计算服务),在OpenStack平台中,任何的数据都是⼀个对象。

以上是 OpenStack 的基本组件,通过这些组件就可以搭建⼀套基本的云计算服务平台,如果再加⼊⽤于 OpenStack 系统资源监控的Ceilometer、云系统部署⽤的 Heat、以及⼤数据部署的Sahara,该云计算平台则会更加完善。

4.0 Openstack概念架构图
先看 OpenStack 官⽹上的该云系统的概念图,该概念图展⽰了 OpenStack 云系统上各模块是如何协同⼯作的以及⼯作流程,这使我们对OpenStack 各组件的逻辑概念有了先导的作⽤。

之后我们通过各组件的逻辑概念再逐步深⼊了解 OpenStack 的逻辑架构
在制定好的云系统平台上,⽤户在经 KeyStone 模块授权后(Provide Auth),通过 Horizon 或 RestAPI 模式创建虚拟机服务。

创建过程包括了利⽤ Nova 模块创建虚拟机实例(VM Provision),该 VM 采⽤了 Glance 模块提供的镜像服务(Provide Image),然后⽤ Neutron 模块为新建的 VM 分配 IP 地址,把其纳⼊到虚拟⽹络中(Provide network connectivity),之后再通过 Cinder 模块创建的 Volume 为 VM 挂载存储块。

整个过程都在 Cellometer 模块的资源监控下(Monitors),Cinder 产⽣的 Volume 和 Glance 提供的 Image 可以通过 Swift 的对象存储机制进⾏保存。

通过以上解析我们可以看到 OpenStack 云平台服务的提供主要是依靠 Nova、Glance、Cinder 和 Neutron 四个核⼼模块完成的,相对四个辅助模块 Horizon、Cellometer、Keystone、Swift 提供的访问、监控、权限和对象存储功能
5.0 openstack逻辑架构图
5.1 Compute(Nova)模块详解
nova-api :
起到Cloud Controller的作⽤,主要为所有的API查询提供了⼀个接⼝(⽐如Openstack API ,Amazon EC2 API),引发多数业务流程的活动(如运⾏⼀个实例),并实施⼀些政策(主要是配额检查)。

nova-schedule :
负责从nova-queue(消息队列)⾥取得虚拟实例请求并通过算法决定该请求应该在那台主机上运⾏,即起到调度器(Scheduler)的作⽤。

schedule算法可以由我们指定,⽬前有Simple (最少加载主机),chancd(随机主机分配) ,zone(可⽤区域内的随机节点)等算法。

nova-compute:
是⼀个⾮常重要的守护进程,负责创建和终⽌虚拟机实例,即管理着虚拟机实例的⽣命周期。

该模块内部⾮常复杂,基本原理是简单的,就是接受来⾃队列的动作然后通过运⾏⼀系列命令执⾏相应的系统操作(如启动⼀个KVM实例),并且更新数据库的状态。

Queue:
消息队列,为各个模块之间的通信提供起到⼀个集线器的作⽤,即数据交换中⼼,nova各个组建之间的通信⼏乎都是靠它进⾏的。

当前的Queue是采⽤实现的,理论上是可以采⽤任何的基于python 的AMPQ message queue,它和database⼀起为各个守护进程之间传递消息。

SQL database:
存储云基础设施构建时和运⾏时状态。

包括可⽤的实例类型,正在使⽤的实例类型,可⽤的⽹络和项⽬。

理论上,OpenStack Compute是⽀持所有基于 SQL-Alchemy的数据库,但⽬前⼴泛使⽤的数据库主要是Sqlite3,Mysql,PostgreSQL。

eg:
为了看看nova是如何⼯作的,我们可以以启动⼀个实例为例来进⾏说明,因为启动⼀个新的instance涉及到很多openstack nova⾥⾯的组件共同协作。

其中:
API :处理客户端的请求,并且转发到 Queue和Database中。

Scheduler:选择⼀个host去执⾏命令
nova-compute :启动和停⽌实例,附加和删除卷等操作
nova-network:管理⽹络资源,分配固定IP。

5.2 Image(Glance)模块详解
创建⼀个虚拟机实例的过程如下:
API:
例如我们输⼊⼀个命令:euca-run-instances -k test -t m1.tiny ami-tiny 它会执⾏以下操作:
查看这种类型的instance是否达到最⼤值,然后给scheduler发送⼀个消息(实际上是发送到Queue中)去运⾏这个实例。

Schedule:
调度器接收到了消息队列Queue中API发来的消息,然后根据事先设定好的调度规则,选择好⼀个host,之后,这个instance会在这个host上创建。

Compute:
真正去创建⼀个instance的操作是由Compute完成的,⽽这个过程中computer组件与Glance密不可分,如图所⽰:
从上图我们可以看出,通过Glance,Opentack的3个模块被链接成了⼀个整体,Glance为Nova提供镜像的查找操作,⽽Swift⼜为Glance提供实际的存储服务,Swift可以看作是Glacne存储接⼝的⼀个具体实现。

glance-api:
主要是⽤来接受各种api调⽤请求,并提供相应的操作。

glacne-registry:
⽤来和MySQL数据库进⾏交互,存储或者获取镜像的元数据,注意, Swift在⾃⼰的Storage Server中是不保存元数据的,这⼉的元数据是指保存在MySQL数据库中的关于镜像的⼀些信息,这个元数据是属于Glance的。

image store:
也就是图中的”Swift of S3″,是⼀个存储接⼝,通过接⼝,glance可以获取镜像,image不仅仅⽀持OpenStack⾃⼰的Swift格式的镜像,也同时⽀持Amazon S3等其他的镜像。

5.3 Block Storage(Cinder)
主要功能:管理所有块存储设备,为VM服务。

cinder-api处理发送过来的请求,处理结果发送到rabbit MQ,通过消息中间件把所有请求发送到cinder-scheduler,通过调度器决定存储到哪⾥,并且创建VM,cinder-volume管理存储模块的⽣命周期。

5.4 Network(Neutron)
主要功能:为云计算提供虚拟的⽹络功能,为每个不同的租户建⽴独⽴的⽹路环境。

三种不同的⽹络模式(Flat模式 Flat DHCP模式,Vlan模式)
5.5 Object Storage(Swift)
account-->container-->Object 某个账户下的某个容器的某个对象,可以通过HTTP(S),Object API,S3进⾏存取。

5.6 Identify(Keystone)
⽤户⾝份认证(Idenity):
user:⽤户(租户下有很多⽤户,验证⽅式⽤户名密码,API keys等)
Tenant:租户(可以访问资源的集合)
role:⾓⾊ (⼀组⽤户可以访问资源的权限)
访问请求控制(Token):
Service(nova,glance,swift等服务需要在keystone上注册)
Endpoint(service暴露出来的访问地址)
Token(访问资源的令牌,具有时效性)
注册表服务(Catalog):
openstack服务需要注册到keystone注册表中
⾝份验证引擎(Policy):
决定⽤户有哪些访问控制权限
5.7 Dashboard(Horizon)
该项⽬是⼀个可选的项⽬,主要是为开发者等提供API(两种⽤户云管理员,云⽤户)。

5.8 Ceilometer
该项⽬的⽬标是计量 Metering ⽅⾯,为上层的计费、结算或者监控应⽤提供统⼀的资源使⽤数据收集功能。

5.8.1 Ceilometer的主要概念
Meter:计量项
Sample:某Resource 某时刻某 Meter 的值
Statistics:某区间 Samples 的聚合值
Alarm:某区间 Statistics 满⾜给定条件后发出的告警
5.8.1.1 Meter
资源使⽤的某个计量项,它的属性包括:名称(name)、单位(unit)、类型(cumulative:累计值,delta:变化值、gauge:离散或者波动值)以及对应的资源属性等。

(1)在这⾥可以看到所有的 Ceilometer meter 列表和说明。

(2)使⽤CLI “ceilometer meter-list” 来获取所有的meters。

例如:
s1@controller:~$ ceilometer meter-list
+---------------------+------------+----------+--------------------------------------+----------------------------------+----------------------------------+
| Name | Type | Unit | Resource ID | User ID | Project ID | +---------------------+------------+----------+--------------------------------------+----------------------------------+----------------------------------+
| cpu | cumulative | ns | 440e4e2c-f255-43b3-8150-c6bc6b061ef7 | 1dc0db32a936496ebfc50be54924a7cc |
fa2046aaead44a698de8268f94759fc1 |
| cpu_util | gauge | % | 440e4e2c-f255-43b3-8150-c6bc6b061ef7 | 1dc0db32a936496ebfc50be54924a7cc |
fa2046aaead44a698de8268f94759fc1 |
| cpu_util | gauge | % | 49618cae-dd28-41a0-ae97-e98899d717eb | 8f4f734443674afcbbb57b9909d5a07f |
d6feddb5279a42f4854b93a729470448 |
| image | gauge | image | 1e7b0a5a-7b78-4673-8d56-3abff7b491ae | None |
fa2046aaead44a698de8268f94759fc1 |
ps:
(a)meter列表结果和被计量对象关联。

该CLI只列出的当前存在的计量对象的meter列表。

(b)meter列表结果和samples关联。

没有 samples的meter不出现在列表中。

5.8.1.2 Sample
某时刻某个 resource 的某个 meter 的值。

Sample 的收集有区间概念,即收集数据的时间间隔。

它的属性出了meter属性外,还有timestampe(采样时间)和 Volume (采样值)。

5.8.1.3 Statistics
⼀个时间段(Period)内的 samples 聚合值,包括计数(Count)、最⼤(Max)、最⼩(Min)、平均(Avg)、求和(Sum)等。

例如:
这⾥的Period表⽰当前该查询的区间,使⽤ -p 参数指定;Duration 表⽰ samples 的区间。

这⾥的Period表⽰当前该查询的区间,使⽤ -p 参数指定;Duration 表⽰ samples 的区间。

需要注意的是,你可以使⽤ ”-q“ 指定统计的⽬标范围。

当不指定的时候,表⽰对当前租户(tenant)内的所有虚机的 sample 做统计。

⽐如指定 resource_id 来只统计某⼀个虚机: ceilometer statistics -m cpu_util -p 60 -q resource_id=d7ce68d4-3d58-404c-85a6-
f9c19fe9d96c。

5.8.1.4 Alarm
Alarm 包括 threshold alarm (阈值告警)和 combination (组合告警)两种类型。

1)Threshold alarm 根据监控指标的阈值去判断alarm的状态,它只是针对某⼀个监控指标建⽴alarm。

它包括⼏个要素:
a.⼀个静态阈值和⽐较⽅法(a static threshold value & comparison operator)
b.指定的 meter statistic (against which a selected meter statistic is compared)
c.⽐较的时间窗(over an evaluation window of configurable length into the recent past.)
2)Combination alarm 根据多个alarm的状态来判断⾃⼰的状态的,多个alarm之间是or/and的关系,这相当于是对多个监控指标建⽴了⼀个alarm
Alarm的状态:
a.ALARM (告警状态):
b.OK (数据充⾜,未告警):
b.Insufficient Data (默认状态 - 数据不⾜):
5.8.3 Ceilometer的数据处理
Ceilometer 的功能就是对上⾯各种概念的对象的处理:
Collect-->Transform-->Publish-->Store-->Read。

相关文档
最新文档