空のファイルシステムでも ext4 jbd2 ジャーナリングがアクティブになる

空のファイルシステムでも ext4 jbd2 ジャーナリングがアクティブになる

ext4ファイルシステムでいくつかの問題が発生していますが、原因はジェイビーディー2ジャーナリング。関連記事を投稿しましたここ誰かが助けてくれるかもしれないという希望を込めて、言い換えます。

簡単な例として、空の8GBのUSBスティックを用意して、gparted1 つの ext4 パーティションを作成します。ext4 ファイル システムを作成するときに gparted が使用するコマンドは次のとおりです。

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 ディスクで同じ手順を実行すると、マウントするとすぐに、この空のディスクが jbd2 によって Mb/s の速度で継続的に書き込まれていることが iotop によって示されます。

OS と /home がある他のディスクでは、この動作を引き起こすプロセスによってファイルが変更されているかどうかを調べようとしましたが、何も見つかりませんでした。また、ディスクを集中的に使用するプロセスの多くを tmpfs を使用するように移動しました。そして、noatime を使用しました。

このマシンには、/dev/sdb という別の非 SSD ハード ディスクがあります。これも ext4 ですが、gparted でフォーマットされていません (同僚から提供されたものです)。iotop には表示されません。そのため、gparted に問題があると想定しています。

ご提案があれば、ぜひお聞かせください。また、最初からやり直さずに既存のパーティションを変更して問題を解決する方法についてのヒントがあれば、ぜひ教えてください。

jbd2 に関連する投稿がいくつかありますが、役に立ちませんでした (例:ここ)。

答え1

ext4 は、マウントされるまで初期化の多くをポストポストすることで「クイックフォーマット」を行うようです (uninit_bg オプションでしょうか?)。jbd2 は、ドライブを最初にフォーマットした後にこれを実行するのではないかと思います。コメントの 1 つここjbd2 はパーティションの作成後にサイズに比例した時間書き込みを行うよう提案し、200 GB あたり 10 分と提案しました。これは 1 TB あたり 50 分を意味します。昨日 3 TB の ext4 ドライブをフォーマットしましたが、jbd2 は長時間書き込みを続けていましたが、現在は停止しています。

ちなみに、btrfs はこれを行いませんが、外付けドライブにはまだ信頼していません。たとえば、最新のカーネル (3.4 以降だと思います) が必要です。そうでないと、ドライブを最初にアンマウントせずに取り外すと (もちろん電源が切れると発生します)、カーネルがエラーを起こし (データが失われる可能性があります) ます。

関連情報