Re: Datenintegritaet / Softupdates

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Mon, 12 Jun 2006 12:17:53 +0200 (CEST)

Harald Schmalzbauer <h.schmalzbauer(at)omnisec.de> wrote:
> Oliver Fromme wrote:
> > Aber wie gesagt: Daß fsck(8) bei einer gemounteten
> > Partition (die nicht read-only ist) beliebige Inkon-
> > sistenzen findet, ist zu erwarten.
>
> Hmm, sollte softupdates nicht genau das verhindern?

Nein, wie sollte es das können?

Der entscheidende Punkt ist, daß fsck(8) am Dateisystem-
Treiber vorbei auf der Platte arbeitet. Es greift direkt
auf das Block-Device der Partition zu, liest mal hier und
mal dort etwas von der Dateisystem-Struktur -- und das,
während parallel dazu beliebige andere Prozesse schreibend
auf das Dateisystem zugreifen.

Daß das fsck(8) in dem Fall keinen konsistenten Zustand des
Dateisystems vorfindet, sollte offensichtlich sein. Dabei
ist es völlig egal, ob Soft-updates verwendet wird, oder ob
das Dateisystem synchron gemountet ist oder sonstwas.

Eine Möglichkeit wäre, bei fsck(8) die Optionen -B -n zu
verwenden. Es wird dann zunächst ein Read-only-Snapshot
erstellt, auf dem fsck(8) dann loslegt. Der sollte natür-
lich in jedem Fall konsistent sein.

> Soweit ich das verstanden hatte kümmert [Soft-updates]
> sich darum daß auch bei nicht synchron gemounteten
> Dateisystemen _niemals_ ein inkonsistenter Zustand
> entstehen kann.

Das ist nur bedingt richtig. Soft-updates sorgt dafür,
daß das Dateisystem zu einem beliebigen (atomaren) Zeit-
punkt in einem konsistenten Zustand ist, d.h. wenn man zu
einem beliebigen Zeitpunkt einen Snapshot anfertigt (als
atomare Operation), dann ist dieser garantiert konsistent.

(Kleine Randbemerkung: Synchron gemountete Dateisysteme
ohne Soft-updates haben diese Konsistenz-Garantie _nicht_.)

> Ergo darf auch fsck keine Inkonsistenzen finden,

Doch. Da fsck nicht atomar auf das Dateisystem zugreift,
sondern beliebige Zugriffe unter Umgehung des Dateisystem-
Treibers macht, darf es beliebige Inkonsistenzen finden,
wenn das Dateisystem read-write gemountet ist. Das Datei-
system wird ja nicht für die Dauer des fsck-Laufs einge-
froren.

> Allerdings stellt sich für mich dann die Frage: Was
> macht softupdates dann?

Wie oben geschrieben: Es ordnet die Schreibvorgänge von
Metadaten-Updates so um, daß das Dateisystem zu einem be-
liebigen Zeitpunkt in einem konsistenten Zustand ist.
Nicht mehr und nicht weniger.

Gruß
   Olli

-- 
Oliver Fromme,  secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing
Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"If you think C++ is not overly complicated, just what is a protected
abstract virtual base pure virtual private destructor, and when was the
last time you needed one?"
        -- Tom Cargil, C++ Journal
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 12 Jun 2006 - 12:19:45 CEST

search this site