提交 b7dd2340 编写于 作者: N nicolargo

Glances shows mdadm RAID0 as degraded when chunksize=128k and the array isn't degraded. #1299

上级 00d9f6ae
......@@ -63,6 +63,7 @@ Bugs corrected:
* Arch linux package (2.11.1-2) psutil (v5.4.1): RuntimeWarning: ignoring OSError #1203
* Glances crash with extended process stats #1283
* Terminal window stuck at the last accessed *protected* server #1275
* Glances shows mdadm RAID0 as degraded when chunksize=128k and the array isn't degraded. #1299
Backward-incompatible changes:
......@@ -70,7 +71,7 @@ Backward-incompatible changes:
* Support for psutil < 5.3.0 has been dropped
* Minimum supported Docker API version is now 1.21 (Docker plugins)
* Support for InfluxDB < 0.9 is deprecated (InfluxDB exporter)
* Zeroconf lib should be pinned to 0.19.1 for Python 2.x
* Zeroconf lib should be pinned to 0.19.1 for Python 2.x
* --disable-<plugin> no longer available (use --disable-plugin <plugin>)
* --export-<exporter> no longer available (use --export <exporter>)
......
......@@ -60,8 +60,7 @@ class Plugin(GlancesPlugin):
# Update stats using the PyMDstat lib (https://github.com/nicolargo/pymdstat)
try:
# Just for test
# mds = MdStat(path='~/dev/pymdstat/tests/mdstat.02')
# Note: replace 02 by 02 ==> 09
# mds = MdStat(path='/home/nicolargo/dev/pymdstat/tests/mdstat.10')
mds = MdStat()
stats = mds.get_stats()['arrays']
except Exception as e:
......@@ -104,7 +103,10 @@ class Plugin(GlancesPlugin):
# New line
ret.append(self.curse_new_line())
# Display the current status
status = self.raid_alert(self.stats[array]['status'], self.stats[array]['used'], self.stats[array]['available'])
status = self.raid_alert(self.stats[array]['status'],
self.stats[array]['used'],
self.stats[array]['available'],
self.stats[array]['type'])
# Data: RAID type name | disk used | disk available
array_type = self.stats[array]['type'].upper() if self.stats[array]['type'] is not None else 'UNKNOWN'
# Build the full name = array type + array name
......@@ -132,7 +134,7 @@ class Plugin(GlancesPlugin):
ret.append(self.curse_add_line(msg))
msg = '{}'.format(component)
ret.append(self.curse_add_line(msg))
if self.stats[array]['used'] < self.stats[array]['available']:
if self.stats[array]['type'] != 'raid0' and (self.stats[array]['used'] < self.stats[array]['available']):
# Display current array configuration
ret.append(self.curse_new_line())
msg = '└─ Degraded mode'
......@@ -144,13 +146,15 @@ class Plugin(GlancesPlugin):
return ret
def raid_alert(self, status, used, available):
def raid_alert(self, status, used, available, type):
"""RAID alert messages.
[available/used] means that ideally the array may have _available_
devices however, _used_ devices are in use.
Obviously when used >= available then things are good.
"""
if type == 'raid0':
return 'OK'
if status == 'inactive':
return 'CRITICAL'
if used is None or available is None:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册