Linux RAID mdadm:“事件”是什么意思?

Linux RAID mdadm:“事件”是什么意思?

当我输入

mdadm --detail /dev/md0

我得到了很多有用的信息,其中大部分我都理解了。但是我也得到了一行这样的信息:

Events : 0.710

数字会发生变化。

我天真地以为一个事件要么发生,要么没发生。我怎么可能只有 0.710 个事件?或者,如果您愿意,为什么“事件”不是整数值?

编辑

在看到下面用户的回答后,我深入研究了一下代码,发现

`#如果 __BYTE_ORDER == __BIG_ENDIAN

144 __u32 events_hi; /* 超级块更新计数的高位 7 */

145 __u32 events_lo; /* 超级块更新计数的低 8 位 */

...

148 #其他

149 __u32 events_lo; /* 7 超级块更新计数的低位 */

150 __u32 events_hi; /* 超级块更新计数的高 8 位 */

...

153 #结束`

因此“事件”是“超级块更新计数”的高位和低位https://raid.wiki.kernel.org/index.php/Superblock

答案1

事实上1 个 64 位整数一分为二。

printf("\n         Events : %d.%d\n\n", sb->events_hi, sb->events_lo);

events_hi 和 events_lo 是一个 64 位数字的两个 32 位部分。除非您有超过 2^31 个“事件”,否则您可能只会看到其中一个。

至于它们的意思,我将引用维基页面:

“事件”是指以下情况之一:

  • 从“活跃”切换到“清洁”
  • 从“清洁”切换到“
  • 设备
  • 设备是
  • 备用设备在重建后替代发生故障的设备

请注意,正常的读/写不是一个事件。

这些对于 RAID0 来说都没有意义,所以 RAID0 上的‘事件’计数器应该是稳定的。

不幸的是,这个数字看起来像小数,但实际上不是。它是一个 64 位数字。我们打印出前 32 位、一个句点,然后打印出后 32 位。也许有一天它会被“修复”……

相关内容