即使在空文件系统上,ext4 jbd2日记记录仍处于活动状态


8

我的ext4文件系统遇到了一些问题,这些问题似乎是由于jbd2日记引起的。我在这里发表了一篇相关文章并对其进行了重新表述,希望有人能够提供帮助。

举一个最小的例子,我从一个空的8GB USB记忆棒开始,然后使用gparted创建一个ext4分区。gparted在创建ext4文件系统时使用的命令是:

mkfs.ext4 -j -O extent -L DataTraveler8gb /dev/sde1

我用gparted检查文件系统:

e2fsck -f -y -v /dev/sde1

我安装它:

sudo mount /dev/sde1 /media/test

磁盘为空,但是该磁盘(/ dev / sde1)上的日志记录非常活跃。其他磁盘是格式类似的ext4 SSD。iotop快照:

% sudo iotop -oPa

Total DISK READ: 0.00 B/s | Total DISK WRITE: 2027.21 K/s
  PID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  262 be/3 root          0.00 B     56.00 K  0.00 %  0.18 % [jbd2/sda1-8]
29069 be/3 root          0.00 B      0.00 B  0.00 %  0.16 % [jbd2/sde1-8]
  891 be/3 root          0.00 B      4.00 K  0.00 %  0.03 % [jbd2/sdc1-8]

jbd2使用/ dev / sde1做什么?

如果我对较大的2Tb磁盘执行相同的步骤,则iotop指示在安装后,jbd2会以Mb / s的速率不断写入此空磁盘。

在其他装有操作系统和/ home的磁盘上,我尝试查找进程是否修改了任何文件以引起此行为,但找不到任何文件。我还移动了许多磁盘密集型过程以使用tmpfs。并使用了noatime。

我在这台机器上还有另一个非SSD硬盘/ dev / sdb,它也是ext4,但未通过gparted格式化(由同事提供给我)。它不会出现在iotop中。所以我假设gparted存在问题。

任何建议表示赞赏。同样,有关如何修改现有分区以解决此问题而无需从头开始的任何提示也都很棒。

有一些与jbd2相关的帖子,但它们没有帮助(例如here)。


您在格式化磁盘之前启动了iotop吗?在这种情况下,它将显示在格式化期间写入的数据。
jippie 2012年

@jippie格式化磁盘后,我启动了iotop。最小示例中的磁盘为空。在格式相似的磁盘上,即使未写入任何文件,jbd2活动也会发生(在我的整个文件系统上使用find进行检查)。
保罗

您是否尝试将其安装mount -o noatime ... ...
jippie 2012年

我尝试过noatime。它似乎什么也没做。
保罗

Answers:


7

看来ext4会通过发布很多初始化内容来进行“快速格式化”,直到它被挂载为止(也许是uninit_bg选项?),我怀疑在您首先格式化驱动器之后jbd2正在这样做。此处的注释之一表明,jbd2在创建后将写入分区的时间与分区的大小成比例,并建议每200 GB 10分钟,这表示每TB 50分钟。昨天我格式化了一个3TB ext4驱动器,而jbd2已经写了很长时间了,但是现在已经停止了。

btrfs不会这样做,顺便说一句,但是我还不相信它可以用于外部驱动器-例如,您需要使用最新的内核(我认为是3.4+),否则,如果卸下驱动器,内核会出现错误(并且可能会丢失数据)而不先卸下它(如果失去电源,当然会发生这种情况)。


哇,我从没想过(在读了相同的主题后我还是想念它)。我将尝试确认有关uninit_bg的信息,但是如果您或其他人确定,我可以将其标记为已回答。
保罗
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.