[linux-l] lokales Netz - NFS oder Samba?
Peter Ross
Peter.Ross at alumni.tu-berlin.de
Mo Apr 16 13:35:24 CEST 2007
Hi Frank,
On Mon, 16 Apr 2007, Frank Reker wrote:
> Am Mon 16. Apr 2007 08:46 +1000 schrieb Peter Ross:
>
> >Anyway, wenn kein Close kommt, kann der NFS-Server nicht wissen, was Du
> >lieber moechtest - eine abgeschnittene oder keine Datei. Du wirst die
> >abgeschnittene Datei haben.
>
> wenn die datei neu angelegt wurde, ist das ziemlich egal. wenn die datei
> aber ueberschrieben oder veraendert wurde, sollte das drin stehn, was
> vor dem ueberschreiben/veraendern drinstand. also so, als haette die
> halbe transaktion nie statt gefunden. es sei denn die datei wurde mit
> O_SYNC geoeffnet, oder es erfolgen explizite sync() aufrufe. in
> letzterem fall sollte der aufruf des letzten sync-aufrufs restored
> werden. natuerlich kann man soetwas auch auf anwenderebene
> nachprogrammieren. aber imho gehoert soetwas ins fs, insbesondere bei
> fsen die uebers netz gehen.
Das ist auch bei einem lokalen Filesystem nicht gegeben.
Ein sync heisst nur: liebes Betriebssystem, bitte stelle sicher, dass die
Aenderungen _jetzt_ geschrieben werden.
Ohne sync nur, dass es dem Betriebssystem obliegt, wann es denn schreibt,
wie es am besten passt, so dass es moeglichst performant ist.
Stelle Dir vor, Du hast ein Apachelog, welches einmal geoeffnet wird, und
dann schreibt Apache tagelang Megabyte fuer Megabyte - ohne sync (weil Du
nicht moechtest, dass das System nur deswegen in die Knie geht, weil die
Accesslogs immer sofort geschrieben werden muessen)
Nach Deiner Logik muesste das Betriebssystem tagelang cachen (wohin?), und
wenn dann alles abstuerzt, moechtest Du hinterher keinerlei Logeintraege
fuer die letzten Tage haben?
Nein, so ab und an wuerde das Betriebssystem schreiben, und Journaling
der Daten ist extra dafuer entwickelt worden, damit das System wirklich
moeglichst wenig vergisst.
Bedenke immer: die Anwendung selbst hat keine Ahnung, was dadrunter
liegt.. (ob z.B,. ein lokales Filesystem mit Datenjournaling. ohne, wie
lange es puffert, obs uebers Netz geht...)
Deshalb gibt es sync - fuer die ganz wichtigen Faelle.
Ich tippe mal, Datenbanken wollen das, sonst sieht es um ihre Konsistenz
wirklich bescheiden aus. Aber wie die genau arbeiten, um Datensicherheit
und Performanz unter den Hut zu bringen, weiss ich nicht.
Es gruesst
Peter
Mehr Informationen über die Mailingliste linux-l