LVMでext4ファイルシステムを実行しています。私が注目している2つの大きな高速化オプションは、LVMキャッシュと外部ext4ジャーナルです。
これに単一のSSDを使用しているように思えますが、ライトバックモードのLVMキャッシュは、ext4ジャーナルを外部デバイスに置くのと同じです...基本的に何かが発生した場合は、ジャーナル前の位置にリセットします。
これは正しい解釈ですか?
外部ジャーナルは、LVMキャッシュデバイスとまったく同じではありません。ライトバック用のSSD上のLVMキャッシュは揮発性ではないため、データの整合性に関する懸念はそれほど大きくありません(そのキャッシュデバイスが突然故障した場合を除き、このキャッシュデバイスは実際にはRAIDである可能性があります)それ自体はLinux MDなどを介して)。
EXT4インテントジャーナルは、外部またはデータが保存されているのと同じデバイスであっても、高速で低レイテンシのストレージデバイスから恩恵を受ける多くの小さな書き込みで構成されています。データディスクに回転メディアを使用する場合、これは非常にランダムで国境を越えたワークロードに関連します。
ライトバックキャッシュは、書き込みを統合するため、書き込みはほとんどの場合シーケンシャルですが、データとメタデータ、または特にジャーナルは区別されません。すべての書き込みの前に立ち、すべてをキャッシュしてから、キャッシュされたデータセットが指定されたフラッシュ中に、可能な限り順次書き込みをディスクにキューイングします。フラッシュコマンドは、書き込みバリアコマンドと同時に(一定の間隔で)送信され、そのバッキングデバイスで破損していない状態を保証します。
ライトバックキャッシュが突然完全に停止した場合、ファイルシステムでしばらく時間が失われますが、それでも一貫性は保たれます。 ([〜#〜] edit [〜#〜]:このステートメントは、深刻なファイルシステムの破損を警告する以下のコメントで直接異議を唱えられます。)これは、RAID1キャッシュデバイスで軽減できます。
ジャーナルデバイスが停止した場合、# tune2fs -O ^has_journal /path/to/ext4device
を使用してジャーナルデバイスを破棄するまで、ファイルシステムをマウントできません。この場合、このファイルシステムを完全なfsckスキャンで修復する必要があります(場合によっては、かなりの時間がかかります)。また、停電中または停電前にこれが発生した場合、破損が発生する可能性があります。
したがって、正しい解決策は、同じデバイス上のext4ジャーナルを使用してライトスルーモードでLVMキャッシュを使用することです...
ロジックは、ext4ジャーナリングが一貫性を保証する唯一のものであるため、使用する必要があります。外部ssdデバイスはそれを大幅にスピードアップします。ライトバックモードのLVMキャッシュは、単純なブロック書き込みを先送りするため、破損を許容します。ライトスルーモードでも読み取りは高速化されますが、書き込みはパススルーされます。このシナリオでは、ext4はライトスルーとほぼ同じ、同じキャッシュディスクに正しく配置されますが、すべての一貫性が保証されます。
より良い回答が得られた場合に備えて、しばらくの間、私は自分自身に正しい投票をするのを待ちます。