-1

我的 MDADM 监控有问题,我没有正确处理事件。我在干净的 ubuntu 虚拟机上尝试了 2 个场景。让我解释。

我有一个简单的脚本来捕获事件并保存到日志文件中。如果我让监控文件向我发送邮件,结果完全相同,但日志文件更容易解释

所以我在 MDADM.conf 中执行日志文件

# instruct the monitoring daemon where to send mail alerts
MAILADDR root
PROGRAM /root/scripts/monitor_array.sh

第一个场景:Raid5 中的 4 HD

md0 : active raid5 sdb1[5] sde1[4] sdd1[2] sdc1[1]
      58540032 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]

(1) 我正在添加一个备用: mdadm --manage /dev/md0 --add /dev/sdf1

备件存在

md0 : active raid5 sdf1[6](S) sdb1[5] sde1[4] sdd1[2] sdc1[1]
      58540032 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]

(2) 我将一个驱动器设置为故障: mdadm --manage /dev/md0 --set-faulty /dev/sdb1 Raid 正在自动获取备用并恢复

Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md0 : active raid5 sdf1[6] sdb1[5](F) sde1[4] sdd1[2] sdc1[1]
      58540032 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [_UUU]
      [====>................]  recovery = 24.6% (4807680/19513344) finish=1.2min speed=200320K/sec

这种情况下的日志是

***************************
05-02-18 / 00:04:52
Fail
/dev/md0
/dev/sdb1
***************************
***************************
05-02-18 / 00:04:55
RebuildStarted
/dev/md0

***************************
***************************
05-02-18 / 00:06:30
RebuildFinished
/dev/md0

***************************
***************************
05-02-18 / 00:06:30
SpareActive
/dev/md0
/dev/sdf1
***************************

所有步骤都可见,但我没有看到事件“Rebuild20, 40, 60, 80”,但这可以接受

情景(2)

在这里我也在做同样的事情,但没有备用我从以下配置开始

md0 : active raid5 sdb1[5] sde1[4] sdd1[2] sdc1[1]
      58540032 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]

(1) 我将一个驱动器设置为故障: mdadm --manage /dev/md0 --set-faulty /dev/sdb1

磁盘在 mdstat 和日志中显示为失败

md0 : active raid5 sdb1[5](F) sde1[4] sdd1[2] sdc1[1]
      58540032 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [_UUU]

并在日志中

***************************
05-02-18 / 00:17:36
Fail
/dev/md0
/dev/sdb1
***************************

(2) 现在问题出现了,我正在添加一个驱动器: mdadm --manage /dev/md0 --add /dev/sdf1

md0 : active raid5 sdf1[6] sdb1[5](F) sde1[4] sdd1[2] sdc1[1]
      58540032 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [_UUU]
      [=>...................]  recovery =  7.1% (1398332/19513344) finish=1.5min speed=199761K/sec

日志同时显示 3 个事件

***************************
05-02-18 / 00:20:52
RebuildStarted
/dev/md0

***************************
***************************
05-02-18 / 00:20:52
RebuildFinished
/dev/md0

***************************
***************************
05-02-18 / 00:20:52
RebuildStarted
/dev/md0

***************************

一段时间后

***************************
05-02-18 / 00:22:30
RebuildFinished
/dev/md0

***************************
***************************
05-02-18 / 00:22:30
SpareActive
/dev/md0
/dev/sdf1
***************************

那么基本上为什么监控会同时显示多个 Rebuild / Start /finish 以及为什么系统没有显示rebuild20/40/60/80 事件?

4

1 回答 1

-1

我猜您只是对 mdadm 监视器期望过高,但是对于中间报告,您是否阅读过有关选项的信息-r?:

-r, --increment
       Give a percentage  increment.   mdadm  will  generate  RebuildNN
       events with the given percentage increment.

我只能猜测添加驱动器后的两次重建来自重建RAID上的元数据(第一次重建,有一个新磁盘),以及重建实际数据。

于 2019-01-27T21:55:58.393 回答