Forum: PC Hard- und Software Mailclient für viele Emails


von Kolja L. (kolja82)


Lesenswert?

Moin

Ich habe ca 70.000 Emails in zwei Konten, die ich gerne gescheit 
archivieren würde.
Gesammelt wurden die Mails mit Thunderbird, daher in mbox Dateien 
(30GB).

Was jetzt gemacht werden soll:
- beide Ordner zusammenführen
- Duplikate löschen
- Anhänge in einem Ordner auslagern

Ich bin davon ausgegangen, dass dies alles mit Thunderbird zu machen 
ist.
Leider nicht.

Schon das Zusammenführen der Konten lässt TB immer einfrieren (i5 mit 
8GB RAM, SSD)
Duplikate kann ich finden (sind viele), aber nicht löschen
Anhänge in Ordner geht gar nicht, weil alle AddOns völlig veraltet sind


Was ist also ein Client, der mit all diesen Dingen keine Probleme hat
und die mbox Dateine lesen kann?

Sollte Freeware sein, kann aber auch ein bisschen was kosten.

Gruß Kolja

von Christian M. (Gast)


Lesenswert?

Ich benutze MailStore Home, vielleicht ist das was für Dich? Geht in 
gratis Home-Version nicht über Netzlaufwerke.

Gruss Chregu

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ich würde das scripten, Perl oder Python, ggf. auch eine Datenbank als 
Zwischenspeicher. Bei letzterer hättest du die Ent-Duplikatisierung 
einfach, indem du die Message-ID als primary key benutzt.

Das ist sicher auch bisschen Arbeit, aber hätte eine gute Chance, dass 
man die Anforderungen wirklich wunschgemäß umsetzen kann.

von Jens M. (schuchkleisser)


Lesenswert?

Zum Archivieren, Suchen, Migrieren und Konvertieren nutze ich MailStore 
Home.
Es gibt nix besseres.

Für de Duplikate weiß ich allerdings nichts.
Es gibt viel Pröddel (ich nutze Outlook), nichts funktioniert wirklich.
Da bin ich auch für Ideen offen ;)

von DPA (Gast)


Lesenswert?

Der einzige Client, den ich kenne, der wirklich gut mit vielen Mails 
zurecht kommt, ist Roundcube. Ist aber kein lokales Mailprogramm in dem 
sinne, sondern eine Webanwendung, die bei mir zuhause auf meinem eigenen 
Mailserver läuft. Zum speichern der Mails verwende ich aber nicht mbox, 
sondern Maildir. Damit lässt es sich auch viel einfacher arbeiten, auch 
ohne spezielle Tools, sind ja nur ein paar Ordner mit Mails drin. 
Vermutlich ist der Zugriff auf viele Mails mit Maildir auch besser. 
Verzeichnis/Postfach mit 457124 Mails, beliebige Seite mit einem 
Ausschnitt von 100 Mails drauf in nur 2-3 Sekunden geladen. Kleinere 
Verzeichnisse in 1-2 Sekunden. Lokal hab ich momentan auch Thunderbird, 
aber ob ich dort mbox oder was anderes habe weiss ich gerade nicht, da 
darf ich nicht auf die Verzeichnisse mit vielen Mails klicken, sonst 
hängt das ein paar ein zwei Minuten. Eventuell sollte ich da auch mal 
was machen.

von Kolja L. (kolja82)


Lesenswert?

MailStore klingt ganz gut, will sich aber nicht installieren lassen.
Es kommt immer die Fehlermeldung "Verzeichnis nicht leer".
Habe es aber gerade erst erstellt.

RoundCube kenne ich, aber ich möchte jetzt nicht extra ne Webserver 
dafür aufsetzten müssen.

Ich bleib auf der Suche

von Kolja L. (kolja82)


Lesenswert?

Wenn es local installiert wird (nicht portabel) dann gehts,
aber das Auswählen einer mbox Datei ergibt: "Die durchgeführte Aktion 
hat mehr Zeit in Anspruch genommen als erwartet"
Und das war die kleinere Datei.

edit:
Auch der Import über Mozilla geht nicht.
Mein Profil wird zwar gefunden, aber "Es ist ein Fehler aufgetreten"

: Bearbeitet durch User
von Jens M. (schuchkleisser)


Lesenswert?

Ich hatte das bei Outlookfiles auch, ich hab es dann auf Outlook 
zugreifen lassen, da gings.
Evtl. geht das mit TB auch?

Mein Rekord waren allerdings nur ~25GB. Mag sein, das es größer auch 
Probleme bekommt.

von Claus H. (hottab) Benutzerseite


Lesenswert?

Christian M. schrieb:
> Ich benutze MailStore Home,

Vers 4. nutze ich bereits über 10 Jahre. Die neueren Versionen habe ich 
auch getestet, sind noch nicht notwendig. Die Einarbeitungszeit ist 
gering.

Es erkennt Duplikate. Alle 2 bis 3 Jahre lagere ich aus. Je 3 POP- und 3 
IMAP-Konten kann man einrichten. Die werden zeitgesteuert automatisch 
abgeholt. Momentan speichert es ca. 150.000 eMails.

von Kolja L. (kolja82)


Lesenswert?

Nochmal installiert und jetzt liest er die Mais ein!
Das wird dauern :-)

von Alexander S. (alesi)


Lesenswert?

Kolja L. schrieb:
> Was ist also ein Client, der mit all diesen Dingen keine Probleme hat
> und die mbox Dateine lesen kann?

Hallo,

evtl. hilft Dir diese Seite:

https://unix.stackexchange.com/questions/131977/imap-folders-how-big-is-too-big

von Kolja L. (kolja82)


Lesenswert?

Mhh, es sind alles IMAP Folder, aber die sind ja schon lokal 
gespeichert.
Für die 2GB Grenze ist es wohl zu spät...

MailStore hat in einer Stunde nicht ganz 3.000 Mail eingelesen.
Dauert also noch etwas länger...

von Kolja L. (kolja82)


Lesenswert?

So, ist durchgelaufen.
Leider sind von dem großen Konto (gmail) keine Mails importiert 
worden...

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ich habe für diesen Fall ein paar Zeilen Xojo (ehem. 
RealBasic/RealStudio) benutzt.

Im Sprachumfang gibt es eine Klasse "Email". In Verbindung mit einem 
Socket (TCP-Klasse mit wahlweise POP3 oder IMAP-Protokoll obendrauf) 
hole ich mir die einzelnen Mails jeweils komplett als RAW-Datenblock vom 
Server und speichere diese als Text-Dateien.

Das geht deshalb, weil Mail ein rein textbasiertes Medium ist und alle 
Inhalte jeweils als ein einziger langer, strukturierter Text vorliegen: 
Header, HTML, Plaintext inkl. scheinbar binärer Bestandteile u. Anhänge. 
Die sind in Base64 (also auch nur Text).

Ich bin sicher, das geht in anderen Sprachen/Scripten ganz genau so zu 
machen.

Gibt man diesen Dateien noch die Endung ".eml" hat man genau das, was MS 
und zahlreiche andere Mailserver bzw. -Clients und Archivprogramme auch 
nur machen. Das ist nämlich ein verbreiteter Standard, den man dann mit 
eigenem Code oder anderer fertiger Software beliebeig weiterverarbeiten 
kann.

von Nano (Gast)


Lesenswert?

DPA schrieb:
> Der einzige Client, den ich kenne, der wirklich gut mit vielen Mails
> zurecht kommt, ist Roundcube. Ist aber kein lokales Mailprogramm in dem
> sinne, sondern eine Webanwendung, die bei mir zuhause auf meinem eigenen
> Mailserver läuft. Zum speichern der Mails verwende ich aber nicht mbox,
> sondern Maildir. Damit lässt es sich auch viel einfacher arbeiten, auch
> ohne spezielle Tools, sind ja nur ein paar Ordner mit Mails drin.
> Vermutlich ist der Zugriff auf viele Mails mit Maildir auch besser.

Maildir ist bei > 70k Mails keine gute Idee, denn:

" Jede E-Mail wird dabei als eigene Datei in fest definierten 
Verzeichnissen repräsentiert."
Quelle: https://de.wikipedia.org/wiki/Maildir

D.h. da belegt schon eine einzige Mail mit vielleicht 30 Zeichen Text 
einen ganzen Cluster des Dateisystems.

Also anstatt ein paar Bytes gleich 4048 Bytes oder, je nach 
Clustergröße, noch mehr.

Es hat schon seinen Grund, warum E-Mail Programme nicht alle Maildir 
verwenden und stattdessen andere, kompaktere Lösungen wählen.

von Nano (Gast)


Lesenswert?

Jörg W. schrieb:
> Ich würde das scripten, Perl oder Python,

Wenn das gewerbliche Mails sind, die er 10 Jahre aufbewahren muss, würde 
ich lieber etwas nehmen, dass auch erprobt ist.
Da reicht ein Fehler im Parser und schon hat man Datensalat.


> ggf. auch eine Datenbank als
> Zwischenspeicher. Bei letzterer hättest du die Ent-Duplikatisierung
> einfach, indem du die Message-ID als primary key benutzt.

Ein E-Mailprogramm das die Mails von Thunderbird importieren kann und 
selbst ein ausgereiftes Datenbankmanagementsystem zum Speichern 
verwendet, wäre wohl die sinnvollste Lösung.

@TS
Schau dir mal diese Liste an, vielleicht findest du etwas passendes:

https://en.wikipedia.org/wiki/Comparison_of_email_clients#Database,_folders_and_customization

Und mach vor allem von den bestehenden Daten ein Backup für die 
Daueraufbewahrung. Sichere auch die dazu passende Thunderbird Version.
Verlasse dich nicht darauf, dass der Import in ein anderes E-Mail 
Programm und das finden der Duplikate fehlerfrei funktioniert.
Solange du ein Backup der Originaldaten hast, hast du zumindest die 
Möglichkeit immer wieder dran zu kommen.
Zumindest gilt das, wenn die Daten für dich wichtig sind.

Wenn Speicherplatz keine Rolle spielt, dann kann Maildir in der Tat ein 
Vorteil sein.
Einzelne Dateien pro Mail sind in dieser Hinsicht nämlich sehr 
unproblematisch, auch wenn sie jede Menge Speicherplatz verschwenden.

von MiWi (Gast)


Lesenswert?

Kolja L. schrieb:
> Moin
>
> Ich habe ca 70.000 Emails in zwei Konten, die ich gerne gescheit
> archivieren würde.

> Gesammelt wurden die Mails mit Thunderbird, daher in mbox Dateien
> (30GB).
>
> Was jetzt gemacht werden soll:
> - beide Ordner zusammenführen
> - Duplikate löschen
> - Anhänge in einem Ordner auslagern

> Was ist also ein Client, der mit all diesen Dingen keine Probleme hat
> und die mbox Dateine lesen kann?
>

The Bat kann mit Mbox importieren.

Mein Hauptmailaccount hat in Summe ca - 63k Mails (gesendete und 
empfangene), in Summe muß the Bat 70k Mails in 7 "Konten" managen.

Mails werden durch Filter automatisch in die entsprechenden "Ordner" 
(auch Kontoübergreifend) verschoben. Ob die Filter vorher oder später 
aktiviert werden ist egal, das geht alles ziemlich schnell.

Duplikate löschen, Komprimieren oder auf Integrität prüfen geht 
ratzfatz, selbst mit einer magnetischen Platte, Anhänge werden dort 
gespeichert wo Du sie gespeichert haben willst und zusammenführen 
unterschiedlicher Accounts  ist auch kein Problem - Mails aus dem einen 
Account markieren, kopieren und im anderen Account einfügen. Fertig.

Allerdings arbeite ich nach wie vor mit Pop3/SMTP, also nix mit IMAP 
(ist hier nicht sinnvoll, da die Mails lokal und nicht auf irgendeinem 
fremden  Server liegen sollen).

Suchen und Finden von Mails geht sehr gut und schnell wenn ein halbwegs 
brauchbarer Suchbegriff bekannt ist, es kann Ordner und 
Kontoübergreifend oder auch nur in einem Ordner gesucht werden....

Das Programm kostet ein bischen was doch ich komme weder mit Outlook 
noch mit Thunderbird klar (Outook muß ich bei einem Kunden verwenden, 
Thunderbird sehe ich bei anderen... Nein Danke...)

Und Abstürze? Mit der Version die ich habe sind mit bisher keine 
passiert (auf 5 verschiedenen Rechnern)

hth

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nano schrieb:
> D.h. da belegt schon eine einzige Mail mit vielleicht 30 Zeichen Text
> einen ganzen Cluster des Dateisystems.

Man sollte es ja vielleicht auch nicht auf FAT-Dateisystemen mit ihren 
berüchtigten Clustern benutzen. ;-) Bessere Filesysteme haben dafür 
bessere Konzepte … Allerdings einen Plattenblock wird jede Datei 
natürlich schon minimal belegen, das können auf neueren Platten dann 
auch 4 KiB sein.

Mails mit nur 30 Zeichen gibt es jedoch praktisch nicht. Gerade mal 
nachgesehen, die kleinste Mail, die ich so auf die Schnelle in meiner 
Inbox sehe (zwei zitierte Zeilen, zwei eigene Zeilen Text) hat schon mal 
knapp 4 KiB – dank DKIM, "Received" und was da noch so alles drin steht 
in Header und Signatur. Wenn die Mails von einem Exchange-Server kamen, 
kannst du dich vor Metadaten im Header gar nicht retten, unter 10 … 12 
KiB läuft da gar nichts.

Nano schrieb:
>> Ich würde das scripten, Perl oder Python,
>
> Wenn das gewerbliche Mails sind, die er 10 Jahre aufbewahren muss, würde
> ich lieber etwas nehmen, dass auch erprobt ist.
> Da reicht ein Fehler im Parser und schon hat man Datensalat.

Dass man solch eine Aktion grundsätzlich nur auf einer Kopie der Daten 
laufen lässt, sollte klar sein. Außerdem würde ich schon aus Gründen der 
Verarbeitungszeit so einen Script erstmal auf einem kleinen Extrakt der 
originalen Maildaten laufen lassen, bis ich das Vertrauen habe, dass er 
das tut, was ich mir vorstelle.

von Daniel A. (daniel-a)


Lesenswert?

Nano schrieb:
> Maildir ist bei > 70k Mails keine gute Idee, denn:
>
> " Jede E-Mail wird dabei als eigene Datei in fest definierten
> Verzeichnissen repräsentiert."
> Quelle: https://de.wikipedia.org/wiki/Maildir
>
> D.h. da belegt schon eine einzige Mail mit vielleicht 30 Zeichen Text
> einen ganzen Cluster des Dateisystems.
>
> Also anstatt ein paar Bytes gleich 4048 Bytes oder, je nach
> Clustergröße, noch mehr.

Das ist nicht viel. Ausserdem enthalten Mails immer auch noch Header. 
Auch ohne Inhalt können da schon mal 2000 bis 3000 Bytes zusammenkommen. 
Zudem sind bei derart vielen Mails die meisten sicher nicht leer.

Gerade mal bei mir auf dem Server nachgesehen:
1
root@pelican:/home/daniel# ls -1 Maildir/.*/{cur,new}/ | wc -l
2
664434
3
root@pelican:/home/daniel# du -hs Maildir/
4
8.3G  Maildir/
5
root@pelican:/home/daniel# du -hs --apparent-size Maildir/
6
7.0G  Maildir/

Also rund 664434 bei mir insgesamt, zusätzlicher Speicherverbrauch bei 
rund 18.57%. Das ist nicht viel. Und seien wir mal ehrlich, 664434 Mails 
sind nur 8.3G, im Vergleich zu was ich sonst so auf meinem System habe 
ist das nichts.

Zudem gibt es weitere Nachteile, so viele Mails stattdessen in eine 
Datei zu packen. Löscht man z.B. eine, muss ja das ganze File neu 
geschrieben werden. Je nach Dateiformat und anderen Faktoren ist auch 
das Abrufen einer Mail ineffizienter.

(Edit: Dateisystem ist ext4.)

: Bearbeitet durch User
von phaseshifter (Gast)


Lesenswert?

Kolja L. schrieb:
> Was ist also ein Client, der mit all diesen Dingen keine Probleme hat
> und die mbox Dateine lesen kann?

neomutt? (siehe auch 
https://mailman.neomutt.org/pipermail/neomutt-users-neomutt.org/2018-August/000392.html)

von (prx) A. K. (prx)


Lesenswert?

Jörg W. schrieb:
> Man sollte es ja vielleicht auch nicht auf FAT-Dateisystemen mit ihren
> berüchtigten Clustern benutzen. ;-) Bessere Filesysteme haben dafür
> bessere Konzepte … Allerdings einen Plattenblock wird jede Datei
> natürlich schon minimal belegen, das können auf neueren Platten dann
> auch 4 KiB sein.

Es gibt Filesysteme, die mehrere kleine Files in einen Block packen. 
Früher wäre für so einen Fall ReiserFS empfohlen worden.
https://en.wikipedia.org/wiki/Block_suballocation

Welches verwendest du denn? UFS2 gehört mit dazu.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

A. K. schrieb:
> Welches verwendest du denn? UFS2 gehört mit dazu.

UFS (exakter: Berkeley FFS) konnte das schon länger (Stichwort: 
fragments, 1/8 eines normalen Blocks). Mittlerweile bin ich bei ZFS, 
habe aber leider von der Architektur dieses Dateisystems keine Ahnung. 
:)

Benutze selbst auch kein Maildir (sondern nach wie vor Mbox), aber bei 
mir sind die Mailboxen auch nicht so riesig.

von Nano (Gast)


Lesenswert?

Jörg W. schrieb:
> Nano schrieb:
>> D.h. da belegt schon eine einzige Mail mit vielleicht 30 Zeichen Text
>> einen ganzen Cluster des Dateisystems.
>
> Man sollte es ja vielleicht auch nicht auf FAT-Dateisystemen mit ihren
> berüchtigten Clustern benutzen. ;-) Bessere Filesysteme haben dafür
> bessere Konzepte … Allerdings einen Plattenblock wird jede Datei
> natürlich schon minimal belegen, das können auf neueren Platten dann
> auch 4 KiB sein.

Ja, ich meinte eigentlich die Block Size.
Cluster size ist eigentlich eine unter Windows übliche Terminology und 
wird dort synonym mit Block size und Allocation unit verwendet.

Die Blocksize ist bei den meisten modernen Dateisystemen oftmals in 
Schritten von 512 Byte, 1k, 2k, 4k, 8k usw. frei wählbar, aber aufgrund 
der Größe moderner Datenträger nimmt man meist 4096 Bytes als Block size 
oder größer.

Weiter oben hat sich übrigens ein Fehler eingeschlichen, ich habe 4048 
Bytes geschrieben, meinte aber 4096 Bytes.


> Mails mit nur 30 Zeichen gibt es jedoch praktisch nicht. Gerade mal
> nachgesehen, die kleinste Mail, die ich so auf die Schnelle in meiner
> Inbox sehe (zwei zitierte Zeilen, zwei eigene Zeilen Text) hat schon mal
> knapp 4 KiB – dank DKIM, "Received" und was da noch so alles drin steht
> in Header und Signatur. Wenn die Mails von einem Exchange-Server kamen,
> kannst du dich vor Metadaten im Header gar nicht retten, unter 10 … 12
> KiB läuft da gar nichts.

Das ist natürlich richtig, allerdings reicht bei einer Speicherung von 1 
Datei pro Mail schon eine Größe von "Blocksize + 1 Byte" um einen ganzen 
"Block - 1 Byte" zu verschwenden.

Man hat also auch Verluste, wenn die Dateien ein bisschen größer sind.
Bei großen Mails fällt das natürlich nicht mehr so stark ins Gewicht, 
aber Mails haben dummerweise die Angewohnheit, dass sie eher klein sind 
und sich im Rahmen von wenigen kByte bewegen, also hat man am Ende der 
Datei immer Verschnitt.

Speicherungsarten, die die Mails aneinander hängen und aus vielen Mails 
eine oder mehrere große Dateien machen sind da bezüglich dem 
Speicherplatzverbrauch effizienter.
Der Nachteil ist dann allerdings die Fehleranfälligkeit.
Dem Problem kann man aber etwas abmildern, in dem man ausgereifte 
Datenbankmanagementsysteme verwendet. Bei kaputtem Speicher können deren 
Datenbanken allerdings auch kaputt gehen.
Bei einzelnen Dateien pro Mail kann das zwar auch passieren, aber der 
Schaden ist dann nicht so groß.

Bei Dateisystemen wie ext3 und ext4 sollte man noch im Hinterkopf 
behalten, dass die Anzahl der verfügbaren Inodes begrenzt ist. Bei 
vielen kleinen Dateien besteht theoretisch die Gefahr, dass die einem 
also ausgehen bevor einem der Speicherplatz auf der Partition aus geht.

Die Anzahl der freien inodes und inodes insgesamt kann man übrigens mit 
dem Befehl:
sudo tune2fs -l /dev/{PARTITION} | grep -i inode
anzeigen.


Die Blocksize erhält man mit dem Befehl:
sudo tune2fs -l /dev/mapper/vgubuntu-home | grep -i "Block size"

Unter Windows geht das bei den für Windows bekannten Dateisystemen in 
der Powershell mit dem Befehl:

Get-WmiObject -Class Win32_Volume | Select-Object Label, Blocksize | 
Format-Table -AutoSize



> Nano schrieb:
>>> Ich würde das scripten, Perl oder Python,
>>
>> Wenn das gewerbliche Mails sind, die er 10 Jahre aufbewahren muss, würde
>> ich lieber etwas nehmen, dass auch erprobt ist.
>> Da reicht ein Fehler im Parser und schon hat man Datensalat.
>
> Dass man solch eine Aktion grundsätzlich nur auf einer Kopie der Daten
> laufen lässt, sollte klar sein.

Schon klar, aber es ist möglich, dass sich Fehler einschleichen, die man 
bei einer kleinen Menge an Testdaten gar nicht merkt und man sich dann 
beim sichern vieler tausender Mails in falscher Sicherheit wiegt.

Ausgereifte Import- und Exportfunktionen von E-Mail Programmen haben 
hier den Vorteil, dass die von tausenden von Benutzer schon benutzt 
wurden und der ein oder andere Fehler da dann sicher schon aufgefallen 
und behoben wurde.
Eine Alternative dazu wäre, auf ausgereifte Bibliotheken zu setzen, die 
so etwas auch können.

> Außerdem würde ich schon aus Gründen der
> Verarbeitungszeit so einen Script erstmal auf einem kleinen Extrakt der
> originalen Maildaten laufen lassen, bis ich das Vertrauen habe, dass er
> das tut, was ich mir vorstelle.

Das Skript kann nur so gut sein, wie du auch die verschiedenen Fälle von 
unterschiedlichen Testdaten abdeckst. Fehlt da ein Testszenario, dann 
könnte das unten durchschlüpfen und zu Problemen führen.
Deswegen würde ich bei so kritischem Sachen, wie den geschäftlichen 
E-Mail Verkehr, zu etwas ausgereiftem greifen und die Originaldaten 
trotzdem noch als Backup irgendwo sichern.

von Nano (Gast)


Lesenswert?

Daniel A. schrieb:
> Also rund 664434 bei mir insgesamt, zusätzlicher Speicherverbrauch bei
> rund 18.57%. Das ist nicht viel. Und seien wir mal ehrlich, 664434 Mails
> sind nur 8.3G, im Vergleich zu was ich sonst so auf meinem System habe
> ist das nichts.

Ich habe hier eine kleine ca. 14 GB große Partition für /var, die hat 
nur 960992 inodes.
Bei 664434 Mails wäre das mittelfristig betrachtet schon recht knapp.

Vor allem wenn man Geschäftsmails für AFAIK 10 Jahre vorrätig halten 
muss, könnte das noch zu einem Problem werden.

Auf jeden Fall sollte man beim Anlegen der Partition darauf achte, dass 
der Vorrat an inodes groß genug ist, wenn man vor hat, sehr viele kleine 
Dateien auf der Partition zu speichern.


Noch eine kleine Ergänzung:
Mit dem Befehl "df -i" geht das mit dem Anzeigen der freien inodes 
übrigens besser, als das was ich zuvor geschrieben habe.


>
> Zudem gibt es weitere Nachteile, so viele Mails stattdessen in eine
> Datei zu packen. Löscht man z.B. eine, muss ja das ganze File neu
> geschrieben werden. Je nach Dateiformat und anderen Faktoren ist auch
> das Abrufen einer Mail ineffizienter.

Ja, das ist möglich. Anderseits könnte ein cleveres E-Mailprogramm auch 
1 Datei für die Mails pro Monat, Quartal oder Jahr anlegen und die 
neueste Datei in den Speicher laden, dann geht der Zugriff recht 
schnell.
Da gibt's schon einige Optimierungen und DBMS beachten so etwas auch.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nano schrieb:
> Das ist natürlich richtig, allerdings reicht bei einer Speicherung von 1
> Datei pro Mail schon eine Größe von "Blocksize + 1 Byte" um einen ganzen
> "Block - 1 Byte" zu verschwenden.

Im Mittel verschwendet man mit jeder Datei die Größe einer halben 
(kleinsten) Zuordnungseinheit.

An i-nodes hätte ich wohl keinen Mangel:
1
$ df -ih /home
2
Filesystem    Size    Used   Avail Capacity iused ifree %iused  Mounted on
3
zroot/home    365G     32G    334G     9%    334k  700M    0%   /home

Relativ zur Belegung des Speichers ist da praktisch noch gar nichts an 
i-nodes belegt. :-)

Dass der Missbrauch des Dateisystems als Datenbank nicht unproblematisch 
ist, ist schon klar, aber selbst Usenet-Newsserver sind damit jahrelang 
problemlos klar gekommen. Sie haben dort lediglich eine Zwischenebene 
eingefügt, damit die Anzahl der Dateien pro Verzeichnis nicht ausufert.

von (prx) A. K. (prx)


Lesenswert?

Jörg W. schrieb:
> zroot/home    365G     32G    334G     9%    334k  700M    0%   /home

Wie gut dass ZFS diese i-nodes nicht reserviert. Bei einer i-node pro 
512 Bytes bliebe sonst nicht viel Raum für Daten. ;-)

: Bearbeitet durch User
von DPA (Gast)


Lesenswert?

A. K. schrieb:
> Bei einer i-node pro 512 Bytes

Normalerweise gibt es eine inode Nummer pro Datei.

von (prx) A. K. (prx)


Lesenswert?

DPA schrieb:
> A. K. schrieb:
>> Bei einer i-node pro 512 Bytes
>
> Normalerweise gibt es eine inode Nummer pro Datei.

Ja. Und solch eine ZFS dnode ist 512 Bytes gross. Mit 700M Nodes ist 
sein Filesystem also voll mit Verwaltungsinformation, völlig ohne Daten. 
Daher stammt dieses Pseudo-Limit. Mehr geht nicht.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Jörg W. schrieb:
> Dass der Missbrauch des Dateisystems als Datenbank nicht unproblematisch
> ist, ist schon klar,

So klar ist das nicht. Einige Filesysteme sind robuster als MySQLs 
Oldtimer Engine MyISAM.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

A. K. schrieb:
> Wie gut dass ZFS diese i-nodes nicht reserviert.

:-)

Ich habe auch Dateisysteme, die mehr i-node-Auslastung anzeigen, aber 
die sind insgesamt voller. Offenbar wird mit stärkerem Füllstand auch 
automatisch die maximal mögliche Anzahl an i-nodes reduziert.

Yep, mal einen kurzen Test gemacht, kleines ZFS-Dateisystem angelegt und 
gefüllt, dabei immer ein df -ih mitlaufen lassen:
1
Filesystem    Size    Used   Avail Capacity iused ifree %iused  Mounted on
2
zspool/foo    100M     90M     10M    90%     13k   21k   38%   /var/spool/foo
3
zspool/foo    100M     92M    8.1M    92%     13k   17k   43%   /var/spool/foo
4
zspool/foo    100M     94M    5.9M    94%     13k   12k   51%   /var/spool/foo
5
zspool/foo    100M     96M    3.9M    96%     13k  8.0k   61%   /var/spool/foo
6
zspool/foo    100M     98M    1.9M    98%     13k  3.9k   77%   /var/spool/foo
7
zspool/foo    100M    100M      0B   100%     13k     0  100%   /var/spool/foo

Interessant …

von Nano (Gast)


Lesenswert?

Jörg W. schrieb:
> Ich habe auch Dateisysteme, die mehr i-node-Auslastung anzeigen, aber
> die sind insgesamt voller. Offenbar wird mit stärkerem Füllstand auch
> automatisch die maximal mögliche Anzahl an i-nodes reduziert.

Nein, die Anzahl der inodes wird von Anfang an bei der Erstellung der 
Partition festgelegt.
Es scheint eher so, dass die Partitionsprogramme bei kleinen 
Partitionsgrößen eine kleinere Anzahl an inodes vorschlägt.

Oben habe ich meine /var Partition genannt, die ist sehr klein und hat 
recht wenige inodes.
Bei meinem /home Verzeichnis, das deutlich größer ist, sieht es deutlich 
besser aus.

Bei beiden habe ich als Dateisystem ext4 gewählt.

von (prx) A. K. (prx)


Lesenswert?

Jörg W. schrieb:
> Offenbar wird mit stärkerem Füllstand auch
> automatisch die maximal mögliche Anzahl an i-nodes reduziert.

Logisch. Die maximale Anzahl freier dnodes kann nicht grösser sein als 
die Anzahl freier Bytes / 512. Der in df angezeigte Wert freier i-nodes 
dürfte im API ad-hoc aus der freien Kapazität berechnet werden.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nano schrieb:
> Nein, die Anzahl der inodes wird von Anfang an bei der Erstellung der
> Partition festgelegt.

Du hast leider nicht zugehört ("zugelesen" klingt komisch ;-): es geht 
um ZFS hier.

Da ist das tatsächlich völlig dynamisch, wie du meinem Trace entnehmen 
kannst. Die Zahl der freien i-nodes wird dort einfach immer so 
hinreichend groß angezeigt, dass die Situation "alle i-nodes belegt, 
obwohl noch Platz im Dateisystem ist" nie eintreten kann.

Dass 40 Jahre alte Dateisysteme (extXfs ist in dieser Hinsicht ja nach 
wie vor der alte FFS-Rewrite, mit dem ext2fs angefangen hat) das anders 
handhaben, ist klar und unbestritten.

von (prx) A. K. (prx)


Lesenswert?

Nano schrieb:
> Nein, die Anzahl der inodes wird von Anfang an bei der Erstellung der
> Partition festgelegt.

Nur bei Filesystemstrukturen mit fester Anzahl i-nodes. Filesysteme wie 
ZFS, JFS2 und btrfs allozieren i-nodes dynamisch, ein bei mkfs 
definiertes Limit existiert also nicht.

: Bearbeitet durch User
von Nano (Gast)


Lesenswert?

Jörg W. schrieb:
> Nano schrieb:
>> Nein, die Anzahl der inodes wird von Anfang an bei der Erstellung der
>> Partition festgelegt.
>
> Du hast leider nicht zugehört ("zugelesen" klingt komisch ;-): es geht
> um ZFS hier.
>
> Da ist das tatsächlich völlig dynamisch, wie du meinem Trace entnehmen
> kannst. Die Zahl der freien i-nodes wird dort einfach immer so
> hinreichend groß angezeigt, dass die Situation "alle i-nodes belegt,
> obwohl noch Platz im Dateisystem ist" nie eintreten kann.
>
> Dass 40 Jahre alte Dateisysteme (extXfs ist in dieser Hinsicht ja nach
> wie vor der alte FFS-Rewrite, mit dem ext2fs angefangen hat) das anders
> handhaben, ist klar und unbestritten.

Ach so, okay. Mein Fehler.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.