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


39

私は2つのストレージ形式の基本を理解していますが(Maildirの下でメールごとに1ファイル対mboxの下でメールボックスごとに1つのファイル)、実際の意味はここにあると思います-

  • 1つのストレージ形式は他のストレージ形式よりも拡張性がありますか?
  • データの整合性に関する懸念/違いはありますか?
  • あるフォーマットを他のフォーマットよりも使用すべき状況が明確に定義されていますか?

回答:


21

ポストフィックスからメールボックスを管理しないでください。決して。適切な機能を備えたPOP / IMAPサーバー経由で配信するためにメッセージをリダイレクトします。dovecotの場合、ユーザー制御のメッセージフィルタリング、クォータ管理、自動返信など、あらゆることを行うdovecot-lda別名deliverがあります。

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


14

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

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

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

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


4

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


4

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

1つのストレージ形式は他のストレージ形式よりも拡張性がありますか?

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

Maildirは、メッセージごとに1つの多くの小さなファイルを特徴的に作成するため、スケーラビリティについては基礎となるファイルシステムに依存しています。多くの電子メールがある場合、Maildirは通常、より簡単で高速に処理できます。

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

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

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

あるフォーマットを他のフォーマットよりも使用すべき状況が明確に定義されていますか?

Maildirが、mboxを普遍的に好まれるフォーマットとして置き換え始めているというケースが多く、大きな欠点はありません。

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


3

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

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

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

mboxとmaildirのベンチマーク


物事を概観すると、そのベンチマークは主に2つの異なるIMAPサーバー間のベンチマークであり、Courier IMAPサーバー(Maildirを使用)の作成者によって行われ、2001年から2003年に行われました。テストされたのは、256MBのPC-100 SDRAMとext2ファイルシステムを搭載したPentium-II時代のCeleronでした。しかし、Maildirのスケーラビリティについての主張は、おそらく当時よりも今日ではさらに真実です。
-thomasrutter
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.