Jakie są praktyczne różnice między Maildir a Mbox?


39

Chociaż rozumiem podstawy dwóch formatów przechowywania (1 plik na e-mail pod Maildir vs. 1 pojedynczy plik na skrzynkę pocztową pod mbox), zastanawiam się, jakie są praktyczne konsekwencje -

  • Czy jeden format pamięci jest bardziej skalowalny niż drugi?
  • Czy istnieją obawy / różnice dotyczące integralności danych?
  • Czy istnieją jasno określone sytuacje, w których należy używać jednego formatu w stosunku do drugiego?

Odpowiedzi:


21

Nie zarządzaj skrzynkami pocztowymi z Postfix. Nigdy. Przekieruj wiadomości do dostarczenia za pośrednictwem serwera POP / IMAP, który ma odpowiednią funkcjonalność. W przypadku dovecot istnieje dovecot-ldaaka, deliverktóra robi wszystko i wiele więcej, na przykład kontrolowane przez użytkownika filtrowanie wiadomości, zarządzanie limitami, automatyczne odpowiedzi i tak dalej.

W każdym razie maildir jest nowszym i preferowanym formatem ze względu na wiele ulepszeń w porównaniu do maibox. Maildir ma indeks dla każdego folderu, który pozwala kontrolować duplikaty, czasy wygaśnięcia, a nawet wyszukiwanie pełnotekstowe. Ponadto maildir jest znacznie szybszy na ogromnym stosie wiadomości. Dovecot może z łatwością obsługiwać maildir z 300 000 wiadomości bez widocznego spowolnienia. Tak duża skrzynka pocztowa to sam problem. Ponadto większość nowoczesnych serwerów POP / IMAP ma wiele narzędzi do typowych zadań w dużej infrastrukturze.


14

Jeśli używasz NFS do przechowywania poczty, nie używaj mbox w żadnych okolicznościach. A jeśli chcesz skalowalnego rozwiązania, Maildir jest najlepszym rozwiązaniem.

Głównym problemem związanym z formatem mbox jest blokowanie plików - jeśli masz więcej niż jeden serwer pocztowy lub więcej niż jeden proces próbujący uzyskać dostęp do skrzynki pocztowej w tym samym czasie, istnieje duże ryzyko otrzymania uszkodzonej skrzynki pocztowej. Trudno jest również przejść przez skrzynkę pocztową i usunąć dużą liczbę wiadomości, na przykład gdy doznałeś burzy.

Maildir został zaprojektowany tak, aby działał bezawaryjnie, gdy masz kilka serwerów pocztowych lub kilka procesów na jednym serwerze, dostarczając pocztę e-mail na to samo konto w tym samym czasie, gdy serwer IMAP lub POP uzyskuje dostęp do konta.

Główny problem z Maildir polega na tym, że używasz systemu plików, który zwalnia podczas obsługi zbyt wielu i-węzłów i jeśli twój system tworzenia kopii zapasowych źle radzi sobie z obsługą wielu plików. Jeśli chodzi o systemy plików, w przeszłości, kiedy robiłem administrację poczty e-mail u dostawcy usług internetowych, VXFS był do tego najlepszy. W przypadku kopii zapasowych nie mam żadnych zaleceń; niestety większość z nich została zaprojektowana do obsługi serwerów baz danych, a nie małych gazillionów plików.


4

Postfix nie przejmuje się głównie. Po prostu umieszcza pocztę w jakimś pliku. Interesująca część pojawia się, gdy chcesz pobrać pocztę z urządzenia przez IMAP (lub POP3). Większość serwerów IMAP (próbowałem) preferuje Maildir, ponieważ są one łatwiejsze do rozszerzenia o różne metadane, których może potrzebować serwer IMAP, przy jednoczesnym zachowaniu podstawowej struktury „to jest Maildir”, dzięki czemu można wymienić serwer IMAP bez zerwania za dużo (oczywiście stracisz metadane, które obejmują również flagi poczty, więc powinieneś przeczytać dokumenty migracji serwera IMAP, jeśli naprawdę chcesz się przełączyć).


4

Aby odpowiedzieć na konkretne pytania:

Czy jeden format pamięci jest bardziej skalowalny niż drugi?

mbox ma tendencję do trudności w zarządzaniu, tym większe staje się. Ponieważ przechowuje wszystko w jednym dużym obiekcie blob, tworzenie kopii zapasowej przyrostowo może być trudne, a taki dostęp zablokuje mbox przed zapisem, gdy to się stanie. W przypadku korupcji trudniej jest spróbować naprawić lub odzyskać - co można powiedzieć, że ryzyko wzrasta, ponieważ przechowuje więcej poczty.

Maildir opiera się na podstawowym systemie plików ze względu na jego skalowalność, ponieważ w sposób charakterystyczny tworzy wiele małych plików, po jednym na wiadomość. Jeśli masz dużo e-maili, Maildir jest zwykle łatwiejszy i szybszy w obsłudze.

Czy istnieją obawy / różnice dotyczące integralności danych?

Tak, najważniejsze jest to, że mbox wymaga zablokowania pliku do odczytu / zapisu w całym archiwum, co oznacza, że ​​odczyty muszą czekać na zapis, a każdy zapis musi czekać na wszystkie pozostałe dostępy. Jeśli zostało użyte w taki sposób, że blokowanie nie jest możliwe, na przykład przez udział NFS, archiwum może ulec uszkodzeniu. Każde przypadkowe uszkodzenie może wpłynąć na całe archiwum, a nie na pojedynczą wiadomość.

W Maildir blokowanie może odbywać się na poziomie pojedynczej wiadomości, w przypadku większości operacji, a uszkodzenie dowolnego pliku wpłynie tylko na tę wiadomość. Wszelkie indeksy wiadomości można w razie potrzeby odbudować z samych wiadomości.

Czy istnieją jasno określone sytuacje, w których należy używać jednego formatu w stosunku do drugiego?

Bardziej jest tak, że Maildir zaczyna zastępować mbox jako powszechnie preferowany format, bez znaczących wad.

Jego głównym ograniczeniem jest tworzenie wielu, wielu małych plików, które mogły obciążać niektóre systemy plików i / lub być nieefektywne w zależności od wielkości klastra systemu plików. Jest to mniejszy problem w przypadku nowoczesnych systemów plików. Może również informować o strategii tworzenia kopii zapasowych, ale ogólnie daje większą elastyczność w wyborze strategii tworzenia kopii zapasowych.


3

Mbox jest szybki podczas wyszukiwania tekstu w skrzynce pocztowej i dodawania nowej poczty do pliku pocztowego, ale jest podatny na uszkodzenie poczty i może mieć problemy z sieciowymi systemami plików. Problemem może być również blokowanie plików.

Dzięki Maildir pobieranie określonych wiadomości e-mail jest szybsze i nie ma problemów z powodu blokowania plików lub sieciowych systemów plików (Przykład: Maildir umożliwia przechowywanie różnych folderów poczty w różnych udziałach NFS, czego nie można osiągnąć w Mbox). Możesz mieć problemy z Maildir, gdy system plików nie jest wydajny w obsłudze dużej liczby plików.

Rozumiem, że potrzebujesz skalowalnego rozwiązania, zanim wybierzesz jedno lub drugie, przeczytaj ten dokument: (Nawet jeśli nie korzystasz z Kuriera)

Benchmarking mbox kontra maildir


Mówiąc z perspektywy czasu, ten test porównawczy jest przede wszystkim testem porównawczym między dwoma różnymi serwerami IMAP i został dokonany przez autora serwera IMAP firmy kurierskiej (który korzysta z Maildir) i zostało to zrobione w latach 2001-2003. „Komputer klasy wyższej” przetestowano go na Celeronie z czasów Pentium-II z 256 MB pamięci PC-100 SDRAM z systemem plików ext2. Twierdzenia na temat skalowalności Maildir są jednak prawdopodobnie jeszcze bardziej prawdziwe niż wtedy.
thomasrutter
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.