OpenStack对象存储监控(OpenStack Object Storage Monitoring)

蒙奇
2023-12-01

翻译自OpenStack1.8.0官方文档第六章,网址:

http://docs.openstack.org/trunk/openstack-object-storage/admin/content/ch_introduction-to-openstack-object-storage-monitoring.html

目录:

Swfit Recon

Swift-Informant

Statsdlog

Swift StatsD Logging

摘抄自Darrell Bishop的博客

OpenStack对象存储监控集群是一个十分复杂的怪物,有很多守护进程在不同的结点同时运行。正式因为有这些“运动的部分”才能清楚的告诉集群运行的情况如何。监控和记录服务器级别的度量,比如CPU使用率、负载、内存消耗,磁盘使用情况和利用率等是必要的,但不是充分的。我们需要知道每台服务器上的不同的守护进程都在做什么。node8上对象复制的体积?使用的多长时间,有没有错误,如果有的话,何时发生。

     在这样一个复杂的生态系统中,毫无疑问有多种途径获得这类问题的答案。让我们来看看OpenStack对象存储监控的一些现有的方法

Swift Recon

     Swift Recon中间件可以提供一般的机器统计(平均负载,插座统计 的/ proc / meminfo中的内容等等),以及SWIFT具体指标:

  • 每个Ring文件的MD5校验和
  • 最新的对象复制时间。
  • 统计每一个隔绝文件类型:account、container、object
  • 统计磁盘上的“async_pendings”
     Swift Recon是一个安装在对象服务器管道上的中间件,并且采用一个必须的选项:一个本地的缓存目录。追踪async_pendings每个服务器都需要一个另外的cron job。数据访问对象服务器发送HTTP请求,直接或通过使用命令行工具迅速重建。

     还有一些不错的对象存储集群统计,但是大多数服务器度量与已有的服务器监控系统重叠,将Swift指定度量纳入系统中,他们必须被轮询。Swift实际充当一个度量收集者的中间人。实际上将度量反馈给你的统计系统的是collectd、gmond等,他们可能已经在存储结点上运行了。因此可以说Swfit Recon就是收集度量本身。

     Swift Recon即将有一个更新,将会扩大对account和container server的支持。auditors, replicators和updaters都将可以报告统计数据,但只限于最近期的运行。

Swift-Informant

      Florian Hines 开发了Swift-Informant中间件用来实现对象存储客户端请求的实时可视性。它位于proxy server的管道中,在每次对proxy server的请求后都发送三个度量给StatsD服务器: 

  • 计数器增量度量,像obj.GET.200或 cont.PUT.404
  • 时间度量数据,像acct.GET.200或obj.GET.200.【README上说的指标看像duration.acct.GET.200,但我没有看到在代码中的“持续时间”。我不知道Etsy的服务器上做什么,但我们的StatsD服务器将定时度量分为5个细分指标,所以它可能为编码工作。第一个度量上面会变成acct.GET.200.loweracct.GET.200.upperacct.GET.200.mean acct.GET.200.upper_90acct.GET.200.count 】
  • 计数器增加传输的字节数为度量单位,如tfer.obj.PUT.201
     service clients的时间度量给人一种质量好的感觉,以及获取请求服务器类型,命令和响应代码的不同排列。Swift-Informant还要求不改变核心对象存储代码,因为它被作为中间件来实现的。然而,正因为如此,它让你不能弄清楚代理服务器集群过去的运作。如果一个存储节点由于某些原因响应降低,你只看到一些您的要求是坏的,无论是作为高延迟或错误状态码。你不会知道究竟为什么。也许问题的容器服务器是一个很好的节点上,但对象服务器是不同的,表现不佳的节点。

未完待续。。。


 类似资料: