Maildir と Mbox の実際的な違いは何ですか?

Maildir と Mbox の実際的な違いは何ですか?

2つの保存形式(Maildirではメール1件につき1ファイル、mboxではメールボックス1つにつき1ファイル)の基本は理解していますが、ここでは実際的な意味合いが何なのか疑問に思っています。

  • あるストレージ形式は他の形式よりもスケーラブルですか?
  • データの整合性に関する懸念や相違点はありますか?
  • どちらか一方の形式を他方の形式よりも使用すべき状況が明確に定義されていますか?

答え1

postfix からメールボックスを管理しないでください。絶対に。適切な機能を持つ POP/IMAP サーバー経由で配信するようにメッセージをリダイレクトします。dovecot の場合、ユーザー制御のメッセージ フィルタリング、クォータ管理、自動返信など、すべてとそれ以上のことを実行するdovecot-ldaakaがあります。deliver

いずれにせよ、maildir は、mailbox に比べて多くの改善が加えられているため、新しい、より望ましい形式です。maildir には、重複、有効期限、さらには全文検索を制御できる各フォルダーのインデックスがあります。また、maildir は大量のメッセージを処理する場合に大幅に高速です。Dovecot は、30 万件のメッセージを含む maildir を、目に見えるほどの速度低下なしに簡単に操作できます。メールボックスがこれほど大きいことは、それ自体が問題です。また、最近のほとんどの POP/IMAP サーバーには、大規模なインフラストラクチャでの一般的なタスク用のユーティリティが多数あります。

答え2

メールストレージにNFSを使用している場合は、しないでくださいどのような状況でも mbox を使用してください。スケーラブルなソリューションが必要な場合は、Maildir が最適です。

mbox 形式の主な問題は、ファイルのロックです。複数のメール サーバーがある場合、または複数のプロセスが同時にメールボックスにアクセスしようとする場合、メールボックスが破損する大きなリスクがあります。また、たとえばバウンス ストームに見舞われた場合、メールボックスを調べて大量のメッセージを削除するのは困難です。

Maildir は、複数のメール サーバーがある場合、または 1 つのサーバー上に複数のプロセスがある場合に、IMAP または POP サーバーがアカウントにアクセスすると同時に同じアカウントに電子メールを配信する場合でも、障害なく動作するように設計されています。

Maildir の主な問題は、あまりにも多くの inode を処理すると速度が低下するファイル システムを使用している場合、およびバックアップ システムが複数のファイルの処理に適していない場合です。ファイル システムについては、ISP で電子メール システム管理者をしていた頃は、VXFS が最適でした。バックアップについては、お勧めはありません。残念ながら、それらのほとんどは、無数の小さなファイルではなく、データベース サーバーを処理するように設計されているようです。

答え3

具体的な質問に対応するには:

あるストレージ形式は他の形式よりもスケーラブルですか?

mbox は大きくなるにつれて管理が難しくなる傾向があります。すべてを 1 つの大きな BLOB に保存するため、増分バックアップが難しくなる可能性があり、そのようなアクセスは書き込みに対して mbox をロックします。破損がある場合、修復または回復するのは非常に困難です。これは、メールを保存するほどリスクが増大すると言えます。

Maildir は、メッセージごとに 1 つの小さなファイルを多数作成する特性があるため、スケーラビリティのために基盤となるファイルシステムに依存しています。メールの数が多い場合、通常、Maildir の方が扱いが簡単で高速です。

データの整合性に関する懸念や相違点はありますか?

はい、主な問題は、mbox がアーカイブ全体で読み取り/書き込みファイルのロックを必要とすることです。つまり、読み取りは書き込みを待たなければならず、個々の書き込みは他のすべてのアクセスを待たなければなりません。NFS 共有など、ロックが不可能な方法で使用されると、アーカイブが破損する可能性があります。ランダムな破損は、単一のメッセージではなく、アーカイブ全体に影響を及ぼす可能性があります。

Maildir では、ほとんどの操作で個々のメッセージ レベルでロックが可能であり、ファイルの破損はそのメッセージにのみ影響します。メッセージのインデックスは、必要に応じてメッセージ自体から再構築できます。

どちらか一方の形式を他方の形式よりも使用すべき状況が明確に定義されていますか?

Maildir は、大きな欠点もなく、普遍的に好まれる形式として mbox に取って代わり始めているというのが実情です。

主な制限は、多数の小さなファイルを作成することです。これは、一部のファイルシステムに負担をかけたり、ファイルシステムのクラスター サイズによっては非効率になったりする可能性があります。これは、最近のファイルシステムではそれほど問題になりません。バックアップ戦略にも役立ちますが、全体としては、バックアップ戦略の選択に柔軟性が増します。

答え4

Mbox は、メールボックス内のテキストを検索し、新しいメールをメール ファイルに追加するときには高速ですが、メールが破損しやすく、ネットワーク ファイル システムで問題が発生する可能性があります。また、ファイルのロックが問題になる場合もあります。

Maildir を使用すると、特定のメールの取得が高速になり、ファイル ロックやネットワーク ファイル システムによる問題も発生しません (例: Maildir を使用すると、異なるメール フォルダーを異なる NFS 共有に保存できますが、これは Mbox では実現できません)。ファイル システムが大量のファイルを効率的に処理できない場合、Maildir で問題が発生する可能性があります。

スケーラブルなソリューションが必要であることは理解していますが、いずれかを選択する前に、必ずこのドキュメントをお読みください: (Courier を使用していない場合でも)

mbox と maildir のベンチマーク

関連情報