新しい RAID5 アレイで 6 日間実行されている「ext4lazyinit」

新しい RAID5 アレイで 6 日間実行されている「ext4lazyinit」

「ext4lazyinit」のトピックがたくさんあることは知っています。しかし、それらはすべて 4 ~ 6 TB の HDD に関するもので、投稿者は最終的には数時間で完了したと述べています。

私の側では、5*14TB ディスク (合計サイズ 51TB) を持つ新しく作成された RAID5 領域があり、「ext4lazyinit」は 6 日間 (= 最後の再起動以降ですが、おそらくそれより数日前から実行されています) 実行されています。そして、もちろん、アレイ上で I/O が絶えず生成されています。どこにもエラーはないので、これ以外はすべて正常に見えます。

しかし、なぜこんなに時間がかかるのでしょうか? ディスク アレイは大きいのですが、それでも 6 日もかかるのですか?

最初はこの動作に気付かなかったので、ある時点で (RAID アレイを作成してから数日後) システムを再起動しました。その後、「ext4lazyinit」は自動的に再起動されたようですが、再起動によって何かが破損した可能性はありますか?

ps -ef|grep lazy
root       583     2  0 Dec02 ?        00:04:37 [ext4lazyinit]

また、このプロセスの進行状況を監視する方法はありますか (cat /proc/mdstat一部の mdadm 操作で使用できるようなもの)? (dmesg、journalctl、またはその他のログでは何も見つかりませんでした)

注目すべきは (そしてこれがなぜ遅いのかを説明しているのかもしれません)、I/O の数は時間の経過とともに一定であるように見えますが、むしろ低いようです (したがって、プロセスが HDD の最高速度で実行されていないのかもしれません)。その速度を上げる方法はありますか?

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.25    0.00    0.42    1.17    0.00   98.17

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
mmcblk0           0.00         0.00         0.00          0          0
sda               3.00         0.00         8.50          0         17
sdb               5.00       256.00       264.50        512        529
sdc               4.00       192.00       200.50        384        401
sdd               4.00        64.00        72.50        128        145
sde               3.00         0.00         8.50          0         17
md0               0.50         0.00       256.00          0        512

答え1

私も同じ問題を抱えています。24GB RAID5 アレイで、昨日 mkfs.ext4 を開始しました。私が見つけた情報でこのスレッドに出会った他の人のために、ここにこれを残しておきます。

これを行う最も簡単な方法は、遅延オプションをオフにして mkfs.ext4 を実行し、すべてが初期化されるまで長時間待つことです。アレイを使用する場合、遅延初期化が完了するまで多くの分散 I/O が発生し、読み取り/書き込み速度が完全に低下するため、回転ディスクではうまく機能しません。

mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/md0

高速化: このオプションを使用してマウントします: init_itable=0 (これは、チャンクをゼロにした後の待機時間の乗数です (デフォルトは 10 で、次に進む前に最後のチャンクをゼロにするのにかかった時間の 10 倍待つことを意味します。0 = すぐに実行しますが、I/O 帯域幅を大幅に消費します)。

上記のコメントのリンク(ext4lazyinit を強制的に終了させますか?) は、進行状況を監視するのに非常に便利です。現在の書き込みと fdisk からの合計セクター数。1 日経過し、現在 54% なので、ほぼ完了していると思います... lazy init は、10 ~ 12 MB/秒程度の書き込み速度で実行されています。

ディスク上で他に何も実行していないことを確認し、次の操作を実行します。

echo 1 > /proc/sys/vm/block_dump  # Turn on logging in /var/log/syslog
fdisk -l /dev/md0                 # Note total sectors.
echo 0 > /proc/sys/vm/block_dump  # Turn of logging.  Don't fill the log :)

syslog から書き込まれるセクターを fdisk からの合計で割ります。

これが次にこれを知る人の助けになれば幸いです。あとは完了するまであと 1 日待つだけです。完了したら、実際にアレイを適切な速度で使用できるようになります。(それまでは、まだ 30 MB/秒を引き出せるので、絶望的ではありません)

関連情報