先日(2022年2月12日の日記参照)購入したHDDにデータをコピーしていると、印刷中のプリンターのような「ガー、ガー」という音が発生していました。
一体何事か?故障なのか?とも思ったのですが原因がわかりました。ext4ファイルシステムのlazyinitが原因でした。
本来ext4はmkfsが非常に遅く、TB級の巨大な領域をフォーマットすると10分以上時間が掛かります。lazyinitはこの苦痛を和らげるためにmkfsで行うはずだった初期化(inodeテーブルの0クリア)を後回しにする方式だそうです(参考: Ext4 Filesystem - Thomas-Krenn-Wiki)。
遅いmkfsを劇的に高速化する素敵なlazyinitではありますが、mkfsのすぐ後に大量のデータを書き込む用途には不向きです。lazyinitが有効な領域をマウントするとext4lazyinitというカーネルスレッドが定期的に書き込みに来ます。これによりシークが発生してデカい音がしますし、writeの速度もかなり落ちます。
下記のようにmkfs.ext4のオプションでlazyinitを無効化できます。
# mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/sdc1
無効化することでwriteの速度も高速化し、異音も解決しました。
< | 2022 | > | ||||
<< | < | 02 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | - | - | - | - | - |
合計:
本日: