RAID 阵列 (jbd2) 的写入量持续较低,是什么原因造成的?

RAID 阵列 (jbd2) 的写入量持续较低,是什么原因造成的?

我有一个 raid 阵列,事实上,两个非常相似的 raid 阵列,但是一个正在不断写入(似乎是由 jbd2 写入),而另一个则不是。这是数组:

md9 : active raid5 sdl4[4] sdk4[2] sdh4[1] sdb4[0]
  11626217472 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
  bitmap: 2/29 pages [8KB], 65536KB chunk
   
md8 : active raid5 sdf3[2] sdc3[1] sda3[0] sdi3[3]
  11626217472 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
  bitmap: 0/29 pages [0KB], 65536KB chunk

正如您所看到的,没有“检查”或任何特殊的事情发生。两个阵列均为 4x 4TB。

到目前为止,一切都很好。

这两个数组(/dev/md8 和 /dev/md9)仅包含数据,没有根文件系统。事实上,它们很少被任何东西使用。两者都安装了单个 ext4 分区,noatime并且已准备好“bcache”(但还没有缓存卷):

df -h

/dev/bcache0     11T  7.3T  3.6T  67% /mnt/raid5a
/dev/bcache1     11T  7.4T  3.5T  68% /mnt/raid5b

cat /proc/mounts

/dev/bcache0 /mnt/raid5a ext4 rw,nosuid,nodev,noexec,noatime,data=ordered 0 0
/dev/bcache1 /mnt/raid5b ext4 rw,nosuid,nodev,noexec,noatime,data=ordered 0 0

然而,iostat报告称不断有写入/dev/bcache1(并且是支持卷/dev/md9),而相同的阵列没有发生类似的情况/dev/md8......

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
md8               0.00         0.00         0.00          0          0
bcache0           0.00         0.00         0.00          0          0
md9               1.50         0.00        18.00          0         36
bcache1           1.00         0.00        12.00          0         24

md8               0.00         0.00         0.00          0          0
bcache0           0.00         0.00         0.00          0          0
md9               2.50         0.00        18.00          0         36
bcache1           2.50         0.00        18.00          0         36

这已经持续了几个小时了。

我尝试过的:

  1. 杀死了所有与 gvfs 相关的东西。 ps ax |grep gvfs现在给出零结果。写入不断发生。
  2. 检查lsof是否有任何情况发生。它什么也没显示。
  3. 用过的iotop。我看到一个名为的进程[jbd2/bcache1-8]通常位于顶部。其他阵列没有类似的情况。
  4. 我试过卸载音量。这可以正常工作,并且 iostat 报告没有进一步的访问(似乎表明没有人在使用它)。然而,重新安装它会再次触发这些低容量写入立即地...

我是非常好奇什么可能会写入这个数组。正如我所说,它只包含数据,实际上是一个文件夹,并且lost+found是空的......

答案1

看起来我在输入完整的问题后已经找到了罪魁祸首......

即使该卷已经存在一周多了(相对于另一个阵列存在两周),另一个过程ext4lazyinit仍然忙于初始化 inode(我什至将其限制为非常理智的 400 万个,而不是 mkfs.ext4 通常会为如此大的卷创建的疯狂的 4 万亿个)。

df -h -i

Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/bcache1     4.1M  2.1K  4.1M    1% /mnt/raid5b

再次使用 重新安装卷后init_itable=0iostat显示相同的写入,除了更高的卷之外:

md8               0.00         0.00         0.00          0          0
bcache0           0.00         0.00         0.00          0          0
md9             101.50         0.00       584.00          0       1168
bcache1         101.50         0.00       584.00          0       1168

...这似乎证实它确实仍在忙于初始化索引节点。

相关内容