ユーザ用ツール

サイト用ツール


linuxファイルシステム

ジャーナリングのオプションと書き込み待ち時間

ext3は3つのデータ・ジャーナリング・モード (data=writeback、data=ordered、およびdata=journal) から1つを選択することができるようになりました。

ジャーナル・モードを指定するには、適切な文字列 (たとえばdata=journal) を /etc/fstabのオプション・セクションに追加します。 または、mount を直接呼び出すときに-o data=journal コマンド行オプションを指定します。~ ルート・ファイルシステムで使用されるデータ・ジャーナリング・メソッドを指定する場合 (デフォルトはdata=ordered) は、rootflags と呼ばれる特別なカーネル・ブート・オプションを使用することができます。 ルート・ファイルシステムを完全なデータ・ジャーナリング・モードにする場合は、rootflags=data=journal をカーネル・ブート・オプションに追加します。

data=writebackモード

data=writeback モードでは、ext3はどのような形態のデータ・ジャーナリングも行わず、XFSやJFS、ReiserFSのファイルシステムのジャーナリングと同等のものを提供します (メタデータのみ)。前回の記事で説明したように、これによって、最近修正されたファイルが、予期しなかったリブートのイベントで破壊される可能性があります。しかしそのような欠点にもかかわらず、data=writeback モードは、ほとんどの状況下で最高のext3パフォーマンスを提供します。

data=orderedモード

data=ordered モードでは、ext3は公式にはメタデータをジャーナルするだけですが、論理的にはメタデータおよびデータ・ブロックをトランザクションと呼ばれる1つのユニットにグループ化します。新しいメタデータをディスクに書き出す段になると、関連するデータ・ブロックが最初に書き込まれます。data=ordered モードは、data=writeback mode とジャーナルされた他のほとんどのファイルシステムで発見された破壊の問題を効果的に解決します。しかも完全なデータ・ジャーナリングを必要とせずに解決するのです。一般に、data=ordered ext3ファイルシステムは、data=writeback ファイルシステムよりわずかに低速ですが、同様の完全なデータ・ジャーナリングより大幅に高速で実行します。 データをファイルに追加する場合、data=ordered モードが、ext3の完全なデータ・ジャーナリング・モードによって提供される保全性の保証をすべて提供します。しかし、ファイルの一部を上書き中にシステムがクラッシュした場合、書き込み中の領域には、元のブロックと更新されたブロックが混在した状態で含まれるでしょう。その理由は、どのブロックが最初に上書きされるかに関して、data=ordered が何の保証も提供しないからです。そのため、上書きされたブロックxが更新されたという理由だけで、上書きされたブロックx-1も更新されたと仮定することはできません。代わりにdata=ordered は、書き込みの順序付けをハード・ディスクの書き込みキャッシュに任せます。一般に、ファイルの追加はファイルの上書きよりもはるかに一般的なので、通常このような制限がユーザーに悪影響を与えることは多くありません。このような理由で、data=ordered モードは、完全なデータ・ジャーナリングに取って代わるものであり、そのパフォーマンスははるかに優れています。

data=journalモード

data=journal モードは、完全なデータおよびメタデータ・ジャーナリングを提供します。すべての新しいデータは最初にジャーナルに書き込まれ、次に最終格納場所に書き込まれます。クラッシュが起きた時も、ジャーナルは再生することができ、データおよびメタデータを一貫した状態にします。 データが1度ではなく2度ディスクに書き込まれるので、理論的には、data=journal モードが最も低速のジャーナリング・モードです。

ページキャッシュの設定を最適化

dirty_expire_centisecs

この期限をすぎたページキャッシュはpdflushによりライトバックされます。

dirty_writeback_centisecs

pdflushの起動間隔。

たとえば、

echo 120000 > /proc/sys/vm/dirty_expire_centisecs 
echo  20000 > /proc/sys/vm/dirty_writeback_centisecs

だと、20秒ごとにpdflushが起動。120秒を過ぎたキャッシュはライトバックされます。 ↑

/boot/grub/menu.lst †

kernel /vmlinuz-2.6.18-238.9.1.el5 ro root=/dev/VolGroup00/LogVol00 acpi=off rhgb quiet
↓
kernel /vmlinuz-2.6.18-238.9.1.el5 ro root=/dev/VolGroup00/LogVol00 acpi=off rhgb quiet rootflags=data=writeback
linuxファイルシステム.txt · 最終更新: 2019/06/30 12:22 by 127.0.0.1