我有一个 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
这已经持续了几个小时了。
我尝试过的:
- 杀死了所有与 gvfs 相关的东西。
ps ax |grep gvfs
现在给出零结果。写入不断发生。 - 检查
lsof
是否有任何情况发生。它什么也没显示。 - 用过的
iotop
。我看到一个名为的进程[jbd2/bcache1-8]
通常位于顶部。其他阵列没有类似的情况。 - 我试过卸载音量。这可以正常工作,并且 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=0
,iostat
显示相同的写入,除了更高的卷之外:
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
...这似乎证实它确实仍在忙于初始化索引节点。