gjournal は単一ディスクでは避けるべきだ2008年12月02日 06時40分39秒

もう gjournal を使い始めて一年ぐらい経つ。実験を兼ねて使っているので、数パーティションはある。

ここ数年の環境は、ノート型なのでハードディスクは基本的に一台だ。FreeBSD の gjournal はメタデータとデータを全て書き込む型のジャーナリングだ。その為、細かいファイルの書き込むが多いと、それなりの向上が見られるが、大きいファイルの転送は苦手だ。ジャーナル領域に書き込んで、それからデータ領域にわざわざ書き直す手順になる。

その為、特に性能重視であるのなら、単一ディスクにデータとジャーナル部を置くべきではない。使うべきでは無いと言っておきながら、上記の環境の為に一台のディスクに両方が載っている。

実際に体感すると、ジャーナルのフラッシュが何秒間に一回か起きて、その度にファイルの転送が中断される。ftp や cp などで他から gjournal ファイルシステムに持って来るとかなり顕著な性能の劣化が見られる。最近は current の追いかけもやめているので、システムも安定しており、そもそも fsck をかける事態に陥ることがない。TB 級のディスクは持っていないので、バックグラウンド fsck も 15 分から 30 分ぐらいで終る。

二台のディスクに分けて試してみたいのだが、残念ながら環境が準備できそうに無い。そこらへんの事情もあって、今ある gjournal を使っているファイルシステムを時間が取れ次第減らしていこうと思っている。

gjournal は運用時のデータ転送量か、復旧時のデータ転送量かを選ぶ為の選択肢だ。利用するには、運用状況を見極めるのが大切な要素なのは変わり無い。