我有一个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
Run Code Online (Sandbox Code Playgroud)
如您所见,没有进行“检查”或任何特殊操作。两个阵列均为 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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
但是,iostat
报告说有持续的写入/dev/bcache1
(并且它支持 volume /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
Run Code Online (Sandbox Code Playgroud)
这已经持续了几个小时。
ps ax |grep gvfs
现在给出零结果。写作不断发生。lsof
是否有任何事情发生。它什么也没显示。iotop
。我看到一个名为的过程[jbd2/bcache1-8]
通常位于顶部。其他阵列没有类似的东西。我很好奇可能写入这个数组的内容。正如我所说,它只包含数据,字面意思是一个文件夹lost+found
,并且是空的...
看起来我在输入完整的问题后已经找到了罪魁祸首......
尽管成交量已经超过周龄(与其他数组这是两周),另一个过程ext4lazyinit
是仍然忙初始化索引节点(我甚至局限于很理智的4亿美元,而不是疯狂的4极大数对mkfs.ext4通常会创建这么大的体积)。
df -h -i
:
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/bcache1 4.1M 2.1K 4.1M 1% /mnt/raid5b
Run Code Online (Sandbox Code Playgroud)
再次使用 重新安装卷后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
Run Code Online (Sandbox Code Playgroud)
...这似乎证实它确实仍在忙于初始化 inode。