Які практичні відмінності між Maildir та Mbox?


39

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

  • Чи один формат зберігання масштабованіший, ніж інший?
  • Чи є проблеми / відмінності щодо цілісності даних?
  • Чи є чітко визначені ситуації, коли ви повинні використовувати один формат над іншим?

Відповіді:


21

Не керуйте поштовими скриньками з постфікса. Ніколи. Перенаправлення повідомлень для доставки через POP / IMAP-сервер, який має відповідну функціональність. У разі голубця є dovecot-ldaака, deliverякі роблять все та багато іншого, як фільтрування повідомлень, керованих користувачем, управління квотами, автовідповідання тощо.

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


14

Якщо ви використовуєте NFS для зберігання пошти, не використовуйте mbox ні за яких обставин. І якщо ви хочете масштабувати рішення, Maildir - це шлях.

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

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

Основна проблема Maildir полягає в тому, що ви використовуєте файлову систему, яка сповільнюється при обробці занадто багатьох індексів, і якщо ваша система резервного копіювання погано обробляє кілька файлів. Що стосується файлових систем, тоді, коли я робив систематизацію електронної пошти в ISP, 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, і це робиться автором сервера кур'єрських IMAP (який використовує Maildir), і це було зроблено в 2001 по 2003 рр. "Комп'ютер високого класу" це тестування було на Pentium-II епохи Celeron з 256 Мб PC-100 SDRAM, з файловою системою ext2. Твердження, які вони висловлюють про масштабованість Майлдіра, проте, ймовірно, сьогодні навіть більш вірні, ніж тоді.
thomasrutter
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.