web-dev-qa-db-ja.com

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

2つのストレージ形式の基本(Maildirのメールごとに1つのファイルとmboxのメールボックスごとに1つの単一のファイル)は理解していますが、ここで実際にどのような影響があるのでしょうか。

  • 1つのストレージ形式は他の形式よりスケーラブルですか?
  • データの整合性に関する懸念/違いはありますか?
  • 1つの形式を他の形式よりも使用する必要がある明確に定義された状況はありますか?
41
olympe26

Postfixからメールボックスを管理しないでください。決して。メッセージをリダイレクトして、適切な機能を持つPOP/IMAPサーバー経由で配信します。 dovecotの場合はdovecot-lda別名deliverユーザー制御のメッセージフィルタリング、クォータ管理、自動返信などのすべてを実行します。

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

22
Kondybas

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

Mbox形式の主な問題はファイルロックの問題です。複数のメールサーバー、または複数のプロセスが同時にメールボックスにアクセスしようとすると、メールボックスが破損する大きなリスクがあります。たとえば、バウンスストームが発生した場合など、メールボックスを通過して多数のメッセージを削除することも困難です。

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

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

15
Jenny D

特定の質問に対処するには:

1つのストレージフォーマットは他のストレージフォーマットよりスケーラブルですか?

mboxは、大きくなると管理が難しくなる傾向があります。すべてを1つの大きなblobに格納するため、増分バックアップを行うのは困難な場合があり、そのようなアクセスは、mboxが発生している間、書き込みに対してロックします。何らかの破損があると、修復または回復を試みるのが非常に難しくなります。これは、メールをより多く保存するほど増加するリスクと言えます。

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

データの整合性の問題/違いはありますか?

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

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

一方の形式をもう一方の形式で使用する必要がある状況が明確に定義されていますか?

Maildirがmboxを普遍的に好まれる形式として置き換え始めており、重大な欠点はありません。

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

4
thomasrutter

Postfixはほとんど気にしません。メールをいくつかのファイルに詰め込むだけです。興味深い部分は、IMAP(またはPOP3)を介してマシンからメールをフェッチしたいときに来ます。ほとんどのIMAPサーバー(私が試した)はMaildirを好みます。これらは、IMAPサーバーが必要とする可能性のあるさまざまなメタデータで簡単に拡張できる一方で、基本的な「これはMaildir」構造を維持しているため、壊れることなくIMAPサーバーを置き換えることができます。多すぎます(メールフラグも含まれるメタデータは明らかに失われるため、本当に切り替えたい場合は、IMAPサーバーの移行ドキュメントを読む必要があります)。

4
zhenech

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

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

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

mboxとmaildirのベンチマーク

3