[linux-l] Neues Root-Dateisystem

Peter Ross Peter.Ross at alumni.tu-berlin.de
Do Jul 6 12:36:02 CEST 2006


On Thu, 6 Jul 2006, Volker Grabsch wrote:

> Das ist ein Performance-Argument.

Und auch ext3 kennt das. Dies hier ist aus der manpage fuer tune2fs:

- journal_data

When the filesystem is mounted with journalling enabled, all data (not 
just metadata) is committed into the journal prior to being written into 
the main filesystem.

- journal_data_ordered

When the filesystem is mounted with journalling enabled, all data is 
forced directly out to the main file system prior to its metadata being 
commutted to the journal.

- journal_data_writeback

When the filesystem is mounted with journalling enabled, data may be 
written into the main filesystem after its metadata has been commutted to 
the journal.  This may increase throughput, however, it may allow old data 
to appear in files after a crash and journal recovery.

Und nicht nur ext3. Auch das darunterliegende IO. Hast Du z.B. den 
Plattencache ausgeschaltet? ;-) Das bremst eine Platte ganz merklich.

BTW: SuSEs 8.2 mkfs.xfs manpage nennt beim ersten Erwaehnen des Logs 
dieses "The metadata log", ist also praezise.

Es kommt doch bei vielen Sachen drauf an, wie wichtig Konsistenz ist, wie 
wichtig Metadaten und Daten.

Ein heiles Filesystem oder eines, welches im Background gecheckt wird (wie 
unter FreeBSD), verkuerzt einen Bootprozess erheblich. Dafuer muessen die 
Metadaten konsistent sein.

Und mein RAID hilft mir, keinerlei Datenverluste zu haben, weil eine 
Platte kaputt geht.

Das ist fuer mich wirklich wichtig.

Nun betreue ich eine rund um die Uhr laufende Anwendung. Das sie immer 
oben ist, und keine Daten verloren gehen, ist wichtig.

Aber wenn es denn mal crasht (in der Regel durch Java+Applikation, nicht 
durch OS+Hardware), wird wieder restartet. Aergerlich, aber nicht zu 
aendern (klar, dass daran gearbeitet wird, dass es nicht mehr vorkommt)

Anyway, wenn das OS crasht und das letzte File, was gerade vom Anwender in 
den Datenstore geladen wurde, noch nicht geschrieben ist, ist das zwar 
auch nicht gut, aber fuer den Anwender ersichtlich - es hat geknallt, der 
Server ist weg, "connection refused" - nun, ich muss mich wieder einloggen 
und noch mal hochladen. (Ich rede hier nicht vom taeglichen Crash, aber es 
kann mal vorkommen, die Applikation ist zumeist einige Wochen 
unterbrechungsfrei online).

Das rechtfertigt durchaus, eine Option zu verwenden, die 
RAID+Metadatajournal beinhaltet, aber kein Datenjournal, wenn ich an die 
Grenzen der verfuegbaren IO-Bandbreite stosse.

Bei der Datenbank dagegen haette ich gern alle Daten wirklich 
geschrieben, sonst habe ich unter Umstaenden eine Datenbank, die korrupt 
ist, und nicht wieder "hochkommt".

Und bei meinem Rechner zuhause ist es ganz nett, 
UFS2+Softupdates+Backgroundcheck zu haben, damit mein Rechner schnell 
wieder hochkommt, mir auch bedenkenlos ein sofortiges Stromabschalten 
erlauben kann, ohne Angst vor defektem Filesystem zu haben, aber mit 
meinen paar Gigabyte waere auch ein UFS1 ohne das wahrscheinlich okay.

Da brauche ich mit Sicherheit kein Datenjournal, schon ein robustes 
simples Filesystem reicht aus.

Fuer ein Read-Only-System gaaanz sicher.

Wenn Du dagegen ein Flashdevice hast, bei dem die Anzahl der 
Schreibzugriffe waehrend der Lebenszeit begrenzt ist, sehen die 
Anforderungen ganz anders aus.

Die o.g. unterschiedlichen Anforderung je Anwendung koennen uebrigens auch 
eine sehr spezielle Partitionierung rechtfertigen. Z.B. andere 
Journaloptionen fuer /var/db, wenn es ein DB-Server ist.

Ich habe mir angewoehnt, Partitionen nicht direkt an eine Stelle zu 
mounten, sondern unter /mnt/vol1, und dann Symlinks dahin zu legen. Das 
macht mich flexibler, um auf die Anforderungen des taeglichen Betreibs zu 
regieren.

Gruss
Peter



Mehr Informationen über die Mailingliste linux-l