Каковы практические различия между Maildir и Mbox?


39

Хотя я понимаю основы двух форматов хранения (1 файл на электронную почту в Maildir против 1 отдельного файла на почтовый ящик в mbox), мне интересно, каковы здесь практические последствия -

  • Является ли один формат хранения более масштабируемым, чем другой?
  • Есть ли проблемы / различия в целостности данных?
  • Существуют ли четко определенные ситуации, когда вы должны использовать один формат поверх другого?

Ответы:


21

Не управляйте почтовыми ящиками из postfix. Никогда. Перенаправляйте сообщения для доставки через POP / IMAP-сервер, который имеет соответствующую функциональность. В случае голубятни есть dovecot-ldaиначе , deliverчто делает все , и многим другими, как управляемый пользователем фильтрацию сообщений, управление квотами, и поэтому ответ корреспондента на.

В любом случае, maildir - более новый и предпочтительный формат из-за большого количества улучшений по сравнению с maibox. Maildir имеет индекс для каждой папки, который позволяет контролировать дубликаты, время истечения и даже полнотекстовый поиск. Кроме того, maildir значительно быстрее на огромной куче сообщений. Dovecot может легко управлять maildir с 300k сообщениями в нем без видимого замедления. Почтовый ящик такой большой - это сама проблема. Кроме того, большинство современных POP / IMAP-серверов имеют множество утилит для общих задач в большой инфраструктуре.


14

Если вы используете NFS для хранения почты, ни в коем случае не используйте mbox. И если вам нужно масштабируемое решение, Maildir - это то, что вам нужно.

Основная проблема с форматом mbox заключается в блокировке файлов - если у вас более одного почтового сервера или более одного процесса, пытающегося получить доступ к почтовому ящику одновременно, вы рискуете получить поврежденный почтовый ящик. Также трудно пройти через почтовый ящик и удалить большое количество сообщений, например, когда вы перенесли шторм отказов.

Maildir предназначен для безотказной работы, когда у вас есть несколько почтовых серверов или несколько процессов на одном сервере, которые доставляют электронную почту в одну и ту же учетную запись в то же время, когда сервер IMAP или POP обращается к ней.

Основная проблема с Maildir заключается в том, что вы используете файловую систему, которая замедляется при обработке слишком большого числа inode, и если ваша система резервного копирования плохо работает с несколькими файлами. Что касается файловых систем, когда я делал сисадминг электронной почты у интернет-провайдера, VXFS был лучшим для этого. Для резервных копий у меня нет никаких рекомендаций; К сожалению, большинство из них, похоже, предназначены для работы с серверами баз данных, а не с несколькими миллионами файлов.


4

Postfix не волнует, в основном. Он просто помещает почту в какой-то файл. Интересная часть возникает, когда вы хотите получить почту с аппарата через IMAP (или POP3). Большинство IMAP-серверов (я пробовал) предпочитают Maildirs, так как они легче расширяются с помощью различных метаданных, которые может понадобиться IMAP-серверу, сохраняя при этом базовую структуру «это Maildir», так что вы можете заменить сервер IMAP, не нарушая слишком много (вы, очевидно, потеряете метаданные, которые также включают почтовые флаги, поэтому вам следует прочитать документы по миграции сервера IMAP, если вы действительно хотите переключиться).


4

Для решения конкретных вопросов:

Является ли один формат хранения более масштабируемым, чем другой?

С mbox становится все труднее управлять, чем больше он получает. Поскольку он хранит все в одном большом двоичном объекте, может быть сложно создавать резервные копии постепенно, и такой доступ заблокирует mbox от записи, пока это происходит. Если есть какая-то коррупция, гораздо труднее попытаться восстановить или восстановить - что, можно сказать, увеличивает риск, так как он хранит больше почты.

Maildir полагается на лежащую в основе файловую систему для ее масштабируемости, поскольку он будет типично создавать много маленьких файлов, один на сообщение. Если у вас много писем, с Maildir обычно легче и быстрее справиться.

Есть ли проблемы / различия в целостности данных?

Да, основной из них заключается в том, что mbox требует блокировки файлов чтения / записи для всего архива, то есть чтение должно ждать записи, а каждая отдельная запись должна ожидать всех других обращений. Если он использовался таким образом, что блокировка невозможна, например, через общий ресурс NFS, архив подвержен повреждению. Любое случайное повреждение может повлиять на весь архив, а не на одно сообщение.

С Maildir блокировка может быть на уровне отдельного сообщения, для большинства операций, и повреждение любого файла повлияет только на это сообщение. Любые индексы в сообщениях могут быть перестроены при необходимости из самих сообщений.

Существуют ли четко определенные ситуации, когда вы должны использовать один формат поверх другого?

Более того, Maildir начинает заменять mbox как универсально предпочтительный формат без существенных недостатков.

Его основным ограничением является создание множества мелких файлов, которые могут создавать нагрузку на некоторые файловые системы и / или быть неэффективными в зависимости от размера кластера файловой системы. Это меньше проблем с современными файловыми системами. Он также может информировать вашу стратегию резервного копирования, но в целом он дает большую гибкость в выборе стратегии резервного копирования.


3

Mbox работает быстро при поиске текста в почтовом ящике и добавлении новой почты в почтовый файл, но он подвержен повреждению почты и может иметь проблемы с сетевыми файловыми системами. Кроме того, блокировка файла может быть проблемой.

С Maildir получение определенных писем происходит быстрее и не имеет проблем из-за блокировки файлов или сетевых файловых систем (например: С Maildir вы можете хранить разные почтовые папки в разных общих папках NFS, это не может быть достигнуто с Mbox). У вас могут быть проблемы с Maildir, когда файловая система неэффективно обрабатывает большое количество файлов.

Я понимаю, что вам нужно масштабируемое решение, прежде чем выбрать одно или другое, обязательно прочитайте этот документ: (даже если вы не используете Courier)

Бенчмаркинг mbox против maildir


Для сравнения: этот эталонный тест - это, в первую очередь, эталон между двумя разными серверами IMAP, и он был сделан автором сервера Courier IMAP (который использует Maildir), и это было сделано в 2001–2003 годах. «Высококлассный компьютер» он был протестирован на Celeron эпохи Pentium-II с 256 МБ памяти PC-100 SDRAM с файловой системой ext2. Однако утверждения о масштабируемости Maildir сегодня, вероятно, еще более верны, чем тогда.
Томасруттер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.